按日期划分的平均大熊猫数据帧

时间:2017-11-24 15:07:01

标签: pandas dataframe

我有以下数据框的日期列表

                       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'

还有其他办法可以吗?

2 个答案:

答案 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