gpt4 book ai didi

python - Pandas :如果日期时间索引中的日期不同,则将一列的值添加到另一列

转载 作者:太空宇宙 更新时间:2023-11-04 08:31:54 25 4
gpt4 key购买 nike

我有一个像这样的 pandas dateframe,其中 datetime 列是索引:

                         volume 
2018-04-08 15:52:26.110 43
2018-04-08 15:53:26.110 17
2018-04-08 15:54:26.110 10
2018-04-09 12:40:35.877 15
2018-04-09 12:41:35.877 16

我的要求是添加另一列 TotalVolume,它将以前的值相加,但仅当日期相同时。期望的输出:

                          volume  TotalVolume
2018-04-08 15:52:26.110 43 43
2018-04-08 15:53:26.110 17 57 (43+17)
2018-04-08 15:54:26.110 10 67 (57+10)
2018-04-09 12:40:35.877 15 15
2018-04-09 12:41:35.877 16 31 (15+16)

最佳答案

cumsumpd.Grouper

这是完成此任务的通用方法,可用于任何频率类型:MinHourWeekBM, 5H, ...

df.groupby(pd.Grouper(freq='D')).cumsum()

volume
2018-04-08 15:52:26.110 43
2018-04-08 15:53:26.110 60
2018-04-08 15:54:26.110 70
2018-04-09 12:40:35.877 15
2018-04-09 12:41:35.877 31

df.assign(TotVol=df.groupby(pd.Grouper(freq='D')).cumsum())

volume TotVol
2018-04-08 15:52:26.110 43 43
2018-04-08 15:53:26.110 17 60
2018-04-08 15:54:26.110 10 70
2018-04-09 12:40:35.877 15 15
2018-04-09 12:41:35.877 16 31

groupbydf.index.date

df.groupby(df.index.date).cumsum()

df.assign(TotVol=df.groupby(df.index.date).cumsum())

关于python - Pandas :如果日期时间索引中的日期不同,则将一列的值添加到另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52268779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com