【发布时间】:2020-07-16 18:15:53
【问题描述】:
我有一个由数据框中的一组日期组成的子数据框。我想计算同一子数据框中的移动平均值并将其绘制在我已经拥有的同一图表上(显示子帧中每天的病例数)。移动平均线需要从 3 月 7 日到 7 月 10 日,并且窗口需要 =7(一周)。
示例数据:
sex country date_report
M Canada 03-01-2020
F Canada 03-01-2020
M Canada 03-02-2020
F Canada 03-02-2020
M Canada 03-02-2020
M Canada 03-03-2020
F Canada 03-03-2020
M Canada 03-04-2020
F Canada 03-04-2020
M Canada 03-04-2020
我已有的代码
day_first=datetime.date(2020, 3, 1)
day_last=datetime.date(2020, 7, 10)
delta = (day_last - day_first)
print(delta.days)
for i in range(delta.days + 1):
all_dates = day_first + datetime.timedelta(+i)
print(all_dates) # This gives me the range of dates I am looking for.
date_count=df.groupby('date_report').date_report.count()
sub_df = df.loc[df['date_report'].between(day_first,day_last), :]
date_count = sub_df.groupby('date_report').date_report.count()
ax=date_count.plot(kind='line')
ax.xaxis.set_major_locator(months)
plt.xlabel("March 1/2020 to July 10/2020")
plt.ylabel("Number of Cases")
plt.show()
这将创建一个如下所示的图:
我只需要计算同一子数据框架内的每周移动平均线,然后将其绘制在同一图表上。提前感谢您的帮助,并对屏幕截图表示抱歉 - 由于我是 stackoverflow 的新手,我无法以其他方式添加图片!
【问题讨论】:
-
这不适用于子数据帧
标签: python pandas datetime matplotlib moving-average