使用熊猫数据框计算每月移动平均值

时间:2018-01-13 15:52:29

标签: pandas datetime matplotlib apply seaborn

我有这样的数据。

 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']上找到工作,所以它似乎是一个日期时间对象。

有没有办法将这些日期时间重新采样为年+月,或者更简单的方法来计算移动平均线?

1 个答案:

答案 0 :(得分:2)

重新采样方法仅在日期时间值位于数据框索引中时才有效。看来情况还不是这样。您可以使用以下代码执行此操作,并计算每月总计,如下所示:

df = df.set_index('Date_time').resample('M').sum()

此文档位于以下链接中。

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.resample.html