【发布时间】:2017-03-08 06:55:56
【问题描述】:
我在使用 Pandas 和 cumsum 时遇到问题,它的行为与我预期的不一样,所以想知道是否有人可以阐明它是如何工作的。
我有一个如下所示的数据框:
| |price |flag |cum_sum |
|-----|---------|------|---------|
|0 |2 |1 |2 |
|1 |5 |1 |7 |
|2 |8 |1 |15 |
|3 |9 |0 |0 |
|4 |12 |0 |0 |
|5 |2 |1 |17 |
目前代码如下:
df['cum_sum'] = df.groupby(by=['flag','price']).sum().groupby(level=[1]).cumsum()
我只希望它对指定标志的列求和。我觉得这应该很简单,但我缺少一些基本的东西。数据集很大,所以没有寻找任何循环或迭代答案。
【问题讨论】:
-
你想要的输出是什么?
-
所以当
flag为1 时,您只想获得price列的累积和? -
如果你想 sum() 价格,你试过“df.groupby('flag')['price'].cumsum()”吗? sum() 之后的查询部分似乎与我无关。