Pandas:将日期划分为 30 分钟间隔并计算平均值

2024-01-12

我有一个带有两列的 Pandas 数据框,它们是speed and time.

speed   date
54.72   1:33:56
49.37   1:33:59
37.03   1:34:03
24.02   7:39:58
28.02   7:40:01
24.04   7:40:04
24.02   7:40:07
25.35   7:40:10
26.69   7:40:13
32.04   7:40:16
28.02   11:05:43
30.71   11:05:46
29.36   11:05:49
18.68   11:05:52
54.72   11:05:55
34.69   10:31:34
25.03   10:31:38
56.04   10:31:40
44.03   10:31:43

我想计算 30 分钟内每个 bin 的平均速度。例如,第 4 个 bin (1:31 - 2:00) 期间的平均速度为 (54.72 + 49.37 + 37.03)/3。我想过将小时、分钟和秒转换为 00:00 开始的秒,然后有 1800 秒的 bin。我尝试使用 scipy.stats 中的 binned_statistic 但我的主要问题是我无法找到一种方法来根据日期分离垃圾箱并获得平均速度。

有任何想法吗?


转换为日期时间并使用pandas.Grouper + 偏移别名 http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases:

df['date'] = pd.to_datetime(df.date)
df.groupby(pd.Grouper(key='date', freq='30min')).mean().dropna()

    speed
date    
2018-09-20 01:30:00     47.040000
2018-09-20 07:30:00     26.311429
2018-09-20 10:30:00     39.947500
2018-09-20 11:00:00     32.298000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas:将日期划分为 30 分钟间隔并计算平均值 的相关文章

随机推荐