-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathseasonal_index.py
More file actions
31 lines (23 loc) · 810 Bytes
/
Copy pathseasonal_index.py
File metadata and controls
31 lines (23 loc) · 810 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import pandas as pd
# Load the dataset
df = pd.read_csv('indian_grocery_store_weekly_sales.csv')
# Clean column names
df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_')
# Convert date column
df['week'] = pd.to_datetime(df['week'])
df['weekofyear'] = df['week'].dt.isocalendar().week.astype(int)
weekly_avg = (
df.groupby(['product_id', 'weekofyear'])['sales_quantity']
.mean()
.reset_index(name='weekly_avg_sales')
)
overall_avg = (
df.groupby('product_id')['sales_quantity']
.mean()
.reset_index(name='overall_avg_sales')
)
seasonal_df = weekly_avg.merge(overall_avg, on='product_id')
seasonal_df['seasonal_index'] = (
seasonal_df['weekly_avg_sales'] / seasonal_df['overall_avg_sales']
)
seasonal_df.to_csv('seasonal_index_per_product.csv', index=False)