gpt4 book ai didi

python - 如何按定义的时间间隔对 Pandas 数据框进行分组?

转载 作者:太空狗 更新时间:2023-10-29 20:13:34 28 4
gpt4 key购买 nike

我有一个这样的dataFrame,我想每60分钟分组一次,并在06:30开始分组。

                           data
index
2017-02-14 06:29:57 11198648
2017-02-14 06:30:01 11198650
2017-02-14 06:37:22 11198706
2017-02-14 23:11:13 11207728
2017-02-14 23:21:43 11207774
2017-02-14 23:22:36 11207776

我正在使用:

df.groupby(pd.TimeGrouper(freq='60Min'))

我得到这个分组:

                      data
index
2017-02-14 06:00:00 x1
2017-02-14 07:00:00 x2
2017-02-14 08:00:00 x3
2017-02-14 09:00:00 x4
2017-02-14 10:00:00 x5

但我正在寻找这个结果:

                      data
index
2017-02-14 06:30:00 x1
2017-02-14 07:30:00 x2
2017-02-14 08:30:00 x3
2017-02-14 09:30:00 x4
2017-02-14 10:30:00 x5

如何让函数以一小时为间隔在 6:30 开始分组?

如果 .groupby(pd.TimeGrouper(freq='60Min')) 无法完成,最好的方法是什么?

提前致以敬意和感谢

最佳答案

pd.Grouper 中将 base=30label='right' 参数结合使用.

指定 label='right' 使时间段从 6:30(较高的一侧)而不是 5:30 开始分组。此外,base 设置为 0 by default ,因此需要将这些值抵消 30 以说明日期的前向传播。

假设,你想聚合每个子组的第一个元素,那么:

df.groupby(pd.Grouper(freq='60Min', base=30, label='right')).first()
# same thing using resample - df.resample('60Min', base=30, label='right').first()

产量:

                           data
index
2017-02-14 06:30:00 11198648.0
2017-02-14 07:30:00 11198650.0
2017-02-14 08:30:00 NaN
2017-02-14 09:30:00 NaN
2017-02-14 10:30:00 NaN
2017-02-14 11:30:00 NaN
2017-02-14 12:30:00 NaN
2017-02-14 13:30:00 NaN
2017-02-14 14:30:00 NaN
2017-02-14 15:30:00 NaN
2017-02-14 16:30:00 NaN
2017-02-14 17:30:00 NaN
2017-02-14 18:30:00 NaN
2017-02-14 19:30:00 NaN
2017-02-14 20:30:00 NaN
2017-02-14 21:30:00 NaN
2017-02-14 22:30:00 NaN
2017-02-14 23:30:00 11207728.0

关于python - 如何按定义的时间间隔对 Pandas 数据框进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42255458/

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