【发布时间】:2019-09-02 23:33:18
【问题描述】:
我在 pandas 的数据框中有前三列。我想计算每个产品的 3 天移动平均值,如第 4 列所示。
数据
print (df)
Date Product Demand mov Avg
0 1-Jan-19 Product-01 3 NaN
1 2-Jan-19 Product-01 4 NaN
2 3-Jan-19 Product-01 5 4.0
3 4-Jan-19 Product-01 6 5.0
4 5-Jan-19 Product-01 7 6.0
5 3-Jan-19 Product-02 2 NaN
6 4-Jan-19 Product-02 3 NaN
7 5-Jan-19 Product-02 4 3.0
8 6-Jan-19 Product-02 5 4.0
9 7-Jan-19 Product-02 8 5.7
我尝试使用 groupby 和滚动平均值,但似乎不起作用。
df['mov_avg'] =df.set_index('Date').groupby('Product').rolling('Demand',window=7).mean().reset_index(drop=True)
【问题讨论】:
标签: python pandas pandas-groupby