如何使用Pandas DataFrame 扩展求和列
A B C D
0 1 1 0 16
1 1 1 0 16
2 1 1 1 8
3 1 1 1 8
我有一个这样的表格:
A B C D
0 1 1 0 7
1 1 1 0 9
2 1 1 1 5
3 1 1 1 3
在我执行 df.groupby(['A','B','C']).sum()
之后,我得到了:
A B C D
0 1 1 0 16
1 1 1 1 8
请问有什么方法可以在计算总和的同时,不把原来的行合并掉呢?
谢谢!
1 个回答
1
如果我理解正确的话,你想要使用transform
这个功能:它会进行数据的汇总,但返回的结果和原始数据的索引方式是一样的。
>>> df
A B C D
0 1 1 0 7
1 1 1 0 9
2 1 1 1 5
3 1 1 1 3
>>> df.groupby(["A", "B", "C"]).transform('sum')
D
0 16
1 16
2 8
3 8
>>> df["D"] = df.groupby(["A", "B", "C"]).transform('sum')
>>> df
A B C D
0 1 1 0 16
1 1 1 0 16
2 1 1 1 8
3 1 1 1 8