如何使用Pandas DataFrame 扩展求和列

0 投票
1 回答
609 浏览
提问于 2025-04-18 09:05
  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

撰写回答