Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. Store Item WeekID WeeklySales
  2. 1 1567 34 100.00
  3. 2 2765 34 86.00
  4. 3 1163 34 200.00
  5. 1 1567 35 160.00
  6. . .
  7. . .
  8. . .
  9.  
  10. weekly_sales_dict = {}
  11. for i in df['WeekID'].unique():
  12. store_items_dict = {}
  13. subset = df[df['WeekID'] == i]
  14. subset = subset.groupby(['Store', 'Item']).agg({'WeeklySales':'sum'}).reset_index()
  15. for j in subset['Store'].unique():
  16. storeset = subset[subset['Store'] == j]
  17. store_items_dict.update({str(j): storeset})
  18. weekly_sales_dict.update({ str(i) : store_items_dict})
  19.  
  20. count = 0
  21. key_list = list(df['WeekID'].unique())
  22. lag, lag_list = {}, []
  23. for k,v in weekly_sales_dict.items():
  24. if count != 0 and count != len(df['WeekID'].unique())-1:
  25. prev_wk = weekly_sales_dict[str(key_list[(count - 1)])]
  26. current_wk = weekly_sales_dict[str(key_list[count])
  27. for i in df['Store'].unique():
  28. prev_df = prev_wk[str(i)]
  29. current_df = current_wk[str(i)]
  30. for j in df['Item'].unique():
  31. print('in j')
  32. if j in list(current_df['Item'].unique()) and j in list(prev_df['Item'].unique()):
  33. item_lag = current_df[current_df['Item'] == int(j)]['WeeklySales'].values - prev_df[prev_df['Item'] == int(j)]['WeeklySales'].values
  34. df[df['Item'] == j][df['Store'] == i ][df['WeekID'] == key_list[count]]['lag'] = item_lag[0]
  35. lag_list.append((str(i),str(j),item_lag[0]))
  36. elif j in list(current_df['Item'].unique()):
  37. item_lag = current_df[current_df['Item'] == int(j)]['WeeklySales'].values
  38. lag_list.append((str(i),str(j),item_lag[0]))
  39. else:
  40. pass
  41. count += 1
  42. else:
  43. count += 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement