繁体   English   中英

Pandas 与当前行列匹配的先前记录的时间序列累积

[英]Pandas time series cumsum of previous records matching a column of current row

我正在尝试添加一个列,该列表示与给定列的行当前值匹配的先前记录的累积总和,让我们举个例子。

我的数据是:

|t         |label|qty|cumsum|
|2020-01-05|A    |10 |10    |
|2020-01-06|B    |5  |5     |
|2020-01-06|C    |2  |2     |
|2020-01-07|A    |-5 |5     |
|2020-01-07|A    |2  |7     |
|2020-01-08|B    |-30|-25   |
|2020-01-09|C    |5  |7     |

cumsum列将总结为“对 label 与当前行相同的所有过去记录进行累积总和”

理想情况下,为了代码清晰,我想要一个表达式,例如df['cumsum']=df.loc[(df['label']==current label) & (df['t'] <= current index)].cumsum()不是 go 通过for ix,row in df:

另一个方面是从头开始累加,dataframe可以是20条记录,也可以是500k条记录。

另外,为了清楚起见,我在示例中只放了 3 个标签,但我的数据集中可以有几十个标签

我发现了一些其他类似的问题,但它们并不完全适合我的需要:

欢迎任何形式的帮助! 谢谢 !

df.groupby('label')['qty'].transform('cumsum')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM