gpt4 book ai didi

python - 根据时间范围重新采样数据帧,忽略日期

转载 作者:行者123 更新时间:2023-12-02 19:33:22 25 4
gpt4 key购买 nike

我正在尝试对数据进行重新采样以获得总和。这种重采样需要仅基于时间。我想将时间分组为 6 小时,因此无论日期如何,我都会得到 4 个总和。

我的 df 看起来像这样:

                     booking_count
date_time
2013-04-04 08:32:25 58
2013-04-04 18:43:11 1
2013-30-04 12:39:15 52
2013-14-05 06:51:33 99
2013-01-06 23:59:17 1
2013-03-06 19:37:25 42
2013-27-06 04:12:01 38

通过此示例数据,我期望得到以下结果:

00:00:00            38
06:00:00 157
12:00:00 52
18:00:00 43

为了解决日期问题,我尝试仅保留时间值:

df['time'] = pd.DatetimeIndex(df['date_time']).time
new_df = df[['time', 'booking_bool']].set_index('time').resample('360min').sum()

不幸的是,这没有用。我该如何获得所需的结果? resample() 适合这个任务吗?

最佳答案

我不认为 resample() 是执行此操作的好方法,因为您需要根据独立于一天的时间进行分组。也许您可以尝试使用自定义 bins 参数来使用 cut,然后使用常用的 groupby

bins = np.arange(start=0, stop=24+6, step=6)
group = df.groupby(pd.cut(
df.index.hour,
bins, right=False,
labels=pd.date_range('00:00:00', '18:00:00', freq='6H').time)
).sum()

group
# booking_count
# 00:00:00 38
# 06:00:00 157
# 12:00:00 52
# 18:00:00 44

关于python - 根据时间范围重新采样数据帧,忽略日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61447010/

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