我有这样的数据。
Date_of_event - expenditure
2016-04-04 09:20:04.903 - 50000
2015-04-04 09:20:04.903 - 40000
2016-08-04 09:20:04.903 - 70000
2017-01-04 09:20:04.903 - 35000
2011-04-04 09:20:04.903 - 250000
2013-04-06 09:20:04.903 - 500
2016-07-09 09:20:04.903 - 1090000
我想用seaborn或matplotlib绘制平均每月支出的六个月移动平均值。作为第一步,我试图使用重新计算来计算平均每月支出,然后我按月分组。但是,当我使用此代码时出现以下错误:
df['Date_of_event'] = df['Date_time'].resample('M')
Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'.
“。注意.dt.days和.dt.month方法在我的df ['Date_of_event']上找到工作,所以它似乎是一个日期时间对象。
有没有办法将这些日期时间重新采样为年+月,或者更简单的方法来计算移动平均线?
答案 0 :(得分:2)
重新采样方法仅在日期时间值位于数据框索引中时才有效。看来情况还不是这样。您可以使用以下代码执行此操作,并计算每月总计,如下所示:
df = df.set_index('Date_time').resample('M').sum()
此文档位于以下链接中。
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.resample.html