簡體   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