Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Store Item WeekID WeeklySales
- 1 1567 34 100.00
- 2 2765 34 86.00
- 3 1163 34 200.00
- 1 1567 35 160.00
- . .
- . .
- . .
- weekly_sales_dict = {}
- for i in df['WeekID'].unique():
- store_items_dict = {}
- subset = df[df['WeekID'] == i]
- subset = subset.groupby(['Store', 'Item']).agg({'WeeklySales':'sum'}).reset_index()
- for j in subset['Store'].unique():
- storeset = subset[subset['Store'] == j]
- store_items_dict.update({str(j): storeset})
- weekly_sales_dict.update({ str(i) : store_items_dict})
- count = 0
- key_list = list(df['WeekID'].unique())
- lag, lag_list = {}, []
- for k,v in weekly_sales_dict.items():
- if count != 0 and count != len(df['WeekID'].unique())-1:
- prev_wk = weekly_sales_dict[str(key_list[(count - 1)])]
- current_wk = weekly_sales_dict[str(key_list[count])
- for i in df['Store'].unique():
- prev_df = prev_wk[str(i)]
- current_df = current_wk[str(i)]
- for j in df['Item'].unique():
- print('in j')
- if j in list(current_df['Item'].unique()) and j in list(prev_df['Item'].unique()):
- item_lag = current_df[current_df['Item'] == int(j)]['WeeklySales'].values - prev_df[prev_df['Item'] == int(j)]['WeeklySales'].values
- df[df['Item'] == j][df['Store'] == i ][df['WeekID'] == key_list[count]]['lag'] = item_lag[0]
- lag_list.append((str(i),str(j),item_lag[0]))
- elif j in list(current_df['Item'].unique()):
- item_lag = current_df[current_df['Item'] == int(j)]['WeeklySales'].values
- lag_list.append((str(i),str(j),item_lag[0]))
- else:
- pass
- count += 1
- else:
- count += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement