2016-12-22 30 views
1

熊貓DF具有日期時間索引與價格和數量在該價格。如果索引重複,然後添加列值

    Last  Volume 
Date_Time      
20160907 070000 1.1249   17 
20160907 070001 1.1248   12 
20160907 070001 1.1249   15 
20160907 070002 1.1248   13 
20160907 070002 1.1249   20 

我想創建,保持容積的總運行(和)通過,如果價格重複序列的列。我正在嘗試創建一個看起來像這樣的列。

Last    Volume     VolumeCount 
1.1249    17      17 
1.1248    12      12 
1.1249    15      32 
1.1248    13      25 
1.1249    20      52 

我一直在不同的功能和循環,我似乎不能以創建一個列,這不是該組的總和。我真的很感激任何幫助或建議。謝謝。

+0

嘗試'DF [ 'VolumeCount'] = DF.groupby(」最後 ')[' 音量「。cumsum()'。 – Abdou

+0

我認爲只有當價格與以前的價格相同時纔會這樣。在你的例子中,每一個單獨的價格都會累計成交量。 @Abdou匹配你的預期輸出,但與你實際說的相符。 – piRSquared

+0

非常感謝你!我不相信我會讓它變得如此複雜。謝謝!! – jnas

回答

0

嘗試:

DF['VolumeCount'] = DF.groupby('Last')['Volume'].cumsum() 

我希望這有助於。

0

要在連續套相同Last

積累量考慮df

    Last  Volume 
Date_Time   
20160907-70000 1.1249   17 
20160907-70001 1.1248   12 
20160907-70001 1.1248   15 
20160907-70002 1.1248   13 
20160907-70002 1.1249   20 

然後

df.Volume.groupby((df.Last != df.Last.shift()).cumsum()).cumsum() 

Date_Time 
20160907-70000 17 
20160907-70001 12 
20160907-70001 27 
20160907-70002 40 
20160907-70002 20 
Name: Volume, dtype: int64 
相關問題