我有以下数据框的日期列表
debt
date
2017-11-17 16:00:00 77
2017-11-17 17:00:00 73
2017-11-17 18:00:00 74
2017-11-17 19:00:00 73
2017-11-17 20:00:00 74
2017-11-17 21:00:00 71
我正在尝试按日期分组,以便在没有时间的情况下按日期查找平均值
2017-11-17 74
我试着这样做 df = df.groupby(df [' date']。map(lambda x:x.day)) KeyError:' date'
还有其他办法可以吗?
答案 0 :(得分:4)
date
使用DatetimeIndex.date
时需要index
:
df = df.groupby(df.index.date).mean()
print (df)
debt
2017-11-17 73.666667
print (df.index)
Index([2017-11-17], dtype='object')
但更好的是DatetimeIndex
使用DatetimeIndex.floor
:
df = df.groupby(df.index.floor('d')).mean()
print (df)
debt
date
2017-11-17 73.666667
print (df.index)
DatetimeIndex(['2017-11-17'], dtype='datetime64[ns]', name='date', freq=None)
答案 1 :(得分:1)
只需修改自己的方法,更改为index
df.groupby(df.index.map(lambda x: x.day)).mean()
Out[132]:
debt
date
24 73.666667