假设我有以下数据帧df1
:
A B C D
0 foo one 1 0
1 bar two 2 1
2 foo two 3 0
3 bar two 4 1
4 foo two 5 0
5 bar two 6 1
6 foo one 7 0
7 foo two 8 1
我想把它变成一个数据帧df2
,如下所示:
更确切地说:
按A
分组,即列A
是索引,每行中{
列B
和C
包含发生的值的聚合集。对于A = "foo"
,B
要么是"one"
,要么是{"two"
。在
set
,但我也在问,用熊猫来表示这一点最优雅的方式是什么列D
不包含集合,因为对于foo
D
总是0,而对于bar
,它总是1。如果索引值和列值之间始终存在1:1的关系,则列不应包含集合。
我原以为会有一个单行聚合a df1.groupby("A").aggregate_like_this()
,但到目前为止我还没有找到它。在
使用
groupby
+agg
:如果无法预先确定
^{pr2}$A
的哪些值与D
具有1:1的关系,请使用groupby
+nunique
进行检查,然后相应地过滤数据集。在相关问题 更多 >
编程相关推荐