【发布时间】:2021-02-03 17:08:03
【问题描述】:
我在将 groupby 输出映射回原始数据帧时遇到问题。为了可视化问题,我创建了一个test_df,它的组装类似于我的真实数据框:
test_df = pd.DataFrame({"a": [1,1,2,2,3,3,3], "b": ["a", "a", "b", "c", "b", "b", "b"], "c": ["L", "O", "O", "K", "N", "O", "W"]})
我的目标是获取每个组的“c”列的所有唯一值(而一个组取决于 a 和 b 列中的值)。我试图通过执行来实现这一点:
test_df.groupby(["a", "b"])["c"].unique()
导致this output。 我无法将其映射回我原来的“test_df”。我也试过用:
test_df.groupby(["a", "b"])["c"].transform(lambda x: np.unique(x))
导致此错误:“ValueError:传递值的长度为 1,索引意味着 8”在我的真实数据帧上。如果我在 np.unique(x) 周围添加 len() 它可以工作,但它显然不会返回我需要的东西。 但是,我的desired DataFrame 看起来像这样:
desired_df = pd.DataFrame({"a": [1,1,2,2,3,3,3], "b": ["a", "a", "b", "c", "b", "b", "b"], "c": ["L", "O", "O", "K", "N", "O", "W"], "d": ["L, O", "L, O", "O", "K", "N, O, W", "N, O, W", "N, O, W"]})
【问题讨论】:
标签: python pandas pandas-groupby unique