如果索引重复,则将列值添加到sum

时间:2016-12-22 00:12:38

标签: python-2.7 pandas numpy

pandas 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

我一直在研究不同的函数和循环,我似乎无法创建一个不是该组总和的列。我真的很感激任何帮助或建议。谢谢。

2 个答案:

答案 0 :(得分:0)

尝试:

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

我希望这会有所帮助。

答案 1 :(得分: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