Python 时间序列:与当前行的列匹配的以前记录的总和

Python 时间序列:与当前行的列匹配的以前记录的总和,python,pandas,dataframe,time-series,cumsum,Python,Pandas,Dataframe,Time Series,Cumsum,我试图添加一列,该列表示与给定列的行的当前值相匹配的先前记录的累积和,让我们举个例子 我的数据是: |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 |-3

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

我的数据是:

|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
列将汇总为“对标签与当前行相同的所有过去记录进行累计和”

理想情况下,为了代码清晰,我想要一个表达式,比如
df['cumsum']=df.loc[(df['label']==current label)&(df['t']It'just'计算过去条件为真的时间,而不是特定列的累积和

  • =>不会为数据帧的每一行保留“live”记录

  • 欢迎任何帮助!
    谢谢!

    第一个链接似乎就是您想要的,除了您需要使用列qty直接进行累计和外,请尝试
    df.groupby('label')['qty'].cumsum()
    ?这就成功了!谢谢!很高兴知道,我已经习惯了itertools.groupby,并认为它在pandas中也会以同样的方式工作,返回一个按列的不同值索引的数据帧。谢谢!
    df.groupby('label')['qty'].transform('cumsum')