forked from daryachyzhyk/stuart_modulo_evaluacion
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathokrs_stuart.py
More file actions
101 lines (52 loc) · 3.47 KB
/
Copy pathokrs_stuart.py
File metadata and controls
101 lines (52 loc) · 3.47 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import os
import glob
import pandas as pd
import numpy as np
import datetime
########################
# path
file_eval_real = ('/var/lib/lookiero/stock/stock_tool/eval_estimates_real.csv.gz')
file_eval = ('/var/lib/lookiero/stock/stock_tool/eval_estimates.csv.gz')
file_eval_compra = ('/var/lib/lookiero/stock/stock_tool/eval_estimates_real_compra.csv.gz')
####################
# parameters
threshold = 20
############################3
#OKR - 1- Difference Shopping and Stuart
df_eval_compra = pd.read_csv(file_eval_compra)
df_eval_compra['q_dif_abs'] = np.abs(df_eval_compra['q_dif'])
df_compra_date_fam = df_eval_compra.groupby(['date_shopping', 'family_desc']).agg({'q_dif_abs': 'sum',
'q_estimate': 'sum',
'q_real': 'sum'}).reset_index()
df_compra_date_fam['q_dif_abs_pct'] = df_compra_date_fam['q_dif_abs'] / df_compra_date_fam['q_estimate']
df_compra_date_fam['q_dif_div'] = np.abs(df_compra_date_fam['q_real'] / df_compra_date_fam['q_estimate'] - 1) * 100
df_compra_date_fam.loc[(df_compra_date_fam['q_estimate'] == 0) & (df_compra_date_fam['q_real'] == 0), 'q_dif_div'] = 0
df_compra_date_fam.loc[(df_compra_date_fam['q_estimate'] == 0) & (df_compra_date_fam['q_real'] != 0), 'q_dif_div'] = 100
df_compra_date_fam.loc[(df_compra_date_fam['q_estimate'] != 0) & (df_compra_date_fam['q_real'] == 0), 'q_dif_div'] = 100
df_compra_date_fam.loc[df_compra_date_fam['q_dif_div'] > threshold, 'q_dif_thresh'] = 1
df_compra_date_fam['q_dif_thresh'] = df_compra_date_fam['q_dif_thresh'].fillna(0)
df_date_number_fam = df_compra_date_fam.groupby(['date_shopping']).agg({'q_dif_thresh': 'sum',
'family_desc': 'count'}).reset_index()
df_date_number_fam['q_dif_family_pct'] = np.round(df_date_number_fam['q_dif_thresh'] / df_date_number_fam['family_desc'] * 100, 0)
df_compra_date_fam.plot.bar(x='family_desc', y='q_dif_div', rot=90)
#####
# okr 2- envios
df_eval_real = pd.read_csv(file_eval_real)
df_envios = df_eval_real[df_eval_real['info_type']=='envios']
df_envios['q_dif_alg_abs'] = np.abs(df_envios['q_dif_alg'])
df_envios['q_dif_alg_abs_pct'] = df_envios['q_dif_alg_abs'] / df_envios['q_real_rel'] * 100
df_envios['q_dif_alg_pct'] = df_envios['q_dif_alg'] / df_envios['q_real_rel'] * 100
df_envios.loc[(df_envios['q_estimates_alg'] == 0) & (df_envios['q_real_rel'] == 0), 'q_dif_alg_pct'] = 0
df_envios.loc[(df_envios['q_estimates_alg'] == 0) & (df_envios['q_real_rel'] != 0), 'q_dif_alg_pct'] = 100
df_envios.loc[(df_envios['q_estimates_alg'] != 0) & (df_envios['q_real_rel'] == 0), 'q_dif_alg_pct'] = 100
df_alg = df_envios.groupby(['date_week', 'family_desc']).agg({'q_dif_alg_pct': 'sum',
'q_estimates_alg': 'sum',
'q_real_rel': 'sum',
'info_type': 'count'
}).reset_index()
df_alg = df_alg.rename(columns={'info_type': 'count'})
df_alg.loc[df_alg['family_desc'].isin(['BOLSO', 'BUFANDA', 'FULAR']), 'count'] = 8
df_alg['q_dif_alg_pct_fam'] = df_alg['q_dif_alg_pct'] / df_alg['count']
df_alg_date = df_alg.groupby(['date_week']).agg({'q_dif_alg_pct_fam': 'mean'})
###############################
# OKR - 3 - devos