Skip to content

Instantly share code, notes, and snippets.

@manmohan24nov
Created October 19, 2020 15:19
Show Gist options
  • Save manmohan24nov/5ec4bea81e5be9fa0a9fcc6e7c836670 to your computer and use it in GitHub Desktop.
Save manmohan24nov/5ec4bea81e5be9fa0a9fcc6e7c836670 to your computer and use it in GitHub Desktop.
In [2]: sales_data_ordered = sales_data.sort_values(by=['Date'],ascending=False)
In [3]: sales_data_ordered['Date']= pd.to_datetime(sales_data_ordered['Date'])
In [5]: weekly_sales_df = sales_data_ordered[['Store',
...: 'Date',
...: 'Weekly_Sales']].groupby(['Store',
...: 'Date']).agg({'Weekly_Sales':'mean'})
In [6]: weekly_sales_df.reset_index(inplace=True)
In [7]: rolling_sales_df = weekly_sales_df.groupby(['Store']).rolling(5,
...: on='Date',
...: min_periods=1).mean().reset_index(drop=True)
In [8]: weekly_sales_df = weekly_sales_df.merge(rolling_sales_df,
...: on=['Store','Date'],
...: suffixes=('','_rolling5'))
In [9]: weekly_sales_df[weekly_sales_df['Store']==1].sort_values(by='Date',ascending=True)
Out[9]:
Store Date Weekly_Sales Weekly_Sales_rolling5
0 1 2010-01-10 19908.623288 19908.623288
1 1 2010-02-04 22152.337222 21030.480255
2 1 2010-02-07 20444.084110 20835.014873
3 1 2010-02-19 22081.755753 21146.700093
4 1 2010-02-26 19579.549861 20833.270047
.. ... ... ... ...
138 1 2012-10-08 22116.805139 21756.492828
139 1 2012-10-19 21240.405211 21789.493676
140 1 2012-10-26 20745.274167 21695.939890
141 1 2012-11-05 22691.493662 22297.089965
142 1 2012-12-10 21548.942603 21668.584156
[143 rows x 4 columns]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment