我有一个熊猫数据框,其中有两列,分别为exit
和speed
。
time
我想计算每30分钟的垃圾箱平均速度。例如,第4个bin(1:31-2:00)期间的平均速度为(54.72 + 49.37 + 37.03)/ 3。我曾想过将小时,分钟和秒从00:00转换为秒,然后将其设为1800秒。我曾尝试从scipy.stats中使用binned_statistic,但是我的主要问题是我无法找到一种基于日期分离垃圾箱并获取平均速度的方法。
有什么想法吗?
答案 0 :(得分:10)
转换为日期时间并使用pandas.Grouper
+ 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
答案 1 :(得分:5)
由于您的body {
background-image: linear-gradient(to right top, #3498db, #1e82b9, #0b6d97, #025877, #034359);
background-color: blue;
}
列实际上不是日期,因此将其转换为date
而不使用日期可能更明智。
然后,您可以使用timedelta
分组为30分钟的垃圾箱。
dt.floor
输出:
import pandas as pd
df['date'] = pd.to_timedelta(df.date)
df.groupby(df.date.dt.floor('30min')).mean()