如何计算一列的值之和,而另一列的值不变?
示例:
df.A
0 | A | 2
1 | A | 1
2 | A | 3
3 | B | 22
4 | A | 0
5 | B | 8
我想要的是一个新列:
| cum.sum
0 | A | 2 | 6 (=2+1+3+0)
1 | A | 1 | 6
2 | A | 3 | 6
3 | B | 22 | 31 (=22+8)
4 | A | 0 | 6
5 | B | 8 | 6
答案 0 :(得分:0)
示例中的输出似乎是简单的sum
而不是cumsum
,在这种情况下为:
df["C"] = df.groupby("A")["B"].transform("sum")
但是,如果您希望使用cumsum
,则只需切换函数名称即可:
df["C"] = df.groupby("A")["B"].transform("cumsum")
(sum为DataFrame中A的每一行提供相同的输出,而cumsum给出直至当前行(包括当前行)的A的总数。)