我正在將我的一個Spark項目遷移到Pandas,我遇到的其中一個問題是在每個組內的熊貓中實現滾動求和函數。滾動填充分組數據幀中間值
假設我有:
key time value
A 1 10
A 2 20
A 4 30
A 8 10
B 1 15
B 2 30
B 3 15
欲第一組由key
,然後計算的滾動總和像上value
填充中間時隙相對於time
功能。例如,如果窗口大小爲2,我所期望的輸出將是:
key time output
A 1 10
A 2 30 (10+20)
A 3 30 (10+20+0)
A 4 50 (20+0+30)
A 5 30 (0+30+0)
A 6 30 (the same as above)
A 8 10 (7 is 0 so it is omitted)
A 9 10
A 10 10
B 1 15
B 2 45
B 3 60
B 4 45
B 5 15
我一直在努力的group by
和apply
了整整一個下午。有沒有一個聰明的方法來做到這一點?在火花我可以collect_list
然後select
一個udf到time
和value
做到這一點,但熊貓似乎認爲不同於火花。
謝謝!
你似乎是 「創造」 的數據。目前還不清楚A的輸出時間從1到5的時間以及B的輸出只有1到4的時間。 –
@COLDSPEED由於窗口大小爲1,所以記錄的最後一個值持續1個時隙,抱歉不清楚。 – DarkZero
是窗口大小2或3的結果? –