pandas - 按日期平均 Pandas 数据框

标签 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))
关键错误:'日期'

请问还有其他办法吗?

最佳答案

如果需要 date s 在 index使用 DatetimeIndex.date :

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)

关于pandas - 按日期平均 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47475929/

相关文章:

R:根据一天中的时间有效地对数据框进行子集化

python:如何修改DataFrame中的字典?

python - 如何将列表中的字典转换为Python中的DataFrame?

python - 将非零列名转换为 Python 中的行

python - 如何为 DataFrame 行分配唯一标识符

python - str.split() 返回的 Pandas 排序列表

python - 替换 Pandas 数据框列表中的空白元素

python - 更改数据帧索引中的数字格式

python - 元组到 DataFrame 转换的列表

python pandas 以优雅的方式按条件进行行替换