我有这样的df
它在不同日期的小时分钟包含speed
和dir
。例如,第一行在7:11,20060101记录dir=87, speed=5
。
现在,我认为数据可能过于精确,我希望每小时使用平均值进行后续计算。我该怎么办?
我可以通过groupy
df['Hr']=df['HrMn'].apply(lambda x: str(x)[:-2])
df.groupby(['date', 'Hr'])['speed'].mean()
会返回我想要的东西
但它不是数据帧,我怎样才能用于以后的计算?具体来说,我想知道
答案 0 :(得分:1)
您获得的是一个多索引数据框。你可以尝试
df.groupby(['date', 'Hr'])['speed'].mean().reset_index()
如果您想要其余数据的意思,请尝试
df.groupby(['date', 'Hr'])['speed', 'dir_max', 'speed_max'].mean().reset_index()
编辑: 在速度列和最大值上应用均值dir_max和speed_max
df.groupby(['date', 'Hr']).agg({'speed' : np.mean,'dir_max' : np.max, 'speed_max': np.max}).reset_index()