gpt4 book ai didi

python - 特定时间间隔内时间指数的平均 pandas 数据帧

转载 作者:行者123 更新时间:2023-12-01 02:14:26 25 4
gpt4 key购买 nike

我有一个数据框,其中每个时间戳都有用户获得的一些积分。看起来如下,即几秒钟后收集数据

>> df.head()
points
timestamp
2017-05-29 17:40:45 5
2017-05-29 17:41:53 7
2017-05-29 17:42:34 3
2017-05-29 17:42:36 8
2017-05-29 17:42:37 6

然后我想将其重新采样为 5 分钟的间隔,所以我这样做了

>> df.resample("5min").mean()
points
timestamp
5/29/2017 17:40 8
5/29/2017 17:45 1
5/29/2017 17:50 4
5/29/2017 17:55 3
5/29/2017 18:00 8
5/30/2017 17:30 3
5/30/2017 17:35 3
5/30/2017 17:40 7
5/30/2017 17:45 8
5/30/2017 17:50 5
5/30/2017 17:55 7
5/30/2017 18:00 1

现在我想给出这样的输入 input_time = "17:00-18:00" 并且我想将输入时间划分为 5 分钟间隔,例如[17:05, 17:10 ... 17:55, 18:00]。之后,对于每个时间间隔,我想获得该特定时间间隔获得的平均积分。结果应如下所示

interval points
17:00 -
17:05 -
….
17:30 3
17:35 3
17:40 7.5
17:45 4.5
17:50 4.5
17:55 5
18:00 4.5

需要你的帮助。谢谢

最佳答案

通过date_range创建DatetimeIndex并通过 strftime 更改格式:

input_time = "17:00-18:00"
s,e = input_time.split('-')
r = pd.date_range(s, e, freq='5T').strftime('%H:%M')
print (r)
['17:00' '17:05' '17:10' '17:15' '17:20' '17:25' '17:30' '17:35' '17:40'
'17:45' '17:50' '17:55' '18:00']

同时将原始索引转换为groupby聚合平均值,最后 reindex范围:

df = df.groupby(df.index.strftime('%H:%M'))['points'].mean().reindex(r)
print (df)
17:00 NaN
17:05 NaN
17:10 NaN
17:15 NaN
17:20 NaN
17:25 NaN
17:30 3.0
17:35 3.0
17:40 7.5
17:45 4.5
17:50 4.5
17:55 5.0
18:00 4.5
Name: points, dtype: float64

关于python - 特定时间间隔内时间指数的平均 pandas 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48463174/

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