diff --git a/0_2_Dataset_construction.py b/0_2_Dataset_construction.py index 6881072..863fbf3 100644 --- a/0_2_Dataset_construction.py +++ b/0_2_Dataset_construction.py @@ -1,5 +1,8 @@ -# Business Data Challenge - Team 1 +# Purpose of the script : Construction of training and test datasets for modelling by company +# Input : KPI construction function and clean databases in the 0_Input folder +# Output : Train and test datasets by compagnies +# Packages import pandas as pd import numpy as np import os @@ -9,12 +12,10 @@ import warnings from datetime import date, timedelta, datetime from sklearn.model_selection import train_test_split - # Create filesystem object S3_ENDPOINT_URL = "https://" + os.environ["AWS_S3_ENDPOINT"] fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL}) - # Import KPI construction functions exec(open('0_KPI_functions.py').read()) @@ -24,53 +25,69 @@ warnings.filterwarnings('ignore') def dataset_construction(min_date, end_features_date, max_date, directory_path): - # Import customerplus + # Import of cleaned and merged datasets df_customerplus_clean_0 = display_input_databases(directory_path, file_name = "customerplus_cleaned") df_campaigns_information = display_input_databases(directory_path, file_name = "campaigns_information", datetime_col = ['opened_at', 'sent_at', 'campaign_sent_at']) df_products_purchased_reduced = display_input_databases(directory_path, file_name = "products_purchased_reduced", datetime_col = ['purchase_date']) - - # if directory_path == "101": - # df_products_purchased_reduced_1 = display_databases(directory_path, file_name = "products_purchased_reduced_1", datetime_col = ['purchase_date']) - # df_products_purchased_reduced = pd.concat([df_products_purchased_reduced, df_products_purchased_reduced_1]) + df_target_information = display_input_databases(directory_path, file_name = "target_information") - # Filtre de cohérence pour la mise en pratique de notre méthode + # Dates in datetime format max_date = pd.to_datetime(max_date, utc = True, format = 'ISO8601') end_features_date = pd.to_datetime(end_features_date, utc = True, format = 'ISO8601') min_date = pd.to_datetime(min_date, utc = True, format = 'ISO8601') - #Filtre de la base df_campaigns_information - df_campaigns_information = df_campaigns_information[(df_campaigns_information['sent_at'] <= end_features_date) & (df_campaigns_information['sent_at'] >= min_date)] + # Filter for database df_campaigns_information + df_campaigns_information = df_campaigns_information[(df_campaigns_information['sent_at'] < end_features_date) & (df_campaigns_information['sent_at'] >= min_date)] df_campaigns_information['opened_at'][df_campaigns_information['opened_at'] >= end_features_date] = np.datetime64('NaT') - #Filtre de la base df_products_purchased_reduced - df_products_purchased_features = df_products_purchased_reduced[(df_products_purchased_reduced['purchase_date'] <= end_features_date) & (df_products_purchased_reduced['purchase_date'] >= min_date)] + # Filter for database df_products_purchased_reduced + df_products_purchased_features = df_products_purchased_reduced[(df_products_purchased_reduced['purchase_date'] < end_features_date) & (df_products_purchased_reduced['purchase_date'] >= min_date)] print("Data filtering : SUCCESS") - # Fusion de l'ensemble et creation des KPI + # Building and merging features - # KPI sur les campagnes publicitaires + # Campaigns features df_campaigns_kpi = campaigns_kpi_function(campaigns_information = df_campaigns_information, max_date = end_features_date) - # KPI sur le comportement d'achat + # Purchasing behavior features df_tickets_kpi = tickets_kpi_function(tickets_information = df_products_purchased_features) - # KPI sur les données socio-démographiques + # Socio-demographic features df_customerplus_clean = customerplus_kpi_function(customerplus_clean = df_customerplus_clean_0) + + # Targets features + df_targets_kpi = targets_KPI(df_target = df_target_information) print("KPIs construction : SUCCESS") - # Fusion avec KPI liés au customer + # Merge - campaigns features df_customer = pd.merge(df_customerplus_clean, df_campaigns_kpi, on = 'customer_id', how = 'left') # Fill NaN values - df_customer[['nb_campaigns', 'nb_campaigns_opened']] = df_customer[['nb_campaigns', 'nb_campaigns_opened']].fillna(0) + df_customer[['nb_campaigns', 'nb_campaigns_opened', 'taux_ouverture_mail']] = df_customer[['nb_campaigns', 'nb_campaigns_opened', 'taux_ouverture_mail']].fillna(0) + df_customer['time_to_open'] = df_customer['time_to_open'].fillna(df_customer['time_to_open'].mean()) - # Fusion avec KPI liés au comportement d'achat - df_customer_product = pd.merge(df_tickets_kpi, df_customer, on = 'customer_id', how = 'outer') + # Merge - targets features + df_customer = pd.merge(df_customer, df_targets_kpi, on = 'customer_id', how = 'left') # Fill NaN values - df_customer_product[['nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers', 'vente_internet_max', 'nb_tickets_internet']] = df_customer_product[['nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers', 'vente_internet_max', 'nb_tickets_internet']].fillna(0) + targets_columns = list(df_targets_kpi.columns) + targets_columns.remove('customer_id') + + df_customer[targets_columns] = df_customer[targets_columns].fillna(0) + + # We standardise the number of targets closely linked to the company's operations + df_customer['nb_targets'] = (df_customer['nb_targets'] - (df_customer['nb_targets'].mean())) / (df_customer['nb_targets'].std()) + + # Merge - purchasing behavior features + df_customer_product = pd.merge(df_customer, df_tickets_kpi, on = 'customer_id', how = 'left') + + # Fill NaN values + special_fill_nan = ['customer_id', 'purchase_date_min', 'purchase_date_max', 'time_between_purchase'] + simple_fill_nan = [column for column in list(df_tickets_kpi.columns) if column not in special_fill_nan] + + df_customer_product[simple_fill_nan] = df_customer_product[simple_fill_nan].fillna(0) max_interval = (end_features_date - min_date) / np.timedelta64(1, 'D') + 1 df_customer_product[['purchase_date_max', 'purchase_date_min']] = df_customer_product[['purchase_date_max', 'purchase_date_min']].fillna(max_interval) @@ -82,9 +99,9 @@ def dataset_construction(min_date, end_features_date, max_date, directory_path): print("Explanatory variable construction : SUCCESS") # 2. Construction of the explained variable - df_products_purchased_to_predict = df_products_purchased_reduced[(df_products_purchased_reduced['purchase_date'] <= max_date) & (df_products_purchased_reduced['purchase_date'] > end_features_date)] + df_products_purchased_to_predict = df_products_purchased_reduced[(df_products_purchased_reduced['purchase_date'] < max_date) & (df_products_purchased_reduced['purchase_date'] >= end_features_date)] - # Indicatrice d'achat + # Construction of the dependant variable df_products_purchased_to_predict['y_has_purchased'] = 1 y = df_products_purchased_to_predict[['customer_id', 'y_has_purchased']].drop_duplicates() @@ -103,28 +120,24 @@ def dataset_construction(min_date, end_features_date, max_date, directory_path): return dataset ## Exportation - +# Sectors companies = {'musee' : ['1', '2', '3', '4'], # , '101' 'sport': ['5', '6', '7', '8', '9'], 'musique' : ['10', '11', '12', '13', '14']} +# Choosed sector type_of_comp = input('Choisissez le type de compagnie : sport ? musique ? musee ?') list_of_comp = companies[type_of_comp] -# Dossier d'exportation -BUCKET_OUT = f'projet-bdc2324-team1/Generalization/{type_of_comp}' -# Create test dataset and train dataset for sport companies - - -#start_date, end_of_features, final_date = df_coverage_modelization(list_of_comp, coverage_features = 0.7) - -# start_date, end_of_features, final_date = df_coverage_modelization(list_of_comp, coverage_train = 0.7) +# Export folder +BUCKET_OUT = f'projet-bdc2324-team1/Generalization_v2/{type_of_comp}' +# Dates used for the construction of features and the dependant variable start_date = "2021-05-01" end_of_features = "2022-11-01" final_date = "2023-11-01" - +# Anonymous customer to be deleted from the datasets anonymous_customer = {'1' : '1_1', '2' : '2_12184', '3' : '3_1', '4' : '4_2', '101' : '101_1', '5' : '5_191835', '6' : '6_591412', '7' : '7_49632', '8' : '8_1942', '9' : '9_19683', '10' : '10_19521', '11' : '11_36', '12' : '12_1706757', '13' : '13_8422', '14' : '14_6354'} @@ -133,33 +146,23 @@ for company in list_of_comp: dataset = dataset_construction(min_date = start_date, end_features_date = end_of_features, max_date = final_date, directory_path = company) - # On retire le client anonyme + # Deletion of the anonymous customer dataset = dataset[dataset['customer_id'] != anonymous_customer[company]] - - # #train test set - # np.random.seed(42) - - # split_ratio = 0.7 - # split_index = int(len(dataset) * split_ratio) - # dataset = dataset.sample(frac=1).reset_index(drop=True) - # dataset_train = dataset.iloc[:split_index] - # dataset_test = dataset.iloc[split_index:] - + # Split between train and test dataset_train, dataset_test = train_test_split(dataset, test_size=0.3, random_state=42) # Dataset Test - # Exportation + # Export FILE_KEY_OUT_S3 = "dataset_test" + company + ".csv" FILE_PATH_OUT_S3 = BUCKET_OUT + "/Test_set/" + FILE_KEY_OUT_S3 with fs.open(FILE_PATH_OUT_S3, 'w') as file_out: dataset_test.to_csv(file_out, index = False) - print("Exportation dataset test : SUCCESS") + print("Export of dataset test : SUCCESS") # Dataset train - # Export FILE_KEY_OUT_S3 = "dataset_train" + company + ".csv" FILE_PATH_OUT_S3 = BUCKET_OUT + "/Train_set/" + FILE_KEY_OUT_S3 @@ -167,7 +170,7 @@ for company in list_of_comp: with fs.open(FILE_PATH_OUT_S3, 'w') as file_out: dataset_train.to_csv(file_out, index = False) - print("Exportation dataset train : SUCCESS") + print("Export of dataset train : SUCCESS") -print("FIN DE LA GENERATION DES DATASETS : SUCCESS") +print("End of dataset generation for ", type_of_comp," compagnies : SUCCESS") diff --git a/0_3_General_modelization_dataset.py b/0_3_General_modelization_dataset.py index 2feb2a0..a79ea72 100644 --- a/0_3_General_modelization_dataset.py +++ b/0_3_General_modelization_dataset.py @@ -21,7 +21,7 @@ warnings.filterwarnings('ignore') # functions def generate_test_set(type_of_comp): - file_path_list = fs.ls(f"projet-bdc2324-team1/Generalization/{type_of_comp}/Test_set") + file_path_list = fs.ls(f"projet-bdc2324-team1/Generalization_v2/{type_of_comp}/Test_set") test_set = pd.DataFrame() for file in file_path_list: print(file) @@ -32,7 +32,7 @@ def generate_test_set(type_of_comp): def generate_train_set(type_of_comp): - file_path_list = fs.ls(f"projet-bdc2324-team1/Generalization/{type_of_comp}/Train_set") + file_path_list = fs.ls(f"projet-bdc2324-team1/Generalization_v2/{type_of_comp}/Train_set") train_set = pd.DataFrame() for file in file_path_list: print(file) @@ -43,7 +43,7 @@ def generate_train_set(type_of_comp): type_of_comp = input('Choisissez le type de compagnie : sport ? musique ? musee ?') -BUCKET_OUT = f'projet-bdc2324-team1/Generalization/{type_of_comp}/' +BUCKET_OUT = f'projet-bdc2324-team1/Generalization_v2/{type_of_comp}/' # create test and train datasets test_set = generate_test_set(type_of_comp) diff --git a/0_4_Generate_stat_desc.py b/0_4_Generate_stat_desc.py new file mode 100644 index 0000000..a675066 --- /dev/null +++ b/0_4_Generate_stat_desc.py @@ -0,0 +1,74 @@ +import pandas as pd +import numpy as np +import os +import io +import s3fs +import re +import warnings + +# Ignore warning +warnings.filterwarnings('ignore') + +exec(open('0_KPI_functions.py').read()) +exec(open('utils_stat_desc.py').read()) + +# Create filesystem object +S3_ENDPOINT_URL = "https://" + os.environ["AWS_S3_ENDPOINT"] +fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL}) + +companies = {'musee' : ['1', '2', '3', '4'], # , '101' + 'sport': ['5', '6', '7', '8', '9'], + 'musique' : ['10', '11', '12', '13', '14']} + + +type_of_activity = input('Choisissez le type de compagnie : sport ? musique ? musee ?') +list_of_comp = companies[type_of_activity] + +# Load files +customer, campaigns_kpi, campaigns_brut, tickets, products, targets = load_files(list_of_comp) + +# Identify anonymous customer for each company and remove them from our datasets +outlier_list = outlier_detection(tickets, list_of_comp) + +# Identify valid customer (customer who bought tickets after starting date or received mails after starting date) +customer_valid_list = valid_customer_detection(products, campaigns_brut) + +databases = [customer, campaigns_kpi, campaigns_brut, tickets, products] + +for dataset in databases: + dataset['customer_id'] = dataset['customer_id'].apply(lambda x: remove_elements(x, outlier_list))# remove outlier + dataset = dataset[dataset['customer_id'].isin(customer_valid_list)] # keep only valid customer + #print(f'shape of {dataset} : ', dataset.shape) + +# Identify customer who bought during the period of y +customer_target_period = identify_purchase_during_target_periode(products) +customer['has_purchased_target_period'] = np.where(customer['customer_id'].isin(customer_target_period), 1, 0) + +# Generate graph and automatically saved them in the bucket +compute_nb_clients(customer, type_of_activity) + +#maximum_price_paid(customer, type_of_activity) + +target_proportion(customer, type_of_activity) + +mailing_consent(customer, type_of_activity) + +mailing_consent_by_target(customer) + +gender_bar(customer, type_of_activity) + +country_bar(customer, type_of_activity) + +lazy_customer_plot(campaigns_kpi, type_of_activity) + +campaigns_effectiveness(customer, type_of_activity) + +sale_dynamics(products, campaigns_brut, type_of_activity) + +tickets_internet(tickets, type_of_activity) + +already_bought_online(tickets, type_of_activity) + +box_plot_price_tickets(tickets, type_of_activity) + +target_description(targets, type_of_activity) \ No newline at end of file diff --git a/0_5_Machine_Learning.py b/0_5_Machine_Learning.py new file mode 100644 index 0000000..acbf790 --- /dev/null +++ b/0_5_Machine_Learning.py @@ -0,0 +1,87 @@ +import pandas as pd +import numpy as np +import os +import io +import s3fs +import re +from sklearn.linear_model import LogisticRegression +from sklearn.ensemble import RandomForestClassifier +from sklearn.metrics import accuracy_score, confusion_matrix, classification_report, recall_score +from sklearn.utils import class_weight +from sklearn.neighbors import KNeighborsClassifier +from sklearn.naive_bayes import GaussianNB +from sklearn.pipeline import Pipeline +from sklearn.compose import ColumnTransformer +from sklearn.calibration import calibration_curve +from sklearn.preprocessing import OneHotEncoder +from sklearn.impute import SimpleImputer +from sklearn.model_selection import GridSearchCV +from sklearn.preprocessing import StandardScaler, MaxAbsScaler, MinMaxScaler +from sklearn.metrics import make_scorer, f1_score, balanced_accuracy_score +import seaborn as sns +import matplotlib.pyplot as plt +from sklearn.metrics import roc_curve, auc, precision_recall_curve, average_precision_score +from sklearn.exceptions import ConvergenceWarning, DataConversionWarning +import pickle +import warnings + + +exec(open('utils_ml.py').read()) + +warnings.filterwarnings('ignore') +warnings.filterwarnings("ignore", category=ConvergenceWarning) +warnings.filterwarnings("ignore", category=DataConversionWarning) + +# choose the type of companies for which you want to run the pipeline +type_of_activity = input('Choisissez le type de compagnie : sport ? musique ? musee ?') +# choose the type of model +type_of_model = input('Choisissez le type de model : basique ? premium ?') + +# load train and test set +# Create filesystem object +S3_ENDPOINT_URL = "https://" + os.environ["AWS_S3_ENDPOINT"] +fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL}) + +dataset_train, dataset_test = load_train_test(type_of_activity, type_of_model) + +X_train, X_test, y_train, y_test = features_target_split(dataset_train, dataset_test) + +print("Shape train : ", X_train.shape) +print("Shape test : ", X_test.shape) + +# processing + +weights = class_weight.compute_class_weight(class_weight = 'balanced', classes = np.unique(y_train['y_has_purchased']), + y = y_train['y_has_purchased']) + +weight_dict = {np.unique(y_train['y_has_purchased'])[i]: weights[i] for i in range(len(np.unique(y_train['y_has_purchased'])))} + +preproc = preprocess(type_of_model, type_of_activity) + +# Object for storing results +model_result = pd.DataFrame(columns= ["Model", "Accuracy", "Recall", "F1_score", "AUC"]) + +# Naive Bayes +model_result = pipeline_naiveBayes_benchmark(X_train, y_train, X_test, y_test, model_result) +save_result_set_s3(model_result , "resultat", type_of_activity, type_of_model) +print("Naive Bayes : Done") + +# Logistic Regression +model_result = pipeline_logreg_benchmark(X_train, y_train, X_test, y_test, model_result) +print("Logistic : Done") + +model_result = pipeline_logreg_cv(X_train, y_train, X_test, y_test, model_result) +save_result_set_s3(model_result , "resultat", type_of_activity, type_of_model) +print("Logistic CV : Done") + +# Random Forest +model_result = pipeline_randomF_benchmark(X_train, y_train, X_test, y_test, model_result) +save_result_set_s3(model_result , "resultat", type_of_activity, type_of_model) +print("Random Forest : Done") + +model_result = pipeline_randomF_cv(X_train, y_train, X_test, y_test, model_result) +save_result_set_s3(model_result , "resultat", type_of_activity, type_of_model) +print("Random Forest CV: Done") + +# Save result +save_result_set_s3(model_result , "resultat", type_of_activity, type_of_model) \ No newline at end of file diff --git a/0_6_Segmentation.py b/0_6_Segmentation.py new file mode 100644 index 0000000..7331442 --- /dev/null +++ b/0_6_Segmentation.py @@ -0,0 +1,40 @@ +import pandas as pd +import numpy as np +import os +import io +import s3fs +import re +import pickle +import warnings + + +exec(open('utils_segmentation.py').read()) +warnings.filterwarnings('ignore') + +# Create filesystem object +S3_ENDPOINT_URL = "https://" + os.environ["AWS_S3_ENDPOINT"] +fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL}) + +# choose the type of companies for which you want to run the pipeline +type_of_activity = input('Choisissez le type de compagnie : sport ? musique ? musee ?') + +# load test set +dataset_test = load_test_file(type_of_activity) + +# Load Model +model = load_model(type_of_activity, 'LogisticRegression_Benchmark') + +# Processing +X_test = dataset_test[['nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers', 'vente_internet_max', 'purchase_date_min', 'purchase_date_max', + 'time_between_purchase', 'nb_tickets_internet', 'is_email_true', 'opt_in', #'is_partner', + 'gender_female', 'gender_male', 'gender_other', 'nb_campaigns', 'nb_campaigns_opened']] + +y_test = dataset_test[['y_has_purchased']] + +# Prediction +y_pred_prob = model.predict_proba(X_test)[:, 1] + +# Add probability to dataset_test +dataset_test['Probability_to_buy'] = y_pred_prob +print('probability added to dataset_test') +print(dataset_test.head()) \ No newline at end of file diff --git a/0_Cleaning_and_merge_functions.py b/0_Cleaning_and_merge_functions.py index 3bf4618..d522efc 100644 --- a/0_Cleaning_and_merge_functions.py +++ b/0_Cleaning_and_merge_functions.py @@ -74,7 +74,7 @@ def preprocessing_customerplus(directory_path): cleaning_date(customerplus_copy, 'last_visiting_date') # Selection des variables - customerplus_copy.drop(['lastname', 'firstname', 'birthdate', 'language', 'email', 'civility', 'note', 'extra', 'reference', 'extra_field', 'need_reload', 'preferred_category', 'preferred_supplier', 'preferred_formula', 'mcp_contact_id', 'last_visiting_date', 'deleted_at'], axis = 1, inplace=True) + customerplus_copy.drop(['lastname', 'firstname', 'birthdate', 'language', 'email', 'civility', 'note', 'extra', 'reference', 'extra_field', 'need_reload'], axis = 1, inplace=True) # 'preferred_category', 'preferred_supplier', 'preferred_formula', 'mcp_contact_id', 'last_visiting_date', 'deleted_at', 'last_buying_date', 'max_price', 'ticket_sum', 'average_price', 'average_purchase_delay' , 'average_price_basket', 'average_ticket_basket', 'total_price', 'purchase_count', 'first_buying_date', 'fidelity' customerplus_copy.rename(columns = {'id' : 'customer_id'}, inplace = True) return customerplus_copy diff --git a/0_KPI_functions.py b/0_KPI_functions.py index 18a54a8..0755352 100644 --- a/0_KPI_functions.py +++ b/0_KPI_functions.py @@ -13,14 +13,14 @@ def display_input_databases(directory_path, file_name, datetime_col = None): df = pd.read_csv(file_in, sep=",", parse_dates = datetime_col, date_parser=custom_date_parser) return df -def campaigns_kpi_function(campaigns_information = None, max_date = None): - +def campaigns_kpi_function(campaigns_information = None, max_date = "2023-12-01"): + # Nombre de campagnes de mails nb_campaigns = campaigns_information[['customer_id', 'campaign_name']].groupby('customer_id').count().reset_index() nb_campaigns.rename(columns = {'campaign_name' : 'nb_campaigns'}, inplace = True) # Temps d'ouverture moyen (en minutes) - campaigns_information['time_to_open'] = (pd.to_datetime(campaigns_information['opened_at'], utc = True, format = 'ISO8601') - pd.to_datetime(campaigns_information['delivered_at'], utc = True, format = 'ISO8601')) / np.timedelta64(1, 'h') + campaigns_information['time_to_open'] = ((pd.to_datetime(campaigns_information['opened_at'], utc = True, format = 'ISO8601') - pd.to_datetime(campaigns_information['delivered_at'], utc = True, format = 'ISO8601')) / np.timedelta64(1, 'h')) campaigns_information['time_to_open'] = campaigns_information['time_to_open'].fillna((pd.to_datetime(campaigns_information['delivered_at'], utc = True, format = 'ISO8601') - pd.to_datetime(max_date, utc = True, format = 'ISO8601')) / np.timedelta64(1, 'h')) time_to_open = campaigns_information[['customer_id', 'time_to_open']].groupby('customer_id').mean().reset_index() @@ -44,7 +44,6 @@ def campaigns_kpi_function(campaigns_information = None, max_date = None): return campaigns_reduced - def tickets_kpi_function(tickets_information = None): tickets_information_copy = tickets_information.copy() @@ -100,6 +99,8 @@ def customerplus_kpi_function(customerplus_clean = None): }) gender_dummies = pd.get_dummies(customerplus_clean["gender_label"], prefix='gender').astype(int) customerplus_clean = pd.concat([customerplus_clean, gender_dummies], axis=1) + customerplus_clean.drop(columns = "gender", inplace = True) + # Age customerplus_clean['categorie_age_0_10'] = ((customerplus_clean['age'] >= 0) & (customerplus_clean['age'] < 10)).astype(int) @@ -112,19 +113,53 @@ def customerplus_kpi_function(customerplus_clean = None): customerplus_clean['categorie_age_70_80'] = ((customerplus_clean['age'] >= 70) & (customerplus_clean['age'] < 80)).astype(int) customerplus_clean['categorie_age_plus_80'] = (customerplus_clean['age'] >= 80).astype(int) customerplus_clean['categorie_age_inconnue'] = customerplus_clean['age'].apply(lambda x: 1 if pd.isna(x) else 0) + # customerplus_clean.drop(columns = "age", inplace = True) # Consentement au mailing customerplus_clean['opt_in'] = customerplus_clean['opt_in'].astype(int) # Indicatrice si individue vit en France customerplus_clean["country_fr"] = customerplus_clean["country"].apply(lambda x : int(x=="fr") if pd.notna(x) else np.nan) - + # customerplus_clean.drop(columns = "country", inplace = True) + customerplus_clean['is_profession_known'] = customerplus_clean['profession'].notna().astype(int) - - customerplus_clean['is_zipcode_known'] = customerplus_clean['zipcode'].notna().astype(int) - - # Dummy if the customer has a structure id (tags) - # customerplus_clean['has_tags'] = customerplus_clean['structure_id'].apply(lambda x: 1 if not pd.isna(x) else 0) + # customerplus_clean.drop(columns = "profession", inplace = True) + customerplus_clean['is_zipcode_known'] = customerplus_clean['zipcode'].notna().astype(int) + # customerplus_clean.drop(columns = "zipcode", inplace = True) + + return customerplus_clean + +def targets_KPI(df_target = None): + + df_target['target_name'] = df_target['target_name'].fillna('').str.lower() + + # Target name cotegory musees / + df_target['target_jeune'] = df_target['target_name'].str.contains('|'.join(['jeune', 'pass_culture', 'etudiant', '12-25 ans', 'student', 'jeunesse']), case=False).astype(int) + df_target['target_optin'] = df_target['target_name'].str.contains('|'.join(['optin' ,'opt-in']), case=False).astype(int) + df_target['target_optout'] = df_target['target_name'].str.contains('|'.join(['optout', 'unsubscribed']), case=False).astype(int) + df_target['target_scolaire'] = df_target['target_name'].str.contains('|'.join(['scolaire' , 'enseignant', 'chercheur', 'schulen', 'école']), case=False).astype(int) + df_target['target_entreprise'] = df_target['target_name'].str.contains('|'.join(['b2b', 'btob', 'cse']), case=False).astype(int) + df_target['target_famille'] = df_target['target_name'].str.contains('|'.join(['famille', 'enfants', 'family']), case=False).astype(int) + df_target['target_newsletter'] = df_target['target_name'].str.contains('|'.join(['nl', 'newsletter']), case=False).astype(int) + + # Target name category for sport compagnies + df_target['target_abonne'] = (( + df_target['target_name'] + .str.contains('|'.join(['abo', 'adh']), case=False) + & ~df_target['target_name'].str.contains('|'.join(['hors abo', 'anciens abo']), case=False) + ).astype(int)) + + df_target_categorie = df_target.groupby('customer_id')[['target_jeune', 'target_optin', 'target_optout', 'target_scolaire', 'target_entreprise', 'target_famille', 'target_newsletter', 'target_abonne']].max() + + target_agg = df_target.groupby('customer_id').agg( + nb_targets=('target_name', 'nunique') # Utilisation de tuples pour spécifier les noms de colonnes + # all_targets=('target_name', concatenate_names), + # all_target_types=('target_type_name', concatenate_names) + ).reset_index() + + target_agg = pd.merge(target_agg, df_target_categorie, how='left', on='customer_id') + + return target_agg \ No newline at end of file diff --git a/Descriptive_statistics/debug.ipynb b/Descriptive_statistics/debug.ipynb new file mode 100644 index 0000000..c9b0ad6 --- /dev/null +++ b/Descriptive_statistics/debug.ipynb @@ -0,0 +1,148 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 83, + "id": "718d4e6d-b90a-4955-90ee-c1518246c07c", + "metadata": {}, + "outputs": [ + { + "name": "stdin", + "output_type": "stream", + "text": [ + "Choisissez le type de compagnie : sport ? musique ? musee ? sport\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "File path : projet-bdc2324-team1/0_Input/Company_5/customerplus_cleaned.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_5/campaigns_information.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_5/products_purchased_reduced.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_5/target_information.csv\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import os\n", + "import s3fs\n", + "import re\n", + "import warnings\n", + "\n", + "# Ignore warning\n", + "warnings.filterwarnings('ignore')\n", + "\n", + "exec(open('../0_KPI_functions.py').read())\n", + "exec(open('plot.py').read())\n", + "\n", + "# Create filesystem object\n", + "S3_ENDPOINT_URL = \"https://\" + os.environ[\"AWS_S3_ENDPOINT\"]\n", + "fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL})\n", + "\n", + "companies = {'musee' : ['1', '2', '3', '4'], # , '101'\n", + " 'sport': ['5'],\n", + " 'musique' : ['10', '11', '12', '13', '14']}\n", + "\n", + "\n", + "type_of_activity = input('Choisissez le type de compagnie : sport ? musique ? musee ?')\n", + "list_of_comp = companies[type_of_activity] \n", + "\n", + "# Load files\n", + "customer, campaigns_kpi, campaigns_brut, tickets, products = load_files(list_of_comp)\n", + "\n", + "# Identify anonymous customer for each company and remove them from our datasets\n", + "outlier_list = outlier_detection(tickets, list_of_comp)\n", + "\n", + "# Identify valid customer (customer who bought tickets after starting date or received mails after starting date)\n", + "customer_valid_list = valid_customer_detection(products, campaigns_brut)\n", + "\n", + "databases = [customer, campaigns_kpi, campaigns_brut, tickets, products]\n", + "\n", + "for dataset in databases:\n", + " dataset['customer_id'] = dataset['customer_id'].apply(lambda x: remove_elements(x, outlier_list))# remove outlier\n", + " dataset = dataset[dataset['customer_id'].isin(customer_valid_list)] # keep only valid customer\n", + " #print(f'shape of {dataset} : ', dataset.shape)\n", + "\n", + "# Identify customer who bought during the period of y\n", + "customer_target_period = identify_purchase_during_target_periode(products)\n", + "customer['has_purchased_target_period'] = np.where(customer['customer_id'].isin(customer_target_period), 1, 0)" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "id": "97d1ceba-0ff9-4e36-87ab-7ebca2857798", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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kSNHigsXLqj87jR9tZQQz68Kmzp1qnB0dBT6+vrCzs5OjB49WuW2CqW9RyVR9/sI///y/VWrVgkXFxehr68vGjduLL7//nuVPivy/VRs2bJlwsnJSejp6an176KqkIQQ4hVmKSIiesX8/PyQkZFRrnF8VLVIkoSxY8dixYoVlV1KlcYxN0RERKRTGG6IiIhIp/C0FBEREekUHrkhIiIincJwQ0RERDqF4YaIiIh0yv/cTfyKiorw999/w9TUVOduN01ERKSrhBDIzs6Gvb290gNXS/I/F27+/vtvlaekEhER0evh9u3bKs9Te9H/XLgpfi7S7du3YWZmVsnVEBERkTqysrLg4OCg1gNc/+fCTfGpKDMzM4YbIiKi14w6Q0o4oJiIiIh0CsMNERER6RSGGyIiItIpDDdERESkUxhuiIiISKcw3BAREZFOYbghIiIincJwQ0RERDqF4YaIiIh0CsMNERER6RSGGyIiItIpDDdERESkUxhuiIiISKcw3BAREZFOYbghIiIinVK9sgvQNfWnRVZ2CURERJXq5oLulbp9HrkhIiIincJwQ0RERDqF4YaIiIh0CsMNERER6RSGGyIiItIpDDdERESkUxhuiIiISKcw3BAREZFOYbghIiIincJwQ0RERDqF4YaIiIh0CsMNERER6RSGGyIiItIpDDdERESkUxhuiIiISKcw3BAREZFOqdRws3r1ari7u8PMzAxmZmbw9vbGTz/99NJ1YmNj0apVKxgZGcHZ2Rnh4eGvqFoiIiJ6HVRquHnjjTewYMECJCQkICEhAR06dECvXr3wxx9/lLh8cnIyAgIC0LZtWyQmJmL69OmYMGECIiIiXnHlREREVFVVr8yN9+jRQ2n6888/x+rVqxEfH49mzZqpLB8eHo569eph2bJlAIAmTZogISEBixcvRmBg4KsomYiIiKq4KjPmprCwEDt27EBOTg68vb1LXCYuLg5dunRRauvatSsSEhKQn59f4jq5ubnIyspSehEREZHuUuvITa1atSBJklodZmZmyirgt99+g7e3N549e4aaNWti7969aNq0aYnLpqWlwcbGRqnNxsYGBQUFyMjIgJ2dnco6YWFhmDNnjqyaiIiI6PWlVrgpPg2kDa6urrh48SIePnyIiIgIDB06FLGxsaUGnBdDlhCixPZioaGhCAkJUUxnZWXBwcFBQ9UT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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "lazy_customer_plot(campaigns_kpi, type_of_activity)" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "id": "5113b91e-2b2e-4d96-822f-bbb590f4b62d", + "metadata": {}, + "outputs": [], + "source": [ + "exec(open('plot.py').read())" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "id": "28def014-5186-4df6-b222-0b260539f838", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAHFCAYAAADv8c1wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABWiklEQVR4nO3dd1gUV/828Hulg7AKCitKhNjFrtGgMWAnijVPUEGsURN7i5EYBU3EFkvUqIlRsWuMJVbsogRFRLFiiYIVxIJrQ0A47x/+mNcVkFlc2AXvz3Xt9bgzZ2a+M5wn3JxpCiGEABERERG9UzF9F0BERERUGDA0EREREcnA0EREREQkA0MTERERkQwMTUREREQyMDQRERERycDQRERERCQDQxMRERGRDAxNRERERDIwNBHpWXBwMBQKBczNzXHjxo0s8z08PFCjRg09VAYcPnwYCoUCf//9t162r624uDi0a9cOtra2UCgUGDFiRI5tnz9/junTp6N27dqwsbGBtbU1KlSoAG9vb4SGhuZp+wqFAoGBgXkrPo+02eeiaNeuXQV+zOnDZazvAojotZSUFPz4449YtWqVvksptEaOHImIiAgsW7YMKpUKZcqUybZdeno6WrdujXPnzuG7775Dw4YNAQBXr17F9u3bcfToUbi7uxdk6Xkmd5+Lql27duG3335jcKICwdBEZCA8PT2xdu1ajBkzBrVr19Z3OQUqOTkZ5ubmUCgU77We8+fPo2HDhujUqdM72x05cgTh4eFYtmwZ+vTpI01v06YNhgwZgoyMjPeqoyDJ3We50tPT8erVK5iZmelkffnlxYsXsLS01HcZ9IHh6TkiAzF27FjY2dnh+++/f2e7uLg4KBQKBAcHZ5n39umhwMBAKBQKnD17Fl999RWUSiVsbW0xatQovHr1CpcvX4anpyesra3h7OyMGTNmZLvNly9fYtSoUVCpVLCwsIC7uztOnz6dpd3JkyfRoUMH2NrawtzcHHXr1sVff/2l0SbzdOTevXvRt29flC5dGpaWlkhJSclxn2/evIkePXrA3t4eZmZmqFatGmbNmiWFm8zTiP/99x92794NhUIBhUKBuLi4bNf38OFDAMhxVKZYsf//n8b79+9j0KBBqF69OooXLw57e3s0b94cR48ezbHeNyUkJGDgwIEoV64cTE1N4eLigkmTJuHVq1ca7RYt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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sale_dynamics(products, campaigns_brut, type_of_activity)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Descriptive_statistics/generate_stat_desc.py b/Descriptive_statistics/generate_stat_desc.py new file mode 100644 index 0000000..dc83609 --- /dev/null +++ b/Descriptive_statistics/generate_stat_desc.py @@ -0,0 +1,68 @@ +import pandas as pd +import numpy as np +import os +import io +import s3fs +import re +import warnings + +# Ignore warning +warnings.filterwarnings('ignore') + +exec(open('../0_KPI_functions.py').read()) +exec(open('plot.py').read()) + +# Create filesystem object +S3_ENDPOINT_URL = "https://" + os.environ["AWS_S3_ENDPOINT"] +fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL}) + +companies = {'musee' : ['1', '2', '3', '4'], # , '101' + 'sport': ['5'], + 'musique' : ['10', '11', '12', '13', '14']} + + +type_of_activity = input('Choisissez le type de compagnie : sport ? musique ? musee ?') +list_of_comp = companies[type_of_activity] + +# Load files +customer, campaigns_kpi, campaigns_brut, tickets, products = load_files(list_of_comp) + +# Identify anonymous customer for each company and remove them from our datasets +outlier_list = outlier_detection(tickets, list_of_comp) + +# Identify valid customer (customer who bought tickets after starting date or received mails after starting date) +customer_valid_list = valid_customer_detection(products, campaigns_brut) + +databases = [customer, campaigns_kpi, campaigns_brut, tickets, products] + +for dataset in databases: + dataset['customer_id'] = dataset['customer_id'].apply(lambda x: remove_elements(x, outlier_list))# remove outlier + dataset = dataset[dataset['customer_id'].isin(customer_valid_list)] # keep only valid customer + #print(f'shape of {dataset} : ', dataset.shape) + +# Identify customer who bought during the period of y +customer_target_period = identify_purchase_during_target_periode(products) +customer['has_purchased_target_period'] = np.where(customer['customer_id'].isin(customer_target_period), 1, 0) + +# Generate graph and automatically saved them in the bucket +compute_nb_clients(customer, type_of_activity) + +maximum_price_paid(customer, type_of_activity) + +mailing_consent(customer, type_of_activity) + +mailing_consent_by_target(customer) + +gender_bar(customer, type_of_activity) + +country_bar(customer, type_of_activity) + +lazy_customer_plot(campaigns_kpi, type_of_activity) + +#campaigns_effectiveness(customer, type_of_activity) + +sale_dynamics(products, campaigns_brut, type_of_activity) + +tickets_internet(tickets, type_of_activity) + +box_plot_price_tickets(tickets, type_of_activity) diff --git a/Descriptive_statistics/plot.py b/Descriptive_statistics/plot.py new file mode 100644 index 0000000..754bc06 --- /dev/null +++ b/Descriptive_statistics/plot.py @@ -0,0 +1,328 @@ +import pandas as pd +import os +import s3fs +import io +import warnings +from datetime import date, timedelta, datetime +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.dates as mdates +import seaborn as sns + + +def load_files(nb_compagnie): + customer = pd.DataFrame() + campaigns_brut = pd.DataFrame() + campaigns_kpi = pd.DataFrame() + products = pd.DataFrame() + tickets = pd.DataFrame() + + # début de la boucle permettant de générer des datasets agrégés pour les 5 compagnies de spectacle + for directory_path in nb_compagnie: + df_customerplus_clean_0 = display_databases(directory_path, file_name = "customerplus_cleaned") + df_campaigns_brut = display_databases(directory_path, file_name = "campaigns_information", datetime_col = ['opened_at', 'sent_at', 'campaign_sent_at']) + df_products_purchased_reduced = display_databases(directory_path, file_name = "products_purchased_reduced", datetime_col = ['purchase_date']) + df_target_information = display_databases(directory_path, file_name = "target_information") + + df_campaigns_kpi = campaigns_kpi_function(campaigns_information = df_campaigns_brut) + df_tickets_kpi = tickets_kpi_function(tickets_information = df_products_purchased_reduced) + df_customerplus_clean = customerplus_kpi_function(customerplus_clean = df_customerplus_clean_0) + + + # creation de la colonne Number compagnie, qui permettra d'agréger les résultats + df_tickets_kpi["number_company"]=int(directory_path) + df_campaigns_brut["number_company"]=int(directory_path) + df_campaigns_kpi["number_company"]=int(directory_path) + df_customerplus_clean["number_company"]=int(directory_path) + df_target_information["number_company"]=int(directory_path) + + # Traitement des index + df_tickets_kpi["customer_id"]= directory_path + '_' + df_tickets_kpi['customer_id'].astype('str') + df_campaigns_brut["customer_id"]= directory_path + '_' + df_campaigns_brut['customer_id'].astype('str') + df_campaigns_kpi["customer_id"]= directory_path + '_' + df_campaigns_kpi['customer_id'].astype('str') + df_customerplus_clean["customer_id"]= directory_path + '_' + df_customerplus_clean['customer_id'].astype('str') + df_products_purchased_reduced["customer_id"]= directory_path + '_' + df_products_purchased_reduced['customer_id'].astype('str') + + # Concaténation + customer = pd.concat([customer, df_customerplus_clean], ignore_index=True) + campaigns_kpi = pd.concat([campaigns_kpi, df_campaigns_kpi], ignore_index=True) + campaigns_brut = pd.concat([campaigns_brut, df_campaigns_brut], ignore_index=True) + tickets = pd.concat([tickets, df_tickets_kpi], ignore_index=True) + products = pd.concat([products, df_products_purchased_reduced], ignore_index=True) + + return customer, campaigns_kpi, campaigns_brut, tickets, products + + +def save_file_s3(File_name, type_of_activity): + image_buffer = io.BytesIO() + plt.savefig(image_buffer, format='png') + image_buffer.seek(0) + FILE_PATH = f"projet-bdc2324-team1/stat_desc/{type_of_activity}/" + FILE_PATH_OUT_S3 = FILE_PATH + File_name + type_of_activity + '.png' + with fs.open(FILE_PATH_OUT_S3, 'wb') as s3_file: + s3_file.write(image_buffer.read()) + plt.close() + + +def outlier_detection(tickets, company_list, show_diagram=False): + + outlier_list = list() + + for company in company_list: + total_amount_share = tickets[tickets['number_company']==int(company)].groupby('customer_id')['total_amount'].sum().reset_index() + total_amount_share['CA'] = total_amount_share['total_amount'].sum() + total_amount_share['share_total_amount'] = total_amount_share['total_amount']/total_amount_share['CA'] + + total_amount_share_index = total_amount_share.set_index('customer_id') + df_circulaire = total_amount_share_index['total_amount'].sort_values(axis = 0, ascending = False) + #print('df circulaire : ', df_circulaire.head()) + top = df_circulaire[:1] + #print('top : ', top) + outlier_list.append(top.index[0]) + rest = df_circulaire[1:] + + rest_sum = rest.sum() + + new_series = pd.concat([top, pd.Series([rest_sum], index=['Autre'])]) + + if show_diagram: + plt.figure(figsize=(3, 3)) + plt.pie(new_series, labels=new_series.index, autopct='%1.1f%%', startangle=140, pctdistance=0.5) + plt.axis('equal') + plt.title(f'Répartition des montants totaux pour la compagnie {company}') + plt.show() + return outlier_list + + +def valid_customer_detection(products, campaigns_brut): + products_valid = products[products['purchase_date']>="2021-05-01"] + consumer_valid_product = products_valid['customer_id'].to_list() + + campaigns_valid = campaigns_brut[campaigns_brut["sent_at"]>="2021-05-01"] + consumer_valid_campaigns = campaigns_valid['customer_id'].to_list() + + consumer_valid = consumer_valid_product + consumer_valid_campaigns + return consumer_valid + + +def identify_purchase_during_target_periode(products): + products_target_period = products[(products['purchase_date']>="2022-11-01") + & (products['purchase_date']<="2023-11-01")] + customer_target_period = products_target_period['customer_id'].to_list() + return customer_target_period + + +def remove_elements(lst, elements_to_remove): + return ''.join([x for x in lst if x not in elements_to_remove]) + + +def compute_nb_clients(customer, type_of_activity): + company_nb_clients = customer[customer["purchase_count"]>0].groupby("number_company")["customer_id"].count().reset_index() + plt.bar(company_nb_clients["number_company"], company_nb_clients["customer_id"]/1000) + + plt.xlabel('Company') + plt.ylabel("Number of clients (thousands)") + plt.title(f"Number of clients for {type_of_activity}") + plt.xticks(company_nb_clients["number_company"], ["{}".format(i) for i in company_nb_clients["number_company"]]) + plt.show() + save_file_s3("nb_clients_", type_of_activity) + + +def maximum_price_paid(customer, type_of_activity): + company_max_price = customer.groupby("number_company")["max_price"].max().reset_index() + plt.bar(company_max_price["number_company"], company_max_price["max_price"]) + + plt.xlabel('Company') + plt.ylabel("Maximal price of a ticket Prix") + plt.title(f"Maximal price of a ticket for {type_of_activity}") + plt.xticks(company_max_price["number_company"], ["{}".format(i) for i in company_max_price["number_company"]]) + plt.show() + save_file_s3("Maximal_price_", type_of_activity) + + +def mailing_consent(customer, type_of_activity): + mailing_consent = customer.groupby("number_company")["opt_in"].mean().reset_index() + + plt.bar(mailing_consent["number_company"], mailing_consent["opt_in"]) + + plt.xlabel('Company') + plt.ylabel('Consent') + plt.title(f'Consent of mailing for {type_of_activity}') + plt.xticks(mailing_consent["number_company"], ["{}".format(i) for i in mailing_consent["number_company"]]) + plt.show() + save_file_s3("mailing_consent_", type_of_activity) + + +def mailing_consent_by_target(customer): + df_graph = customer.groupby(["number_company", "has_purchased_target_period"])["opt_in"].mean().reset_index() + # Création du barplot groupé + fig, ax = plt.subplots(figsize=(10, 6)) + + categories = df_graph["number_company"].unique() + bar_width = 0.35 + bar_positions = np.arange(len(categories)) + + # Grouper les données par label et créer les barres groupées + for label in df_graph["has_purchased_target_period"].unique(): + label_data = df_graph[df_graph['has_purchased_target_period'] == label] + values = [label_data[label_data['number_company'] == category]['opt_in'].values[0]*100 for category in categories] + + label_printed = "purchased" if label else "no purchase" + ax.bar(bar_positions, values, bar_width, label=label_printed) + + # Mise à jour des positions des barres pour le prochain groupe + bar_positions = [pos + bar_width for pos in bar_positions] + + # Ajout des étiquettes, de la légende, etc. + ax.set_xlabel('Company') + ax.set_ylabel('Consent') + ax.set_title(f'Consent of mailing according to target for {type_of_activity}') + ax.set_xticks([pos + bar_width / 2 for pos in np.arange(len(categories))]) + ax.set_xticklabels(categories) + ax.legend() + + # Affichage du plot + plt.show() + save_file_s3("mailing_consent_target_", type_of_activity) + + +def gender_bar(customer, type_of_activity): + company_genders = customer.groupby("number_company")[["gender_male", "gender_female", "gender_other"]].mean().reset_index() + + # Création du barplot + plt.bar(company_genders["number_company"], company_genders["gender_male"], label = "Homme") + plt.bar(company_genders["number_company"], company_genders["gender_female"], + bottom = company_genders["gender_male"], label = "Femme") + plt.bar(company_genders["number_company"], company_genders["gender_other"], + bottom = company_genders["gender_male"] + company_genders["gender_female"], label = "Inconnu") + + plt.xlabel('Company') + plt.ylabel("Gender") + plt.title(f"Gender of Customer for {type_of_activity}") + plt.legend() + plt.xticks(company_genders["number_company"], ["{}".format(i) for i in company_genders["number_company"]]) + plt.show() + save_file_s3("gender_bar_", type_of_activity) + + +def country_bar(customer, type_of_activity): + company_country_fr = customer.groupby("number_company")["country_fr"].mean().reset_index() + plt.bar(company_country_fr["number_company"], company_country_fr["country_fr"]) + + plt.xlabel('Company') + plt.ylabel("Share of French Customer") + plt.title(f"Share of French Customer for {type_of_activity}") + plt.xticks(company_country_fr["number_company"], ["{}".format(i) for i in company_country_fr["number_company"]]) + plt.show() + save_file_s3("country_bar_", type_of_activity) + + +def lazy_customer_plot(campaigns_kpi, type_of_activity): + company_lazy_customers = campaigns_kpi.groupby("number_company")["nb_campaigns_opened"].mean().reset_index() + plt.bar(company_lazy_customers["number_company"], company_lazy_customers["nb_campaigns_opened"]) + + plt.xlabel('Company') + plt.ylabel("Share of Customers who did not open mail") + plt.title(f"Share of Customers who did not open mail for {type_of_activity}") + plt.xticks(company_lazy_customers["number_company"], ["{}".format(i) for i in company_lazy_customers["number_company"]]) + plt.show() + save_file_s3("lazy_customer_", type_of_activity) + + +def campaigns_effectiveness(customer, type_of_activity): + + campaigns_effectiveness = customer.groupby("number_company")["opt_in"].mean().reset_index() + + plt.bar(campaigns_effectiveness["number_company"], campaigns_effectiveness["opt_in"]) + + plt.xlabel('Company') + plt.ylabel("Number of Customers (thousands)") + plt.title(f"Number of Customers of have bought or have received mails for {type_of_activity}") + plt.legend() + plt.xticks(campaigns_effectiveness["number_company"], ["{}".format(i) for i in campaigns_effectiveness["number_company"]]) + plt.show() + save_file_s3("campaigns_effectiveness_", type_of_activity) + + +def sale_dynamics(products, campaigns_brut, type_of_activity): + purchase_min = products.groupby(['customer_id'])['purchase_date'].min().reset_index() + purchase_min.rename(columns = {'purchase_date' : 'first_purchase_event'}, inplace = True) + purchase_min['first_purchase_event'] = pd.to_datetime(purchase_min['first_purchase_event']) + purchase_min['first_purchase_month'] = pd.to_datetime(purchase_min['first_purchase_event'].dt.strftime('%Y-%m')) + + # Mois du premier mails + first_mail_received = campaigns_brut.groupby('customer_id')['sent_at'].min().reset_index() + first_mail_received.rename(columns = {'sent_at' : 'first_email_reception'}, inplace = True) + first_mail_received['first_email_reception'] = pd.to_datetime(first_mail_received['first_email_reception']) + first_mail_received['first_email_month'] = pd.to_datetime(first_mail_received['first_email_reception'].dt.strftime('%Y-%m')) + + # Fusion + known_customer = pd.merge(purchase_min[['customer_id', 'first_purchase_month']], + first_mail_received[['customer_id', 'first_email_month']], on = 'customer_id', how = 'outer') + + # Mois à partir duquel le client est considere comme connu + + known_customer['known_date'] = pd.to_datetime(known_customer[['first_email_month', 'first_purchase_month']].min(axis = 1), utc = True, format = 'ISO8601') + + # Nombre de commande par mois + purchases_count = pd.merge(products[['customer_id', 'purchase_id', 'purchase_date']].drop_duplicates(), known_customer[['customer_id', 'known_date']], on = ['customer_id'], how = 'inner') + purchases_count['is_customer_known'] = purchases_count['purchase_date'] > purchases_count['known_date'] + pd.DateOffset(months=1) + purchases_count['purchase_date_month'] = pd.to_datetime(purchases_count['purchase_date'].dt.strftime('%Y-%m')) + purchases_count = purchases_count[purchases_count['customer_id'] != 1] + + # Nombre de commande par mois par type de client + nb_purchases_graph = purchases_count.groupby(['purchase_date_month', 'is_customer_known'])['purchase_id'].count().reset_index() + nb_purchases_graph.rename(columns = {'purchase_id' : 'nb_purchases'}, inplace = True) + + nb_purchases_graph_2 = purchases_count.groupby(['purchase_date_month', 'is_customer_known'])['customer_id'].nunique().reset_index() + nb_purchases_graph_2.rename(columns = {'customer_id' : 'nb_new_customer'}, inplace = True) + + # Graphique en nombre de commande + purchases_graph = nb_purchases_graph + + purchases_graph_used = purchases_graph[purchases_graph["purchase_date_month"] >= datetime(2021,3,1)] + purchases_graph_used_0 = purchases_graph_used[purchases_graph_used["is_customer_known"]==False] + purchases_graph_used_1 = purchases_graph_used[purchases_graph_used["is_customer_known"]==True] + + + merged_data = pd.merge(purchases_graph_used_0, purchases_graph_used_1, on="purchase_date_month", suffixes=("_new", "_old")) + + plt.bar(merged_data["purchase_date_month"], merged_data["nb_purchases_new"], width=12, label="Nouveau client") + plt.bar(merged_data["purchase_date_month"], merged_data["nb_purchases_old"], + bottom=merged_data["nb_purchases_new"], width=12, label="Ancien client") + + + # commande pr afficher slt + plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%b%y')) + + plt.xlabel('Month') + plt.ylabel("Number of Sales") + plt.title(f"Number of Sales for {type_of_activity}") + plt.legend() + plt.show() + save_file_s3("sale_dynamics_", type_of_activity) + + +def tickets_internet(tickets, type_of_activity): + nb_tickets_internet = tickets.groupby("number_company")[["nb_tickets", "nb_tickets_internet"]].sum().reset_index() + nb_tickets_internet["Share_ticket_internet"] = nb_tickets_internet["nb_tickets_internet"]*100 / nb_tickets_internet["nb_tickets"] + + plt.bar(nb_tickets_internet["number_company"], nb_tickets_internet["Share_ticket_internet"]) + + plt.xlabel('Company') + plt.ylabel("Share of Tickets Bought Online") + plt.title(f"Share of Tickets Bought Online for {type_of_activity}") + plt.xticks(nb_tickets_internet["number_company"], ["{}".format(i) for i in nb_tickets_internet["number_company"]]) + plt.show() + save_file_s3("tickets_internet_", type_of_activity) + + +def box_plot_price_tickets(tickets, type_of_activity): + price_tickets = tickets[(tickets['total_amount'] > 0)] + sns.boxplot(data=price_tickets, y="total_amount", x="number_company", showfliers=False, showmeans=True) + plt.title(f"Box plot of price tickets for {type_of_activity}") + plt.xticks(price_tickets["number_company"], ["{}".format(i) for i in price_tickets["number_company"]]) + plt.show() + save_file_s3("box_plot_price_tickets_", type_of_activity) + + diff --git a/Exploration_billet_AJ.ipynb b/Exploration_billet_AJ.ipynb index b92df45..f149f5a 100644 --- a/Exploration_billet_AJ.ipynb +++ b/Exploration_billet_AJ.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 22, "id": "b1a5b9d3", "metadata": {}, "outputs": [], @@ -20,7 +20,9 @@ "import os\n", "import s3fs\n", "import re\n", - "import warnings" + "import warnings\n", + "import io\n", + "import matplotlib.pyplot as plt\n" ] }, { @@ -45,16 +47,11 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 3, "id": "30d77451-2df6-4c07-8b15-66e0e990ff03", "metadata": {}, "outputs": [], "source": [ - "# Create filesystem object\n", - "S3_ENDPOINT_URL = \"https://\" + os.environ[\"AWS_S3_ENDPOINT\"]\n", - "fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL})\n", - "\n", - "\n", "# Import cleaning and merge functions\n", "\n", "exec(open('0_Cleaning_and_merge_functions.py').read())\n", @@ -90,18 +87,74 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 5, "id": "31ab76f0-fbb1-46f6-b359-97228620c207", "metadata": {}, "outputs": [], "source": [ "def export_in_temporary(df, output_name):\n", " print('Export of dataset :', output_name)\n", - " FILE_PATH_OUT_S3 = \"projet-bdc2324-team1/Temporary\" + \"/\" + output_name + '.csv'\n", + " FILE_PATH_OUT_S3 = \"ajoubrel-ensae/Temporary\" + \"/\" + output_name + '.csv'\n", " with fs.open(FILE_PATH_OUT_S3, 'w') as file_out:\n", " df.to_csv(file_out, index = False)" ] }, + { + "cell_type": "code", + "execution_count": 15, + "id": "108fc5ef-c56a-4f03-a867-943d9d6492fd", + "metadata": {}, + "outputs": [], + "source": [ + "def save_file_s3(File_name, type_of_activity):\n", + " image_buffer = io.BytesIO()\n", + " plt.savefig(image_buffer, format='png')\n", + " image_buffer.seek(0)\n", + " FILE_PATH = f\"projet-bdc2324-team1/stat_desc/{type_of_activity}/\"\n", + " FILE_PATH_OUT_S3 = FILE_PATH + File_name + type_of_activity + '.png'\n", + " with fs.open(FILE_PATH_OUT_S3, 'wb') as s3_file:\n", + " s3_file.write(image_buffer.read())\n", + " plt.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "c99b9cb7-00ab-41cf-bde7-38676f5a3d02", + "metadata": {}, + "outputs": [], + "source": [ + "def taux_partner(campany_nb) :\n", + "\n", + " is_partner = load_dataset_2(campany_nb, 'customersplus')[['is_partner']].astype(int)\n", + " percentage_partner = (is_partner['is_partner'].mean()) * 100\n", + " \n", + " return percentage_partner\n", + " \n" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "6facc27e-f95d-49c5-afe0-8c34b3a0cb94", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0\n" + ] + } + ], + "source": [ + "a = 0\n", + "for nb in [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\", \"13\", \"14\"]:\n", + " a += taux_partner(nb)\n", + "\n", + "print(a/14)" + ] + }, { "cell_type": "markdown", "id": "ccf597b0-b459-4ea5-baf0-5ba8c90915e4", @@ -112,211 +165,60 @@ }, { "cell_type": "code", - "execution_count": 23, - "id": "28316e1d-7892-4506-9d53-0695e71aa7bc", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1targets.csv\n", - "Shape : (287, 5)\n", - "Number of columns : 3\n", - "Columns : Index(['id', 'target_type_id', 'name'], dtype='object')\n", - "File path : bdc2324-data/1/1target_types.csv\n", - "Shape : (4, 6)\n", - "Number of columns : 4\n", - "Columns : Index(['id', 'identifier', 'is_import', 'name'], dtype='object')\n", - "File path : bdc2324-data/1/1customer_target_mappings.csv\n", - "Shape : (768024, 7)\n", - "Number of columns : 5\n", - "Columns : Index(['id', 'customer_id', 'target_id', 'name', 'extra_field'], dtype='object')\n" - ] - } - ], - "source": [ - "target_example = preprocessing_target_area('1')" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "da467695-ce37-485d-94ab-f1499d56c3a3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idcustomer_idtarget_nametarget_type_is_importtarget_type_name
01184824645400DDCP PROMO Réseau livresFalsemanual_static_filter
11184825645400Inscrits NL générale site webFalsemanual_static_filter
21184828645402DDCP PROMO Art contemporainFalsemanual_static_filter
31184829645403DDCP PROMO Art contemporainFalsemanual_static_filter
41295770647301Votre première listeFalsemanual_static_filter
..................
7680192737545666983Inscrits NL générale site webFalsemanual_static_filter
7680202737546666983Votre première listeFalsemanual_static_filter
7680212737575666986Votre première listeFalsemanual_static_filter
7680222737576666987Inscrits NL générale site webFalsemanual_static_filter
7680232737577666987Votre première listeFalsemanual_static_filter
\n", - "

768024 rows × 5 columns

\n", - "
" - ], - "text/plain": [ - " id customer_id target_name \\\n", - "0 1184824 645400 DDCP PROMO Réseau livres \n", - "1 1184825 645400 Inscrits NL générale site web \n", - "2 1184828 645402 DDCP PROMO Art contemporain \n", - "3 1184829 645403 DDCP PROMO Art contemporain \n", - "4 1295770 647301 Votre première liste \n", - "... ... ... ... \n", - "768019 2737545 666983 Inscrits NL générale site web \n", - "768020 2737546 666983 Votre première liste \n", - "768021 2737575 666986 Votre première liste \n", - "768022 2737576 666987 Inscrits NL générale site web \n", - "768023 2737577 666987 Votre première liste \n", - "\n", - " target_type_is_import target_type_name \n", - "0 False manual_static_filter \n", - "1 False manual_static_filter \n", - "2 False manual_static_filter \n", - "3 False manual_static_filter \n", - "4 False manual_static_filter \n", - "... ... ... \n", - "768019 False manual_static_filter \n", - "768020 False manual_static_filter \n", - "768021 False manual_static_filter \n", - "768022 False manual_static_filter \n", - "768023 False manual_static_filter \n", - "\n", - "[768024 rows x 5 columns]" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "target_example" - ] - }, - { - "cell_type": "code", - "execution_count": 44, + "execution_count": 14, "id": "fd88e294-e038-4cec-ad94-2bbbc10a4059", "metadata": {}, + "outputs": [], + "source": [ + "def concatenate_names(names):\n", + " return ', '.join(names)\n", + "\n", + "def targets_KPI(df_target = None):\n", + " \n", + " df_target['target_name'] = df_target['target_name'].fillna('').str.lower()\n", + "\n", + " # Target name cotegory musees / \n", + " df_target['target_jeune'] = df_target['target_name'].str.contains('|'.join(['jeune', 'pass_culture', 'etudiant', '12-25 ans', 'student', 'jeunesse']), case=False).astype(int)\n", + " df_target['target_optin'] = df_target['target_name'].str.contains('|'.join(['optin' ,'opt-in']), case=False).astype(int)\n", + " df_target['target_optout'] = df_target['target_name'].str.contains('|'.join(['optout', 'unsubscribed']), case=False).astype(int)\n", + " df_target['target_scolaire'] = df_target['target_name'].str.contains('|'.join(['scolaire' , 'enseignant', 'chercheur', 'schulen', 'école']), case=False).astype(int)\n", + " df_target['target_entreprise'] = df_target['target_name'].str.contains('|'.join(['b2b', 'btob', 'cse']), case=False).astype(int)\n", + " df_target['target_famille'] = df_target['target_name'].str.contains('|'.join(['famille', 'enfants', 'family']), case=False).astype(int)\n", + " df_target['target_newsletter'] = df_target['target_name'].str.contains('|'.join(['nl', 'newsletter']), case=False).astype(int)\n", + " \n", + " # Target name category for sport compagnies\n", + " df_target['target_abonne'] = ((\n", + " df_target['target_name']\n", + " .str.contains('|'.join(['abo', 'adh']), case=False)\n", + " & ~df_target['target_name'].str.contains('|'.join(['hors abo', 'anciens abo']), case=False)\n", + " ).astype(int))\n", + " \n", + " df_target_categorie = df_target.groupby('customer_id')[['target_jeune', 'target_optin', 'target_optout', 'target_scolaire', 'target_entreprise', 'target_famille', 'target_newsletter', 'target_abonne']].max()\n", + " \n", + " target_agg = df_target.groupby('customer_id').agg(\n", + " nb_targets=('target_name', 'nunique') # Utilisation de tuples pour spécifier les noms de colonnes\n", + " # all_targets=('target_name', concatenate_names),\n", + " # all_target_types=('target_type_name', concatenate_names)\n", + " ).reset_index()\n", + "\n", + " target_agg['nb_targets'] = (target_agg['nb_targets'] - (target_agg['nb_targets'].mean())) / (target_agg['nb_targets'].std())\n", + " \n", + " target_agg = pd.merge(target_agg, df_target_categorie, how='left', on='customer_id')\n", + " \n", + " return target_agg" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "1b124018-9637-463e-b512-15743ec9480b", + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_1/target_information.csv\n" + "File path : projet-bdc2324-team1/0_Input/Company_5/target_information.csv\n" ] }, { @@ -342,45 +244,81 @@ " \n", " customer_id\n", " nb_targets\n", - " all_targets\n", - " all_target_types\n", + " target_jeune\n", + " target_optin\n", + " target_optout\n", + " target_scolaire\n", + " target_entreprise\n", + " target_famille\n", + " target_newsletter\n", + " target_abonne\n", " \n", " \n", " \n", " \n", " 0\n", + " 160516\n", + " 6.938264\n", + " 0\n", + " 1\n", + " 0\n", + " 0\n", + " 1\n", + " 0\n", + " 0\n", " 1\n", - " 28\n", - " consentement optin jeune public, DDCP rentrée ...\n", - " manual_static_filter, manual_static_filter, ma...\n", " \n", " \n", " 1\n", - " 2\n", - " 7\n", - " consentement optin jeune public, consentement ...\n", - " manual_static_filter, manual_static_filter, ma...\n", + " 160517\n", + " 10.357387\n", + " 0\n", + " 1\n", + " 1\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 1\n", " \n", " \n", " 2\n", - " 3\n", - " 11\n", - " traversee du port de commerce (gagnant et perd...\n", - " manual_static_filter, manual_static_filter, ma...\n", + " 160518\n", + " 5.228703\n", + " 0\n", + " 1\n", + " 1\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 1\n", " \n", " \n", " 3\n", - " 4\n", - " 6\n", - " Arenametrix_bascule tel vers sib, consentement...\n", - " manual_static_filter, manual_static_filter, ma...\n", + " 160519\n", + " 6.083483\n", + " 0\n", + " 1\n", + " 1\n", + " 0\n", + " 0\n", + " 1\n", + " 0\n", + " 1\n", " \n", " \n", " 4\n", - " 5\n", - " 4\n", - " Arenametrix_bascule tel vers sib, consentement...\n", - " manual_static_filter, manual_static_filter, ma...\n", + " 160520\n", + " 2.949288\n", + " 0\n", + " 1\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 1\n", " \n", " \n", " ...\n", @@ -388,150 +326,446 @@ " ...\n", " ...\n", " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", - " 151154\n", - " 1256136\n", + " 471205\n", + " 6405875\n", + " -0.754762\n", + " 0\n", + " 0\n", " 1\n", - " consentement optin b2c\n", - " manual_static_filter\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", - " 151155\n", - " 1256137\n", + " 471206\n", + " 6405905\n", + " -0.469835\n", + " 0\n", + " 0\n", " 1\n", - " consentement optin b2c\n", - " manual_static_filter\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", - " 151156\n", - " 1256138\n", - " 3\n", - " Inscrits NL jeune public site web, Inscrits NL...\n", - " manual_static_filter, manual_static_filter, ma...\n", + " 471207\n", + " 6405909\n", + " -0.754762\n", + " 0\n", + " 0\n", + " 1\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", - " 151157\n", - " 1256139\n", - " 3\n", - " Inscrits NL jeune public site web, Inscrits NL...\n", - " manual_static_filter, manual_static_filter, ma...\n", + " 471208\n", + " 6405917\n", + " -0.754762\n", + " 0\n", + " 0\n", + " 1\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", - " 151158\n", - " 1256140\n", - " 2\n", - " DRE MucemLab, consentement optin dre\n", - " manual_static_filter, manual_static_filter\n", + " 471209\n", + " 6405963\n", + " -0.754762\n", + " 0\n", + " 0\n", + " 1\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", "\n", - "

151159 rows × 4 columns

\n", + "

471210 rows × 10 columns

\n", "" ], "text/plain": [ - " customer_id nb_targets \\\n", - "0 1 28 \n", - "1 2 7 \n", - "2 3 11 \n", - "3 4 6 \n", - "4 5 4 \n", - "... ... ... \n", - "151154 1256136 1 \n", - "151155 1256137 1 \n", - "151156 1256138 3 \n", - "151157 1256139 3 \n", - "151158 1256140 2 \n", + " customer_id nb_targets target_jeune target_optin target_optout \\\n", + "0 160516 6.938264 0 1 0 \n", + "1 160517 10.357387 0 1 1 \n", + "2 160518 5.228703 0 1 1 \n", + "3 160519 6.083483 0 1 1 \n", + "4 160520 2.949288 0 1 0 \n", + "... ... ... ... ... ... \n", + "471205 6405875 -0.754762 0 0 1 \n", + "471206 6405905 -0.469835 0 0 1 \n", + "471207 6405909 -0.754762 0 0 1 \n", + "471208 6405917 -0.754762 0 0 1 \n", + "471209 6405963 -0.754762 0 0 1 \n", "\n", - " all_targets \\\n", - "0 consentement optin jeune public, DDCP rentrée ... \n", - "1 consentement optin jeune public, consentement ... \n", - "2 traversee du port de commerce (gagnant et perd... \n", - "3 Arenametrix_bascule tel vers sib, consentement... \n", - "4 Arenametrix_bascule tel vers sib, consentement... \n", - "... ... \n", - "151154 consentement optin b2c \n", - "151155 consentement optin b2c \n", - "151156 Inscrits NL jeune public site web, Inscrits NL... \n", - "151157 Inscrits NL jeune public site web, Inscrits NL... \n", - "151158 DRE MucemLab, consentement optin dre \n", + " target_scolaire target_entreprise target_famille target_newsletter \\\n", + "0 0 1 0 0 \n", + "1 0 0 0 0 \n", + "2 0 0 0 0 \n", + "3 0 0 1 0 \n", + "4 0 0 0 0 \n", + "... ... ... ... ... \n", + "471205 0 0 0 0 \n", + "471206 0 0 0 0 \n", + "471207 0 0 0 0 \n", + "471208 0 0 0 0 \n", + "471209 0 0 0 0 \n", "\n", - " all_target_types \n", - "0 manual_static_filter, manual_static_filter, ma... \n", - "1 manual_static_filter, manual_static_filter, ma... \n", - "2 manual_static_filter, manual_static_filter, ma... \n", - "3 manual_static_filter, manual_static_filter, ma... \n", - "4 manual_static_filter, manual_static_filter, ma... \n", - "... ... \n", - "151154 manual_static_filter \n", - "151155 manual_static_filter \n", - "151156 manual_static_filter, manual_static_filter, ma... \n", - "151157 manual_static_filter, manual_static_filter, ma... \n", - "151158 manual_static_filter, manual_static_filter \n", + " target_abonne \n", + "0 1 \n", + "1 1 \n", + "2 1 \n", + "3 1 \n", + "4 1 \n", + "... ... \n", + "471205 0 \n", + "471206 0 \n", + "471207 0 \n", + "471208 0 \n", + "471209 0 \n", "\n", - "[151159 rows x 4 columns]" + "[471210 rows x 10 columns]" ] }, - "execution_count": 44, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "tenant_id = '1'\n", - "\n", - "def concatenate_names(names):\n", - " return ', '.join(names)\n", - " \n", - "target_example =display_databases(tenant_id, \"target_information\")\n", - "\n", - "target_example['target_name'] = target_example['target_name'].fillna('').str.lower()\n", - "\n", - "\n", - "target_example['jeune'] = target_example['target_name'].str.contains('|'.join(['jeune', 'pass_culture']), case=False).astype(int)\n", - "target_example['optin'] = target_example['target_name'].str.contains('|'.join(['optin' ,'opt-in']), case=False).astype(int)\n", - "target_example['optout'] = target_example['target_name'].str.contains('|'.join(['optout']), case=False).astype(int)\n", - "target_example['scolaire'] = target_example['target_name'].str.contains('|'.join(['scolaire' , 'enseignant', 'chercheur', 'schulen', 'école']), case=False).astype(int)\n", - "target_example['entreprise'] = target_example['target_name'].str.contains('|'.join(['b2b']), case=False).astype(int)\n", - "target_example['famille'] = target_example['target_name'].str.contains('|'.join(['famille', 'enfants']), case=False).astype(int)\n", - "target_example['newsletter'] = target_example['target_name'].str.contains('|'.join(['nl', 'newsletter']), case=False).astype(int)\n", - "\n", - "\n", - "\n", - "target_agg = target_example.groupby('customer_id').agg(\n", - " nb_targets=('target_name', 'nunique'), # Utilisation de tuples pour spécifier les noms de colonnes\n", - " all_targets=('target_name', concatenate_names),\n", - " all_target_types=('target_type_name', concatenate_names)\n", - ").reset_index()\n", - "target_agg" + "targets_KPI(display_input_databases('5', file_name = \"target_information\"))" ] }, { "cell_type": "code", - "execution_count": 37, - "id": "c75efea3-b5e8-4a7a-bed4-dd64ae9ff9f2", + "execution_count": 35, + "id": "7bbca184-1ec1-43b5-ba50-c5e8343d52e7", + "metadata": {}, + "outputs": [], + "source": [ + "def targets_name_category(df_target=None):\n", + " if df_target is None:\n", + " return None\n", + " \n", + " df_target['target_name'] = df_target['target_name'].fillna('').str.lower()\n", + "\n", + " # Target name category for museums\n", + " df_target['target_jeune'] = df_target['target_name'].str.contains('|'.join(['jeune', 'pass_culture', 'etudiant', '12-25 ans', 'student', 'jeunesse']), case=False).astype(int)\n", + " df_target['target_optin'] = df_target['target_name'].str.contains('|'.join(['optin', 'opt-in']), case=False).astype(int)\n", + " df_target['target_optout'] = df_target['target_name'].str.contains('|'.join(['optout', 'unsubscribed']), case=False).astype(int)\n", + " df_target['target_scolaire'] = df_target['target_name'].str.contains('|'.join(['scolaire', 'enseignant', 'chercheur', 'schulen', 'école']), case=False).astype(int)\n", + " df_target['target_entreprise'] = df_target['target_name'].str.contains('|'.join(['b2b', 'btob', 'cse']), case=False).astype(int)\n", + " df_target['target_famille'] = df_target['target_name'].str.contains('|'.join(['famille', 'enfants', 'family']), case=False).astype(int)\n", + " df_target['target_newsletter'] = df_target['target_name'].str.contains('|'.join(['nl', 'newsletter']), case=False).astype(int)\n", + " \n", + " # Target name category for sport companies\n", + " df_target['target_abonne'] = ((df_target['target_name']\n", + " .str.contains('|'.join(['abo', 'adh']), case=False)\n", + " & ~df_target['target_name'].str.contains('|'.join(['hors abo', 'anciens abo']), case=False))\n", + " .astype(int))\n", + "\n", + " list_target_jeune = df_target[df_target['target_jeune'] == 1]['target_name'].unique()\n", + " list_target_optin = df_target[df_target['target_optin'] == 1]['target_name'].unique()\n", + " list_target_optout = df_target[df_target['target_optout'] == 1]['target_name'].unique()\n", + " list_target_scolaire = df_target[df_target['target_scolaire'] == 1]['target_name'].unique()\n", + " list_target_entreprise = df_target[df_target['target_entreprise'] == 1]['target_name'].unique()\n", + " list_target_famille = df_target[df_target['target_famille'] == 1]['target_name'].unique()\n", + " list_target_newsletter = df_target[df_target['target_newsletter'] == 1]['target_name'].unique()\n", + " list_target_abonne = df_target[df_target['target_abonne'] == 1]['target_name'].unique()\n", + "\n", + " list_all = [list_target_jeune, list_target_optin, list_target_optout, list_target_scolaire,\n", + " list_target_entreprise, list_target_famille, list_target_newsletter, list_target_abonne]\n", + "\n", + " category_name = ['target_jeune', 'target_optin', 'target_optout', 'target_scolaire',\n", + " 'target_entreprise', 'target_famille', 'target_newsletter', 'target_abonne']\n", + " \n", + " liste_category = pd.DataFrame({'category_name': category_name,\n", + " 'list_target_name': list_all})\n", + " \n", + " return liste_category\n" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "fbabcf4d-3ee6-4441-b231-d7ef24b7f160", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Export of dataset : Target_kpi_concatenate\n" + "File path : projet-bdc2324-team1/0_Input/Company_7/target_information.csv\n" ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
category_namelist_target_name
0target_jeune[jeunesses vaudoises, etudiant hors ssc 22-23, student supporter club, etudiants hors epfl, student supporter club ehl, etudiants]
1target_optin[]
2target_optout[]
3target_scolaire[]
4target_entreprise[prospects b2b, prospects survey b2b, b2b à enlever, prospect b2b fc 06.10, prospect b2b rk 06.10]
5target_famille[family corner - 20.11.22, family corner - saison 19-20]
6target_newsletter[consentements nl lhc, newsletter 2022, b2b à enlever, abonnés newsletter - saison 21-22]
7target_abonne[abonnés 23/24, non renouvellement abo 23-24 debout (23.06), résas abos debout - 29.06, abonnés - assis, sondage reconduction abos, sondage nouveaux abos, abonnés b2c - relance 1, abonnés b2c - relance 2, relance abos assis, non renouvellement abo 23-24 assis (23.06), résas abos assis - 29.06, abonnés - playoffs, abonnés - debout, abonnés non vip - saison 22-23, avantage abonné - ticket, paiements abos, campagneabosconcours - abonnés 21-22 en attente, campagneabosconcours - abonnés 22-23, nouveaux abonnés - saison 22-23, abonnements - relance 15.04, abonnements - relance 13.04, abonnements - relance 11.04, abonnements - relance 07.04, abonnés newsletter - saison 21-22, abonnés 1-3 ans, abonnés 1-3 ans - relance, abonnés - non-renouvellement 22-23, abonnés - renoncement playoffs 22, abonnés 5 ans - relance, abonnés - version finale]
\n", + "
" + ], + "text/plain": [ + " category_name \\\n", + "0 target_jeune \n", + "1 target_optin \n", + "2 target_optout \n", + "3 target_scolaire \n", + "4 target_entreprise \n", + "5 target_famille \n", + "6 target_newsletter \n", + "7 target_abonne \n", + "\n", + " list_target_name \n", + "0 [jeunesses vaudoises, etudiant hors ssc 22-23, student supporter club, etudiants hors epfl, student supporter club ehl, etudiants] \n", + "1 [] \n", + "2 [] \n", + "3 [] \n", + "4 [prospects b2b, prospects survey b2b, b2b à enlever, prospect b2b fc 06.10, prospect b2b rk 06.10] \n", + "5 [family corner - 20.11.22, family corner - saison 19-20] \n", + "6 [consentements nl lhc, newsletter 2022, b2b à enlever, abonnés newsletter - saison 21-22] \n", + "7 [abonnés 23/24, non renouvellement abo 23-24 debout (23.06), résas abos debout - 29.06, abonnés - assis, sondage reconduction abos, sondage nouveaux abos, abonnés b2c - relance 1, abonnés b2c - relance 2, relance abos assis, non renouvellement abo 23-24 assis (23.06), résas abos assis - 29.06, abonnés - playoffs, abonnés - debout, abonnés non vip - saison 22-23, avantage abonné - ticket, paiements abos, campagneabosconcours - abonnés 21-22 en attente, campagneabosconcours - abonnés 22-23, nouveaux abonnés - saison 22-23, abonnements - relance 15.04, abonnements - relance 13.04, abonnements - relance 11.04, abonnements - relance 07.04, abonnés newsletter - saison 21-22, abonnés 1-3 ans, abonnés 1-3 ans - relance, abonnés - non-renouvellement 22-23, abonnés - renoncement playoffs 22, abonnés 5 ans - relance, abonnés - version finale] " + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "export_in_temporary(target_agg, 'Target_kpi_concatenate')" + "pd.set_option('display.max_colwidth', None)\n", + "targets_name_category(display_input_databases('7', file_name = \"target_information\"))" ] }, { "cell_type": "code", "execution_count": null, - "id": "cb6f06e6-78de-4b8d-a103-8366eff0493a", + "id": "c75efea3-b5e8-4a7a-bed4-dd64ae9ff9f2", "metadata": {}, "outputs": [], "source": [ - "v" + "#export_inv_temporary(target_agg, 'Target_kpi_concatenate')" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "9d224485-3472-4cc7-9825-1a643bc94fef", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "File path : projet-bdc2324-team1/0_Input/Company_10/customerplus_cleaned.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_10/target_information.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_11/customerplus_cleaned.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_11/target_information.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_12/customerplus_cleaned.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_12/target_information.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_13/customerplus_cleaned.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_13/target_information.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_14/customerplus_cleaned.csv\n", + "File path : projet-bdc2324-team1/0_Input/Company_14/target_information.csv\n" + ] + } + ], + "source": [ + "companies = {'musee' : ['1', '2', '3', '4'], # , '101'\n", + " 'sport': ['5', '6', '7', '8', '9'],\n", + " 'musique' : ['10', '11', '12', '13', '14']}\n", + "\n", + "nb_compagnie = companies['musique']\n", + "\n", + "def load_files(nb_compagnie):\n", + " targets = pd.DataFrame()\n", + " \n", + " # début de la boucle permettant de générer des datasets agrégés pour les 5 compagnies de spectacle\n", + " for directory_path in nb_compagnie:\n", + " df_customerplus_clean_0 = display_input_databases(directory_path, file_name = \"customerplus_cleaned\")\n", + " df_target_information = display_input_databases(directory_path, file_name = \"target_information\")\n", + " \n", + " df_target_KPI = targets_KPI(df_target = df_target_information)\n", + " df_target_KPI = pd.merge(df_customerplus_clean_0[['customer_id']], df_target_KPI, how = 'left', on = 'customer_id')\n", + "\n", + " targets_columns = list(df_target_KPI.columns)\n", + " targets_columns.remove('customer_id')\n", + " df_target_KPI[targets_columns] = df_target_KPI[targets_columns].fillna(0)\n", + " \n", + " # creation de la colonne Number compagnie, qui permettra d'agréger les résultats\n", + " df_target_KPI[\"number_company\"]=int(directory_path)\n", + " \n", + " # Traitement des index\n", + " df_target_KPI[\"customer_id\"]= directory_path + '_' + df_target_KPI['customer_id'].astype('str')\n", + " \n", + " # Concaténation\n", + " targets = pd.concat([targets, df_target_KPI], ignore_index=True)\n", + " \n", + " return targets\n", + "\n", + "targets = load_files(nb_compagnie)" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "3c911274-0ebd-49af-9487-26524ba20e74", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "def target_description(targets, type_of_activity):\n", + "\n", + " describe_target = targets.groupby('number_company').agg(\n", + " prop_target_jeune=('target_jeune', lambda x: (x.sum() / x.count())*100),\n", + " prop_target_scolaire=('target_scolaire', lambda x: (x.sum() / x.count())*100),\n", + " prop_target_entreprise=('target_entreprise', lambda x: (x.sum() / x.count())*100),\n", + " prop_target_famille=('target_famille', lambda x: (x.sum() / x.count())*100),\n", + " prop_target_optin=('target_optin', lambda x: (x.sum() / x.count())*100),\n", + " prop_target_optout=('target_optout', lambda x: (x.sum() / x.count())*100),\n", + " prop_target_newsletter=('target_newsletter', lambda x: (x.sum() / x.count())*100),\n", + " prop_target_abonne=('target_abonne', lambda x: (x.sum() / x.count())*100))\n", + "\n", + " plot = describe_target.plot.bar()\n", + " \n", + " # Adding a title\n", + " plot.set_title(\"Distribution of Targets by Category\")\n", + " \n", + " # Adding labels for x and y axes\n", + " plot.set_xlabel(\"Company Number\")\n", + " plot.set_ylabel(\"Target Proportion\")\n", + "\n", + " plot.set_xticklabels(plot.get_xticklabels(), rotation=0, horizontalalignment='center')\n", + "\n", + " \n", + " # Adding a legend\n", + " plot.legend([\"Youth\", \"School\", \"Enterprise\", \"Family\", \"Optin\", \"Optout\", \"Newsletter\", \"Subscriber\"], title=\"Target Category\")\n", + "\n", + " # save_file_s3(\"target_category_proportion_\", type_of_activity)\n", + " return plot" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "af62ecef-9120-4107-af3e-512588a96800", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "target_description(targets, 'musique')" + ] + }, + { + "cell_type": "markdown", + "id": "5d91263e-8a97-4cb1-8d94-db8ab0b77cdf", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "# Brouillon" ] }, { @@ -595,7 +829,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "f8f988fb-5aab-4b57-80d1-e242f7e5b384", "metadata": {}, "outputs": [], @@ -609,7 +843,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "35ac004f-c191-4f45-a4b1-6d993d9ec38c", "metadata": {}, "outputs": [], @@ -631,710 +865,10 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "id": "8986e477-e6c5-4d6c-83b2-2c90c134b599", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_numbercampaign_statscampaignscategoriescountriescurrenciescustomer_target_mappingscustomersplusevent_typeseventsfacilitieslink_statspricing_formulasproduct_packsproductsproducts_groupspurchasesrepresentation_category_capacitiesrepresentationsseasonsstructure_tag_mappingssupplierstagstarget_typestargetsticketstype_of_categoriestype_of_pricing_formulastype_ofscontribution_sitescontributionsconsumptionsrepresentation_types
0111111111111111111111.011.01111.01.01.0NaNNaNNaNNaN
0211111111111111111111.011.0111NaNNaNNaN1.01.0NaNNaN
0311111111111111111111.011.0111NaNNaNNaN1.01.01.0NaN
0411111111111111111111.011.0111NaN1.01.01.01.0NaNNaN
051111111111111111111NaN1NaN111NaNNaNNaNNaNNaN1.0NaN
0611111111111111111111.011.0111NaN1.01.0NaNNaN1.0NaN
0711111111111111111111.011.01111.01.01.0NaNNaN1.01.0
081111111111111111111NaN1NaN1111.01.01.0NaNNaNNaNNaN
091111111111111111111NaN1NaN111NaNNaNNaNNaNNaNNaNNaN
0101111111111111111111NaN11.0111NaN1.01.0NaNNaNNaN1.0
01111111111111111111111.011.0111NaNNaNNaNNaNNaNNaNNaN
0121111111111111111111NaN1NaN111NaNNaN1.0NaNNaN1.0NaN
01311111111111111111111.011.0111NaNNaNNaNNaNNaNNaN1.0
0141111111111111111111NaN1NaN1111.01.01.0NaNNaNNaN1.0
\n", - "
" - ], - "text/plain": [ - " company_number campaign_stats campaigns categories countries \\\n", - "0 1 1 1 1 1 \n", - "0 2 1 1 1 1 \n", - "0 3 1 1 1 1 \n", - "0 4 1 1 1 1 \n", - "0 5 1 1 1 1 \n", - "0 6 1 1 1 1 \n", - "0 7 1 1 1 1 \n", - "0 8 1 1 1 1 \n", - "0 9 1 1 1 1 \n", - "0 10 1 1 1 1 \n", - "0 11 1 1 1 1 \n", - "0 12 1 1 1 1 \n", - "0 13 1 1 1 1 \n", - "0 14 1 1 1 1 \n", - "\n", - " currencies customer_target_mappings customersplus event_types events \\\n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "\n", - " facilities link_stats pricing_formulas product_packs products \\\n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "0 1 1 1 1 1 \n", - "\n", - " products_groups purchases representation_category_capacities \\\n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "0 1 1 1 \n", - "\n", - " representations seasons structure_tag_mappings suppliers tags \\\n", - "0 1 1 1.0 1 1.0 \n", - "0 1 1 1.0 1 1.0 \n", - "0 1 1 1.0 1 1.0 \n", - "0 1 1 1.0 1 1.0 \n", - "0 1 1 NaN 1 NaN \n", - "0 1 1 1.0 1 1.0 \n", - "0 1 1 1.0 1 1.0 \n", - "0 1 1 NaN 1 NaN \n", - "0 1 1 NaN 1 NaN \n", - "0 1 1 NaN 1 1.0 \n", - "0 1 1 1.0 1 1.0 \n", - "0 1 1 NaN 1 NaN \n", - "0 1 1 1.0 1 1.0 \n", - "0 1 1 NaN 1 NaN \n", - "\n", - " target_types targets tickets type_of_categories \\\n", - "0 1 1 1 1.0 \n", - "0 1 1 1 NaN \n", - "0 1 1 1 NaN \n", - "0 1 1 1 NaN \n", - "0 1 1 1 NaN \n", - "0 1 1 1 NaN \n", - "0 1 1 1 1.0 \n", - "0 1 1 1 1.0 \n", - "0 1 1 1 NaN \n", - "0 1 1 1 NaN \n", - "0 1 1 1 NaN \n", - "0 1 1 1 NaN \n", - "0 1 1 1 NaN \n", - "0 1 1 1 1.0 \n", - "\n", - " type_of_pricing_formulas type_ofs contribution_sites contributions \\\n", - "0 1.0 1.0 NaN NaN \n", - "0 NaN NaN 1.0 1.0 \n", - "0 NaN NaN 1.0 1.0 \n", - "0 1.0 1.0 1.0 1.0 \n", - "0 NaN NaN NaN NaN \n", - "0 1.0 1.0 NaN NaN \n", - "0 1.0 1.0 NaN NaN \n", - "0 1.0 1.0 NaN NaN \n", - "0 NaN NaN NaN NaN \n", - "0 1.0 1.0 NaN NaN \n", - "0 NaN NaN NaN NaN \n", - "0 NaN 1.0 NaN NaN \n", - "0 NaN NaN NaN NaN \n", - "0 1.0 1.0 NaN NaN \n", - "\n", - " consumptions representation_types \n", - "0 NaN NaN \n", - "0 NaN NaN \n", - "0 1.0 NaN \n", - "0 NaN NaN \n", - "0 1.0 NaN \n", - "0 1.0 NaN \n", - "0 1.0 1.0 \n", - "0 NaN NaN \n", - "0 NaN NaN \n", - "0 NaN 1.0 \n", - "0 NaN NaN \n", - "0 1.0 NaN \n", - "0 NaN 1.0 \n", - "0 NaN 1.0 " - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "pd.set_option(\"display.max_columns\", None)\n", "companies_databases\n" @@ -1342,7 +876,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "id": "8fecc3bb-4c03-4144-97c5-615224d9729e", "metadata": {}, "outputs": [], @@ -1361,23 +895,11 @@ { "cell_type": "markdown", "id": "ca2c8b6a-4965-422e-ba7c-66423a464fc1", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ "## Base communes au types Musée" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "dbce1124-9a22-4502-a47a-fc3d0e2db70b", - "metadata": {}, - "outputs": [], - "source": [ - "companies['musee']" - ] - }, { "cell_type": "code", "execution_count": null, @@ -1640,25 +1162,12 @@ { "cell_type": "code", "execution_count": null, - "id": "d74426b3", - "metadata": {}, - "outputs": [], - "source": [ - "targets = load_dataset_2(\"3\", \"targets\")\n", - "target_types = load_dataset_2(\"3\", \"target_types\")\n", - "\n", - "# target_all = pd.merge(targets, target_types, left_on= 'target_type_id', right_on= 'id' ,how = 'inner')\n" - ] - }, - { - "cell_type": "code", - "execution_count": 42, "id": "6930bff5", "metadata": {}, "outputs": [], "source": [ "def print_main_target(tenant_id, nb_print = 40):\n", - " df_target = display_databases(tenant_id, \"target_information\")\n", + " df_target = display_input_databases(tenant_id, \"target_information\")\n", "\n", " print('Nombre de ciblage : ', len(df_target))\n", " nb_customers = df_target['customer_id'].nunique()\n", @@ -1673,541 +1182,12 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": null, "id": "1e7ee1a0", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_1/target_information.csv\n", - "Nombre de ciblage : 768024\n", - "Nombre de client avec étiquette target : 151159\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
target_namecustomer_idcumulative_customers
161consentement optin mediation specialisee0.9923330.195306
160consentement optin jeune public0.9921940.390585
158consentement optin b2c0.7204930.532390
5Arenametrix_bascule tel vers sib0.2329730.578242
165consentement optout b2c0.2283890.623193
19COM Inscrits NL générale (historique)0.1521910.653146
162consentement optin newsletter generale0.1461710.681915
169consentement optout newsletter generale0.1247360.706465
170consentement optout scolaires0.1041550.726964
166consentement optout dre0.0947880.745620
164consentement optout b2b0.0940670.764134
126Inscrits NL générale (export_291019 + operation_videomaton)0.0931870.782474
157consentement optin b2b0.0842490.799056
216ddcp_visiteurs dps 0106220.0817350.815142
20Contacts_prenomsdoubles0.0770250.830302
115FORMATION _ acheteurs optin last year0.0693640.843954
214ddcp_promo_visiteurs occasionnels_musee_8mois0.0439270.852600
189ddcp_promo_md_musée_dps 0110190.0397590.860425
188ddcp_promo_MD_billet_musée_oct_2019_agarder20.0362660.867563
163consentement optin scolaires0.0320790.873876
159consentement optin dre0.0299490.879771
34DDCP Newsletter enseignants0.0298360.885643
36DDCP Newsletter jeune public0.0255490.890671
127Inscrits NL générale site web0.0246890.895531
145Votre première liste0.0245770.900368
61DDCP billets famille0.0238760.905067
106DRE MucemLab0.0152290.908064
39DDCP Newsletter relais champ social0.0150170.911020
110DRE institutionnels0.0147460.913922
48DDCP PROMO Participants ateliers (adultes et enfants)0.0129270.916466
74DDCP promo Plan B 2019 (concerts)0.0128870.919003
72DDCP promo MD pass musées dps oct 20180.0118090.921327
94DDCP rentrée culturelle 20230.0116240.923614
23DDCP MD Procès du Siècle0.0111410.925807
186ddcp_md_scene_ouverte_au_talent0.0104330.927860
108DRE chercheurs0.0103000.929888
220festival_jean_rouch0.0099370.931843
105DRE Festival Jean Rouch0.0099370.933799
275structures_etiquette champ social0.0098440.935736
86DDCP promo spectateurs prog 21-22 (spectacles, ciné, ateliers)0.0085540.937420
128Inscrits NL jeune public site web0.0082630.939046
260rappel po barvalo0.0082560.940671
104DDCP_marseille_jazz_20230.0069000.942029
32DDCP Newsletter centres de loisirs0.0068270.943373
13Autres_interet_exposition0.0067540.944702
228import_arenametrix_contactstousecardouv_expo0.0062120.945925
117Formation clients fidèles0.0060470.947115
22DDCP Cine 20230.0056560.948228
40DDCP OLBJ! 20230.0054640.949304
240journee-de-l-inclusion_20230601_21h250.0053260.950352
137Questionnaire 2 satisfaction scolaire0.0052590.951387
93DDCP rendez-vous de septembre offre spéciale0.0052530.952421
135Plan B 2018 (électro)0.0050810.953421
270save_the_date_populaire0.0049480.954395
132Newsletter CCR (passerelle)0.0047830.955336
116Fichier institutionnel (ne pas utiliser sans autorisation)0.0045380.956229
222fichier institutionnel_ne_pas_toucher0.0045320.957121
266reservations_payees_pass_culture_190422_au_3101230.0044920.958005
102DDCP spectateurs Marseille Jazz 18-19-210.0044320.958878
147acid arab0.0044130.959746
\n", - "
" - ], - "text/plain": [ - " target_name \\\n", - "161 consentement optin mediation specialisee \n", - "160 consentement optin jeune public \n", - "158 consentement optin b2c \n", - "5 Arenametrix_bascule tel vers sib \n", - "165 consentement optout b2c \n", - "19 COM Inscrits NL générale (historique) \n", - "162 consentement optin newsletter generale \n", - "169 consentement optout newsletter generale \n", - "170 consentement optout scolaires \n", - "166 consentement optout dre \n", - "164 consentement optout b2b \n", - "126 Inscrits NL générale (export_291019 + operation_videomaton) \n", - "157 consentement optin b2b \n", - "216 ddcp_visiteurs dps 010622 \n", - "20 Contacts_prenomsdoubles \n", - "115 FORMATION _ acheteurs optin last year \n", - "214 ddcp_promo_visiteurs occasionnels_musee_8mois \n", - "189 ddcp_promo_md_musée_dps 011019 \n", - "188 ddcp_promo_MD_billet_musée_oct_2019_agarder2 \n", - "163 consentement optin scolaires \n", - "159 consentement optin dre \n", - "34 DDCP Newsletter enseignants \n", - "36 DDCP Newsletter jeune public \n", - "127 Inscrits NL générale site web \n", - "145 Votre première liste \n", - "61 DDCP billets famille \n", - "106 DRE MucemLab \n", - "39 DDCP Newsletter relais champ social \n", - "110 DRE institutionnels \n", - "48 DDCP PROMO Participants ateliers (adultes et enfants) \n", - "74 DDCP promo Plan B 2019 (concerts) \n", - "72 DDCP promo MD pass musées dps oct 2018 \n", - "94 DDCP rentrée culturelle 2023 \n", - "23 DDCP MD Procès du Siècle \n", - "186 ddcp_md_scene_ouverte_au_talent \n", - "108 DRE chercheurs \n", - "220 festival_jean_rouch \n", - "105 DRE Festival Jean Rouch \n", - "275 structures_etiquette champ social \n", - "86 DDCP promo spectateurs prog 21-22 (spectacles, ciné, ateliers) \n", - "128 Inscrits NL jeune public site web \n", - "260 rappel po barvalo \n", - "104 DDCP_marseille_jazz_2023 \n", - "32 DDCP Newsletter centres de loisirs \n", - "13 Autres_interet_exposition \n", - "228 import_arenametrix_contactstousecardouv_expo \n", - "117 Formation clients fidèles \n", - "22 DDCP Cine 2023 \n", - "40 DDCP OLBJ! 2023 \n", - "240 journee-de-l-inclusion_20230601_21h25 \n", - "137 Questionnaire 2 satisfaction scolaire \n", - "93 DDCP rendez-vous de septembre offre spéciale \n", - "135 Plan B 2018 (électro) \n", - "270 save_the_date_populaire \n", - "132 Newsletter CCR (passerelle) \n", - "116 Fichier institutionnel (ne pas utiliser sans autorisation) \n", - "222 fichier institutionnel_ne_pas_toucher \n", - "266 reservations_payees_pass_culture_190422_au_310123 \n", - "102 DDCP spectateurs Marseille Jazz 18-19-21 \n", - "147 acid arab \n", - "\n", - " customer_id cumulative_customers \n", - "161 0.992333 0.195306 \n", - "160 0.992194 0.390585 \n", - "158 0.720493 0.532390 \n", - "5 0.232973 0.578242 \n", - "165 0.228389 0.623193 \n", - "19 0.152191 0.653146 \n", - "162 0.146171 0.681915 \n", - "169 0.124736 0.706465 \n", - "170 0.104155 0.726964 \n", - "166 0.094788 0.745620 \n", - "164 0.094067 0.764134 \n", - "126 0.093187 0.782474 \n", - "157 0.084249 0.799056 \n", - "216 0.081735 0.815142 \n", - "20 0.077025 0.830302 \n", - "115 0.069364 0.843954 \n", - "214 0.043927 0.852600 \n", - "189 0.039759 0.860425 \n", - "188 0.036266 0.867563 \n", - "163 0.032079 0.873876 \n", - "159 0.029949 0.879771 \n", - "34 0.029836 0.885643 \n", - "36 0.025549 0.890671 \n", - "127 0.024689 0.895531 \n", - "145 0.024577 0.900368 \n", - "61 0.023876 0.905067 \n", - "106 0.015229 0.908064 \n", - "39 0.015017 0.911020 \n", - "110 0.014746 0.913922 \n", - "48 0.012927 0.916466 \n", - "74 0.012887 0.919003 \n", - "72 0.011809 0.921327 \n", - "94 0.011624 0.923614 \n", - "23 0.011141 0.925807 \n", - "186 0.010433 0.927860 \n", - "108 0.010300 0.929888 \n", - "220 0.009937 0.931843 \n", - "105 0.009937 0.933799 \n", - "275 0.009844 0.935736 \n", - "86 0.008554 0.937420 \n", - "128 0.008263 0.939046 \n", - "260 0.008256 0.940671 \n", - "104 0.006900 0.942029 \n", - "32 0.006827 0.943373 \n", - "13 0.006754 0.944702 \n", - "228 0.006212 0.945925 \n", - "117 0.006047 0.947115 \n", - "22 0.005656 0.948228 \n", - "40 0.005464 0.949304 \n", - "240 0.005326 0.950352 \n", - "137 0.005259 0.951387 \n", - "93 0.005253 0.952421 \n", - "135 0.005081 0.953421 \n", - "270 0.004948 0.954395 \n", - "132 0.004783 0.955336 \n", - "116 0.004538 0.956229 \n", - "222 0.004532 0.957121 \n", - "266 0.004492 0.958005 \n", - "102 0.004432 0.958878 \n", - "147 0.004413 0.959746 " - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": { + "scrolled": true + }, + "outputs": [], "source": [ "pd.set_option(\"max_colwidth\", None)\n", "print_main_target('1', 60)" @@ -2215,1697 +1195,46 @@ }, { "cell_type": "code", - "execution_count": 48, - "id": "b57a28ac", + "execution_count": null, + "id": "19f3a2dd-ba3d-4dec-8e10-fed544ab6a53", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_2/target_information.csv\n", - "Nombre de ciblage : 260283\n", - "Nombre de client avec étiquette target : 233320\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
target_namecustomer_idcumulative_customers
13Schokoladentour & Führungen Individuals0.9279060.831783
3Chocolateria Kurse 20230.0739630.898084
16mailxpert_contacts_2023-07-18_12-04-00 langue0.0255190.920959
15mailxpert_contacts_2023-07-18_12-04-000.0255190.943834
8Newsletter opt-in Allgemein0.0228360.964304
12Schokoladentour & Führungen Gruppen / Schulen0.0115550.974662
5Newsletter DE0.0107490.984298
7Newsletter FR0.0085200.991936
6Newsletter EN0.0042860.995778
4Frauen in Zürich - Schulung0.0010030.996677
17mailxpert_contacts_2023-07-18_13-25-45_inaktiv0.0004710.997099
11Opt-in-Website DE0.0000300.997126
9Opt-in Website EN0.0000090.997134
10Opt-in Website FR0.0000040.997138
14Votre première liste0.0000040.997142
1Activated contact EN0.0000040.997145
2Activated contact FR0.0000040.997149
0Activated contact DE0.0000040.997153
\n", - "
" - ], - "text/plain": [ - " target_name customer_id \\\n", - "13 Schokoladentour & Führungen Individuals 0.927906 \n", - "3 Chocolateria Kurse 2023 0.073963 \n", - "16 mailxpert_contacts_2023-07-18_12-04-00 langue 0.025519 \n", - "15 mailxpert_contacts_2023-07-18_12-04-00 0.025519 \n", - "8 Newsletter opt-in Allgemein 0.022836 \n", - "12 Schokoladentour & Führungen Gruppen / Schulen 0.011555 \n", - "5 Newsletter DE 0.010749 \n", - "7 Newsletter FR 0.008520 \n", - "6 Newsletter EN 0.004286 \n", - "4 Frauen in Zürich - Schulung 0.001003 \n", - "17 mailxpert_contacts_2023-07-18_13-25-45_inaktiv 0.000471 \n", - "11 Opt-in-Website DE 0.000030 \n", - "9 Opt-in Website EN 0.000009 \n", - "10 Opt-in Website FR 0.000004 \n", - "14 Votre première liste 0.000004 \n", - "1 Activated contact EN 0.000004 \n", - "2 Activated contact FR 0.000004 \n", - "0 Activated contact DE 0.000004 \n", - "\n", - " cumulative_customers \n", - "13 0.831783 \n", - "3 0.898084 \n", - "16 0.920959 \n", - "15 0.943834 \n", - "8 0.964304 \n", - "12 0.974662 \n", - "5 0.984298 \n", - "7 0.991936 \n", - "6 0.995778 \n", - "4 0.996677 \n", - "17 0.997099 \n", - "11 0.997126 \n", - "9 0.997134 \n", - "10 0.997138 \n", - "14 0.997142 \n", - "1 0.997145 \n", - "2 0.997149 \n", - "0 0.997153 " - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], + "source": [ + "pd.reset_option('display.max_rows')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b57a28ac", + "metadata": { + "scrolled": true + }, + "outputs": [], "source": [ "print_main_target('2', 25)" ] }, { "cell_type": "code", - "execution_count": 56, + "execution_count": null, "id": "9a65991f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_3/target_information.csv\n", - "Nombre de ciblage : 1617362\n", - "Nombre de client avec étiquette target : 257018\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
target_namecustomer_idcumulative_customers
67MKG_NLmensuelle_2021_OK0.9723480.154518
66MKG_NLmensuelle_20210.9560070.306439
119consent_optin_nl0.6366480.407609
115consent_optin_general0.6025060.503355
78Mkg_NL_mensuelle30.4041620.567581
125consent_optout_general0.3681260.626081
104TEST LOCBASE0.3505320.681784
68MKG_Non_inscrit_liste_08-220.3106050.731143
116consent_optin_general_HISTORIQUE0.3013450.779030
80Mkg_Zone_C0.1352980.800531
7Acheteurs_100km_visite_depuismax5ans0.0911490.815015
54Inscription NL ancien site web0.0834770.828281
112consent_optin_equestre0.0832160.841505
79Mkg_Zone_B0.0798890.854200
65MKG_2022_ZoneB&ZoneC_Famille0.0725360.865727
111consent_optin_b2b0.0643880.875959
102Soft_Bounce_yahoo0.0641820.886158
100Scénario Anniversaire0.0512490.894303
37B2B_scolaire_et_centres_de_loisirs_20230.0467320.901729
20B2B_Sans étiquette0.0404720.908160
122consent_optout_equestre0.0388650.914336
17B2B_Inscrits newsletter Scolaires0.0380750.920387
28B2B_historique_newsletter_SCOLAIRES0.0380400.926432
118consent_optin_jdp0.0361100.932170
76MKG_aire cantilienne0.0319080.937241
21B2B_Sans étiquette FR+BE0.0291650.941876
108b2b - écoles mai 20210.0285740.946416
86Ouvreur_NL_juin_20210.0181930.949308
126consent_optout_jdp0.0168160.951980
127consent_optout_nl0.0166330.954623
13B2B_CE_20230.0164890.957243
106Visiteurs Aout-Sept sans questionnaire0.0162750.959830
89Pass Annuel en cours de validité0.0115400.961663
114consent_optin_expositions0.0113880.963473
22B2B_Sans étiquette hors FR+BE0.0113070.965270
113consent_optin_evenements0.0112400.967056
32B2B_liste_à_requalifier_CE0.0107420.968763
110consent_optin_abonnes_passannuels0.0096650.970299
152liste mécènes donateurs 01012023-311020230.0087460.971689
34B2B_liste_à_requalifier_SCOLAIRES0.0086880.973070
153liste newsletter mécénat0.0086060.974437
144liste des donateurs iraiser don ponctuel 10122020-200120220.0075910.975644
134don ponctuel iRaiser 2501220.0075870.976849
77MKG_visiteurs_juin_ES0.0074980.978041
72MKG_acheteurs_domaine_noel_20210.0067580.979115
6Acheteurs Journées des Plantes oct. 20220.0060380.980074
96Réponse au formulaire de satisfaction0.0058710.981007
15B2B_Inscrits newsletter Collectivités et CSE0.0057860.981927
26B2B_historique_newsletter_CE0.0057350.982838
70MKG_acheteurs_1mois_pass_sanitaire0.0057310.983749
157mec_expos_automne_20230.0049720.984539
2Abonnés Pass Annuel - dynamique0.0048560.985311
146liste diffusion invitation Ingres0.0045640.986036
161rattrpostvisite_nov210.0040700.986683
166réunion publique forêt 20230.0033620.987217
94Rattrapage_postvisite_novdec21v00.0033580.987750
71MKG_acheteurs_domaine_et_noel_20210.0030540.988236
93Rattrapage_postvisite_novdec21_VF0.0030150.988715
14B2B_GUIDES_20230.0026500.989136
23B2B_TOANGLOPHONE_20230.0025210.989537
33B2B_liste_à_requalifier_GUIDES0.0024050.989919
64MKG_2021_Acheteurs_JDP_Octobre_rattrap0.0022680.990279
159rattrapage1211_logs-071021_1211210.0021200.990616
141jdp_invités_2_entrées_ oct20230.0021200.990953
109château de chantilly questionnaire0.0020040.991272
150liste invités avant-première jdp mai 20230.0020000.991589
136gece0.0019800.991904
12B2B_Autocariste_20230.0016920.992173
158mkg_2021_acheteurs_jdp_octobre_rattr_exclure_new0.0016070.992428
43Formation_journéedesplantes750.0015410.992673
\n", - "
" - ], - "text/plain": [ - " target_name customer_id \\\n", - "67 MKG_NLmensuelle_2021_OK 0.972348 \n", - "66 MKG_NLmensuelle_2021 0.956007 \n", - "119 consent_optin_nl 0.636648 \n", - "115 consent_optin_general 0.602506 \n", - "78 Mkg_NL_mensuelle3 0.404162 \n", - "125 consent_optout_general 0.368126 \n", - "104 TEST LOCBASE 0.350532 \n", - "68 MKG_Non_inscrit_liste_08-22 0.310605 \n", - "116 consent_optin_general_HISTORIQUE 0.301345 \n", - "80 Mkg_Zone_C 0.135298 \n", - "7 Acheteurs_100km_visite_depuismax5ans 0.091149 \n", - "54 Inscription NL ancien site web 0.083477 \n", - "112 consent_optin_equestre 0.083216 \n", - "79 Mkg_Zone_B 0.079889 \n", - "65 MKG_2022_ZoneB&ZoneC_Famille 0.072536 \n", - "111 consent_optin_b2b 0.064388 \n", - "102 Soft_Bounce_yahoo 0.064182 \n", - "100 Scénario Anniversaire 0.051249 \n", - "37 B2B_scolaire_et_centres_de_loisirs_2023 0.046732 \n", - "20 B2B_Sans étiquette 0.040472 \n", - "122 consent_optout_equestre 0.038865 \n", - "17 B2B_Inscrits newsletter Scolaires 0.038075 \n", - "28 B2B_historique_newsletter_SCOLAIRES 0.038040 \n", - "118 consent_optin_jdp 0.036110 \n", - "76 MKG_aire cantilienne 0.031908 \n", - "21 B2B_Sans étiquette FR+BE 0.029165 \n", - "108 b2b - écoles mai 2021 0.028574 \n", - "86 Ouvreur_NL_juin_2021 0.018193 \n", - "126 consent_optout_jdp 0.016816 \n", - "127 consent_optout_nl 0.016633 \n", - "13 B2B_CE_2023 0.016489 \n", - "106 Visiteurs Aout-Sept sans questionnaire 0.016275 \n", - "89 Pass Annuel en cours de validité 0.011540 \n", - "114 consent_optin_expositions 0.011388 \n", - "22 B2B_Sans étiquette hors FR+BE 0.011307 \n", - "113 consent_optin_evenements 0.011240 \n", - "32 B2B_liste_à_requalifier_CE 0.010742 \n", - "110 consent_optin_abonnes_passannuels 0.009665 \n", - "152 liste mécènes donateurs 01012023-31102023 0.008746 \n", - "34 B2B_liste_à_requalifier_SCOLAIRES 0.008688 \n", - "153 liste newsletter mécénat 0.008606 \n", - "144 liste des donateurs iraiser don ponctuel 10122020-20012022 0.007591 \n", - "134 don ponctuel iRaiser 250122 0.007587 \n", - "77 MKG_visiteurs_juin_ES 0.007498 \n", - "72 MKG_acheteurs_domaine_noel_2021 0.006758 \n", - "6 Acheteurs Journées des Plantes oct. 2022 0.006038 \n", - "96 Réponse au formulaire de satisfaction 0.005871 \n", - "15 B2B_Inscrits newsletter Collectivités et CSE 0.005786 \n", - "26 B2B_historique_newsletter_CE 0.005735 \n", - "70 MKG_acheteurs_1mois_pass_sanitaire 0.005731 \n", - "157 mec_expos_automne_2023 0.004972 \n", - "2 Abonnés Pass Annuel - dynamique 0.004856 \n", - "146 liste diffusion invitation Ingres 0.004564 \n", - "161 rattrpostvisite_nov21 0.004070 \n", - "166 réunion publique forêt 2023 0.003362 \n", - "94 Rattrapage_postvisite_novdec21v0 0.003358 \n", - "71 MKG_acheteurs_domaine_et_noel_2021 0.003054 \n", - "93 Rattrapage_postvisite_novdec21_VF 0.003015 \n", - "14 B2B_GUIDES_2023 0.002650 \n", - "23 B2B_TOANGLOPHONE_2023 0.002521 \n", - "33 B2B_liste_à_requalifier_GUIDES 0.002405 \n", - "64 MKG_2021_Acheteurs_JDP_Octobre_rattrap 0.002268 \n", - "159 rattrapage1211_logs-071021_121121 0.002120 \n", - "141 jdp_invités_2_entrées_ oct2023 0.002120 \n", - "109 château de chantilly questionnaire 0.002004 \n", - "150 liste invités avant-première jdp mai 2023 0.002000 \n", - "136 gece 0.001980 \n", - "12 B2B_Autocariste_2023 0.001692 \n", - "158 mkg_2021_acheteurs_jdp_octobre_rattr_exclure_new 0.001607 \n", - "43 Formation_journéedesplantes75 0.001541 \n", - "\n", - " cumulative_customers \n", - "67 0.154518 \n", - "66 0.306439 \n", - "119 0.407609 \n", - "115 0.503355 \n", - "78 0.567581 \n", - "125 0.626081 \n", - "104 0.681784 \n", - "68 0.731143 \n", - "116 0.779030 \n", - "80 0.800531 \n", - "7 0.815015 \n", - "54 0.828281 \n", - "112 0.841505 \n", - "79 0.854200 \n", - "65 0.865727 \n", - "111 0.875959 \n", - "102 0.886158 \n", - "100 0.894303 \n", - "37 0.901729 \n", - "20 0.908160 \n", - "122 0.914336 \n", - "17 0.920387 \n", - "28 0.926432 \n", - "118 0.932170 \n", - "76 0.937241 \n", - "21 0.941876 \n", - "108 0.946416 \n", - "86 0.949308 \n", - "126 0.951980 \n", - "127 0.954623 \n", - "13 0.957243 \n", - "106 0.959830 \n", - "89 0.961663 \n", - "114 0.963473 \n", - "22 0.965270 \n", - "113 0.967056 \n", - "32 0.968763 \n", - "110 0.970299 \n", - "152 0.971689 \n", - "34 0.973070 \n", - "153 0.974437 \n", - "144 0.975644 \n", - "134 0.976849 \n", - "77 0.978041 \n", - "72 0.979115 \n", - "6 0.980074 \n", - "96 0.981007 \n", - "15 0.981927 \n", - "26 0.982838 \n", - "70 0.983749 \n", - "157 0.984539 \n", - "2 0.985311 \n", - "146 0.986036 \n", - "161 0.986683 \n", - "166 0.987217 \n", - "94 0.987750 \n", - "71 0.988236 \n", - "93 0.988715 \n", - "14 0.989136 \n", - "23 0.989537 \n", - "33 0.989919 \n", - "64 0.990279 \n", - "159 0.990616 \n", - "141 0.990953 \n", - "109 0.991272 \n", - "150 0.991589 \n", - "136 0.991904 \n", - "12 0.992173 \n", - "158 0.992428 \n", - "43 0.992673 " - ] - }, - "execution_count": 56, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": { + "scrolled": true + }, + "outputs": [], "source": [ "print_main_target('3', 70)" ] }, { "cell_type": "code", - "execution_count": 54, - "id": "c66a4dc1", - "metadata": {}, - "outputs": [], - "source": [ - "pd.set_option('display.max_rows', None)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 57, + "execution_count": null, "id": "5f34b8bf", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_4/target_information.csv\n", - "Nombre de ciblage : 4627640\n", - "Nombre de client avec étiquette target : 320813\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
target_namecustomer_idcumulative_customers
232Tous les contacts mis à jour0.9999910.069325
76Base données0.9999910.138650
191Office de Tourisme0.9999910.207974
128Globale sans VIP0.9554880.274214
112Contacts structures0.9299690.338684
98Cible gratuité IMA COMEDY0.6362460.382792
232 IEME ENVOI IMA COMEDY CLUB0.6303890.426494
64Actions Marketing ARABOFOLIES0.6279170.470025
171Liste globale sans VIP0.5821830.510385
126Formulaire inscription mallette \"Cultures en partage\"0.5328310.547324
78CAMPAGNE ADHESION 20230.4493710.578477
234Tous les optins0.4125460.607076
192Optin 20230.3650570.632384
170Liste globale optin-15-01-20210.3254820.654948
1010-03-sb-dolist0.1938330.668386
195Origine - Nouba0.1924520.681728
158LIVE2022_Intérêt Expositions musée0.1735500.693759
414old_Intéressés par la Musique0.1665050.705302
415old_Intérêt Danse0.1635720.716642
100Cible offre DAOUD DEPARDON0.1303720.725680
1213-04-2022-vente 20210.1288040.734609
73Arabofolies Juillet 20220.1091230.742174
137Intérêt LGBTQ+0.1089170.749725
274blacklistés ima0.1054070.757032
208Public traditionnel0.0838210.762843
159LIVE2022_Intérêt Humour0.0828580.768587
99Cible jeunes humour0.0803120.774155
213Relance gratuité IMA COMEDY CLUB0.0792050.779646
101Cible rencontres et débats0.0767430.784966
189Nouveaux inscrits newsletter0.0762000.790249
349interet nuit du cinéma0.0722600.795258
141Intérêt prononcé pour la nuit du ramadan0.0722540.800267
87Cible Algérie0.0703370.805143
93Cible News offre spéciale humour0.0692960.809947
140Intérêt musique électro0.0687160.814711
280cible Histoire et feminisme0.0685850.819466
174Liste relais pour présentation 20230.0674040.824139
138Intérêt musique Orientale0.0660820.828720
1816-07-21-nuit-du-cinema0.0651660.833237
204Profil Client Expos Divas (Geo)0.0634010.837633
265araborolies/Divas/relance0.0616470.841906
203Profil Client Expo Divas0.0611380.846145
233Tous les inscrits aux newsletters via le formulaire du site web0.0574070.850125
243VIP Générale0.0536820.853846
226Strcutures sans VIP0.0533960.857548
67Agi pour buren0.0515750.861123
144Invitation à l'exposition Palestine LANG0.0510920.864665
62Acheteurs individuels de l'expo Juifs d'orient statique0.0465260.867891
61Acheteurs individuels de l'expo Juifs d'orient0.0465130.871115
95Cible arabic Sound system0.0461640.874316
244VIP STATIQUE0.0411580.877169
245VIP Téléchargement0.0407370.879993
102Cible scolaire 20220.0403130.882788
90Cible Maroc0.0398270.885549
91Cible Maroc0.0398270.888310
4126mai-2023-Structures-invit-palestine0.0391880.891027
393liste_contacts_agi_2021_02_16_0.0336180.893357
450sb-fichier-eudonet-ok-18-05-210.0320560.895579
404_11_22_eudonet0.0318570.897788
215SB-18-05-VIP-eudonet0.0318570.899996
175Liste vernissage0.0313640.902171
235Tous les relais0.0310900.904326
252Visiteurs expo pour questionnaires0.0299300.906401
223Scolaires - Actions Educatives 24/11/20210.0298710.908472
92Cible Musique Judeo-arabe0.0292660.910501
1315-09-2023-Cible-Palestine0.0285310.912478
162LIVE2022_Intérêts Rencontres, débats et conférences0.0269280.914345
282cible photo0.0260560.916152
3826-MAI_STRUCTURE-2023-OK0.0254950.917919
507-12-20-Relais-invitatation-divas0.0249090.919646
410old_Amis de l'IMA0.0231600.921251
222Scolaires - Actions Educatives 24/01/20230.0227240.922827
198PALESTINE0.0209030.924276
249Vignes et tilleuls0.0204390.925693
3926-mai-11H10-relais0.0195780.927050
110Contacts Librairie0.0191140.928375
194Origine - Inscription manuelle0.0183070.929644
196Origine - QR code0.0182940.930913
59Acheteurs Daoud Depardon0.0182320.932176
473événements autour de Habibi0.0177550.933407
2017-04-21-nuits-ducinema0.0174840.934619
607-12-20-liste-invites-presentation-divas0.0173370.935821
278catégorie Cinéma0.0167480.936982
250Visiteurs Palestine0.0163020.938113
248Vernissages Algérie0.0147030.939132
242VIP Algérie0.0146660.940149
445save the date invités vernissage0.0144320.941149
205Profil Contact Expo Divas - Juillet0.0142820.942139
1917-04-2021-autres-liste-statique-cinema0.0138620.943100
279catégorie rencontres et débats0.0132850.944021
325fichier-dolist-05-12-20-relais0.0131630.944934
177MAILING SAVE THE DATE PARFUMS0.0131540.945846
96Cible enfants/ famille janvier 230.0125150.946713
129Globale vernissage Samarcande0.0110780.947481
251Visiteurs Palestine mi-expo questionnaire0.0107350.948225
88Cible LIBAN0.0100030.948919
2118-11-2021-liste i,augurationdu23-18h3à0.0099750.949610
431professionnels de l'écologie0.0097690.950288
142Intérêt écologie (pro)0.0097690.950965
323fichier pro écologie0.0097690.951642
\n", - "
" - ], - "text/plain": [ - " target_name \\\n", - "232 Tous les contacts mis à jour \n", - "76 Base données \n", - "191 Office de Tourisme \n", - "128 Globale sans VIP \n", - "112 Contacts structures \n", - "98 Cible gratuité IMA COMEDY \n", - "23 2 IEME ENVOI IMA COMEDY CLUB \n", - "64 Actions Marketing ARABOFOLIES \n", - "171 Liste globale sans VIP \n", - "126 Formulaire inscription mallette \"Cultures en partage\" \n", - "78 CAMPAGNE ADHESION 2023 \n", - "234 Tous les optins \n", - "192 Optin 2023 \n", - "170 Liste globale optin-15-01-2021 \n", - "10 10-03-sb-dolist \n", - "195 Origine - Nouba \n", - "158 LIVE2022_Intérêt Expositions musée \n", - "414 old_Intéressés par la Musique \n", - "415 old_Intérêt Danse \n", - "100 Cible offre DAOUD DEPARDON \n", - "12 13-04-2022-vente 2021 \n", - "73 Arabofolies Juillet 2022 \n", - "137 Intérêt LGBTQ+ \n", - "274 blacklistés ima \n", - "208 Public traditionnel \n", - "159 LIVE2022_Intérêt Humour \n", - "99 Cible jeunes humour \n", - "213 Relance gratuité IMA COMEDY CLUB \n", - "101 Cible rencontres et débats \n", - "189 Nouveaux inscrits newsletter \n", - "349 interet nuit du cinéma \n", - "141 Intérêt prononcé pour la nuit du ramadan \n", - "87 Cible Algérie \n", - "93 Cible News offre spéciale humour \n", - "140 Intérêt musique électro \n", - "280 cible Histoire et feminisme \n", - "174 Liste relais pour présentation 2023 \n", - "138 Intérêt musique Orientale \n", - "18 16-07-21-nuit-du-cinema \n", - "204 Profil Client Expos Divas (Geo) \n", - "265 araborolies/Divas/relance \n", - "203 Profil Client Expo Divas \n", - "233 Tous les inscrits aux newsletters via le formulaire du site web \n", - "243 VIP Générale \n", - "226 Strcutures sans VIP \n", - "67 Agi pour buren \n", - "144 Invitation à l'exposition Palestine LANG \n", - "62 Acheteurs individuels de l'expo Juifs d'orient statique \n", - "61 Acheteurs individuels de l'expo Juifs d'orient \n", - "95 Cible arabic Sound system \n", - "244 VIP STATIQUE \n", - "245 VIP Téléchargement \n", - "102 Cible scolaire 2022 \n", - "90 Cible Maroc \n", - "91 Cible Maroc \n", - "41 26mai-2023-Structures-invit-palestine \n", - "393 liste_contacts_agi_2021_02_16_ \n", - "450 sb-fichier-eudonet-ok-18-05-21 \n", - "4 04_11_22_eudonet \n", - "215 SB-18-05-VIP-eudonet \n", - "175 Liste vernissage \n", - "235 Tous les relais \n", - "252 Visiteurs expo pour questionnaires \n", - "223 Scolaires - Actions Educatives 24/11/2021 \n", - "92 Cible Musique Judeo-arabe \n", - "13 15-09-2023-Cible-Palestine \n", - "162 LIVE2022_Intérêts Rencontres, débats et conférences \n", - "282 cible photo \n", - "38 26-MAI_STRUCTURE-2023-OK \n", - "5 07-12-20-Relais-invitatation-divas \n", - "410 old_Amis de l'IMA \n", - "222 Scolaires - Actions Educatives 24/01/2023 \n", - "198 PALESTINE \n", - "249 Vignes et tilleuls \n", - "39 26-mai-11H10-relais \n", - "110 Contacts Librairie \n", - "194 Origine - Inscription manuelle \n", - "196 Origine - QR code \n", - "59 Acheteurs Daoud Depardon \n", - "473 événements autour de Habibi \n", - "20 17-04-21-nuits-ducinema \n", - "6 07-12-20-liste-invites-presentation-divas \n", - "278 catégorie Cinéma \n", - "250 Visiteurs Palestine \n", - "248 Vernissages Algérie \n", - "242 VIP Algérie \n", - "445 save the date invités vernissage \n", - "205 Profil Contact Expo Divas - Juillet \n", - "19 17-04-2021-autres-liste-statique-cinema \n", - "279 catégorie rencontres et débats \n", - "325 fichier-dolist-05-12-20-relais \n", - "177 MAILING SAVE THE DATE PARFUMS \n", - "96 Cible enfants/ famille janvier 23 \n", - "129 Globale vernissage Samarcande \n", - "251 Visiteurs Palestine mi-expo questionnaire \n", - "88 Cible LIBAN \n", - "21 18-11-2021-liste i,augurationdu23-18h3à \n", - "431 professionnels de l'écologie \n", - "142 Intérêt écologie (pro) \n", - "323 fichier pro écologie \n", - "\n", - " customer_id cumulative_customers \n", - "232 0.999991 0.069325 \n", - "76 0.999991 0.138650 \n", - "191 0.999991 0.207974 \n", - "128 0.955488 0.274214 \n", - "112 0.929969 0.338684 \n", - "98 0.636246 0.382792 \n", - "23 0.630389 0.426494 \n", - "64 0.627917 0.470025 \n", - "171 0.582183 0.510385 \n", - "126 0.532831 0.547324 \n", - "78 0.449371 0.578477 \n", - "234 0.412546 0.607076 \n", - "192 0.365057 0.632384 \n", - "170 0.325482 0.654948 \n", - "10 0.193833 0.668386 \n", - "195 0.192452 0.681728 \n", - "158 0.173550 0.693759 \n", - "414 0.166505 0.705302 \n", - "415 0.163572 0.716642 \n", - "100 0.130372 0.725680 \n", - "12 0.128804 0.734609 \n", - "73 0.109123 0.742174 \n", - "137 0.108917 0.749725 \n", - "274 0.105407 0.757032 \n", - "208 0.083821 0.762843 \n", - "159 0.082858 0.768587 \n", - "99 0.080312 0.774155 \n", - "213 0.079205 0.779646 \n", - "101 0.076743 0.784966 \n", - "189 0.076200 0.790249 \n", - "349 0.072260 0.795258 \n", - "141 0.072254 0.800267 \n", - "87 0.070337 0.805143 \n", - "93 0.069296 0.809947 \n", - "140 0.068716 0.814711 \n", - "280 0.068585 0.819466 \n", - "174 0.067404 0.824139 \n", - "138 0.066082 0.828720 \n", - "18 0.065166 0.833237 \n", - "204 0.063401 0.837633 \n", - "265 0.061647 0.841906 \n", - "203 0.061138 0.846145 \n", - "233 0.057407 0.850125 \n", - "243 0.053682 0.853846 \n", - "226 0.053396 0.857548 \n", - "67 0.051575 0.861123 \n", - "144 0.051092 0.864665 \n", - "62 0.046526 0.867891 \n", - "61 0.046513 0.871115 \n", - "95 0.046164 0.874316 \n", - "244 0.041158 0.877169 \n", - "245 0.040737 0.879993 \n", - "102 0.040313 0.882788 \n", - "90 0.039827 0.885549 \n", - "91 0.039827 0.888310 \n", - "41 0.039188 0.891027 \n", - "393 0.033618 0.893357 \n", - "450 0.032056 0.895579 \n", - "4 0.031857 0.897788 \n", - "215 0.031857 0.899996 \n", - "175 0.031364 0.902171 \n", - "235 0.031090 0.904326 \n", - "252 0.029930 0.906401 \n", - "223 0.029871 0.908472 \n", - "92 0.029266 0.910501 \n", - "13 0.028531 0.912478 \n", - "162 0.026928 0.914345 \n", - "282 0.026056 0.916152 \n", - "38 0.025495 0.917919 \n", - "5 0.024909 0.919646 \n", - "410 0.023160 0.921251 \n", - "222 0.022724 0.922827 \n", - "198 0.020903 0.924276 \n", - "249 0.020439 0.925693 \n", - "39 0.019578 0.927050 \n", - "110 0.019114 0.928375 \n", - "194 0.018307 0.929644 \n", - "196 0.018294 0.930913 \n", - "59 0.018232 0.932176 \n", - "473 0.017755 0.933407 \n", - "20 0.017484 0.934619 \n", - "6 0.017337 0.935821 \n", - "278 0.016748 0.936982 \n", - "250 0.016302 0.938113 \n", - "248 0.014703 0.939132 \n", - "242 0.014666 0.940149 \n", - "445 0.014432 0.941149 \n", - "205 0.014282 0.942139 \n", - "19 0.013862 0.943100 \n", - "279 0.013285 0.944021 \n", - "325 0.013163 0.944934 \n", - "177 0.013154 0.945846 \n", - "96 0.012515 0.946713 \n", - "129 0.011078 0.947481 \n", - "251 0.010735 0.948225 \n", - "88 0.010003 0.948919 \n", - "21 0.009975 0.949610 \n", - "431 0.009769 0.950288 \n", - "142 0.009769 0.950965 \n", - "323 0.009769 0.951642 " - ] - }, - "execution_count": 57, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": { + "scrolled": true + }, + "outputs": [], "source": [ "print_main_target('4', 100)" ] @@ -3913,11 +1242,133 @@ { "cell_type": "code", "execution_count": null, - "id": "40fe3676", + "id": "52b24d66-92ad-4421-a62b-5cba837f1893", "metadata": {}, "outputs": [], "source": [ - "print_main_target('101', 100)" + "pd.set_option('display.max_rows', None)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "40fe3676", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "\n", + "\n", + "print_main_target('5', 100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "820d3600-379b-4245-a977-f1f1fa1f1839", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print_main_target('6', 100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "86f64a1b-763a-4e43-9601-a38c80392d47", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print_main_target('7', 100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fbf2ea42-515a-4cdf-a4c1-50f99c379ed9", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print_main_target('8', 100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9684045c-4e25-4952-b099-a559baa5d749", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print_main_target('9', 100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cf8f7816-e7f3-4b7a-a987-8350a76eb140", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print_main_target('10', 100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "76c818a5-3c52-4d97-ac81-b7f3f89092bd", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print_main_target('11', 100)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "603b11e4-5d76-4699-a1b2-e795929edc04", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print_main_target('12', 100)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fa93aecd-d117-481e-8507-15e49937ce14", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print_main_target('13', 100)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a115ebcf-4488-47f3-9d7e-75a1fca52f0f", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "print_main_target('14', 100)\n" ] }, { @@ -3932,7 +1383,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "id": "916c3e2b-04d3-4877-b894-8f26f10d926e", "metadata": {}, "outputs": [], @@ -3942,7 +1393,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "id": "46847b24-15a4-464e-969f-f16ed3653f1f", "metadata": {}, "outputs": [], @@ -3952,70 +1403,37 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "id": "3c10c69d-735f-453e-96bf-750697d965d0", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "19427" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "customersplus[customersplus['structure_id'].notna()]['structure_id'].nunique()" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "id": "9b0e77b3-5f16-4484-9564-7d3826583418", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "33645" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "len(customersplus[customersplus['structure_id'].notna()])" ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "id": "dfa27722-37f9-435a-8221-8aa6f9a4a107", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3431" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "structure_tag_mappings['structure_id'].nunique()" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "id": "2daabdd5-31e3-4918-9856-9bbc30cde602", "metadata": {}, "outputs": [], @@ -4044,923 +1462,60 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "id": "0b9f5f71-a927-4cc8-bb0c-9538e28d3553", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre de client avec tag : 13320\n", - "Proportion de clients avec tags : 0.0877089012682233\n", - "Moyenne de tags par client : 2.1725975975975977\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
tag_idtag_namecustomer_id
111029.0individuels3270
1811047.0groupes scolaires2417
411033.0association2308
011028.0structures culturelles2011
2211051.0etablissement ens scolaire1732
711036.0champ social1603
4311072.0etab d'enseignement1036
1411043.0etablissement public935
611035.0organisme de tourisme892
1611045.0centre de loisirs864
4411073.0musée, site & fondation786
2411053.0groupes etudiants758
311032.0entreprise750
1011039.0etablissement d'enseignement741
511034.0asso. culturelle692
1511044.0administration et collectivité676
1711046.0tour opérateur642
1911048.0entreprises515
7211619.0structures culturelles;musée, site & fondation427
811037.0handicap426
\n", - "
" - ], - "text/plain": [ - " tag_id tag_name customer_id\n", - "1 11029.0 individuels 3270\n", - "18 11047.0 groupes scolaires 2417\n", - "4 11033.0 association 2308\n", - "0 11028.0 structures culturelles 2011\n", - "22 11051.0 etablissement ens scolaire 1732\n", - "7 11036.0 champ social 1603\n", - "43 11072.0 etab d'enseignement 1036\n", - "14 11043.0 etablissement public 935\n", - "6 11035.0 organisme de tourisme 892\n", - "16 11045.0 centre de loisirs 864\n", - "44 11073.0 musée, site & fondation 786\n", - "24 11053.0 groupes etudiants 758\n", - "3 11032.0 entreprise 750\n", - "10 11039.0 etablissement d'enseignement 741\n", - "5 11034.0 asso. culturelle 692\n", - "15 11044.0 administration et collectivité 676\n", - "17 11046.0 tour opérateur 642\n", - "19 11048.0 entreprises 515\n", - "72 11619.0 structures culturelles;musée, site & fondation 427\n", - "8 11037.0 handicap 426" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tags_information(\"1\", 20)" ] }, { "cell_type": "code", - "execution_count": 43, + "execution_count": null, "id": "bd5bef41-1774-4601-86b5-b7c1aea8f1d2", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre de client avec tag : 5953\n", - "Proportion de clients avec tags : 0.021598421025897787\n", - "Moyenne de tags par client : 1.0\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
tag_idtag_namecustomer_id
01.0training-sb-ax5
\n", - "
" - ], - "text/plain": [ - " tag_id tag_name customer_id\n", - "0 1.0 training-sb-ax 5" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tags_information(\"2\", 20)" ] }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "id": "7c2dc3e6-1418-44db-a8c0-4a9d59ec5232", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idname
01training-sb-ax
12NaN
\n", - "
" - ], - "text/plain": [ - " id name\n", - "0 1 training-sb-ax\n", - "1 2 NaN" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "load_dataset_2(\"2\", \"tags\")[['id', 'name']]" ] }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "id": "c7b2c670-7122-4f67-b1aa-8c80a10f16d8", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre de client avec tag : 23659\n", - "Proportion de clients avec tags : 0.09207484608139978\n", - "Moyenne de tags par client : 3.0620482691576143\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
tag_idtag_namecustomer_id
16444539.0*individuel/particulier13148
3026926.0ce3216
146995.0college2126
167028.0lycee1577
15444524.0iraiser1453
26714.0ecole primaire1200
15544525.0bp1094
157024.0centre de loisirs1080
15344515.0entreprise998
12644039.0ca fondation d'aumale891
15244514.0particulier838
3643663.0président816
7643703.0directeur812
15844528.0dc807
5443681.0présidente805
14944511.0entreprise (financier)805
9043718.0conseillère régionale déléguée titulaire804
4043667.0directeur de l'agence801
7843705.0sous-préfet798
10043728.0chargée de mission paysage797
\n", - "
" - ], - "text/plain": [ - " tag_id tag_name customer_id\n", - "164 44539.0 *individuel/particulier 13148\n", - "30 26926.0 ce 3216\n", - "14 6995.0 college 2126\n", - "16 7028.0 lycee 1577\n", - "154 44524.0 iraiser 1453\n", - "2 6714.0 ecole primaire 1200\n", - "155 44525.0 bp 1094\n", - "15 7024.0 centre de loisirs 1080\n", - "153 44515.0 entreprise 998\n", - "126 44039.0 ca fondation d'aumale 891\n", - "152 44514.0 particulier 838\n", - "36 43663.0 président 816\n", - "76 43703.0 directeur 812\n", - "158 44528.0 dc 807\n", - "54 43681.0 présidente 805\n", - "149 44511.0 entreprise (financier) 805\n", - "90 43718.0 conseillère régionale déléguée titulaire 804\n", - "40 43667.0 directeur de l'agence 801\n", - "78 43705.0 sous-préfet 798\n", - "100 43728.0 chargée de mission paysage 797" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tags_information(\"3\", 20)" ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "id": "76639995-252d-4a58-83d8-c0c00900c3a9", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre de client avec tag : 10495\n", - "Proportion de clients avec tags : 0.03271416949025744\n", - "Moyenne de tags par client : 5.298427822772749\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
tag_idtag_namecustomer_id
147298.0jhima4219
146297.0colloque algérie3851
142292.0i&ma3826
154305.0mardis de la philo3674
150301.0le grand continant3670
144295.0araborama3669
155306.0marie descourtieux3669
145296.0c'était la guerre d'algérie3669
141291.0araborama 33669
102198.0association de collectivités territoriales spé...3669
143294.0arabofolies3669
103199.0rassemble les 11 000 élus de toute la france a...3669
250.0association463
654.0collège446
149.0ecole374
755.0lycée275
553.0centre social200
53130.0cultures et arts141
351.0mairie136
1364.0formation_ima_ax87
\n", - "
" - ], - "text/plain": [ - " tag_id tag_name customer_id\n", - "147 298.0 jhima 4219\n", - "146 297.0 colloque algérie 3851\n", - "142 292.0 i&ma 3826\n", - "154 305.0 mardis de la philo 3674\n", - "150 301.0 le grand continant 3670\n", - "144 295.0 araborama 3669\n", - "155 306.0 marie descourtieux 3669\n", - "145 296.0 c'était la guerre d'algérie 3669\n", - "141 291.0 araborama 3 3669\n", - "102 198.0 association de collectivités territoriales spé... 3669\n", - "143 294.0 arabofolies 3669\n", - "103 199.0 rassemble les 11 000 élus de toute la france a... 3669\n", - "2 50.0 association 463\n", - "6 54.0 collège 446\n", - "1 49.0 ecole 374\n", - "7 55.0 lycée 275\n", - "5 53.0 centre social 200\n", - "53 130.0 cultures et arts 141\n", - "3 51.0 mairie 136\n", - "13 64.0 formation_ima_ax 87" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tags_information(\"4\", 20)" ] }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "id": "07e91791-d4d4-42b1-ac18-22d3b0b9f7bd", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre de client avec tag : 532342\n", - "Proportion de clients avec tags : 0.18660686931118298\n", - "Moyenne de tags par client : 24.114082676174338\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
tag_idtag_namecustomer_id
20349.0clients internet517491
24356.0associations / clubs495520
510.0agence de voyages493774
32410.0guides conférenciers493378
26360.0groupe amis ou famille493021
23354.0ce / entreprises493016
817.0association/club493008
13.0c.e. / entreprise492656
611.0college492552
1369.0tour operator492549
49.0ecole primaire492540
31379.0parent goûter anniversaire492468
30364.0institutions492364
26.0institution492321
18186.0autocaristes492153
713.0enseignement superieur492131
25359.0hotels / campings492078
427186.0individuel491913
37.0groupe amis / famille491900
02.0client internet491896
\n", - "
" - ], - "text/plain": [ - " tag_id tag_name customer_id\n", - "20 349.0 clients internet 517491\n", - "24 356.0 associations / clubs 495520\n", - "5 10.0 agence de voyages 493774\n", - "32 410.0 guides conférenciers 493378\n", - "26 360.0 groupe amis ou famille 493021\n", - "23 354.0 ce / entreprises 493016\n", - "8 17.0 association/club 493008\n", - "1 3.0 c.e. / entreprise 492656\n", - "6 11.0 college 492552\n", - "13 69.0 tour operator 492549\n", - "4 9.0 ecole primaire 492540\n", - "31 379.0 parent goûter anniversaire 492468\n", - "30 364.0 institutions 492364\n", - "2 6.0 institution 492321\n", - "18 186.0 autocaristes 492153\n", - "7 13.0 enseignement superieur 492131\n", - "25 359.0 hotels / campings 492078\n", - "42 7186.0 individuel 491913\n", - "3 7.0 groupe amis / famille 491900\n", - "0 2.0 client internet 491896" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tags_information(\"101\", 20)" ] @@ -4977,191 +1532,10 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "26582be9-cfd1-48ea-a0a7-31101fdeb9d1", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_1/products_purchased_reduced.csv\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ticket_idcustomer_idpurchase_idevent_type_idsupplier_namepurchase_dateamountis_full_pricename_event_typesname_facilitiesname_categoriesname_eventsname_seasonsstart_date_timeend_date_timeopen
0130708594818751074624vente en ligne2018-12-28 14:47:50+00:008.0Falsespectacle vivantmucemindiv prog enfantl'école des magiciens20182018-12-31 14:15:00+01:001901-01-01 00:09:21+00:09True
1130708604818751074624vente en ligne2018-12-28 14:47:50+00:004.0Falsespectacle vivantmucemindiv prog enfantl'école des magiciens20182018-12-31 14:15:00+01:001901-01-01 00:09:21+00:09True
2130708614818751074624vente en ligne2018-12-28 14:47:50+00:004.0Falsespectacle vivantmucemindiv prog enfantl'école des magiciens20182018-12-31 14:15:00+01:001901-01-01 00:09:21+00:09True
3130708624818751074624vente en ligne2018-12-28 14:47:50+00:004.0Falsespectacle vivantmucemindiv prog enfantl'école des magiciens20182018-12-31 14:15:00+01:001901-01-01 00:09:21+00:09True
4130708634818751074624vente en ligne2018-12-28 14:47:50+00:004.0Falsespectacle vivantmucemindiv prog enfantl'école des magiciens20182018-12-31 14:15:00+01:001901-01-01 00:09:21+00:09True
\n", - "
" - ], - "text/plain": [ - " ticket_id customer_id purchase_id event_type_id supplier_name \\\n", - "0 13070859 48187 5107462 4 vente en ligne \n", - "1 13070860 48187 5107462 4 vente en ligne \n", - "2 13070861 48187 5107462 4 vente en ligne \n", - "3 13070862 48187 5107462 4 vente en ligne \n", - "4 13070863 48187 5107462 4 vente en ligne \n", - "\n", - " purchase_date amount is_full_price name_event_types \\\n", - "0 2018-12-28 14:47:50+00:00 8.0 False spectacle vivant \n", - "1 2018-12-28 14:47:50+00:00 4.0 False spectacle vivant \n", - "2 2018-12-28 14:47:50+00:00 4.0 False spectacle vivant \n", - "3 2018-12-28 14:47:50+00:00 4.0 False spectacle vivant \n", - "4 2018-12-28 14:47:50+00:00 4.0 False spectacle vivant \n", - "\n", - " name_facilities name_categories name_events name_seasons \\\n", - "0 mucem indiv prog enfant l'école des magiciens 2018 \n", - "1 mucem indiv prog enfant l'école des magiciens 2018 \n", - "2 mucem indiv prog enfant l'école des magiciens 2018 \n", - "3 mucem indiv prog enfant l'école des magiciens 2018 \n", - "4 mucem indiv prog enfant l'école des magiciens 2018 \n", - "\n", - " start_date_time end_date_time open \n", - "0 2018-12-31 14:15:00+01:00 1901-01-01 00:09:21+00:09 True \n", - "1 2018-12-31 14:15:00+01:00 1901-01-01 00:09:21+00:09 True \n", - "2 2018-12-31 14:15:00+01:00 1901-01-01 00:09:21+00:09 True \n", - "3 2018-12-31 14:15:00+01:00 1901-01-01 00:09:21+00:09 True \n", - "4 2018-12-31 14:15:00+01:00 1901-01-01 00:09:21+00:09 True " - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tenant_id = \"1\"\n", "\n", @@ -5172,155 +1546,10 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "id": "533bf499-dd56-4d29-b261-ca1e4928c9c7", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
name_event_typesname_eventsticket_idprop_tickets
118offre muséale groupevisite générale du mucem (1h30)438140.024
212offre muséale individuelvisite autonome scolaires (2h00)344230.019
68offre muséale groupevisite autonome exposition (1h30)264890.015
210offre muséale individuelvisite autonome adultes (2h00)220650.012
160offre muséale groupevisites des exterieurs scolaires155950.009
...............
364spectacle vivantkay ! lettres à un poète disparu10.000
443spectacle vivantmauvais genre10.000
375spectacle vivantla madre que parió a la música10.000
260spectacle vivantali a les yeux bleus (dès 12 ans)10.000
484spectacle vivantrengaine (dès 12 ans)10.000
\n", - "

544 rows × 4 columns

\n", - "
" - ], - "text/plain": [ - " name_event_types name_events ticket_id \\\n", - "118 offre muséale groupe visite générale du mucem (1h30) 43814 \n", - "212 offre muséale individuel visite autonome scolaires (2h00) 34423 \n", - "68 offre muséale groupe visite autonome exposition (1h30) 26489 \n", - "210 offre muséale individuel visite autonome adultes (2h00) 22065 \n", - "160 offre muséale groupe visites des exterieurs scolaires 15595 \n", - ".. ... ... ... \n", - "364 spectacle vivant kay ! lettres à un poète disparu 1 \n", - "443 spectacle vivant mauvais genre 1 \n", - "375 spectacle vivant la madre que parió a la música 1 \n", - "260 spectacle vivant ali a les yeux bleus (dès 12 ans) 1 \n", - "484 spectacle vivant rengaine (dès 12 ans) 1 \n", - "\n", - " prop_tickets \n", - "118 0.024 \n", - "212 0.019 \n", - "68 0.015 \n", - "210 0.012 \n", - "160 0.009 \n", - ".. ... \n", - "364 0.000 \n", - "443 0.000 \n", - "375 0.000 \n", - "260 0.000 \n", - "484 0.000 \n", - "\n", - "[544 rows x 4 columns]" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "nb_tickets_per_events = df_product.groupby(['name_event_types', 'name_events'])['ticket_id'].count().reset_index().sort_values('ticket_id', ascending = False)\n", "nb_tickets_per_events['prop_tickets'] = round(nb_tickets_per_events['ticket_id']/len(df_product), 3)\n", @@ -5340,95 +1569,24 @@ { "cell_type": "markdown", "id": "c437eaec", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ "# Exemple sur Company 1" ] }, - { - "cell_type": "markdown", - "id": "a1c1fc39", - "metadata": {}, - "source": [ - "## Chargement données" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "66f8c17b", - "metadata": {}, - "outputs": [], - "source": [ - "BUCKET = \"bdc2324-data/1\"\n", - "liste_database = fs.ls(BUCKET)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "c08e6798", - "metadata": {}, - "outputs": [], - "source": [ - "liste_database_select = ['suppliers', 'ticket', 'purchase', 'consumption', 'type_ofs']\n", - "\n", - "# Filtrer la liste pour les éléments contenant au moins un élément de la liste à tester\n", - "liste_database_filtered = [element for element in liste_database if any(element_part in element for element_part in liste_database_select)]\n", - "\n", - "# Afficher le résultat\n", - "print(liste_database_filtered)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "675f518d", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "<<<<<<< local \n", - "/tmp/ipykernel_445/4081512283.py:10: DtypeWarning: Columns (1) have mixed types. Specify dtype option on import or set low_memory=False.\n", - " df = pd.read_csv(file_in)\n", - "=======\n", - "/tmp/ipykernel_15285/4081512283.py:10: DtypeWarning: Columns (1) have mixed types. Specify dtype option on import or set low_memory=False.\n", - " df = pd.read_csv(file_in)\n", - ">>>>>>> remote \n" - ] - } - ], - "source": [ - "# loop to create dataframes from liste\n", - "files_path = liste_database\n", - "\n", - "client_number = files_path[0].split(\"/\")[1]\n", - "df_prefix = \"df\" + str(client_number) + \"_\"\n", - "\n", - "for i in range(len(files_path)) :\n", - " current_path = files_path[i]\n", - " with fs.open(current_path, mode=\"rb\") as file_in:\n", - " df = pd.read_csv(file_in)\n", - " # the pattern of the name is df1xxx\n", - " nom_dataframe = df_prefix + re.search(r'\\/(\\d+)\\/(\\d+)([a-zA-Z_]+)\\.csv$', current_path).group(3)\n", - " globals()[nom_dataframe] = df" - ] - }, { "cell_type": "markdown", "id": "e855f403", - "metadata": {}, + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, "source": [ "## customersplus.csv" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "id": "91a8f8c4", "metadata": {}, "outputs": [], @@ -5438,7 +1596,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "id": "2fda171d", "metadata": {}, "outputs": [], @@ -5467,7 +1625,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "id": "205eeeab", "metadata": {}, "outputs": [], @@ -5492,7 +1650,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "id": "634282c5", "metadata": {}, "outputs": [], @@ -5502,7 +1660,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "id": "0e8d4133", "metadata": {}, "outputs": [], @@ -5512,7 +1670,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "1268ad5a", "metadata": {}, "outputs": [], @@ -5522,7 +1680,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "id": "bd41dc80", "metadata": {}, "outputs": [], @@ -5538,175 +1696,9 @@ "\n" ] }, - { - "cell_type": "markdown", - "id": "64d0f76b", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "## tickets.csv" - ] - }, { "cell_type": "code", - "execution_count": 6, - "id": "7e683711", - "metadata": {}, - "outputs": [], - "source": [ - "df1_tickets" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "e7b9a52e", - "metadata": {}, - "outputs": [], - "source": [ - "df1_tickets.info()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "568280e8", - "metadata": {}, - "outputs": [], - "source": [ - "df1_tickets.isna().sum()/len(df1_tickets)*100" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "29ecec90", - "metadata": {}, - "outputs": [], - "source": [ - "# Selection des variables\n", - "df1_tickets_clean = df1_tickets.drop(['lastname', 'firstname', 'email', 'created_at', 'updated_at', 'extra', 'reference', 'extra_field', 'identifier', 'need_reload', 'preferred_category', 'preferred_supplier', 'preferred_formula', 'zipcode'], axis = 1, inplace=True)\n", - "df1_tickets_clean.rename(columns = {'id' : 'customer_id'}, inplace = True)" - ] - }, - { - "cell_type": "markdown", - "id": "22bb5de4", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "## suppliers.csv" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "6a9a91f4", - "metadata": {}, - "outputs": [], - "source": [ - "df1_suppliers" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "bab4758a", - "metadata": {}, - "outputs": [], - "source": [ - "df1_suppliers.info()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "b5fff251", - "metadata": {}, - "outputs": [], - "source": [ - "df1_suppliers.isna().sum()/len(df1_suppliers)*100" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "8b09e2a3", - "metadata": {}, - "outputs": [], - "source": [ - "# Selection des variables\n", - "df1_suppliers_clean = df1_suppliers[['id', 'name']]\n", - "df1_suppliers_clean.rename(columns = {'name' : 'supplier_name'}, inplace = True)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "ecee7cdc", - "metadata": {}, - "outputs": [], - "source": [ - "df1_suppliers_clean" - ] - }, - { - "cell_type": "markdown", - "id": "c8e6e69b", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "## type_ofs.csv" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "1a6cff1f", - "metadata": {}, - "outputs": [], - "source": [ - "df1_type_ofs" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "93630b41", - "metadata": {}, - "outputs": [], - "source": [ - "df1_type_ofs.info()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "4f94481a", - "metadata": {}, - "outputs": [], - "source": [ - "# Selection des variables\n", - "df1_type_ofs_clean = df1_type_ofs[['id', 'name', 'children']]\n", - "df1_type_ofs_clean.rename(columns = {'name' : 'type_of_ticket_name'}, inplace = True)" - ] - }, - { - "cell_type": "markdown", - "id": "1b2811e2", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "## purchases.csv" - ] - }, - { - "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "2455d2e1", "metadata": { "scrolled": true @@ -5718,7 +1710,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "5f9a159d", "metadata": {}, "outputs": [], @@ -5728,7 +1720,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "id": "db201bf7", "metadata": {}, "outputs": [], @@ -5740,7 +1732,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "id": "bd436fca", "metadata": {}, "outputs": [], @@ -5750,7 +1742,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "id": "83435862", "metadata": {}, "outputs": [], @@ -5759,105 +1751,6 @@ "df1_purchases_clean = df1_purchases[['id', 'purchase_date', 'customer_id']]" ] }, - { - "cell_type": "markdown", - "id": "f210e730", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "## Fusion de l'ensemble des données billétiques" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "1f8b3aa7", - "metadata": {}, - "outputs": [], - "source": [ - "# Fusion avec fournisseurs\n", - "df1_ticket_information = pd.merge(df1_tickets_clean, df1_suppliers_clean, left_on = 'supplier_id', right_on = 'id', how = 'inner')\n", - "df1_ticket_information.drop(['supplier_id', 'id'], axis = 1, inplace=True)\n", - "\n", - "# Fusion avec type de tickets\n", - "df1_ticket_information = pd.merge(df1_ticket_information, df1_type_ofs_clean, left_on = 'type_of', right_on = 'id', how = 'inner')\n", - "df1_ticket_information.drop(['type_of', 'id'], axis = 1, inplace=True)\n", - "\n", - "# Fusion avec achats\n", - "df1_ticket_information = pd.merge(df1_ticket_information, df1_purchases_clean, left_on = 'purchase_id', right_on = 'id', how = 'inner')\n", - "df1_ticket_information.drop(['purchase_id', 'id'], axis = 1, inplace=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "83a4d021", - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "df1_ticket_information" - ] - }, - { - "cell_type": "markdown", - "id": "56e6ebd1", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "# Utilisation de fonctions" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "id": "88fcde4b", - "metadata": {}, - "outputs": [], - "source": [ - "# Créer un DataFrame exemple\n", - "df_not_clean = df1_campaign_stats[['opened_at']].head(20)\n", - "\n", - "# Appliquer la fonction pour nettoyer la colonne 'purchase_date' de manière vectorisée\n", - "df_clean = cleaning_date(df_not_clean, 'opened_at')\n", - "df_clean.rename(columns = {'opened_at' : 'opened_at_clean'}, inplace = True)\n", - "\n", - "test = pd.concat([df1_campaign_stats[['opened_at']].head(20), df_clean], axis=1)\n", - "\n", - "test.info()" - ] - }, - { - "cell_type": "markdown", - "id": "818f69db", - "metadata": {}, - "source": [ - "## Nettoyage, selection et fusion" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "c9654eda", - "metadata": {}, - "outputs": [], - "source": [ - "df1_ticket_information" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "7f2b620c", - "metadata": {}, - "outputs": [], - "source": [ - "df1_ticket_information.info()" - ] - }, { "cell_type": "markdown", "id": "637bdb72", @@ -5869,29 +1762,19 @@ { "cell_type": "markdown", "id": "14c52894", - "metadata": {}, + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, "source": [ - "## Target area" + "## Target area - NLP" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "d83abfbf", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_15285/2625134041.py:3: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " df1_targets_clean.rename(columns = {'id' : 'target_id' , 'name' : 'target_name'}, inplace = True)\n" - ] - } - ], + "outputs": [], "source": [ "# Target.csv cleaning\n", "df1_targets_clean = df1_targets[[\"id\", \"target_type_id\", \"name\"]]\n", @@ -5914,7 +1797,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": null, "id": "90d71b2c", "metadata": {}, "outputs": [], @@ -5928,137 +1811,20 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "2301de1e", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idcustomer_idtarget_nametarget_type_is_importtarget_type_name
01184824645400DDCP PROMO Réseau livresFalsemanual_static_filter
12105712412DDCP PROMO Réseau livresFalsemanual_static_filter
22105724536DDCP PROMO Réseau livresFalsemanual_static_filter
32105736736DDCP PROMO Réseau livresFalsemanual_static_filter
421057438210DDCP PROMO Réseau livresFalsemanual_static_filter
\n", - "
" - ], - "text/plain": [ - " id customer_id target_name target_type_is_import \\\n", - "0 1184824 645400 DDCP PROMO Réseau livres False \n", - "1 210571 2412 DDCP PROMO Réseau livres False \n", - "2 210572 4536 DDCP PROMO Réseau livres False \n", - "3 210573 6736 DDCP PROMO Réseau livres False \n", - "4 210574 38210 DDCP PROMO Réseau livres False \n", - "\n", - " target_type_name \n", - "0 manual_static_filter \n", - "1 manual_static_filter \n", - "2 manual_static_filter \n", - "3 manual_static_filter \n", - "4 manual_static_filter " - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df1_targets_full.head()" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "75fbc2f7", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[nltk_data] Downloading package punkt to /home/onyxia/nltk_data...\n", - "[nltk_data] Package punkt is already up-to-date!\n", - "[nltk_data] Downloading package stopwords to /home/onyxia/nltk_data...\n", - "[nltk_data] Package stopwords is already up-to-date!\n", - "[nltk_data] Downloading package wordnet to /home/onyxia/nltk_data...\n", - "[nltk_data] Package wordnet is already up-to-date!\n" - ] - }, - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Catégorisation des target_name\n", "import pandas as pd\n", @@ -6077,23 +1843,10 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "55cddf92", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mots les plus fréquents:\n", - "consentement: 550777\n", - "optin: 463579\n", - "jeune: 155103\n", - "public: 155103\n", - "mediation: 150001\n" - ] - } - ], + "outputs": [], "source": [ "# Définition des fonctions de tokenisation, suppression des mots vides et lemmatisation\n", "def preprocess_text(texte):\n", @@ -6128,33 +1881,10 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "id": "7fd98a85", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mots les plus fréquents:\n", - "consentement: 550777\n", - "optin: 463579\n", - "jeune: 155103\n", - "public: 155103\n", - "mediation: 150001\n", - "specialisee: 150001\n", - "b2c: 143432\n", - "optout: 97683\n", - "newsletter: 56022\n", - "(: 46084\n", - "): 46084\n", - "inscrits: 42296\n", - "nl: 42294\n", - "générale: 41037\n", - "generale: 40950\n" - ] - } - ], + "outputs": [], "source": [ "# Affichage des mots les plus fréquents\n", "print(\"Mots les plus fréquents:\")\n", @@ -6164,36 +1894,10 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "cf94bb1d", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " texte \\\n", - "0 Le chat noir mange une souris. \n", - "1 Le chien blanc aboie. \n", - "\n", - " texte_preprocessed \n", - "0 [e, h, a, o, i, r, a, g, e, u, e, o, u, r, i, .] \n", - "1 [e, h, i, e, b, a, a, b, o, i, e, .] \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[nltk_data] Downloading package punkt to /home/onyxia/nltk_data...\n", - "[nltk_data] Package punkt is already up-to-date!\n", - "[nltk_data] Downloading package stopwords to /home/onyxia/nltk_data...\n", - "[nltk_data] Package stopwords is already up-to-date!\n", - "[nltk_data] Downloading package wordnet to /home/onyxia/nltk_data...\n", - "[nltk_data] Package wordnet is already up-to-date!\n" - ] - } - ], + "outputs": [], "source": [ "import pandas as pd\n", "import nltk\n", @@ -6234,338 +1938,6 @@ "# Afficher le résultat\n", "print(df)\n" ] - }, - { - "cell_type": "markdown", - "id": "711d3884", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "## Campaign area" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "id": "c25b5295", - "metadata": {}, - "outputs": [], - "source": [ - "# campaign_stats cleaning \n", - "df1_campaign_stats_clean = df1_campaign_stats[[\"id\", \"campaign_id\", \"customer_id\", \"opened_at\", \"sent_at\", \"delivered_at\"]]\n", - "cleaning_date(df1_campaign_stats_clean, 'opened_at')\n", - "cleaning_date(df1_campaign_stats_clean, 'sent_at')\n", - "cleaning_date(df1_campaign_stats_clean, 'delivered_at')\n", - "\n", - "# campaigns cleaning\n", - "df1_campaigns_clean = df1_campaigns[[\"id\", \"name\", \"service_id\", \"sent_at\"]].add_prefix(\"campaign_\")\n", - "cleaning_date(df1_campaigns_clean, 'campaign_sent_at')\n", - "\n", - "# Merge \n", - "df1_campaigns_full = pd.merge(df1_campaign_stats_clean, df1_campaigns_clean, on = \"campaign_id\", how = \"left\")\n", - "df1_campaigns_full.drop(['campaign_id'], axis = 1, inplace=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "id": "2a3de6a5", - "metadata": {}, - "outputs": [], - "source": [ - "df1_campaigns_full.info()" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "id": "3fc1f446", - "metadata": {}, - "outputs": [], - "source": [ - "df1_campaigns_information" - ] - }, - { - "cell_type": "markdown", - "id": "20e69ee3", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "## Link area" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "d9cbdbce", - "metadata": {}, - "outputs": [], - "source": [ - "df1_campaigns" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "c07459f0", - "metadata": {}, - "outputs": [], - "source": [ - "df1_link_stats" - ] - }, - { - "cell_type": "markdown", - "id": "80ae4c42", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "## Supplier" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "b50b8f95", - "metadata": {}, - "outputs": [], - "source": [ - "# Fonction d'exploration pour suppliers.csv = label itr et commission inconnues\n", - "def suppliers_exploration(suppliers = None) : \n", - " \n", - " # Taux de NaN pour ces colonnes\n", - " label_na = suppliers['label'].isna().sum()/len(suppliers)*100\n", - " itr_na = suppliers['itr'].isna().sum()/len(suppliers)*100\n", - " commission_na = suppliers['commission'].isna().sum()/len(suppliers)*100\n", - "\n", - " suppliers_desc = pd.DataFrame({'nb_suppliers' : [suppliers['name'].nunique()],\n", - " 'label_na' : [label_na],\n", - " 'itr_na' : [itr_na],\n", - " 'commission_na' : [commission_na]})\n", - "\n", - " return suppliers_desc" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "7e292935", - "metadata": {}, - "outputs": [], - "source": [ - "df1_suppliers_desc = suppliers_exploration(suppliers = df1_suppliers)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "05b6f2b0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
nb_supplierslabel_naitr_nacommission_na
09100.0100.0100.0
\n", - "
" - ], - "text/plain": [ - " nb_suppliers label_na itr_na commission_na\n", - "0 9 100.0 100.0 100.0" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df1_suppliers_desc" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "c9324d80", - "metadata": {}, - "outputs": [], - "source": [ - "BUCKET = \"bdc2324-data\"\n", - "liste_folders = fs.ls(BUCKET)\n", - "\n", - "liste_files = []\n", - "for company_folder in liste_folders : \n", - " liste_files.extend(fs.ls(company_folder))" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "10304058", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['bdc2324-data/1/1suppliers.csv', 'bdc2324-data/10/10suppliers.csv', 'bdc2324-data/101/101suppliers.csv', 'bdc2324-data/11/11suppliers.csv', 'bdc2324-data/12/12suppliers.csv', 'bdc2324-data/13/13suppliers.csv', 'bdc2324-data/14/14suppliers.csv', 'bdc2324-data/2/2suppliers.csv', 'bdc2324-data/3/3suppliers.csv', 'bdc2324-data/4/4suppliers.csv', 'bdc2324-data/5/5suppliers.csv', 'bdc2324-data/6/6suppliers.csv', 'bdc2324-data/7/7suppliers.csv', 'bdc2324-data/8/8suppliers.csv', 'bdc2324-data/9/9suppliers.csv']\n" - ] - } - ], - "source": [ - "liste_database_select = ['suppliers']\n", - "\n", - "# Filtrer la liste pour les éléments contenant au moins un élément de la liste à tester\n", - "liste_suppliers = [element for element in liste_files if any(element_part in element for element_part in liste_database_select)]\n", - "\n", - "# Afficher le résultat\n", - "print(liste_suppliers)" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "ffa423e5", - "metadata": {}, - "outputs": [], - "source": [ - "# loop to create dataframes from file 2\n", - "def database_loading(database_name = None):\n", - " files_path = database_name\n", - " \n", - " client_number = files_path.split(\"/\")[1]\n", - " df_prefix = \"df\" + str(client_number) + \"_\"\n", - " \n", - " current_path = files_path\n", - " with fs.open(current_path, mode=\"rb\") as file_in:\n", - " df = pd.read_csv(file_in)\n", - "\n", - " return df, client_number" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "70bdc88d", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 45, - "id": "6a0f567d", - "metadata": {}, - "outputs": [], - "source": [ - "df_all = pd.DataFrame()\n", - "\n", - "for link in liste_suppliers:\n", - " \n", - " df_supplier, tenant_id = database_loading(link)\n", - " \n", - " df_supplier['tenant_id'] = int(tenant_id)\n", - "\n", - " df_all = pd.concat([df_all, df_supplier], axis = 0)\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "id": "1522d8cd", - "metadata": {}, - "outputs": [], - "source": [ - "# df_all[df_all['tenant_id'] == 101]['name'].unique()" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "id": "b0e42a61", - "metadata": {}, - "outputs": [], - "source": [ - "liste_mots = ['en ligne', 'internet', 'web', 'net', 'vad', 'online'] \n", - "# vad = vente à distance\n", - "df_all['name'] = df_all['name'].fillna('')\n", - "\n", - "df_all['canal_vente_internet'] = df_all['name'].str.contains('|'.join(liste_mots), case=False).astype(int)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "id": "d299ae91", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "tenant_id\n", - "1 1\n", - "2 1\n", - "3 1\n", - "4 1\n", - "5 1\n", - "6 1\n", - "7 1\n", - "8 1\n", - "9 1\n", - "10 1\n", - "11 1\n", - "12 1\n", - "13 1\n", - "14 1\n", - "101 1\n", - "Name: canal_vente_internet, dtype: int64" - ] - }, - "execution_count": 68, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_all.groupby('tenant_id')['canal_vente_internet'].max()" - ] } ], "metadata": { diff --git a/Musee/1_Descriptive_Statistics_Museum.ipynb b/Musee/1_Descriptive_Statistics_Museum.ipynb deleted file mode 100644 index 58a2146..0000000 --- a/Musee/1_Descriptive_Statistics_Museum.ipynb +++ /dev/null @@ -1,5202 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "3f41343f-7205-41d9-89dd-88039e301413", - "metadata": {}, - "source": [ - "# Statistiques descriptives" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "abfaf341-7b35-4407-9133-d21336c04027", - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "import os\n", - "import s3fs\n", - "import re\n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "import matplotlib.dates as mdates\n", - "from datetime import datetime, date, timedelta\n", - "from dateutil.relativedelta import relativedelta\n", - "import warnings" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "7fb72fa3-7940-496f-ac78-c2837f65eefa", - "metadata": {}, - "outputs": [], - "source": [ - "# Create filesystem object\n", - "S3_ENDPOINT_URL = \"https://\" + os.environ[\"AWS_S3_ENDPOINT\"]\n", - "fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL})" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "c34e13f4-e043-43d6-ba8c-2e13d008647c", - "metadata": {}, - "outputs": [], - "source": [ - "# Import cleaning and merge functions\n", - "exec(open('../0_KPI_functions.py').read())\n", - "\n", - "# Useful functions :\n", - " # display_databases(directory_path, file_name = ['customerplus_cleaned', 'target_information', 'campaigns_information', 'products_purchased_reduced'], datetime_col = None)\n", - " # campaigns_kpi_function(campaigns_information = None)\n", - " # tickets_kpi_function(tickets_information = None)\n", - " # customerplus_kpi_function(customerplus_clean = None)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "c60505f4-b95b-4c61-b842-26b27af7e280", - "metadata": {}, - "outputs": [], - "source": [ - "# set the max columns to none\n", - "pd.set_option('display.max_columns', None)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "aaffd291-2c88-44c8-a951-0ef1f8369ba3", - "metadata": {}, - "outputs": [], - "source": [ - "# Additional function to load initial \n", - "def load_dataset_2(directory_path, file_name):\n", - " \"\"\"\n", - " This function loads csv file\n", - " \"\"\"\n", - " file_path = \"bdc2324-data\" + \"/\" + directory_path + \"/\" + directory_path + file_name + \".csv\"\n", - " with fs.open(file_path, mode=\"rb\") as file_in:\n", - " df = pd.read_csv(file_in, sep=\",\")\n", - "\n", - " # drop na :\n", - " #df = df.dropna(axis=1, thresh=len(df))\n", - " # if identifier in table : delete it\n", - " if 'identifier' in df.columns:\n", - " df = df.drop(columns = 'identifier')\n", - " return df" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "09daec01-9927-45c7-a6d4-9b9d0340ee02", - "metadata": {}, - "outputs": [], - "source": [ - "companies = {'musee' : ['1', '2', '3', '4'], # , '101'\n", - " 'musique' : ['10', '11', '12', '13', '14']}" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "d9ccb033-3c7a-4647-ae1a-3a439dec2ea1", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_1/customerplus_cleaned.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_1/campaigns_information.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_1/products_purchased_reduced.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_1/target_information.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n", - ":28: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_2/customerplus_cleaned.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_2/campaigns_information.csv\n", - "File path : projet-bdc2324-team1/0_Input/Company_2/products_purchased_reduced.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n", - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_2/target_information.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n", - ":13: DtypeWarning: Columns (3) have mixed types. Specify dtype option on import or set low_memory=False.\n", - ":28: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_3/customerplus_cleaned.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_3/campaigns_information.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_3/products_purchased_reduced.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_3/target_information.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n", - ":13: DtypeWarning: Columns (3) have mixed types. Specify dtype option on import or set low_memory=False.\n", - ":28: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_4/customerplus_cleaned.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_4/campaigns_information.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_4/products_purchased_reduced.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n", - ":13: DtypeWarning: Columns (12) have mixed types. Specify dtype option on import or set low_memory=False.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_4/target_information.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n", - ":28: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n" - ] - } - ], - "source": [ - "# création des bases contenant les KPI pour les 5 compagnies de spectacle\n", - "\n", - "# liste des compagnies de spectacle\n", - "nb_compagnie= companies['musee']\n", - "\n", - "customer_musee = pd.DataFrame()\n", - "campaigns_musee_brut = pd.DataFrame()\n", - "campaigns_musee_kpi = pd.DataFrame()\n", - "products_musee = pd.DataFrame()\n", - "tickets_musee = pd.DataFrame()\n", - "\n", - "# début de la boucle permettant de générer des datasets agrégés pour les 5 compagnies de spectacle\n", - "for directory_path in nb_compagnie:\n", - " df_customerplus_clean_0 = display_databases(directory_path, file_name = \"customerplus_cleaned\")\n", - " df_campaigns_brut = display_databases(directory_path, file_name = \"campaigns_information\", datetime_col = ['opened_at', 'sent_at', 'campaign_sent_at'])\n", - " df_products_purchased_reduced = display_databases(directory_path, file_name = \"products_purchased_reduced\", datetime_col = ['purchase_date'])\n", - " df_target_information = display_databases(directory_path, file_name = \"target_information\")\n", - " \n", - " df_campaigns_kpi = campaigns_kpi_function(campaigns_information = df_campaigns_brut) \n", - " df_tickets_kpi = tickets_kpi_function(tickets_information = df_products_purchased_reduced)\n", - " df_customerplus_clean = customerplus_kpi_function(customerplus_clean = df_customerplus_clean_0)\n", - "\n", - " \n", - "# creation de la colonne Number compagnie, qui permettra d'agréger les résultats\n", - " df_tickets_kpi[\"number_company\"]=int(directory_path)\n", - " df_campaigns_brut[\"number_company\"]=int(directory_path)\n", - " df_campaigns_kpi[\"number_company\"]=int(directory_path)\n", - " df_customerplus_clean[\"number_company\"]=int(directory_path)\n", - " df_target_information[\"number_company\"]=int(directory_path)\n", - "\n", - "# Traitement des index\n", - " df_tickets_kpi[\"customer_id\"]= directory_path + '_' + df_tickets_kpi['customer_id'].astype('str')\n", - " df_campaigns_brut[\"customer_id\"]= directory_path + '_' + df_campaigns_brut['customer_id'].astype('str')\n", - " df_campaigns_kpi[\"customer_id\"]= directory_path + '_' + df_campaigns_kpi['customer_id'].astype('str') \n", - " df_customerplus_clean[\"customer_id\"]= directory_path + '_' + df_customerplus_clean['customer_id'].astype('str') \n", - " df_products_purchased_reduced[\"customer_id\"]= directory_path + '_' + df_products_purchased_reduced['customer_id'].astype('str') \n", - "\n", - "# Concaténation\n", - " customer_musee = pd.concat([customer_musee, df_customerplus_clean], ignore_index=True)\n", - " campaigns_musee_kpi = pd.concat([campaigns_musee_kpi, df_campaigns_kpi], ignore_index=True)\n", - " campaigns_musee_brut = pd.concat([campaigns_musee_brut, df_campaigns_brut], ignore_index=True) \n", - " tickets_musee = pd.concat([tickets_musee, df_tickets_kpi], ignore_index=True)\n", - " products_musee = pd.concat([products_musee, df_products_purchased_reduced], ignore_index=True)\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "e7fa2e45-cb48-4c79-994f-9f836d566c21", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "anonymous_customer = {'1' : '1_1', '2' : '2_12184', '3' : '3_1', '4' : '4_2', '101' : '101_1',\n", - " '5' : '5_191835', '6' : '6_591412', '7' : '7_49632', '8' : '8_1942', '9' : '9_19683',\n", - " '10' : '10_19521', '11' : '11_36', '12' : '12_1706757', '13' : '13_8422', '14' : '14_6354'}" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "70b6e961-c303-465e-93f4-609721d38454", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "# On filtre les outliers\n", - "\n", - "def remove_elements(lst, elements_to_remove):\n", - " return ''.join([x for x in lst if x not in elements_to_remove])\n", - " \n", - "databases = [customer_musee, campaigns_musee_kpi, tickets_musee, products_musee]\n", - "\n", - "outlier_list = list(anonymous_customer.values())\n", - "\n", - "\n", - "customer_musee = customer_musee[~customer_musee['customer_id'].isin(outlier_list)]\n", - "campaigns_musee_kpi = campaigns_musee_kpi[~campaigns_musee_kpi['customer_id'].isin(outlier_list)]\n", - "tickets_musee = tickets_musee[~tickets_musee['customer_id'].isin(outlier_list)]\n", - "products_musee = products_musee[~products_musee['customer_id'].isin(outlier_list)]" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "21117000-6a46-4e39-b6f6-00d41170fb4f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['customer_id', 'street_id', 'structure_id', 'mcp_contact_id',\n", - " 'fidelity', 'tenant_id', 'is_partner', 'deleted_at', 'gender',\n", - " 'is_email_true', 'opt_in', 'last_buying_date', 'max_price',\n", - " 'ticket_sum', 'average_price', 'average_purchase_delay',\n", - " 'average_price_basket', 'average_ticket_basket', 'total_price',\n", - " 'purchase_count', 'first_buying_date', 'country', 'gender_label',\n", - " 'gender_female', 'gender_male', 'gender_other', 'country_fr',\n", - " 'number_company'],\n", - " dtype='object')" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "customer_musee.columns" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "id": "aa2127e8-1aee-42a0-9491-eeacee2953bf", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_595/2999853716.py:6: DtypeWarning: Columns (38) have mixed types. Specify dtype option on import or set low_memory=False.\n", - " dataset_train = pd.read_csv(file_in, sep=\",\")\n" - ] - } - ], - "source": [ - "BUCKET = \"projet-bdc2324-team1/Generalization/musee\"\n", - "File_path_train = BUCKET + \"/Train_set.csv\"\n", - "File_path_test = BUCKET + \"/Test_set.csv\"\n", - "\n", - "with fs.open( File_path_train, mode=\"rb\") as file_in:\n", - " dataset_train = pd.read_csv(file_in, sep=\",\")\n", - "\n", - "with fs.open(File_path_test, mode=\"rb\") as file_in:\n", - " dataset_test = pd.read_csv(file_in, sep=\",\")\n", - "\n", - "dataset_modelization = pd.concat([dataset_train, dataset_test])" - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "id": "88970cdd-62b5-4908-9361-81ac555080c2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['customer_id', 'nb_tickets', 'nb_purchases', 'total_amount',\n", - " 'nb_suppliers', 'vente_internet_max', 'purchase_date_min',\n", - " 'purchase_date_max', 'time_between_purchase', 'nb_tickets_internet',\n", - " 'street_id', 'structure_id', 'mcp_contact_id', 'fidelity', 'tenant_id',\n", - " 'is_partner', 'deleted_at', 'gender', 'is_email_true', 'opt_in',\n", - " 'last_buying_date', 'max_price', 'ticket_sum', 'average_price',\n", - " 'average_purchase_delay', 'average_price_basket',\n", - " 'average_ticket_basket', 'total_price', 'purchase_count',\n", - " 'first_buying_date', 'country', 'gender_label', 'gender_female',\n", - " 'gender_male', 'gender_other', 'country_fr', 'nb_campaigns',\n", - " 'nb_campaigns_opened', 'time_to_open', 'y_has_purchased',\n", - " 'company_number'],\n", - " dtype='object')" - ] - }, - "execution_count": 90, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dataset_modelization.columns" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "id": "0998efd1-8188-4e08-b06c-5959f73f79ae", - "metadata": {}, - "outputs": [], - "source": [ - "def load_train_test_sets(company_number):\n", - " BUCKET = \"projet-bdc2324-team1/Generalization/musee\"\n", - " File_path_train = BUCKET + \"/Train_set/dataset_train\" + company_number + \".csv\"\n", - " File_path_test = BUCKET + \"/Test_set/dataset_test\" + company_number + \".csv\"\n", - " \n", - " with fs.open( File_path_train, mode=\"rb\") as file_in:\n", - " dataset_train = pd.read_csv(file_in, sep=\",\")\n", - " \n", - " with fs.open(File_path_test, mode=\"rb\") as file_in:\n", - " dataset_test = pd.read_csv(file_in, sep=\",\")\n", - "\n", - " return dataset_train, dataset_test" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d332fac6-2b27-4c00-a518-8da499647f3b", - "metadata": {}, - "outputs": [], - "source": [ - "# Exemple\n", - "dataset_train1, dataset_test1 = load_train_test_sets('1')" - ] - }, - { - "cell_type": "markdown", - "id": "ae3c0c33-55a7-4a28-9a62-3ce13496917a", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "# 0 - Specificité de la company 101" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "f8a8dedc-2f67-407c-9bbf-f70d236fc783", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamecreated_atupdated_atstreet_idfixed_capacity
261atelier des lumieres2020-10-12 08:57:27.783770+02:002020-10-12 08:57:27.783770+02:001NaN
1714007fabrique des lumieres2022-05-17 09:11:19.416106+02:002022-05-17 09:11:19.416106+02:002NaN
322non défini2020-10-12 08:57:27.785329+02:002020-10-12 08:57:27.785329+02:002NaN
1010755NaN2022-01-28 12:07:16.602885+01:002022-01-28 12:07:16.602885+01:002NaN
1613583hôtel de caumont2022-05-13 10:59:06.829576+02:002022-05-13 10:59:06.829576+02:00859NaN
216422atelier des lumières - cézanne2022-08-04 04:03:31.045648+02:002022-08-04 04:03:31.045648+02:00859NaN
2021098bassins des lumières - 2022 - venise2023-04-08 03:49:46.916777+02:002023-04-08 03:49:46.916777+02:00859NaN
1823460immersive box2023-08-29 17:39:55.188028+02:002023-08-29 17:39:55.188028+02:00859NaN
813584bassins des lumières - venise2022-05-13 11:00:14.943669+02:002022-05-13 11:00:14.943669+02:00859NaN
1521096atelier des lumières - 2022 - cézanne2023-04-08 03:42:10.395124+02:002023-04-08 03:42:10.395124+02:00859NaN
27260musée jacquemart andré2020-10-18 01:20:12.738229+02:002020-10-18 01:20:12.738229+02:003525NaN
3371cité de l'automobile2020-10-13 11:05:43.705639+02:002020-12-03 08:33:15.576065+01:00449992NaN
3089bassins de lumieres2020-10-13 14:56:27.206958+02:002020-10-13 14:56:27.206958+02:00460754NaN
7108les baux de provence2020-10-14 14:16:20.284658+02:002020-10-14 14:16:20.284658+02:00481475NaN
19161les carrières de lumières2020-10-14 18:06:57.059828+02:002020-10-14 18:06:57.059828+02:00483815NaN
24118villa ephrussi de rothschild2020-10-14 15:02:40.478501+02:002020-10-14 15:02:40.478501+02:00485539NaN
29128théâtre antique orange2020-10-14 15:46:44.072307+02:002020-10-14 15:46:44.072307+02:00499380NaN
283875carrieres de lumieres2021-06-11 10:52:15.706030+02:002021-06-11 10:52:15.706030+02:00535931NaN
253866baux-de-provence2021-06-11 10:28:30.237144+02:002021-06-11 10:28:30.237144+02:00569179NaN
22392tour magne de nîmes2020-10-19 17:51:45.915572+02:002020-10-19 17:51:45.915572+02:00717981NaN
3263musée maillol2020-10-18 01:30:23.853673+02:002020-10-18 01:30:23.853673+02:00852301NaN
6264cinéma d'aigues mortes2020-10-18 01:30:23.863631+02:002020-10-18 01:30:23.863631+02:00852302NaN
21388maison carrée de nîmes2020-10-19 17:37:09.345955+02:002020-10-19 17:37:09.345955+02:00867431NaN
23333les arènes de nîmes2020-10-19 10:17:55.757817+02:002020-10-19 10:17:55.757817+02:00867431NaN
31170caumont centre d'art2020-10-14 19:13:55.213186+02:002022-10-14 06:21:53.310810+02:00887751NaN
51665cité de l'auto2020-12-08 18:46:15.957997+01:002020-12-08 18:46:15.957997+01:001418086NaN
1411836phoenix des lumières2022-03-08 16:30:03.135537+01:002022-03-08 16:30:03.135537+01:003639035NaN
113501château de boutemont2022-05-10 14:56:36.025562+02:002022-05-10 14:56:36.025562+02:004209418NaN
413502fabrique des lumières2022-05-10 15:05:40.443121+02:002022-05-10 15:05:40.443121+02:004209419NaN
1222219immersive box belgique2023-06-13 16:17:37.818103+02:002023-06-13 16:17:37.818103+02:007335205NaN
1322512hall des lumières2023-06-29 09:31:23.575220+02:002023-06-29 09:31:23.575220+02:007364467NaN
1122348hdl2023-06-20 17:58:19.153019+02:002023-06-29 09:38:51.592547+02:007364467NaN
022516hall des lumieres2023-06-29 09:46:44.718839+02:002023-06-29 09:46:44.718839+02:007364467NaN
911835hdl - ny2022-03-08 16:00:20.821212+01:002023-06-29 09:27:59.256591+02:007446203NaN
\n", - "
" - ], - "text/plain": [ - " id name \\\n", - "26 1 atelier des lumieres \n", - "17 14007 fabrique des lumieres \n", - "32 2 non défini \n", - "10 10755 NaN \n", - "16 13583 hôtel de caumont \n", - "2 16422 atelier des lumières - cézanne \n", - "20 21098 bassins des lumières - 2022 - venise \n", - "18 23460 immersive box \n", - "8 13584 bassins des lumières - venise \n", - "15 21096 atelier des lumières - 2022 - cézanne \n", - "27 260 musée jacquemart andré \n", - "33 71 cité de l'automobile \n", - "30 89 bassins de lumieres \n", - "7 108 les baux de provence \n", - "19 161 les carrières de lumières \n", - "24 118 villa ephrussi de rothschild \n", - "29 128 théâtre antique orange \n", - "28 3875 carrieres de lumieres \n", - "25 3866 baux-de-provence \n", - "22 392 tour magne de nîmes \n", - "3 263 musée maillol \n", - "6 264 cinéma d'aigues mortes \n", - "21 388 maison carrée de nîmes \n", - "23 333 les arènes de nîmes \n", - "31 170 caumont centre d'art \n", - "5 1665 cité de l'auto \n", - "14 11836 phoenix des lumières \n", - "1 13501 château de boutemont \n", - "4 13502 fabrique des lumières \n", - "12 22219 immersive box belgique \n", - "13 22512 hall des lumières \n", - "11 22348 hdl \n", - "0 22516 hall des lumieres \n", - "9 11835 hdl - ny \n", - "\n", - " created_at updated_at \\\n", - "26 2020-10-12 08:57:27.783770+02:00 2020-10-12 08:57:27.783770+02:00 \n", - "17 2022-05-17 09:11:19.416106+02:00 2022-05-17 09:11:19.416106+02:00 \n", - "32 2020-10-12 08:57:27.785329+02:00 2020-10-12 08:57:27.785329+02:00 \n", - "10 2022-01-28 12:07:16.602885+01:00 2022-01-28 12:07:16.602885+01:00 \n", - "16 2022-05-13 10:59:06.829576+02:00 2022-05-13 10:59:06.829576+02:00 \n", - "2 2022-08-04 04:03:31.045648+02:00 2022-08-04 04:03:31.045648+02:00 \n", - "20 2023-04-08 03:49:46.916777+02:00 2023-04-08 03:49:46.916777+02:00 \n", - "18 2023-08-29 17:39:55.188028+02:00 2023-08-29 17:39:55.188028+02:00 \n", - "8 2022-05-13 11:00:14.943669+02:00 2022-05-13 11:00:14.943669+02:00 \n", - "15 2023-04-08 03:42:10.395124+02:00 2023-04-08 03:42:10.395124+02:00 \n", - "27 2020-10-18 01:20:12.738229+02:00 2020-10-18 01:20:12.738229+02:00 \n", - "33 2020-10-13 11:05:43.705639+02:00 2020-12-03 08:33:15.576065+01:00 \n", - "30 2020-10-13 14:56:27.206958+02:00 2020-10-13 14:56:27.206958+02:00 \n", - "7 2020-10-14 14:16:20.284658+02:00 2020-10-14 14:16:20.284658+02:00 \n", - "19 2020-10-14 18:06:57.059828+02:00 2020-10-14 18:06:57.059828+02:00 \n", - "24 2020-10-14 15:02:40.478501+02:00 2020-10-14 15:02:40.478501+02:00 \n", - "29 2020-10-14 15:46:44.072307+02:00 2020-10-14 15:46:44.072307+02:00 \n", - "28 2021-06-11 10:52:15.706030+02:00 2021-06-11 10:52:15.706030+02:00 \n", - "25 2021-06-11 10:28:30.237144+02:00 2021-06-11 10:28:30.237144+02:00 \n", - "22 2020-10-19 17:51:45.915572+02:00 2020-10-19 17:51:45.915572+02:00 \n", - "3 2020-10-18 01:30:23.853673+02:00 2020-10-18 01:30:23.853673+02:00 \n", - "6 2020-10-18 01:30:23.863631+02:00 2020-10-18 01:30:23.863631+02:00 \n", - "21 2020-10-19 17:37:09.345955+02:00 2020-10-19 17:37:09.345955+02:00 \n", - "23 2020-10-19 10:17:55.757817+02:00 2020-10-19 10:17:55.757817+02:00 \n", - "31 2020-10-14 19:13:55.213186+02:00 2022-10-14 06:21:53.310810+02:00 \n", - "5 2020-12-08 18:46:15.957997+01:00 2020-12-08 18:46:15.957997+01:00 \n", - "14 2022-03-08 16:30:03.135537+01:00 2022-03-08 16:30:03.135537+01:00 \n", - "1 2022-05-10 14:56:36.025562+02:00 2022-05-10 14:56:36.025562+02:00 \n", - "4 2022-05-10 15:05:40.443121+02:00 2022-05-10 15:05:40.443121+02:00 \n", - "12 2023-06-13 16:17:37.818103+02:00 2023-06-13 16:17:37.818103+02:00 \n", - "13 2023-06-29 09:31:23.575220+02:00 2023-06-29 09:31:23.575220+02:00 \n", - "11 2023-06-20 17:58:19.153019+02:00 2023-06-29 09:38:51.592547+02:00 \n", - "0 2023-06-29 09:46:44.718839+02:00 2023-06-29 09:46:44.718839+02:00 \n", - "9 2022-03-08 16:00:20.821212+01:00 2023-06-29 09:27:59.256591+02:00 \n", - "\n", - " street_id fixed_capacity \n", - "26 1 NaN \n", - "17 2 NaN \n", - "32 2 NaN \n", - "10 2 NaN \n", - "16 859 NaN \n", - "2 859 NaN \n", - "20 859 NaN \n", - "18 859 NaN \n", - "8 859 NaN \n", - "15 859 NaN \n", - "27 3525 NaN \n", - "33 449992 NaN \n", - "30 460754 NaN \n", - "7 481475 NaN \n", - "19 483815 NaN \n", - "24 485539 NaN \n", - "29 499380 NaN \n", - "28 535931 NaN \n", - "25 569179 NaN \n", - "22 717981 NaN \n", - "3 852301 NaN \n", - "6 852302 NaN \n", - "21 867431 NaN \n", - "23 867431 NaN \n", - "31 887751 NaN \n", - "5 1418086 NaN \n", - "14 3639035 NaN \n", - "1 4209418 NaN \n", - "4 4209419 NaN \n", - "12 7335205 NaN \n", - "13 7364467 NaN \n", - "11 7364467 NaN \n", - "0 7364467 NaN \n", - "9 7446203 NaN " - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "company_number = '101'\n", - "\n", - "facilities = load_dataset_2(company_number, \"facilities\")\n", - "\n", - "facilities.sort_values(by = 'street_id')" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "c8c8eea4-21a2-487b-b20a-15d73616a253", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
id_xsent_atsoftwaresatisfactionextra_fieldcustomer_idcontribution_site_idcreated_at_xupdated_at_xid_yfacility_idcreated_at_yupdated_at_y
01349102017-07-30 15:50:15+02:00NaN8.0NaN91936702020-09-25 20:41:07.752795+02:002020-09-25 20:41:07.752795+02:00704382020-09-25 20:41:07.735280+02:002020-09-25 20:41:07.735280+02:00
158484272020-03-04 16:18:13.597000+01:00NaNNaNNaN22445034202022-01-21 02:44:34.857144+01:002022-01-21 02:44:34.857144+01:00342066502022-01-21 02:44:34.690938+01:002022-01-21 02:44:34.690938+01:00
29183832020-10-24 14:59:22.784000+02:00NaNNaNNaN3977182082020-10-25 02:06:54.048105+02:002020-10-25 02:06:54.048105+02:002085762020-09-27 18:05:14.671650+02:002020-09-27 18:05:14.671650+02:00
39183842020-10-24 14:35:39.725000+02:00NaNNaNNaN3977192082020-10-25 02:06:54.050218+02:002020-10-25 02:06:54.050218+02:002085762020-09-27 18:05:14.671650+02:002020-09-27 18:05:14.671650+02:00
49183852020-10-24 12:45:35.225000+02:00NaN10.0NaN22082020-10-25 02:06:54.052201+02:002020-10-25 02:06:54.052201+02:002085762020-09-27 18:05:14.671650+02:002020-09-27 18:05:14.671650+02:00
..........................................
2545419512018-03-20 09:34:09+01:00NaN8.0NaN6969412020-09-25 20:06:37.138272+02:002020-09-25 20:06:37.138272+02:0013692020-09-25 20:06:35.964342+02:002020-09-25 20:06:35.964342+02:00
2545519522018-03-20 09:31:56+01:00NaNNaNNaN6969412020-09-25 20:06:37.138874+02:002020-09-25 20:06:37.138874+02:0013692020-09-25 20:06:35.964342+02:002020-09-25 20:06:35.964342+02:00
2545619542018-03-20 09:30:44+01:00NaNNaNNaN6969412020-09-25 20:06:37.140372+02:002020-09-25 20:06:37.140372+02:0013692020-09-25 20:06:35.964342+02:002020-09-25 20:06:35.964342+02:00
2545719552018-03-20 09:28:49+01:00NaN8.0NaN6969512020-09-25 20:06:37.140966+02:002020-09-25 20:06:37.140966+02:0013692020-09-25 20:06:35.964342+02:002020-09-25 20:06:35.964342+02:00
2545819532018-03-20 09:31:23.361000+01:00NaN8.0NaN212020-09-25 20:06:37.139437+02:002020-09-25 20:06:37.139437+02:0013692020-09-25 20:06:35.964342+02:002020-09-25 20:06:35.964342+02:00
\n", - "

25459 rows × 13 columns

\n", - "
" - ], - "text/plain": [ - " id_x sent_at software satisfaction \\\n", - "0 134910 2017-07-30 15:50:15+02:00 NaN 8.0 \n", - "1 5848427 2020-03-04 16:18:13.597000+01:00 NaN NaN \n", - "2 918383 2020-10-24 14:59:22.784000+02:00 NaN NaN \n", - "3 918384 2020-10-24 14:35:39.725000+02:00 NaN NaN \n", - "4 918385 2020-10-24 12:45:35.225000+02:00 NaN 10.0 \n", - "... ... ... ... ... \n", - "25454 1951 2018-03-20 09:34:09+01:00 NaN 8.0 \n", - "25455 1952 2018-03-20 09:31:56+01:00 NaN NaN \n", - "25456 1954 2018-03-20 09:30:44+01:00 NaN NaN \n", - "25457 1955 2018-03-20 09:28:49+01:00 NaN 8.0 \n", - "25458 1953 2018-03-20 09:31:23.361000+01:00 NaN 8.0 \n", - "\n", - " extra_field customer_id contribution_site_id \\\n", - "0 NaN 91936 70 \n", - "1 NaN 224450 3420 \n", - "2 NaN 397718 208 \n", - "3 NaN 397719 208 \n", - "4 NaN 2 208 \n", - "... ... ... ... \n", - "25454 NaN 69694 1 \n", - "25455 NaN 69694 1 \n", - "25456 NaN 69694 1 \n", - "25457 NaN 69695 1 \n", - "25458 NaN 2 1 \n", - "\n", - " created_at_x updated_at_x \\\n", - "0 2020-09-25 20:41:07.752795+02:00 2020-09-25 20:41:07.752795+02:00 \n", - "1 2022-01-21 02:44:34.857144+01:00 2022-01-21 02:44:34.857144+01:00 \n", - "2 2020-10-25 02:06:54.048105+02:00 2020-10-25 02:06:54.048105+02:00 \n", - "3 2020-10-25 02:06:54.050218+02:00 2020-10-25 02:06:54.050218+02:00 \n", - "4 2020-10-25 02:06:54.052201+02:00 2020-10-25 02:06:54.052201+02:00 \n", - "... ... ... \n", - "25454 2020-09-25 20:06:37.138272+02:00 2020-09-25 20:06:37.138272+02:00 \n", - "25455 2020-09-25 20:06:37.138874+02:00 2020-09-25 20:06:37.138874+02:00 \n", - "25456 2020-09-25 20:06:37.140372+02:00 2020-09-25 20:06:37.140372+02:00 \n", - "25457 2020-09-25 20:06:37.140966+02:00 2020-09-25 20:06:37.140966+02:00 \n", - "25458 2020-09-25 20:06:37.139437+02:00 2020-09-25 20:06:37.139437+02:00 \n", - "\n", - " id_y facility_id created_at_y \\\n", - "0 70 438 2020-09-25 20:41:07.735280+02:00 \n", - "1 3420 6650 2022-01-21 02:44:34.690938+01:00 \n", - "2 208 576 2020-09-27 18:05:14.671650+02:00 \n", - "3 208 576 2020-09-27 18:05:14.671650+02:00 \n", - "4 208 576 2020-09-27 18:05:14.671650+02:00 \n", - "... ... ... ... \n", - "25454 1 369 2020-09-25 20:06:35.964342+02:00 \n", - "25455 1 369 2020-09-25 20:06:35.964342+02:00 \n", - "25456 1 369 2020-09-25 20:06:35.964342+02:00 \n", - "25457 1 369 2020-09-25 20:06:35.964342+02:00 \n", - "25458 1 369 2020-09-25 20:06:35.964342+02:00 \n", - "\n", - " updated_at_y \n", - "0 2020-09-25 20:41:07.735280+02:00 \n", - "1 2022-01-21 02:44:34.690938+01:00 \n", - "2 2020-09-27 18:05:14.671650+02:00 \n", - "3 2020-09-27 18:05:14.671650+02:00 \n", - "4 2020-09-27 18:05:14.671650+02:00 \n", - "... ... \n", - "25454 2020-09-25 20:06:35.964342+02:00 \n", - "25455 2020-09-25 20:06:35.964342+02:00 \n", - "25456 2020-09-25 20:06:35.964342+02:00 \n", - "25457 2020-09-25 20:06:35.964342+02:00 \n", - "25458 2020-09-25 20:06:35.964342+02:00 \n", - "\n", - "[25459 rows x 13 columns]" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# contribution and contribution sites \n", - "contributions = load_dataset_2(company_number, \"contributions\")\n", - "contribution_sites = load_dataset_2(company_number, \"contribution_sites\")\n", - "\n", - "pd.merge(contributions, contribution_sites, left_on = 'contribution_site_id', right_on = 'id', how = 'inner')" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "85b70219-f753-422e-9f57-a26eb28e7481", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "id 0.000000\n", - "sent_at 0.000000\n", - "software 1.000000\n", - "satisfaction 0.430732\n", - "extra_field 1.000000\n", - "customer_id 0.000000\n", - "contribution_site_id 0.000000\n", - "created_at 0.000000\n", - "updated_at 0.000000\n", - "dtype: float64" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "contributions.isna().sum()/len(contributions)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "647920c8-da07-4e87-964b-304fd7ff79f5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamecreated_atupdated_at
01eur2023-07-17 15:35:19.957203+02:002023-07-17 15:35:19.957203+02:00
12usd2023-07-17 15:35:21.132408+02:002023-07-17 15:35:21.132408+02:00
23gbp2023-07-17 15:35:21.843594+02:002023-07-17 15:35:21.843594+02:00
34chf2023-07-17 15:35:23.229322+02:002023-07-17 15:35:23.229322+02:00
45cad2023-07-17 15:35:24.262466+02:002023-07-17 15:35:24.262466+02:00
\n", - "
" - ], - "text/plain": [ - " id name created_at updated_at\n", - "0 1 eur 2023-07-17 15:35:19.957203+02:00 2023-07-17 15:35:19.957203+02:00\n", - "1 2 usd 2023-07-17 15:35:21.132408+02:00 2023-07-17 15:35:21.132408+02:00\n", - "2 3 gbp 2023-07-17 15:35:21.843594+02:00 2023-07-17 15:35:21.843594+02:00\n", - "3 4 chf 2023-07-17 15:35:23.229322+02:00 2023-07-17 15:35:23.229322+02:00\n", - "4 5 cad 2023-07-17 15:35:24.262466+02:00 2023-07-17 15:35:24.262466+02:00" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "company_number = \"2\"\n", - "\n", - "load_dataset_2(company_number, \"currencies\")" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "bc1f3d28-7f0c-4e87-baf7-dddcf03a7145", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idpercent_pricemax_pricemin_pricecategory_idpricing_formula_idrepresentation_idcreated_atupdated_at
01100.00.00.01112023-10-13 13:02:32.517137+02:002023-10-13 13:02:32.517137+02:00
12100.00.00.01122023-10-13 13:02:32.531505+02:002023-10-13 13:02:32.531505+02:00
23100.00.00.01132023-10-13 13:02:32.532172+02:002023-10-13 13:02:32.532172+02:00
34100.00.00.01142023-10-13 13:02:32.532665+02:002023-10-13 13:02:32.532665+02:00
45100.00.00.01152023-10-13 13:02:32.533142+02:002023-10-13 13:02:32.533142+02:00
..............................
779980810312100.00.00.0115672542023-11-09 05:14:16.770130+01:002023-11-09 05:14:16.770130+01:00
779981810313100.00.00.0145672542023-11-09 05:14:16.770538+01:002023-11-09 05:14:16.770538+01:00
779982810314100.00.00.0115672552023-11-09 05:14:16.770916+01:002023-11-09 05:14:16.770916+01:00
779983810315100.00.00.0115672562023-11-09 05:14:16.771359+01:002023-11-09 05:14:16.771359+01:00
779984810316100.00.00.0115672572023-11-09 05:14:16.771761+01:002023-11-09 05:14:16.771761+01:00
\n", - "

779985 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " id percent_price max_price min_price category_id \\\n", - "0 1 100.0 0.0 0.0 1 \n", - "1 2 100.0 0.0 0.0 1 \n", - "2 3 100.0 0.0 0.0 1 \n", - "3 4 100.0 0.0 0.0 1 \n", - "4 5 100.0 0.0 0.0 1 \n", - "... ... ... ... ... ... \n", - "779980 810312 100.0 0.0 0.0 1 \n", - "779981 810313 100.0 0.0 0.0 1 \n", - "779982 810314 100.0 0.0 0.0 1 \n", - "779983 810315 100.0 0.0 0.0 1 \n", - "779984 810316 100.0 0.0 0.0 1 \n", - "\n", - " pricing_formula_id representation_id \\\n", - "0 1 1 \n", - "1 1 2 \n", - "2 1 3 \n", - "3 1 4 \n", - "4 1 5 \n", - "... ... ... \n", - "779980 1 567254 \n", - "779981 4 567254 \n", - "779982 1 567255 \n", - "779983 1 567256 \n", - "779984 1 567257 \n", - "\n", - " created_at updated_at \n", - "0 2023-10-13 13:02:32.517137+02:00 2023-10-13 13:02:32.517137+02:00 \n", - "1 2023-10-13 13:02:32.531505+02:00 2023-10-13 13:02:32.531505+02:00 \n", - "2 2023-10-13 13:02:32.532172+02:00 2023-10-13 13:02:32.532172+02:00 \n", - "3 2023-10-13 13:02:32.532665+02:00 2023-10-13 13:02:32.532665+02:00 \n", - "4 2023-10-13 13:02:32.533142+02:00 2023-10-13 13:02:32.533142+02:00 \n", - "... ... ... \n", - "779980 2023-11-09 05:14:16.770130+01:00 2023-11-09 05:14:16.770130+01:00 \n", - "779981 2023-11-09 05:14:16.770538+01:00 2023-11-09 05:14:16.770538+01:00 \n", - "779982 2023-11-09 05:14:16.770916+01:00 2023-11-09 05:14:16.770916+01:00 \n", - "779983 2023-11-09 05:14:16.771359+01:00 2023-11-09 05:14:16.771359+01:00 \n", - "779984 2023-11-09 05:14:16.771761+01:00 2023-11-09 05:14:16.771761+01:00 \n", - "\n", - "[779985 rows x 9 columns]" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "load_dataset_2(company_number, \"products_groups\")" - ] - }, - { - "cell_type": "markdown", - "id": "45d5261f-4d46-49cb-8582-dd2121122b05", - "metadata": {}, - "source": [ - "# 1 - Comportement d'achat" - ] - }, - { - "cell_type": "markdown", - "id": "3479960c-0d23-45f1-8fff-d87395205731", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "## Outlier" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "9376af51-4320-44b6-8f30-1e1234371556", - "metadata": {}, - "outputs": [], - "source": [ - "def outlier_detection(directory_path = \"1\", coupure = 1):\n", - " nom_dataframe = 'df'+ directory_path +'_tickets'\n", - " df_tickets = globals()[nom_dataframe].copy()\n", - " df_tickets_kpi = tickets_kpi_function(df_tickets)\n", - "\n", - " if directory_path == \"101\" :\n", - " df_tickets_1 = df101_tickets_1.copy()\n", - " df_tickets_kpi_1 = tickets_kpi_function(df_tickets_1)\n", - "\n", - " df_tickets_kpi = pd.concat([df_tickets_kpi, df_tickets_kpi_1])\n", - " # Part du CA par customer\n", - " total_amount_share = df_tickets_kpi.groupby('customer_id')['total_amount'].sum().reset_index()\n", - " total_amount_share['total_amount_entreprise'] = total_amount_share['total_amount'].sum()\n", - " total_amount_share['share_total_amount'] = total_amount_share['total_amount']/total_amount_share['total_amount_entreprise']\n", - " \n", - " total_amount_share_index = total_amount_share.set_index('customer_id')\n", - " df_circulaire = total_amount_share_index['total_amount'].sort_values(axis = 0, ascending = False)\n", - " \n", - " top = df_circulaire[:coupure]\n", - " rest = df_circulaire[coupure:]\n", - " \n", - " # Calculez la somme du reste\n", - " rest_sum = rest.sum()\n", - " \n", - " # Créez une nouvelle série avec les cinq plus grandes parts et 'Autre'\n", - " new_series = pd.concat([top, pd.Series([rest_sum], index=['Autre'])])\n", - " \n", - " # Créez le graphique circulaire\n", - " plt.figure(figsize=(3, 3))\n", - " plt.pie(new_series, labels=new_series.index, autopct='%1.1f%%', startangle=140, pctdistance=0.5)\n", - " plt.axis('equal') # Assurez-vous que le graphique est un cercle\n", - " plt.title('Répartition des montants totaux')\n", - " plt.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "73211efc-b79f-4235-a250-c0699ea277bf", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "outlier_detection(directory_path = \"1\", coupure = 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "5c8e9bb7-a403-4898-b40b-47aa37237bc6", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idlastnamefirstnamebirthdateemailstreet_idcreated_atupdated_atcivilityis_partnerextradeleted_atreferencegenderis_email_trueextra_fieldopt_instructure_idnoteprofessionlanguagemcp_contact_idneed_reloadlast_buying_datemax_priceticket_sumaverage_pricefidelityaverage_purchase_delayaverage_price_basketaverage_ticket_baskettotal_pricepreferred_categorypreferred_supplierpreferred_formulapurchase_countfirst_buying_datelast_visiting_datezipcodecountryagetenant_id
582011NaNNaNNaNNaN22020-09-03 13:11:25.569167+02:002023-03-04 13:27:42.761679+01:00NaNFalseNaNNaNNaN2TrueNaNFalseNaNNaNNaNNaNNaNFalse2023-11-08 03:20:0745.012547757.030122330831-67.79096913.751531.9560878821221.5NaNNaNNaN6414722013-06-10 12:37:58+02:00NaNNaNfrNaN1311
\n", - "
" - ], - "text/plain": [ - " id lastname firstname birthdate email street_id \\\n", - "58201 1 NaN NaN NaN NaN 2 \n", - "\n", - " created_at updated_at \\\n", - "58201 2020-09-03 13:11:25.569167+02:00 2023-03-04 13:27:42.761679+01:00 \n", - "\n", - " civility is_partner extra deleted_at reference gender \\\n", - "58201 NaN False NaN NaN NaN 2 \n", - "\n", - " is_email_true extra_field opt_in structure_id note profession \\\n", - "58201 True NaN False NaN NaN NaN \n", - "\n", - " language mcp_contact_id need_reload last_buying_date max_price \\\n", - "58201 NaN NaN False 2023-11-08 03:20:07 45.0 \n", - "\n", - " ticket_sum average_price fidelity average_purchase_delay \\\n", - "58201 1254775 7.030122 330831 -67.790969 \n", - "\n", - " average_price_basket average_ticket_basket total_price \\\n", - "58201 13.75153 1.956087 8821221.5 \n", - "\n", - " preferred_category preferred_supplier preferred_formula \\\n", - "58201 NaN NaN NaN \n", - "\n", - " purchase_count first_buying_date last_visiting_date zipcode \\\n", - "58201 641472 2013-06-10 12:37:58+02:00 NaN NaN \n", - "\n", - " country age tenant_id \n", - "58201 fr NaN 1311 " - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = load_dataset_2('1', 'customersplus')\n", - "df[df['id'] == 1]" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "4455b6b9-8395-47ea-b976-d98a2d3c782c", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "outlier_detection(directory_path = \"2\", coupure = 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "ee16cf31-18e1-4803-b003-ba1d1a3fc333", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idlastnamefirstnamebirthdateemailstreet_idcreated_atupdated_atcivilityis_partnerextradeleted_atreferencegenderis_email_trueextra_fieldopt_instructure_idnoteprofessionlanguagemcp_contact_idneed_reloadlast_buying_datemax_priceticket_sumaverage_pricefidelityaverage_purchase_delayaverage_price_basketaverage_ticket_baskettotal_pricepreferred_categorypreferred_supplierpreferred_formulapurchase_countfirst_buying_datelast_visiting_datezipcodecountryagetenant_id
17024612184NaNNaNNaNNaN35642023-10-12 12:25:15.438714+02:002023-11-09 05:14:01.944407+01:00NaNFalseNaNNaNNaN2TrueNaNFalse1275.0NaNNaNNaNNaNFalse2023-11-08 19:17:50.56500075.051283112.6454381973580.031.7195772.5083816484972.4NaNNaNNaN2044472020-08-28 08:55:55.710000+02:00NaNNaNNaNNaN1879
\n", - "
" - ], - "text/plain": [ - " id lastname firstname birthdate email street_id \\\n", - "170246 12184 NaN NaN NaN NaN 3564 \n", - "\n", - " created_at updated_at \\\n", - "170246 2023-10-12 12:25:15.438714+02:00 2023-11-09 05:14:01.944407+01:00 \n", - "\n", - " civility is_partner extra deleted_at reference gender \\\n", - "170246 NaN False NaN NaN NaN 2 \n", - "\n", - " is_email_true extra_field opt_in structure_id note profession \\\n", - "170246 True NaN False 1275.0 NaN NaN \n", - "\n", - " language mcp_contact_id need_reload last_buying_date \\\n", - "170246 NaN NaN False 2023-11-08 19:17:50.565000 \n", - "\n", - " max_price ticket_sum average_price fidelity \\\n", - "170246 75.0 512831 12.645438 197358 \n", - "\n", - " average_purchase_delay average_price_basket average_ticket_basket \\\n", - "170246 0.0 31.719577 2.508381 \n", - "\n", - " total_price preferred_category preferred_supplier \\\n", - "170246 6484972.4 NaN NaN \n", - "\n", - " preferred_formula purchase_count first_buying_date \\\n", - "170246 NaN 204447 2020-08-28 08:55:55.710000+02:00 \n", - "\n", - " last_visiting_date zipcode country age tenant_id \n", - "170246 NaN NaN NaN NaN 1879 " - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = load_dataset_2('2', 'customersplus')\n", - "df[df['id'] == 12184]" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "4073c986-3e2c-4945-8601-220fea747c9c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idlastnamefirstnamebirthdateemailstreet_idcreated_atupdated_atcivilityis_partnerextradeleted_atreferencegenderis_email_trueextra_fieldopt_instructure_idnoteprofessionlanguagemcp_contact_idneed_reloadlast_buying_datemax_priceticket_sumaverage_pricefidelityaverage_purchase_delayaverage_price_basketaverage_ticket_baskettotal_pricepreferred_categorypreferred_supplierpreferred_formulapurchase_countfirst_buying_datelast_visiting_datezipcodecountryagetenant_id
1026391NaNNaNNaNemail112023-07-20 17:16:27.062822+02:002023-07-20 17:16:27.074952+02:00NaNFalseNaNNaNNaN2TrueNaNFalseNaNNaNNaNNaN1.0FalseNaNNaN0NaN0NaNNaNNaN0.0NaNNaNNaN0NaNNaNNaNfrNaN1879
2244532NaNfirstname2NaNNaN22023-07-21 10:18:44.502496+02:002023-07-21 10:18:44.502496+02:00NaNFalseNaNNaNNaN1TrueNaNFalseNaNNaNNaNjosefNaNFalseNaNNaN0NaN0NaNNaNNaN0.0NaNNaNNaN0NaNNaNNaNchNaN1879
1030133NaNfirstname3NaNNaN32023-07-21 10:18:44.503913+02:002023-07-21 10:18:44.503913+02:00NaNFalseNaNNaNNaN2TrueNaNFalseNaNNaNNaNdominicNaNFalseNaNNaN0NaN0NaNNaNNaN0.0NaNNaNNaN0NaNNaNNaNchNaN1879
1383864NaNfirstname4NaNNaN32023-07-21 10:18:44.504404+02:002023-07-21 10:18:44.504404+02:00NaNFalseNaNNaNNaN2TrueNaNFalseNaNNaNNaNabigailNaNFalseNaNNaN0NaN0NaNNaNNaN0.0NaNNaNNaN0NaNNaNNaNchNaN1879
1900875NaNfirstname5NaNNaN32023-07-21 10:18:44.504841+02:002023-07-21 10:18:44.504841+02:00NaNFalseNaNNaNNaN1TrueNaNFalseNaNNaNNaNsophiaNaNFalseNaNNaN0NaN0NaNNaNNaN0.0NaNNaNNaN0NaNNaNNaNchNaN1879
.................................................................................................................................
101868601387lastname601387firstname601387NaNemail60138735502023-11-09 05:13:57.358715+01:002023-11-09 05:13:57.358715+01:00NaNFalseNaNNaNNaN2TrueNaNFalseNaNNaNNaNdeNaNFalseNaNNaN0NaN0NaNNaNNaN0.0NaNNaNNaN0NaNNaNNaNNaNNaN1879
205168601388lastname601388firstname601388NaNemail60138835502023-11-09 05:13:57.359234+01:002023-11-09 05:13:57.359234+01:00NaNFalseNaNNaNNaN2TrueNaNFalseNaNNaNNaNdeNaNFalse2023-11-09 00:25:24.71600015.0214.010.028.02.028.0NaNNaNNaN12023-11-09 00:25:24.716000+01:00NaNNaNNaNNaN1879
67641601389lastname601389firstname601389NaNemail60138935502023-11-09 05:13:57.360373+01:002023-11-09 05:13:57.360373+01:00NaNFalseNaNNaNNaN2TrueNaNFalseNaNNaNNaNdeNaNFalse2023-11-09 00:28:07.51100015.0215.010.030.02.030.0NaNNaNNaN12023-11-09 00:28:07.511000+01:00NaNNaNNaNNaN1879
67639601390lastname601390firstname601390NaNemail60139035502023-11-09 05:13:57.360903+01:002023-11-09 05:13:57.360903+01:00NaNFalseNaNNaNNaN0TrueNaNFalseNaNNaNNaNNaNNaNFalseNaNNaN0NaN0NaNNaNNaN0.0NaNNaNNaN0NaNNaNNaNNaNNaN1879
256450601391lastname601391firstname601391NaNemail60139135502023-11-09 05:13:57.361432+01:002023-11-09 05:14:18.906054+01:00NaNFalseNaNNaNNaN2TrueNaNFalseNaNNaNNaNNaNNaNFalse2023-11-09 00:36:41.17200015.0215.010.030.02.030.0NaNNaNNaN12023-11-09 00:36:41.172000+01:00NaNNaNNaNNaN1879
\n", - "

275622 rows × 42 columns

\n", - "
" - ], - "text/plain": [ - " id lastname firstname birthdate email \\\n", - "102639 1 NaN NaN NaN email1 \n", - "224453 2 NaN firstname2 NaN NaN \n", - "103013 3 NaN firstname3 NaN NaN \n", - "138386 4 NaN firstname4 NaN NaN \n", - "190087 5 NaN firstname5 NaN NaN \n", - "... ... ... ... ... ... \n", - "101868 601387 lastname601387 firstname601387 NaN email601387 \n", - "205168 601388 lastname601388 firstname601388 NaN email601388 \n", - "67641 601389 lastname601389 firstname601389 NaN email601389 \n", - "67639 601390 lastname601390 firstname601390 NaN email601390 \n", - "256450 601391 lastname601391 firstname601391 NaN email601391 \n", - "\n", - " street_id created_at \\\n", - "102639 1 2023-07-20 17:16:27.062822+02:00 \n", - "224453 2 2023-07-21 10:18:44.502496+02:00 \n", - "103013 3 2023-07-21 10:18:44.503913+02:00 \n", - "138386 3 2023-07-21 10:18:44.504404+02:00 \n", - "190087 3 2023-07-21 10:18:44.504841+02:00 \n", - "... ... ... \n", - "101868 3550 2023-11-09 05:13:57.358715+01:00 \n", - "205168 3550 2023-11-09 05:13:57.359234+01:00 \n", - "67641 3550 2023-11-09 05:13:57.360373+01:00 \n", - "67639 3550 2023-11-09 05:13:57.360903+01:00 \n", - "256450 3550 2023-11-09 05:13:57.361432+01:00 \n", - "\n", - " updated_at civility is_partner extra \\\n", - "102639 2023-07-20 17:16:27.074952+02:00 NaN False NaN \n", - "224453 2023-07-21 10:18:44.502496+02:00 NaN False NaN \n", - "103013 2023-07-21 10:18:44.503913+02:00 NaN False NaN \n", - "138386 2023-07-21 10:18:44.504404+02:00 NaN False NaN \n", - "190087 2023-07-21 10:18:44.504841+02:00 NaN False NaN \n", - "... ... ... ... ... \n", - "101868 2023-11-09 05:13:57.358715+01:00 NaN False NaN \n", - "205168 2023-11-09 05:13:57.359234+01:00 NaN False NaN \n", - "67641 2023-11-09 05:13:57.360373+01:00 NaN False NaN \n", - "67639 2023-11-09 05:13:57.360903+01:00 NaN False NaN \n", - "256450 2023-11-09 05:14:18.906054+01:00 NaN False NaN \n", - "\n", - " deleted_at reference gender is_email_true extra_field opt_in \\\n", - "102639 NaN NaN 2 True NaN False \n", - "224453 NaN NaN 1 True NaN False \n", - "103013 NaN NaN 2 True NaN False \n", - "138386 NaN NaN 2 True NaN False \n", - "190087 NaN NaN 1 True NaN False \n", - "... ... ... ... ... ... ... \n", - "101868 NaN NaN 2 True NaN False \n", - "205168 NaN NaN 2 True NaN False \n", - "67641 NaN NaN 2 True NaN False \n", - "67639 NaN NaN 0 True NaN False \n", - "256450 NaN NaN 2 True NaN False \n", - "\n", - " structure_id note profession language mcp_contact_id need_reload \\\n", - "102639 NaN NaN NaN NaN 1.0 False \n", - "224453 NaN NaN NaN josef NaN False \n", - "103013 NaN NaN NaN dominic NaN False \n", - "138386 NaN NaN NaN abigail NaN False \n", - "190087 NaN NaN NaN sophia NaN False \n", - "... ... ... ... ... ... ... \n", - "101868 NaN NaN NaN de NaN False \n", - "205168 NaN NaN NaN de NaN False \n", - "67641 NaN NaN NaN de NaN False \n", - "67639 NaN NaN NaN NaN NaN False \n", - "256450 NaN NaN NaN NaN NaN False \n", - "\n", - " last_buying_date max_price ticket_sum average_price \\\n", - "102639 NaN NaN 0 NaN \n", - "224453 NaN NaN 0 NaN \n", - "103013 NaN NaN 0 NaN \n", - "138386 NaN NaN 0 NaN \n", - "190087 NaN NaN 0 NaN \n", - "... ... ... ... ... \n", - "101868 NaN NaN 0 NaN \n", - "205168 2023-11-09 00:25:24.716000 15.0 2 14.0 \n", - "67641 2023-11-09 00:28:07.511000 15.0 2 15.0 \n", - "67639 NaN NaN 0 NaN \n", - "256450 2023-11-09 00:36:41.172000 15.0 2 15.0 \n", - "\n", - " fidelity average_purchase_delay average_price_basket \\\n", - "102639 0 NaN NaN \n", - "224453 0 NaN NaN \n", - "103013 0 NaN NaN \n", - "138386 0 NaN NaN \n", - "190087 0 NaN NaN \n", - "... ... ... ... \n", - "101868 0 NaN NaN \n", - "205168 1 0.0 28.0 \n", - "67641 1 0.0 30.0 \n", - "67639 0 NaN NaN \n", - "256450 1 0.0 30.0 \n", - "\n", - " average_ticket_basket total_price preferred_category \\\n", - "102639 NaN 0.0 NaN \n", - "224453 NaN 0.0 NaN \n", - "103013 NaN 0.0 NaN \n", - "138386 NaN 0.0 NaN \n", - "190087 NaN 0.0 NaN \n", - "... ... ... ... \n", - "101868 NaN 0.0 NaN \n", - "205168 2.0 28.0 NaN \n", - "67641 2.0 30.0 NaN \n", - "67639 NaN 0.0 NaN \n", - "256450 2.0 30.0 NaN \n", - "\n", - " preferred_supplier preferred_formula purchase_count \\\n", - "102639 NaN NaN 0 \n", - "224453 NaN NaN 0 \n", - "103013 NaN NaN 0 \n", - "138386 NaN NaN 0 \n", - "190087 NaN NaN 0 \n", - "... ... ... ... \n", - "101868 NaN NaN 0 \n", - "205168 NaN NaN 1 \n", - "67641 NaN NaN 1 \n", - "67639 NaN NaN 0 \n", - "256450 NaN NaN 1 \n", - "\n", - " first_buying_date last_visiting_date zipcode country \\\n", - "102639 NaN NaN NaN fr \n", - "224453 NaN NaN NaN ch \n", - "103013 NaN NaN NaN ch \n", - "138386 NaN NaN NaN ch \n", - "190087 NaN NaN NaN ch \n", - "... ... ... ... ... \n", - "101868 NaN NaN NaN NaN \n", - "205168 2023-11-09 00:25:24.716000+01:00 NaN NaN NaN \n", - "67641 2023-11-09 00:28:07.511000+01:00 NaN NaN NaN \n", - "67639 NaN NaN NaN NaN \n", - "256450 2023-11-09 00:36:41.172000+01:00 NaN NaN NaN \n", - "\n", - " age tenant_id \n", - "102639 NaN 1879 \n", - "224453 NaN 1879 \n", - "103013 NaN 1879 \n", - "138386 NaN 1879 \n", - "190087 NaN 1879 \n", - "... ... ... \n", - "101868 NaN 1879 \n", - "205168 NaN 1879 \n", - "67641 NaN 1879 \n", - "67639 NaN 1879 \n", - "256450 NaN 1879 \n", - "\n", - "[275622 rows x 42 columns]" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.sort_values(by = 'id')" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "475030ad-6a69-4c91-9cd6-943a0edeaf01", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_3/products_purchased_reduced.csv\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "outlier_detection(directory_path = \"3\", coupure = 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "b64d04db-1c3f-4538-9d05-8f7d62c7c046", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idlastnamefirstnamebirthdateemailstreet_idcreated_atupdated_atcivilityis_partnerextradeleted_atreferencegenderis_email_trueextra_fieldopt_instructure_idnoteprofessionlanguagemcp_contact_idneed_reloadlast_buying_datemax_priceticket_sumaverage_pricefidelityaverage_purchase_delayaverage_price_basketaverage_ticket_baskettotal_pricepreferred_categorypreferred_supplierpreferred_formulapurchase_countfirst_buying_datelast_visiting_datezipcodecountryagetenant_id
1057201NaNNaN1961-12-04NaN911592021-03-02 15:35:40.452065+01:002023-11-09 01:31:07.539604+01:00NaNFalseNaNNaNNaN2FalseNaNFalse19715.0NaNNaNNaNNaNFalse2023-11-06 16:57:197500.0229771610.15219614917-39771.16514727.5148112.7102322.332686e+07NaNNaNNaN8477932016-01-01 10:23:36+01:002023-11-06 17:12:0013090fr61.01512
\n", - "
" - ], - "text/plain": [ - " id lastname firstname birthdate email street_id \\\n", - "105720 1 NaN NaN 1961-12-04 NaN 91159 \n", - "\n", - " created_at updated_at \\\n", - "105720 2021-03-02 15:35:40.452065+01:00 2023-11-09 01:31:07.539604+01:00 \n", - "\n", - " civility is_partner extra deleted_at reference gender \\\n", - "105720 NaN False NaN NaN NaN 2 \n", - "\n", - " is_email_true extra_field opt_in structure_id note profession \\\n", - "105720 False NaN False 19715.0 NaN NaN \n", - "\n", - " language mcp_contact_id need_reload last_buying_date max_price \\\n", - "105720 NaN NaN False 2023-11-06 16:57:19 7500.0 \n", - "\n", - " ticket_sum average_price fidelity average_purchase_delay \\\n", - "105720 2297716 10.152196 14917 -39771.165147 \n", - "\n", - " average_price_basket average_ticket_basket total_price \\\n", - "105720 27.514811 2.710232 2.332686e+07 \n", - "\n", - " preferred_category preferred_supplier preferred_formula \\\n", - "105720 NaN NaN NaN \n", - "\n", - " purchase_count first_buying_date last_visiting_date \\\n", - "105720 847793 2016-01-01 10:23:36+01:00 2023-11-06 17:12:00 \n", - "\n", - " zipcode country age tenant_id \n", - "105720 13090 fr 61.0 1512 " - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = load_dataset_2('3', 'customersplus')\n", - "df[df['id'] == 1]" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "1d817bee-3ded-4066-9f91-6cf095591b0e", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_4/products_purchased_reduced.csv\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "outlier_detection(directory_path = \"4\", coupure = 2)" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "4cc07982-1070-439b-a579-fd3f351778b3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idlastnamefirstnamebirthdateemailstreet_idcreated_atupdated_atcivilityis_partnerextradeleted_atreferencegenderis_email_trueextra_fieldopt_instructure_idnoteprofessionlanguagemcp_contact_idneed_reloadlast_buying_datemax_priceticket_sumaverage_pricefidelityaverage_purchase_delayaverage_price_basketaverage_ticket_baskettotal_pricepreferred_categorypreferred_supplierpreferred_formulapurchase_countfirst_buying_datelast_visiting_datezipcodecountryagetenant_id
3007542NaNNaNNaNNaN22020-09-25 19:09:07.669208+02:002021-11-30 02:07:28.120188+01:00NaNFalseNaNNaNNaN2FalseNaNFalseNaNNaNNaNNaNNaNFalse2023-11-07 16:33:09360.012372246.0562482368500.01552813.4936122.2280487492935.0NaNNaNNaN5552951901-01-01 00:09:21+00:09NaNNaNNaNNaN1342
\n", - "
" - ], - "text/plain": [ - " id lastname firstname birthdate email street_id \\\n", - "300754 2 NaN NaN NaN NaN 2 \n", - "\n", - " created_at updated_at \\\n", - "300754 2020-09-25 19:09:07.669208+02:00 2021-11-30 02:07:28.120188+01:00 \n", - "\n", - " civility is_partner extra deleted_at reference gender \\\n", - "300754 NaN False NaN NaN NaN 2 \n", - "\n", - " is_email_true extra_field opt_in structure_id note profession \\\n", - "300754 False NaN False NaN NaN NaN \n", - "\n", - " language mcp_contact_id need_reload last_buying_date max_price \\\n", - "300754 NaN NaN False 2023-11-07 16:33:09 360.0 \n", - "\n", - " ticket_sum average_price fidelity average_purchase_delay \\\n", - "300754 1237224 6.056248 236850 0.015528 \n", - "\n", - " average_price_basket average_ticket_basket total_price \\\n", - "300754 13.493612 2.228048 7492935.0 \n", - "\n", - " preferred_category preferred_supplier preferred_formula \\\n", - "300754 NaN NaN NaN \n", - "\n", - " purchase_count first_buying_date last_visiting_date zipcode \\\n", - "300754 555295 1901-01-01 00:09:21+00:09 NaN NaN \n", - "\n", - " country age tenant_id \n", - "300754 NaN NaN 1342 " - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = load_dataset_2('4', 'customersplus')\n", - "df[df['id'] == 2]" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "f74a9e62-a0f7-41cf-9834-78a99204547c", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "outlier_detection(directory_path = \"101\", coupure = 2)" - ] - }, - { - "cell_type": "markdown", - "id": "dbebfa92-310a-417b-a7fa-36ac3593db06", - "metadata": {}, - "source": [ - "## Evolution des commandes" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "06137694-7f50-47ba-8749-68471ececc1e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_101/products_purchased_reduced.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_101/products_purchased_reduced_1.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : projet-bdc2324-team1/0_Input/Company_101/campaigns_information.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - ":13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n" - ] - } - ], - "source": [ - "# Importation - Chargement des données temporaires\n", - "company_number = \"101\"\n", - "nom_dataframe = 'df'+ company_number +'_tickets'\n", - "purchases = display_databases(company_number, file_name = 'products_purchased_reduced', datetime_col = ['purchase_date'])\n", - "purchases_1 = display_databases(company_number, file_name = 'products_purchased_reduced_1', datetime_col = ['purchase_date'])\n", - "campaigns = display_databases(company_number,'campaigns_information', ['sent_at'])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "d076ee62-2d87-48ad-b2c8-0b1704504b7d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre de doublons: 9999540\n", - "Nombre de non-doublons: 12451096\n" - ] - } - ], - "source": [ - "purchases = pd.concat([purchases, purchases_1])\n", - "\n", - "# Comptage des doublons\n", - "nb_doublons = purchases_all.duplicated().sum()\n", - "\n", - "# Comptage des non-doublons\n", - "nb_non_doublons = len(purchases_all) - nb_doublons\n", - "\n", - "print(\"Nombre de doublons:\", nb_doublons)\n", - "print(\"Nombre de non-doublons:\", nb_non_doublons)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "3da0f4ff-2a66-4037-a491-66e4585ef6ab", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "12450636" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(purchases)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "e6b962d4-1a30-4133-ac0f-359f7afef42c", - "metadata": {}, - "outputs": [], - "source": [ - "# Mois du premier achat\n", - "purchase_min = purchases.groupby(['customer_id'])['purchase_date'].min().reset_index()\n", - "purchase_min.rename(columns = {'purchase_date' : 'first_purchase_event'}, inplace = True)\n", - "purchase_min['first_purchase_event'] = pd.to_datetime(purchase_min['first_purchase_event'])\n", - "purchase_min['first_purchase_month'] = pd.to_datetime(purchase_min['first_purchase_event'].dt.strftime('%Y-%m'))\n", - "\n", - "# Mois du premier mails\n", - "first_mail_received = campaigns.groupby('customer_id')['sent_at'].min().reset_index()\n", - "first_mail_received.rename(columns = {'sent_at' : 'first_email_reception'}, inplace = True)\n", - "first_mail_received['first_email_reception'] = pd.to_datetime(first_mail_received['first_email_reception'])\n", - "first_mail_received['first_email_month'] = pd.to_datetime(first_mail_received['first_email_reception'].dt.strftime('%Y-%m'))\n", - "\n", - "# Fusion \n", - "known_customer = pd.merge(purchase_min[['customer_id', 'first_purchase_month']], \n", - " first_mail_received[['customer_id', 'first_email_month']], on = 'customer_id', how = 'outer')\n", - "\n", - "# Mois à partir duquel le client est considere comme connu\n", - "known_customer['known_date'] = pd.to_datetime(known_customer[['first_email_month', 'first_purchase_month']].min(axis = 1), utc = True, format = 'ISO8601')" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "9c56e5ac-cbf4-4343-80ba-be2ab8b60eab", - "metadata": {}, - "outputs": [], - "source": [ - "# Nombre de commande par mois\n", - "purchases_count = pd.merge(purchases[['customer_id', 'purchase_id', 'purchase_date']].drop_duplicates(), known_customer[['customer_id', 'known_date']], on = ['customer_id'], how = 'inner')\n", - "purchases_count['is_customer_known'] = purchases_count['purchase_date'] > purchases_count['known_date'] + pd.DateOffset(months=1)\n", - "purchases_count['purchase_date_month'] = pd.to_datetime(purchases_count['purchase_date'].dt.strftime('%Y-%m'))\n", - "purchases_count = purchases_count[purchases_count['customer_id'] != 1]\n", - "\n", - "# Nombre de commande par mois par type de client\n", - "nb_purchases_graph = purchases_count.groupby(['purchase_date_month', 'is_customer_known'])['purchase_id'].count().reset_index()\n", - "nb_purchases_graph.rename(columns = {'purchase_id' : 'nb_purchases'}, inplace = True)\n", - "\n", - "nb_purchases_graph_2 = purchases_count.groupby(['purchase_date_month', 'is_customer_known'])['customer_id'].nunique().reset_index()\n", - "nb_purchases_graph_2.rename(columns = {'customer_id' : 'nb_new_customer'}, inplace = True)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "8c1aed44-03d3-49f9-b96c-b06a0df03dde", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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piKzZ8/GN998U51uExERkYZS6xGrTZs2Yd26dYiKisKxY8cQGRmJefPmITIyUiVOoVCovBdClGsrq2xMRfE1iSkrODgYOTk50uv69euV5kVERESaS61HrP71r3/hiy++wIcffggAcHJywtWrVzF79myMHDkSVlZWAB6PJjVt2lRaLzMzUxpdsrKyQmFhIbKzs1VGrTIzM9GlSxcp5tatW+X2f/v2bZXtHD58WGV5dnY2ioqKyo1kPUlXVxe6uro16T4RERFpGLUesXrw4AEaNFBNUUtLS5puwd7eHlZWVtizZ4+0vLCwEPHx8VLR5OLiAm1tbZWY9PR0nD59WopxdXVFTk4Ojhw5IsUcPnwYOTk5KjGnT59Genq6FBMTEwNdXV24uLjI3HMiIiLSRGo9YtW/f3/MmjULtra2aNeuHY4fP44FCxbA398fwONTc4GBgQgLC0OrVq3QqlUrhIWFwcDAAD4+PgAApVKJ0aNHY8qUKTAzM4OpqSmmTp0KJycn6S7BNm3aoE+fPhgzZgyWL18OABg7diy8vb3h4OAAAPDw8EDbtm3h6+uLuXPnIisrC1OnTsWYMWN4RyAREREBUPPCKiIiAjNmzEBAQAAyMzNhbW2NcePG4euvv5ZigoKC8PDhQwQEBCA7OxudO3dGTEwMjIyMpJiFCxeiYcOGGDp0KB4+fIhevXph7dq10NLSkmLWr1+PSZMmSXcPDhgwAEuWLJGWa2lpYdeuXQgICICbmxv09fXh4+ODefPm1cEnQURERJpAIYQQ9Z3EyyQ3NxdKpRI5OTkc6XpR8ZE2RKTJKvp/GFB7/x+r6/3VUFV/f6v1NVZEREREmoSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMWFgRERERyYSFFREREZFMGtZ3AkT0f0KVFbTl1H0eRERUYxyxIiIiIpIJCysiIiIimbCwIiIiIpJJtQuryMhI7Nq1S3ofFBSExo0bo0uXLrh69aqsyRERERFpkmoXVmFhYdDX1wcAHDx4EEuWLEF4eDiaNGmCzz//XPYEiYiIiDRFte8KvH79Olq2bAkA2LZtG9577z2MHTsWbm5u6N69u9z5EREREWmMao9YNWrUCHfu3AEAxMTEoHfv3gAAPT09PHz4UN7siIiIiDRItUes3N3d8fHHH+P111/HhQsX4OXlBQA4c+YM7Ozs5M6PiIiISGNUe8Tqhx9+gKurK27fvo3NmzfDzMwMAJCcnIxhw4bJniARERGRpqj2iFVubi6+//57NGigWpOFhobi+vXrsiVGREREpGmqPWJlb2+Pf/75p1x7VlYW7O3tZUmKiIiISBNVu7ASQlTYfv/+fejp6T13QkRERESaqsqnAidPngwAUCgU+Prrr2FgYCAtKy4uxuHDh9GhQwfZEyQiIiLSFFUurI4fPw7g8YjVqVOnoKOjIy3T0dFB+/btMXXqVPkzJCIiItIQVS6s9u3bBwAYNWoUFi9eDGNj41pLioiIiEgTVfuuwDVr1tRGHkREREQar9qFFQAkJSXhl19+wbVr11BYWKiybMuWLbIkRkRERKRpqn1X4MaNG+Hm5oazZ89i69atKCoqwtmzZ7F3714olcrayJGIiIhII1S7sAoLC8PChQuxc+dO6OjoYPHixUhNTcXQoUNha2tbGzkSERERaYRqF1aXL1+Wng+oq6uLvLw8KBQKfP7551ixYoXsCRIRERFpimoXVqamprh37x4AoFmzZjh9+jQA4O7du3jw4IG82RERERFpkGpfvN61a1fs2bMHTk5OGDp0KD777DPs3bsXe/bsQa9evWojRyIiIiKNUO3CasmSJcjPzwcABAcHQ1tbGwkJCRg8eDBmzJghe4JEREREmqLahZWpqan0c4MGDRAUFISgoCBZkyIiIiLSRDWax6qkpASXLl1CZmYmSkpKVJa98847siRGpKns8qPKtV2p+zSIiKgeVLuwOnToEHx8fHD16lUIIVSWKRQKFBcXy5YcERERkSap9l2Bn3zyCTp16oTTp08jKysL2dnZ0isrK0v2BP/++2989NFHMDMzg4GBATp06IDk5GRpuRACoaGhsLa2hr6+Prp3744zZ86obKOgoAATJ05EkyZNYGhoiAED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ERGRxqlyYZWWllabeRARERFpvCoXVs2bN6/NPIiIiIg0XpUKq5MnT1Z5g87OzjVOhoiIiEiTVamw6tChg8r1VZXhtVdERET0sqrSXYFpaWn466+/kJaWhs2bN8Pe3h5Lly7F8ePHcfz4cSxduhQtWrTA5s2baztfIiIiIrVVpRGrJ6+vev/99/H999+jX79+UpuzszNsbGwwY8YMDBo0SPYkiYiIqG68aBN21rVqz2N16tQp2Nvbl2u3t7fH2bNnZUmKiIiISBNVe+b1Nm3aYObMmVi1ahX09PQAAAUFBZg5cybatGkje4JEL4uK/kq8UvdpEBHRc6h2YfXjjz+if//+sLGxQfv27QEAJ06cgEKhwM6dO2VPkIiIiEhTVLuwevPNN5GWloZ169bh3LlzEELggw8+gI+PDwwNDWsjRyIiIqquUOVT2nPqNo+XTLULKwAwMDDA2LFj5c6FiIiISKPxIcxEREREMmFhRURERCQTFlZEREREMmFhRURERCSTGhVWd+/exX/+8x8EBwcjKysLAHDs2DH8/fffsiZHREREpEmqfVfgyZMn0bt3byiVSly5cgVjxoyBqakptm7diqtXr+K///1vbeRJREREpPaqPWI1efJk+Pn54eLFi9LM6wDQt29f7N+/X9bkiIiIiDRJtQurpKQkjBs3rlx7s2bNkJGRIUtSRERERJqo2oWVnp4ecnNzy7WfP38e5ubmsiRFREREpImqXVgNHDgQ3377LYqKigAACoUC165dwxdffIEhQ4bIniARERGRpqh2YTVv3jzcvn0bFhYWePjwIbp164aWLVvCyMgIs2bNqo0ciYiIiDRCte8KNDY2RkJCAvbu3Ytjx46hpKQEHTt2RO/evWsjPyIiIiKNUa3C6tGjR9DT00NKSgp69uyJnj171lZeRERERBqnWqcCGzZsiObNm6O4uLi28iEiIiLSWNU+FfjVV18hODgY69atg6mpaW3kRERE9OIJVT6lPadu86BaVe3C6vvvv8elS5dgbW2N5s2bw9DQUGX5sWPHZEuOiIiISJNUu7AaNGhQLaRBREREpPmqXViFhITURh5EREREGq/ahVWpo0ePIjU1FQqFAm3atIGLi4uceRERERFpnGoXVjdu3MCwYcNw4MABNG7cGABw9+5ddOnSBRs2bICNjY3cORIRERFphGrPvO7v74+ioiKkpqYiKysLWVlZSE1NhRACo0ePro0ciYiIiDRCtUes/vzzTyQmJsLBwUFqc3BwQEREBNzc3GRNjoiIiEiTVHvEytbWVnoA85MePXqEZs2ayZIUERERkSaqdmEVHh6OiRMn4ujRoxBCAHh8Iftnn32GefPmyZ4gERERkaao0qlAExMTKBQK6X1eXh46d+6Mhg0fr/7o0SM0bNgQ/v7+nOeKiIiIXlpVKqwWLVpUy2kQERERab4qFVYjR46s7TyIiIiINF6NJwjNzMxEZmYmSkpKVNqdnZ2fOykiIiIiTVTtwio5ORkjR46U5q56kkKhQHFxsWzJEREREWmSahdWo0aNQuvWrbFq1SpYWlqqXNRORERE9DKrdmGVlpaGLVu2oGXLlrWRDxEREZHGqvY8Vr169cKJEydqIxciIiIijVbtEav//Oc/GDlyJE6fPg1HR0doa2urLB8wYIBsyRERERFpkmoXVomJiUhISMDu3bvLLePF60RERPQyq/apwEmTJsHX1xfp6ekoKSlRebGoIiIiopdZtQurO3fu4PPPP4elpWVt5ENERESksapdWA0ePBj79u2rjVyeafbs2VAoFAgMDJTahBAIDQ2FtbU19PX10b17d5w5c0ZlvYKCAkycOBFNmjSBoaEhBgwYgBs3bqjEZGdnw9fXF0qlEkqlEr6+vrh7965KzLVr19C/f38YGhqiSZMmmDRpEgoLC2uru0RERKRhqn2NVevWrREcHIyEhAQ4OTmVu3h90qRJsiX3pKSkJKxYsaLczO7h4eFYsGAB1q5di9atW2PmzJlwd3fH+fPnYWRkBAAIDAzEjh07sHHjRpiZmWHKlCnw9vZGcnIytLS0AAA+Pj64ceMGoqOjAQBjx46Fr68vduzYAQAoLi6Gl5cXzM3NkZCQgDt37mDkyJEQQiAiIqJW+kxERESapUZ3BTZq1Ajx8fGIj49XWaZQKGqlsLp//z6GDx+OlStXYubMmVK7EAKLFi3C9OnTMXjwYABAZGQkLC0tERUVhXHjxiEnJwerVq3CTz/9hN69ewMA1q1bBxsbG/zxxx/w9PREamoqoqOjcejQIXTu3BkAsHLlSri6uuL8+fNwcHBATEwMzp49i+vXr8Pa2hoAMH/+fPj5+WHWrFkwNjaWvd9ERESkWap9KjAtLe2pr7/++qs2csT48ePh5eUlFUZP5pKRkQEPDw+pTVdXF926dUNiYiKAx4/gKSoqUomxtraGo6OjFHPw4EEolUqpqAKAt956C0qlUiXG0dFRKqoAwNPTEwUFBUhOTn5q7gUFBcjNzVV5ERER0Yupxg9hBiA9K7A2H2uzceNGHDt2DElJSeWWZWRkAEC5C+ktLS1x9epVKUZHRwcmJiblYkrXz8jIgIWFRbntW1hYqMSU3Y+JiQl0dHSkmIrMnj0b33zzzbO6SURERC+Aao9YAcB///tfODk5QV9fH/r6+nB2dsZPP/0kd264fv06PvvsM6xbtw56enpPjStb2AkhnlnslY2pKL4mMWUFBwcjJydHel2/fr3SvIiIiEhzVbuwWrBgAT799FP069cPP//8MzZt2oQ+ffrgk08+wcKFC2VNLjk5GZmZmXBxcUHDhg3RsGFDxMfH4/vvv0fDhg2lEaSyI0aZmZnSMisrKxQWFiI7O7vSmFu3bpXb/+3bt1Viyu4nOzsbRUVFlU49oaurC2NjY5UXERERvZiqXVhFRERg2bJlmDNnDgYMGICBAwciPDwcS5cuxffffy9rcr169cKpU6eQkpIivTp16oThw4cjJSUFr776KqysrLBnzx5pncLCQsTHx6NLly4AABcXF2hra6vEpKen4/Tp01KMq6srcnJycOTIESnm8OHDyMnJUYk5ffo00tPTpZiYmBjo6urCxcVF1n4TERGRZqr2NVbp6elSsfGkLl26qBQdcjAyMoKjo6NKm6GhIczMzKT2wMBAhIWFoVWrVmjVqhXCwsJgYGAAHx8fAIBSqcTo0aMxZcoUmJmZwdTUFFOnToWTk5N0MXybNm3Qp08fjBkzBsuXLwfweLoFb29vODg4AAA8PDzQtm1b+Pr6Yu7cucjKysLUqVMxZswYjkIRERERgBqMWLVs2RI///xzufZNmzahVatWsiRVHUFBQQgMDERAQAA6deqEv//+GzExMdIcVgCwcOFCDBo0CEOHDoWbmxsMDAywY8cOaQ4rAFi/fj2cnJzg4eEBDw+PcteNaWlpYdeuXdDT04ObmxuGDh2KQYMGYd68eXXaXyIiIlJf1R6x+uabb/DBBx9g//79cHNzg0KhQEJCAmJjYyssuOQWFxen8l6hUCA0NBShoaFPXUdPTw8RERGVTuRpamqKdevWVbpvW1tb7Ny5szrpEhER0Uuk2iNWQ4YMweHDh9GkSRNs27YNW7ZsQZMmTXDkyBG8++67tZEjERERkUao0TxWLi4uzxzdISIiInrZ1GgeKyIiIiIqr8ojVg0aNHjmpJsKhQKPHj167qSIiIiINFGVC6utW7c+dVliYiIiIiKkR9wQERERvYyqXFgNHDiwXNu5c+cQHByMHTt2YPjw4fj3v/8ta3JEREREmqRG11jdvHkTY8aMgbOzMx49eoSUlBRERkbC1tZW7vyIiIiINEa1CqucnBxMmzYNLVu2xJkzZxAbG4sdO3aUmx2diIiI6GVU5VOB4eHhmDNnDqysrLBhw4YKTw0SERERvcyqXFh98cUX0NfXR8uWLREZGYnIyMgK47Zs2SJbckRERESapMqF1YgRI5453QIRERHRy6zKhdXatWtrMQ0iIiIizceZ14mIiIhkwsKKiIiISCYsrIiIiIhkwsKKiIiISCYsrIiIiIhkwsKKiIiISCZVnm6BiIiI/k+osoK2nLrPg9QOR6yIiIiIZMLCioiIiEgmLKyIiIiIZMLCioiIiEgmLKyIiIiIZMLCioiIiEgmLKyIiIiIZMLCioiIiEgmLKyIiIiIZMLCioiIiEgmfKQNERERyYOP+uGIFREREZFcWFgRERERyYSFFREREZFMeI0VERHRC8guP6rC9it1m8ZLhyNWRERERDLhiBUREVEd4AjSy4EjVkREREQyYWFFREREJBMWVkREREQyYWFFREREJBMWVkREREQy4V2BREREpJnU8NmEHLEiIiIikgkLKyIiIiKZsLAiIiIikgkLKyIiIiKZsLAiIiIikgkLKyIiIiKZsLAiIiIikgkLKyIiIiKZsLAiIiIikgkLKyIiIiKZsLAiIiIikgkLKyIiIiKZsLAiIiIikgkLKyIiIiKZsLAiIiIikknD+k6AiIhI09jlR5Vru1L3aZAa4ogVERERkUw4YkVERKTuQpUVtOXUfR70TGo9YjV79my88cYbMDIygoWFBQYNGoTz58+rxAghEBoaCmtra+jr66N79+44c+aMSkxBQQEmTpyIJk2awNDQEAMGDMCNGzdUYrKzs+Hr6wulUgmlUglfX1/cvXtXJebatWvo378/DA0N0aRJE0yaNAmFhYW10nciIiLSPGpdWMXHx2P8+PE4dOgQ9uzZg0ePHsHDwwN5eXlSTHh4OBYsWIAlS5YgKSkJVlZWcHd3x71796SYwMBAbN26FRs3bkRCQgLu378Pb29vFBcXSzE+Pj5ISUlBdHQ0oqOjkZKSAl9fX2l5cXExvLy8kJeXh4SEBGzcuBGbN2/GlClT6ubDICIiIrWn1qcCo6OjVd6vWbMGFhYWSE5OxjvvvAMhBBYtWoTp06dj8ODBAIDIyEhYWloiKioK48aNQ05ODlatWoWffvoJvXv3BgCsW7cONjY2+OOPP+Dp6YnU1FRER0fj0KFD6Ny5MwBg5cqVcHV1xfnz5+Hg4ICYmBicPXsW169fh7W1NQBg/vz58PPzw6xZs2BsbFyHnwwRERGpI7UesSorJ+fx+WRTU1MAQFpaGjIyMuDh4SHF6Orqolu3bkhMTAQAJCcno6ioSCXG2toajo6OUszBgwehVCqlogoA3nrrLSiVSpUYR0dHqagCAE9PTxQUFCA5ObmWekxERESaRK1HrJ4khMDkyZPx9ttvw9HREQCQkZEBALC0tFSJtbS0xNWrV6UYHR0dmJiYlIspXT8jIwMWFhbl9mlhYaESU3Y/JiYm0NHRkWIqUlBQgIKCAul9bm5ulfpLREREmkdjRqwmTJiAkydPYsOGDeWWKRQKlfdCiHJtZZWNqSi+JjFlzZ49W7ogXqlUwsbGptK8iIiISHNpRGE1ceJEbN++Hfv27cMrr7witVtZWQFAuRGjzMxMaXTJysoKhYWFyM7OrjTm1q1b5fZ7+/ZtlZiy+8nOzkZRUVG5kawnBQcHIycnR3pdv369qt0mIiIiDaPWhZUQAhMmTMCWLVuwd+9e2Nvbqyy3t7eHlZUV9uzZI7UVFhYiPj4eXbp0AQC4uLhAW1tbJSY9PR2nT5+WYlxdXZGTk4MjR45IMYcPH0ZOTo5KzOnTp5Geni7FxMTEQFdXFy4uLk/tg66uLoyNjVVeRERE9GJS62usxo8fj6ioKPzvf/+DkZGRNGKkVCqhr68PhUKBwMBAhIWFoVWrVmjVqhXCwsJgYGAAHx8fKXb06NGYMmUKzMzMYGpqiqlTp8LJyUm6S7BNmzbo06cPxowZg+XLlwMAxo4dC29vbzg4OAAAPDw80LZtW/j6+mLu3LnIysrC1KlTMWbMGBZLREREBEDNC6tly5YBALp3767SvmbNGvj5+QEAgoKC8PDhQwQEBCA7OxudO3dGTEwMjIyMpPiFCxeiYcOGGDp0KB4+fIhevXph7dq10NLSkmLWr1+PSZMmSXcPDhgwAEuWLJGWa2lpYdeuXQgICICbmxv09fXh4+ODefPm1VLviYiISNOodWElhHhmjEKhQGhoKEJDQ58ao6enh4iICERERDw1xtTUFOvWrat0X7a2tti5c+czcyIiIqKXk1pfY0VERESkSVhYEREREcmEhRURERGRTFhYEREREcmEhRURERGRTFhYEREREclEradbICIiIs1hlx9Vru1K3adRrzhiRURERCQTFlZEREREMmFhRURERCQTFlZEREREMmFhRURERCQT3hVIREREGkkd70LkiBURERGRTFhYEREREcmEhRURERGRTFhYEREREcmEhRURERGRTFhYEREREcmEhRURERGRTDiPFZGmC1VW0JZT93kQERELKyIiInWnjhNhUsVYWBERaRqOUhKpLV5jRURERCQTFlZEREREMuGpQCIiDcPrbYjUF0esiIiIiGTCwoqIiIhIJjwVSET0suDdhES1jiNWRERERDJhYUVEREQkE54KJCJ6SfBuQqLax8KKSMPxlyURkfrgqUAiIiIimXDEioiIKse7CYmqjIUVERHJr6JiDGBBRi88FlZERFQpXsdHVHUsrIiISHYVFWMACzJ68fHidSIiIiKZsLAiIiIikgkLKyIiIiKZsLAiIiIikgkLKyIiIiKZ8K5AIiJSL5yQlDQYCysiIlIrnDeLNBlPBRIRERHJhIUVERERkUxYWBERERHJhIUVERERkUxYWBERERHJhHcF0ouPt24TEVEdYWFFRFRfWPQTvXBYWBER0cuLxS3JjIUVEVE94USYRC8eFlb0wuMvL6KXRA1Gn/j/B5IbCysiInohsEgidcDCiohqH69jIaKXBAsrqnsV/ZIF+IuW6h8LQCJ6TiysiKjWacopmprmaffFrvLrfef1/AkRkcbhzOtEREREMuGIFdW5ikYFAPUcwSAiIqoOjljVwNKlS2Fvbw89PT24uLjgzz//rO+UiKovVFn+RUREz4UjVtW0adMmBAYGYunSpXBzc8Py5cvRt29fnD17Fra2tvWd3ouNFxbLSlOueyIi0iQsrKppwYIFGD16ND7++GMAwKJFi/D7779j2bJlmD17dj1n92JjIUBEROqOpwKrobCwEMnJyfDw8FBp9/DwQGJiYj1lRUREROqCI1bV8M8//6C4uBiWlpYq7ZaWlsjIyKhwnYKCAhQUFEjv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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Graphique en nombre de commande\n", - "purchases_graph = nb_purchases_graph\n", - "\n", - "purchases_graph_used = purchases_graph[purchases_graph[\"purchase_date_month\"] >= datetime(2021,3,1)]\n", - "purchases_graph_used_0 = purchases_graph_used[purchases_graph_used[\"is_customer_known\"]==False]\n", - "purchases_graph_used_1 = purchases_graph_used[purchases_graph_used[\"is_customer_known\"]==True]\n", - "\n", - "\n", - "# Création du barplot\n", - "plt.bar(purchases_graph_used_0[\"purchase_date_month\"], purchases_graph_used_0[\"nb_purchases\"], width=12, label = \"Nouveau client\")\n", - "plt.bar(purchases_graph_used_0[\"purchase_date_month\"], purchases_graph_used_1[\"nb_purchases\"], \n", - " bottom = purchases_graph_used_0[\"nb_purchases\"], width=12, label = \"Ancien client\")\n", - "\n", - "\n", - "# commande pr afficher slt\n", - "plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%b%y'))\n", - "\n", - "\n", - "# Ajout de titres et d'étiquettes\n", - "plt.xlabel('Mois')\n", - "plt.ylabel(\"Nombre d'achats\")\n", - "plt.title(\"Nombre d'achats - 101\")\n", - "plt.legend()\n", - "\n", - "# Affichage du barplot\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "d312276c-4c46-4d29-b6d6-ed110f59890d", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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/fZbqY/cvXtX5bImT54sAIg+ffqI33//XURGRooFCxaIyZMnSzGF96ULFiwQenp64vvvv5faDh06JAwNDcX7778vtmzZIiIiIkRAQIAAINasWSOEECI5OVnMmDFDABD/+c9/pPySk5NVrlNBzrVr1xZffvml2Ldvn1iwYIG03375e6luP65du7YYMmRIkWUV3k8dPnxY2j9//PHHYufOnWL37t3i0aNHKvMtvF8rTsE2GDBggNizZ49Yv369qFOnjlAoFOL69etCiBf75W+//VbafjExMeKvv/4SZ86cEcOHDxcAREREhNLnW7t2bWFvby/q1KkjVq9eLQ4fPixOnTql9r5VXQXbpXbt2iIgIEDa1lWrVhXt27cXnTt3FqGhoSIyMlLMnj1b6OnpiXHjxknvL9iHF/SLkrZf165dhbW1tfj555/FkSNHxI4dO8SUKVNEeHi4FPPrr78KmUwmevfuLbZt2yZ27dolfHx8hJ6enjhw4IAUFxUVJUJCQsR///tfERUVJbZv3y569+4tjI2NxdWrV0vMryy/k3l5eeK9994TRkZGYtasWSIyMlJMmzZN1KtXr8j6vtzfv/rqK7F//36xY8eOUtUvqvpg4X5fsK9wdHQUw4YNE3/88Yf4+eefhY2NjXB0dBSpqaml3saaqNBiMSsrS9SpU0e0aNFC5OfnCyGK7uAiIiIEADFnzhyl+WzZskUAED///LPUVrt2bWFsbCzu3bsntcXHxwsAwt7eXmRkZEjtO3bsEADEzp07pbYhQ4YIAEo/yEIIMX36dAFAREdHS20AhEKhECkpKUqxXbt2FTVr1hRpaWlK7WPHjhVGRkZF4l/2xx9/lLj8wl9GTZdz9OhRAUB88803KmOEUK9YHD16tKhataq4ffu2Uty8efMEAHHp0iUhxP99kd3c3ERubq4Ud+rUKQFAbN68WWobM2ZMkR9HdeXn54ucnBxx+/ZtAUD873//k6YV9L2zZ88WWX7houVlubm54unTp8LU1FTpsymYX2BgoFL8nDlzBACRmJgotTVu3LjItlRFnc/nypUrxS775MmTAoD4+uuvpba2bdsKAOL06dNS26NHj4Senp4wNjZWKgwLvi8//fST1FawI5w/f77Sspo2bSoAiG3btkltOTk5wtraWvTp00dl7rm5uSInJ0cMHz5cNGvWTGkaAGFrayvS09Ol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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# graphique en nombre de client ayant commandé\n", - "purchases_graph = nb_purchases_graph_2\n", - "\n", - "purchases_graph_used = purchases_graph[purchases_graph[\"purchase_date_month\"] >= datetime(2021,4,1)]\n", - "purchases_graph_used_0 = purchases_graph_used[purchases_graph_used[\"is_customer_known\"]==False]\n", - "purchases_graph_used_1 = purchases_graph_used[purchases_graph_used[\"is_customer_known\"]==True]\n", - "\n", - "\n", - "# Création du barplot\n", - "plt.bar(purchases_graph_used_0[\"purchase_date_month\"], purchases_graph_used_0[\"nb_new_customer\"], width=12, label = \"Nouveau client\")\n", - "plt.bar(purchases_graph_used_0[\"purchase_date_month\"], purchases_graph_used_1[\"nb_new_customer\"], \n", - " bottom = purchases_graph_used_0[\"nb_new_customer\"], width=12, label = \"Ancien client\")\n", - "\n", - "\n", - "# commande pr afficher slt\n", - "plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%b%y'))\n", - "\n", - "\n", - "# Ajout de titres et d'étiquettes\n", - "plt.xlabel('Mois')\n", - "plt.ylabel(\"Nombre de client ayant commandé\")\n", - "plt.title(\"Nombre de client ayant commandé un ticket pour l'offre 'muséale groupe'\")\n", - "plt.legend()\n", - "\n", - "# Affichage du barplot\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "82895dfc-e5ca-4be0-af24-93c1be8f6248", - "metadata": {}, - "source": [ - "## Proportion de tickets de prix 0" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "10828dd8-8ec9-49eb-b450-acca741964c7", - "metadata": {}, - "outputs": [], - "source": [ - "barplot_prop_free_price = pd.DataFrame()\n", - "for company_number in ['1', '2', '3', '4', '101'] : # \n", - " nom_dataframe = 'df'+ company_number +'_tickets'\n", - " df_tickets = globals()[nom_dataframe].copy()\n", - " df_free_tickets = df_tickets[df_tickets['amount'] == 0 | df_tickets['amount'].isna()]\n", - "\n", - " if company_number == '101' :\n", - " df_free_tickets_1 = df101_tickets_1[df101_tickets_1['amount'] == 0]\n", - " nb_tickets = len(df_tickets) + len(df101_tickets_1)\n", - " nb_free_tickets = len(df_free_tickets) + len(df_free_tickets_1)\n", - " \n", - " graph_dataframe = pd.DataFrame({'company_number' : [company_number], \n", - " 'prop_free_tickets' : [nb_free_tickets / nb_tickets],\n", - " 'nb_tickets' : [nb_tickets]})\n", - " \n", - " else : \n", - " graph_dataframe = pd.DataFrame({'company_number' : [company_number], \n", - " 'prop_free_tickets' : [len(df_free_tickets) / len(df_tickets)],\n", - " 'nb_tickets' : [len(df_tickets)]})\n", - "\n", - " barplot_prop_free_price = pd.concat([barplot_prop_free_price, graph_dataframe])" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "065576ef-2515-43eb-a65d-21f07f228c9e", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1cAAAIiCAYAAAAkWjI2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABeMUlEQVR4nO3deVxV1f7/8fcRhKMIKA6giUCaAzkhmqIXzQzQzKtZV8pCvWrmTXOg+iaZKTag3pui5vitJBuU+jk0aClWTkmTgg1q01Uxg5xBHFBg//7w4fl2PKjn5MYj+no+HufxcK+z9tqffdgm79be61gMwzAEAAAAALgildxdAAAAAABcDwhXAAAAAGACwhUAAAAAmIBwBQAAAAAmIFwBAAAAgAkIVwAAAABgAsIVAAAAAJiAcAUAAAAAJiBcAQAAAIAJCFcAAABusGbNGlWuXFkrV650dykATEK4AnBNSUtLk8Visb08PT1Vv359/fOf/9T+/fvdXd5ftmPHDk2aNEl79uxxeG/QoEEKDQ296jVdzJ49e2SxWJSWlmbqeP/5z38u2/f8z//Pn1NZn09oaKgGDRr0l+p58cUXK/Qvs2+//bZSU1OvaIxJkybJYrHYtc2dO9e0nzku77ffftNDDz2kmTNnqk+fPu4uB4BJCFcArkmLFi1SZmamMjIy9PDDD2vJkiWKjo7WiRMn3F3aX7Jjxw4lJyeXGa4mTJigFStWXP2irkE9e/ZUZmam6tatW27HIFxJQ4cOVWZmpl0b4erqKS4uVnx8vIYNG6ZHH33U3eUAMJGnuwsAgLI0b95cbdu2lSR17dpVJSUleu6557Ry5Uo9+OCDZe5z8uRJVa1a9WqWeVlnz551mCG4UMOGDa9SNde+2rVrq3bt2u4u46o6deqUqlSpclWPWb9+fdWvX/+qHrO8nDp1Slar9bJ/z64lnp6e+vzzz91dBoBywMwVgAqhQ4cOkqS9e/dKOnerWLVq1fTdd98pNjZWvr6+6tatmyTpyJEjevTRR3XTTTfJy8tLN998s8aPH6+ioiK7MS0Wi0aOHKkFCxaocePG8vb2Vnh4uJYuXepw/O+//169e/dWjRo1ZLVa1bp1a73++ut2fdavXy+LxaI33nhDjz/+uG666SZ5e3vrlVde0T/+8Q9J54Li+Vsez88SlHXb2+nTp5WUlKSwsDB5eXnppptu0ogRI3Ts2DG7fqGhobr77rv18ccfq02bNqpSpYqaNm2q1157zanP9ffff1e/fv3k6+srf39/xcfHKy8vr8y+33zzjf7+978rICBAVqtVEREReuedd5w6jiSVlpbqhRdeUIMGDWS1WtW2bVt98skndn3Kui3QWQUFBXriiSfsPrMxY8bYzXZaLBadOHFCr7/+uu3ncPvtt0s6F87P72+1WhUQEKC2bdtqyZIllz325s2bFRUVJavVqptuukkTJkzQK6+84nAu539ey5cvV0REhKxWq5KTkyVJc+bMUefOnVWnTh35+PioRYsWmjZtms6ePWvb//bbb9eqVau0d+9eu9tnpf+7/tavX29XW1m3eV54W2BoaKh++OEHbdiwwTbm+WuytLRUzz//vJo0aaIqVaqoevXqatmypWbOnHnJz+R8PW+++aYSExMVFBSkKlWqqEuXLsrKyrLr+8033+j+++9XaGioqlSpotDQUD3wwAO2v+/nnb8+1q5dq8GDB6t27dqqWrWqw9/tC2t4++239dRTT6lu3bqqVq2aevXqpT/++EPHjx/XsGHDVKtWLdWqVUv//Oc/VVhYeMnP7jyLxaJJkybZtg8ePKhhw4YpODhY3t7eql27tjp16qR169bZ7bdu3Tp169ZNfn5+qlq1qjp16uTw90CSfv75Z/Xv31916tSRt7e3mjVrpjlz5lzyMwfgfsxcAagQfvnlF0mym9U4c+aM/v73v+uRRx7RuHHjVFxcrNOnT6tr16769ddflZycrJYtW2rTpk1KSUlRdna2Vq1aZTfu+++/r88++0yTJ0+Wj4+P5s6dqwceeECenp667777JEk//vijOnbsqDp16mjWrFmqWbOm3nzzTQ0aNEh//PGH/ud//sduzKSkJEVFRWn+/PmqVKmS2rZtq6NHj+rpp5/WnDlz1KZNG0kXn7EyDEN9+vTRJ598oqSkJEVHR+vbb7/VxIkTlZmZqczMTHl7e9v6b9++XY8//rjGjRunwMBAvfLKKxoyZIgaNWqkzp07X/QzPXXqlO688079/vvvSklJUePGjbVq1SrFx8c79P3ss8/UvXt3tW/fXvPnz5e/v7+WLl2q+Ph4nTx50qnnn15++WWFhIQoNTVVpaWlmjZtmnr06KENGzYoKirqsvtfysmTJ9WlSxf99ttvevrpp9WyZUv98MMPevbZZ/Xdd99p3bp1slgsyszM1B133KGuXbtqwoQJkiQ/Pz9JUmJiot544w09//zzioiI0IkTJ/T999/r8OHDlzz2t99+q5iYGDVu3Fivv/66qlatqvnz5+vNN98ss/+2bdu0c+dOPfPMMwoLC5OPj48k6ddff1X//v1t4XD79u164YUXtGvXLltYnjt3roYNG6Zff/3V1FtJV6xYofvuu0/+/v6aO3euJNmusWnTpmnSpEl65pln1LlzZ509e1a7du1yCPoX8/TTT6tNmzZ65ZVXlJ+fr0mTJun2229XVlaWbr75ZknnQkyTJk10//33KyAgQLm5uZo3b57atWunHTt2qFatWnZjDh48WD179tQbb7yhEydOqHLlypetoWvXrkpLS9OePXv0xBNP2P6et2rVSkuWLFFWVpaefvpp+fr6atasWS5+glJCQoK2bdumF154QY0bN9axY8e0bds2u+vnzTff1IABA9S7d2+9/vrrqly5shYsWKC4uDitWbPG9j+IduzYoY4dO6pBgwZ66aWXFBQUpDVr1mjUqFE6dOiQJk6c6HJ9AK4SAwCuIYsWLTIkGV988YVx9uxZ4/jx48aHH35o1K5d2/D19TXy8vIMwzCMgQMHGpKM1157zW7/+fPnG5KMd955x6596tSphiRj7dq1tjZJRpUqVWxjGoZhFBcXG02bNjUaNWpka7v//vsNb29vIycnx27MHj16GFWrVjWOHTtmGIZhfPbZZ4Yko3Pnzg7n9e677xqSjM8++8zhvYEDBxohISG27Y8//tiQZEybNs2uX3p6uiHJWLhwoa0tJCTEsFqtxt69e21tp06dMgICAoxHHnnE4Vh/Nm/ePEOS8d5779m1P/zww4YkY9GiRba2pk2bGhEREcbZs2ft+t59991G3bp1jZKSkoseZ/fu3YYko169esapU6ds7QUFBUZAQIBx55132trO//x3795ta7vw8zl/3gMHDrRtp6SkGJUqVTK+/vpru37/7//9P0OSsXr1alubj4+P3b7nNW/e3OjTp89Fz+Ni/vGPfxg+Pj7GwYMHbW0lJSVGeHi4w7mEhIQYHh4exo8//njJMUtKSoyzZ88aixcvNjw8PIwjR47Y3uvZs6fD52EY/3f9XXiNnf/8//zznDhxonHhrwC33nqr0aVLF4dx7777bqN169aXrLcs5+tp06aNUVpaamvfs2ePUblyZWPo0KEX3be4uNgoLCw0fHx8jJkzZ9raz18fAwYMcKmGXr162bWPGTPGkGSMGjXKrr1Pnz5GQECAbbusz+48ScbEiRNt29WqVTPGjBlz0VpOnDhhBAQEONRSUlJitGrVyrjttttsbXFxcUb9+vWN/Px8u74jR440rFar3fUA4NrCbYEArkkdOnRQ5cqV5evrq7vvvltBQUH66KOPFBgYaNfv3nvvtdv+9NNP5ePjY5t1Ou/8zMqFt99069bNbkwPDw/Fx8frl19+0W+//WYbs1u3bgoODnYY8+TJkw4LA1xYk6s+/fRTu5rP+8c//iEfHx+Hc2jdurUaNGhg27ZarWrcuLHDLVUX+uyzz+Tr66u///3vdu39+/e32/7ll1+0a9cu27NuxcXFttddd92l3Nxc/fjjj5c9r759+8pqtdq2fX191atXL23cuFElJSWX3f9SPvzwQzVv3lytW7e2qy8uLq7MW+XKctttt+mjjz7SuHHjtH79ep06dcqpY2/YsEF33HGH3exKpUqV1K9fvzL7t2zZUo0bN3Zoz8rK0t///nfVrFlTHh4eqly5sgYMGKCSkhL99NNPTtVSHm677TZt375djz76qNasWaOCggKX9u/fv7/dLYghISHq2LGjPvvsM1tbYWGhnnrqKTVq1Eienp7y9PRUtWrVdOLECe3cudNhTFf/jt199912282aNZN0bgGVC9uPHDlid2ugs2677TalpaXp+eef1xdffGF3O6ckbdmyRUeOHNHAgQPtrtHS0lJ1795dX3/9tU6cOKHTp0/rk08+0T333KOqVas6/H07ffq0vvjiC5frA3B1cFsggGvS4sWL1axZM3l6eiowMLDM1eOqVq1qu6XrvMOHDysoKMjh4fY6derI09PT4RavoKAgh3HPtx0+fFj169fX4cOHyzx+vXr1bP3+7EpXujt8+LA8PT0dFnawWCwKCgpyOF7NmjUdxvD29r5sODh8+LBDWJUcP5M//vhDkvTEE0/oiSeeKHOsQ4cOXfJYZY17vu3MmTMqLCyUv7//Zce4mD/++EO//PLLRW8Pc6a+WbNmqX79+kpPT9fUqVNltVoVFxenf//737rlllsuut/FPsey2qSyr4+cnBxFR0erSZMmmjlzpkJDQ2W1WvXVV19pxIgRTge98pCUlCQfHx+9+eabmj9/vjw8PNS5c2dNnTrVtujMpVzs5759+3bbdv/+/fXJJ59owoQJateunfz8/GSxWHTXXXeVee6u/h0LCAiw2/by8rpk++nTp1WtWjWXjpGenq7nn39er7zyiiZMmKBq1arpnnvu0bRp0xQUFGT7e3Th//j5syNHjqhSpUoqLi7W7NmzNXv27DL7OXM9A3APwhWAa1KzZs0u+4tbWauD1axZU19++aUMw7B7/8CBAyouLnZ4dqOsxRvOt50PLTVr1lRubq5Dv99//12SHMa80lXLatasqeLiYh08eNAuYBmGoby8PLVr1+6Kxv/zcb766iuH9gs/k/Pnl5SUpL59+5Y5VpMmTS57vIt91l5eXi7/InuhWrVqqUqVKhddyOPCn1FZfHx8lJycrOTkZP3xxx+2WaxevXpp165dF92vZs2atl+c/+xiC4OUdX2sXLlSJ06c0PLlyxUSEmJrz87Ovmzd552fFbxwcYcr/UXc09NTiYmJSkxM1LFjx7Ru3To9/fTTiouL0759+y67QufFfu7n/37l5+frww8/1MSJEzVu3Dhbn6KiIh05cqTMMa/WyoAX+0zLeg6vVq1aSk1NVWpqqnJycvT+++9r3LhxOnDggD7++GPbNTh79mzbAj0XCgwMVHFxsTw8PJSQkKARI0aU2S8sLOxKTgtAOeK2QADXlW7duqmwsNDhe4wWL15se//PPvnkE7tfjEtKSpSenq6GDRvalqru1q2bPv30U1uY+vOYVatWvegvSn92fnEAZ2Ygztd44YIIy5Yt04kTJxzO4a/q2rWrjh8/rvfff9+u/e2337bbbtKkiW655RZt375dbdu2LfPl6+t72eMtX75cp0+ftm0fP35cH3zwgaKjo+Xh4XFF53L33Xfr119/Vc2aNcus78+rMTozqxcYGKhBgwbpgQce0I8//qiTJ09etG+XLl306aef2oWY0tJSvfvuu07Xfz4s/HmhEsMw9L//+78OfS9W//lz/Pbbb+3aL/z5Xowzn0v16tV13333acSIETpy5IhTqzouWbJEhmHYtvfu3astW7bYVmm0WCwyDMPu3CXplVdeueLbRa9UYGCgrFarw2f63nvvXXK/Bg0aaOTIkYqJidG2bdskSZ06dVL16tW1Y8eOi/498vLyUtWqVdW1a1dlZWWpZcuWZfYra7YawLWBmSsA15UBAwZozpw5GjhwoPbs2aMWLVpo8+bNevHFF3XXXXfpzjvvtOtfq1Yt3XHHHZowYYJttcBdu3bZLcc+ceJEffjhh+rataueffZZBQQE6K233tKqVas0bdo0p25na968uSRp4cKF8vX1ldVqVVhYWJm/JMXExCguLk5PPfWUCgoK1KlTJ9tqgREREUpISLjCT+mcAQMGaMaMGRowYIBeeOEF3XLLLVq9erXWrFnj0HfBggXq0aOH4uLiNGjQIN100006cuSIdu7cqW3btjkVJDw8PBQTE6PExESVlpZq6tSpKigosC1FfiXGjBmjZcuWqXPnzho7dqxatmyp0tJS5eTkaO3atXr88cfVvn17SVKLFi20fv16ffDBB6pbt658fX3VpEkTtW/fXnfffbdatmypGjVqaOfOnXrjjTcUFRV1ydmZ8ePH64MPPlC3bt00fvx4ValSRfPnz7ctAV+p0uX/P2ZMTIy8vLz0wAMP6H/+5390+vRpzZs3T0ePHnXo26JFCy1fvlzz5s1TZGSkbUXKoKAg3XnnnUpJSVGNGjUUEhKiTz75RMuXL3fqM2zRooWWLl2q9PR03XzzzbJarWrRooV69epl+9652rVra+/evUpNTVVISMglb5c878CBA7rnnnv08MMPKz8/XxMnTpTValVSUpKkc6s1du7cWf/+979Vq1YthYaGasOGDXr11VdVvXp1p2ovLxaLRQ899JBee+01NWzYUK1atdJXX33l8D8g8vPz1bVrV/Xv319NmzaVr6+vvv76a3388ce22d5q1app9uzZGjhwoI4cOaL77rtPderU0cGDB7V9+3YdPHhQ8+bNkyTNnDlTf/vb3xQdHa1//etfCg0N1fHjx/XLL7/ogw8+sD2XCeAa5NblNADgAudXA7tw1bcLDRw40PDx8SnzvcOHDxvDhw836tata3h6ehohISFGUlKScfr0abt+kowRI0YYc+fONRo2bGhUrlzZaNq0qfHWW285jPndd98ZvXr1Mvz9/Q0vLy+jVatWDiuInV+Z7N133y2zrtTUVCMsLMzw8PCwW4GsrNXwTp06ZTz11FNGSEiIUblyZaNu3brGv/71L+Po0aN2/UJCQoyePXs6HKtLly5lrvx2od9++8249957jWrVqhm+vr7Gvffea2zZsqXMFdK2b99u9OvXz6hTp45RuXJlIygoyLjjjjuM+fPnX/IY51dcmzp1qpGcnGzU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+vzzz1WpUqWLzuCEh4c7LC/+xRdfONTzww8/qFGjRq6dyJ9s2rRJc+fO1V133SXp3LNehw4duux+ERERioiIUFJSkqKiovT222+rQ4cOatasmTZv3qwBAwbY+m7ZskXNmjWTJLVs2VK//fabfvrpJ6dmr9q0aaMff/zxkudYuXJllZSUuLwfANzouC0QAGDTokULPfjggw7Lot9+++06ePCgpk2bpl9//VVz5szRRx99dMXHe/DBB1WrVi317t1bmzZt0u7du7VhwwaNHj36kotrPPjgg7JarRo4cKC+//57ffbZZ3rssceUkJCgwMDAMvcZPny4fv31VyUmJurHH3/U22+/rbS0NLs+Tz31lDIzMzVixAhlZ2fr559/1vvvv6/HHnvM6XNq1KiR3njjDe3cuVNffvmlHnzwwUvOLu3evVtJSUnKzMzU3r17tXbtWv3000+28PTkk08qLS1N8+fP188//6zp06dr+fLleuKJJyRJXbp0UefOnXXvvfcqIyNDu3fv1kcffaSPP/64zOM9++yzWrx4sSZNmqQffvhBO3futM2WnRcaGqpPPvlEeXl5Onr0qNP7AcCNjnAFALDz3HPPOdxC16xZM82dO1dz5sxRq1at9NVXX9l+ub8SVatW1caNG9WgQQP17dtXzZo10+DBg3Xq1KlLzmRVrVpVa9as0ZEjR9SuXTvdd9996tatm15++eWL7tOgQQMtW7ZMH3zwgVq1aqX58+frxRdftOvTsmVLbdiwQT///LOio6MVERGhCRMmqG7duk6f02uvvaajR48qIiJCCQkJGjVqlOrUqXPJc9m1a5fuvfdeNW7cWMOGDdPIkSP1yCOPSJL69OmjmTNn6t///rduvfVWLViwQIsWLdLtt99uG2PZsmVq166dHnjgAYWHh+t//ud/HGaezouLi9OHH36ojIwMtWvXTh06dND06dMVEhJi6/PSSy8pIyNDwcHBioiIcHo/ALjRWQxnbkIHAAAAAFwSM1cAAAAAYALCFQAAAACYgHAFAAAAACYgXAEAAACACQhXAAAAAGACwhUAAAAAmIBwBQAAAAAmIFwBAAAAgAkIVwAAAABgAsIVAAAAAJiAcAUAAAAAJvj/AGRTMA9vKVsAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "barplot_prop_free_price\n", - "\n", - "df = barplot_prop_free_price.sort_values( by = 'prop_free_tickets')\n", - "\n", - "# Création du barplot\n", - "plt.figure(figsize=(10, 6))\n", - "plt.bar(df['company_number'], df['prop_free_tickets'])\n", - "plt.xlabel('Numéro de la société')\n", - "plt.ylabel('Proportion de billets gratuits')\n", - "plt.title('Proportion de billets gratuits par musée')\n", - "plt.xticks(df['company_number'])\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "d6de664a-a303-48f5-bca6-1e9e9d17c461", - "metadata": {}, - "source": [ - "## Répartition des prix de vente" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "150825c6-08b5-44ad-a02e-98ee44192d94", - "metadata": {}, - "outputs": [], - "source": [ - "boxplot_amount = {} \n", - "\n", - "for company_number in ['1', '2', '3', '4', '101'] :\n", - " nom_dataframe = 'df'+ company_number +'_tickets'\n", - " df_tickets = globals()[nom_dataframe].copy()\n", - " df_notfree_tickets = df_tickets[df_tickets['amount'] > 0]\n", - " \n", - " boxplot_amount[company_number] = df_notfree_tickets['amount']\n", - "\n", - "amount_df = pd.DataFrame(boxplot_amount)" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "id": "c6ce46c8-5ad1-42c0-9b9a-a84df52a3411", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
1234101
count1.062722e+061.475197e+063.051426e+061.280045e+061.133556e+07
mean1.076436e+011.519766e+011.285360e+011.139475e+011.350509e+01
std9.243106e+005.714467e+001.445236e+011.657010e+011.492325e+01
min2.500000e+005.000000e+003.000000e-011.000000e+002.000000e-02
25%9.500000e+001.300000e+016.000000e+006.000000e+001.000000e+01
50%1.100000e+011.500000e+011.350000e+011.000000e+011.300000e+01
75%1.100000e+011.500000e+011.700000e+011.200000e+011.450000e+01
max3.200000e+023.000000e+027.500000e+031.500000e+031.633000e+03
\n", - "
" - ], - "text/plain": [ - " 1 2 3 4 101\n", - "count 1.062722e+06 1.475197e+06 3.051426e+06 1.280045e+06 1.133556e+07\n", - "mean 1.076436e+01 1.519766e+01 1.285360e+01 1.139475e+01 1.350509e+01\n", - "std 9.243106e+00 5.714467e+00 1.445236e+01 1.657010e+01 1.492325e+01\n", - "min 2.500000e+00 5.000000e+00 3.000000e-01 1.000000e+00 2.000000e-02\n", - "25% 9.500000e+00 1.300000e+01 6.000000e+00 6.000000e+00 1.000000e+01\n", - "50% 1.100000e+01 1.500000e+01 1.350000e+01 1.000000e+01 1.300000e+01\n", - "75% 1.100000e+01 1.500000e+01 1.700000e+01 1.200000e+01 1.450000e+01\n", - "max 3.200000e+02 3.000000e+02 7.500000e+03 1.500000e+03 1.633000e+03" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "amount_df.describe()" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "id": "a54269c1-9aec-4e49-91ba-d39fa5ece850", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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c+ZMSdKCBQs0a9YsPfnkk7r22muVn5+v3bt3l/vSnxkzZqhr16567bXXlJGRoVmzZqlfv37697//rZYtWzra2e123XzzzRo3bpwef/xxtzBS7Pbbb1daWpqmTJmiq666St27d9fXX3+tOXPmaMaMGRowYECZ9dx///166623NHXqVA0YMEA//fSThg8frqysLKd26enp6tGjh2rVqqWnn35aCQkJ2rhxo+bMmaODBw/qjTfekHQhuI0fP14PP/ywFi5cqFq1amnfvn3auXNnuV6fJUuWqHnz5lq8eLEjMAwePFhpaWnq1atXubZRmpycHPXt21dHjx7VjBkz1KlTJ+3YsUNPP/20tm/fri+//FIWi0UbN27Uddddp/79+zsuL61bt64kafLkyXr77bc1Z84cdenSRdnZ2frpp590+vTpctUwduxYDRkyxPHeffTRR3X33Xfr66+/drTxxXujqKhIN910k7Zs2aJZs2apa9eu2rhxo2688cZSf8Z1HyFdCC9t2rTR7bffrgYNGuj48eNatmyZrrzySu3cuVMNGzbUkCFDNHfuXM2YMUMvv/yyunbtKklVPjs6duxYnTlzRi+99JJWr17t2De1a9dOBw8e1JAhQ9SnTx+9/vrrqlevnn7++Wd9/vnnstvtPj8bBlxyDAAowxtvvGFIMjZt2mTk5+cbWVlZxueff27ExMQY1157rZGfn+9om5iYaHTp0sVpmWEYxtChQ43Y2FijsLDQaZu/+93vnNr961//MiQZc+bM8VhLUVGRkZ+fbxw6dMiQZHz88ceOdTNnzjQkGU8//bTbz02YMMEobXfXvHlzY9SoUY7HmzdvNiQZb7zxhlvb4ucotmvXLkOSMX78eKd23377rSHJmDFjhmNZ3759DUnGt99+69S2Xbt2xqBBgzzWVuyzzz4zJBkvvvii0/JnnnnGkGTMnDnTsWzQoEFGkyZNjIyMDKe2Dz30kFG7dm3jzJkzhmFc+Jt07ty5zOf1ZO3atYYko2vXrkZRUZFj+cGDB42QkBBj7NixjmWjRo0yJBmvv/6623ZGjRplNG/e3GnZ+fPnjS5duhjx8fHGzp07jejoaKNv375GQUFBmTUV/x0mTZrktPydd94xJDn9fceNG2fUqVPHOHTokFPbhQsXGpKMHTt2GIZx4fWqV69emc/ryYEDBwxJRlxcnJGbm+tY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V61aVe5tWCwWGYbhtp957bXX3C6TLGv/0KJFC/34449Oy/7zn/+4XXLsSXn2O0FBQerZs6djBMvvv//+otsFUDWcUQJQKfXr19f06dM1bdo0vfvuu7r77rv1yiuvaPDgwRo0aJBGjx6tyy67TGfOnNGuXbv0/fff6/3333faxpYtWzR27Fj9/ve/15EjR/TEE0/osssuc1yql5iYqISEBD3++OMyDEMNGjTQJ598Uu7Ln4p17NhRkjR//nwNHjxYQUFB6tSpk6xWq1vbhIQEhYaG6p133lHbtm1Vp04dxcXFeTyAbtOmjf7nf/5HL730kmrVqqXBgwc7RvZq2rSpJk2aVKE6SzNw4EBde+21mjZtmrKzs9W9e3f961//0ttvv+3W9sUXX9Q111yjPn366MEHH1SLFi2UlZWlffv26ZNPPnGMSnbTTTc55sZq1KiRDh06pMWLF6t58+Zq3br1RWs6efKkfve73+n+++9XRkaGZs6cqdq1a2v69OmV+h2zs7N12223KT4+XkuXLpXVatV7772nrl27asyYMWVOmtq2bVvdfffdWrx4sUJCQnTDDTfop59+0sKFC90u+/vTn/6k1NRU9e7dW4888ojatGmj8+fP6+DBg0pJSdHy5cvVpEkT3X///QoNDdXVV1+t2NhYpaena968eYqMjHQMIV+WoKAgDRgwQJMnT1ZRUZHmz5+vzMzMUic+roiJEyfqww8/1LXXXqtJkyapU6dOKioq0uHDh7VmzRpNmTLFcRauY8eOWrdunT755BPFxsYqIiJCbdq0Uc+ePTV06FB16tRJ9evX165du/T222+rV69eXhlJzVfvjRtvvFFXX321pkyZoszMTHXr1k0bN27UW2+9JUmqVevinwfXrVtX1157rZ577jk1bNhQLVq0UFpamv761786Rt8s1qFDB0nSq6++qoiICNWuXVvx8fGKiorSPffco7vvvlvjx4/XrbfeqkOHDmnBggXlmiureB/14osvatSoUQoJCVGbNm30zjvv6Ouvv9aQIUPUrFkznT9/3nEm8YYbbqjISwWgMkwdSgKA3yse5cp1hC3DMIzc3FyjWbNmRuvWrR0jk/3www/GbbfdZjRu3NgICQkxYmJijOuuu85Yvny52zbXrFlj3HPPPUa9evWM0NBQIykpydi7d6/Tc+zcudMYMGCAERERYdSvX9/4/e9/bxw+fLjUEa1++eUXtzrz8vKMsWPHGo0aNTIsFovT6FKeRqpauXKlkZiYaISEhDg9j+uod4ZhGIWFhcb8+fONyy+/3AgJCTEaNmxo3H333caRI0ec2vXt29do3769W22eRjnz5OzZs8a9995r1KtXzwgLCzMGDBhg7N692+11MIwLo2rde++9xmWXXWaEhIQYjRo1Mnr37u00muDzzz9v9O7d22jYsKFhtVqNZs2aGffdd59x8ODBMusoHvXu7bffNh555BGjUaNGhs1mM/r06WNs2bLF7XcLDw/3uB3X3/vuu+82wsLCHKPOFSseZeyFF14os668vDxjypQpRuPGjY3atWsbV111lbFx40aPf99ffvnFeOSRR4z4+HgjJCTEaNCggdGtWzfjiSeeMM6dO2cYhmGsWLHC6N+/vxEdHW1YrVYjLi7OuO2224wff/yxzDqKRzSbP3++MXv2bKNJkyaG1Wo1unTpYnzxxRdObSs76p1hGMa5c+eMJ5980mjTpo1htVqNyMhIo2PHjsakSZOM9PR0R7tt27YZV199tREWFmZIcoy+9vjjjxvdu3c36tevb9hsNqNly5bGpEmTjFOnTpX5+5W2PyjuFyVHg/PVe+PMmTPGmDFjnN4bmzZtchspsqx9xNGjR41bb73VqF+/vhEREWHceOONxk8//eTxtV+8eLERHx9vBAUFOY1eV1RUZCxYsMBo2bKlUbt2baN79+7G119/Xa5R7wzDMKZPn27ExcUZtWrVcryWGzduNH73u98ZzZs3N2w2mxEVFWX07dvX+Pvf/37R1wVA1VkMo8S1EwDgA2+++abGjBmjzZs3O+57Qs2wbt069e/fX++//75GjBhhdjmAR++++67uuusu/etf/1Lv3r3NLgdADcWldwAAoMZauXKlfv75Z3Xs2FG1atXSpk2b9Nxzz+naa68lJAGoEoISAACosSIiIrRq1SrNmTNH2dnZio2N1ejRozVnzhyzSwNQw3HpHQAAAAC4MHV48FmzZslisTh9lZykzzAMzZo1S3FxcQoNDVW/fv3KNSwrAAAAAFSF6fMotW/fXsePH3d8bd++3bFuwYIFWrRokZYsWaLNmzcrJiZGAwYMUFZWlokVAwAAAAh0pgel4OBgxcTEOL6K5xswDEOLFy/WE088oeHDh6tDhw5asWKFcnJy3CZZBAAAAABv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WzEEJQAAAABwwT1KAAAAAOCCoAQAAAAALghKAAAAAOCCoAQAAAAALghKAAAAAOCCoAQAAAAALghKAAAAAOCCoAQAAAAALghKAABUkxYtWmjx4sVmlwEAqASCEgCgWqSnp+vhhx9Wy5YtZbPZ1LRpU91000366quvzC7NZzZv3qz/+Z//MbsMAEAlWAzDMMwuAgAQWA4ePKirr75a9erV0+zZs9WpUyfl5+friy++0Kuvvqrdu3ebXSIAAGXijBIAwOvGjx8vi8Wi7777TiNGjNDll1+u9u3ba/Lkydq0aZMk6fDhw7rllltUp04d1a1bV7fddptOnDjh2MasWbPUuXNnvf7662rWrJnq1KmjBx98UIWFhVqwYIFiYmLUuHFjPfPMM07PbbFYtGzZMg0ePFihoaGKj4/X+++/79Tmscce0+WXX66wsDC1bNlSTz31lPLz853azJkzR40bN1ZERITGjh2rxx9/XJ07d3asHz16tIYNG6aFCxcqNjZWUVFRmjBhgtN2XC+9y8jI0P/8z/+ocePGqlu3rq677jr98MMPVX25AQDVgKAEAPCqM2fO6PPPP9eECRMUHh7utr5evXoyDEPDhg3TmTNnlJaWptTUVO3fv18jR450art//3599tln+vzzz7Vy5Uq9/vrrGjJkiI4ePaq0tDTNnz9fTz75pCN8FXvqqad066236ocfftDdd9+tO+64Q7t27XKsj4iI0JtvvqmdO3fqxRdf1F/+8he98MILjvXvvPOOnnnmGc2fP19bt25Vs2bNtGzZMrffZe3atdq/f7/Wrl2rFStW6M0339Sbb77p8XUxDENDhgxRenq6UlJStHXrVnXt2lXXX3+9zpw5U5GXGADgCwYAAF707bffGpKM1atXl9pmzZo1RlBQkHH48GHHsh07dhiSjO+++84wDMOYOXOmERYWZmRmZjraDBo0yGjRooVRWFjoWNamTRtj3rx5jseSjAceeMDp+Xr27Gk8+OCDpdazYMECo1u3bk7tJ0yY4NTm6quvNq644grH41GjRhnNmzc3CgoKHMt+//vfGyNHjnQ8bt68ufHCCy8YhmEYX331lVG3bl3j/PnzTttNSEgwXnnllVJrAwCYgzNKAACvMv7v1leLxVJqm127dqlp06Zq2rSpY1m7du1Ur149pzM/LVq0UEREhONxdHS02rVrp1q1ajktO3nypNP2e/Xq5fa45HY/+OADXXPNNYqJiVGdOnX01FNP6fDhw471e/bsUY8ePZy24fpYktq3b6+goCDH49jYWLdaim3dulXnzp1TVFSU6tSp4/g6cOCA9u/f7/FnAADmCTa7AABAYGndurUsFot27dqlYcOGeWxjGIbHIOW6PCQkxGm9xWLxuKyoqOiidRVvd9OmTbr99ts1e/ZsDRo0SJGRkVq1apWef/55j+1L1uaqIrUUFRUpNjZW69atc1tXr169i9YPAPAtzigBALyqQYMGGjRokF5++WVlZ2e7rT979qzatWunw4cP68iRI47lO3fuVEZGhtq2bVvlGlzvWdq0aZMSExMlSf/617/UvHlzPfHEE+revbtat26tQ4cOObVv06aNvvvuO6dlW7ZsqVJNXbt2VXp6uoKDg9WqVSunr4YNG1Zp2wAA7yMoAQC8bunSpSosLFSPHj304Ycfau/evdq1a5f+/Oc/q1evXrrhhhvUqVMn3XXXXfr+++/13Xff6Q9/+IP69u2r7t27V/n533//fb3++uv6z3/+o5kzZ+q7777TQw89JElq1aqVDh8+rFWrVmn//v3685//rI8++sjp5x9++GH99a9/1YoVK7R3717NmTNHP/74Y5mXE17MDTfcoF69emnYsGH64osvdPDgQW3YsEFPPvlklUMYAMD7CEoAAK+Lj4/X999/r/79+2vKlCnq0KGDBgwYoK+++krLli2TxWJRcnKy6tevr2uvvVY33HCDWrZsqb/97W9eef7Zs2dr1apV6tSpk1asWKF33nlH7dq1kyTdcsstmjRpkh566CF17txZGzZs0FNPPeX083fddZemT5+uqVOnqmvXrjpw4IBGjx6t2rVrV7omi8WilJQUXXvttbr33nt1+eWX6/bbb9fBgwcVHR1dpd8XAOB9TDgLAAgoFotFH330Uan3R1XWgAEDFBMTo7ffftur2wUA+CcGcwAAwEVOTo6WL1+uQYMGKSgoSCtXrtSXX36p1NRUs0sDAPgIQQkAABfFl8nNmTNHeXl5atOmjT788EPdcMMNZpcGAPARLr0DAAAAABcM5gAAAAAALghKAAAAAOCCoAQAAAAALghKAAAAAOCCoAQAAAAALghKAAAAAOCCoAQAAAAALghKAAAAAODi/wPhVsuoHJ5ijwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "means = amount_df.mean()\n", - "\n", - "plt.figure(figsize=(10, 6))\n", - "amount_df.boxplot()\n", - "plt.scatter(x=range(1, len(means) + 1), y=means, marker='D', color='red', s=100)\n", - "plt.title('Répartition des prix des billets non gratuits')\n", - "plt.ylabel('Montant')\n", - "plt.xlabel('Compagnie')\n", - "plt.ylim(0, 50) \n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "b41b5434-0e5b-495b-bede-23f5cb45272c", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
purchase_idticket_id
count73518.0000007.351800e+04
mean10.0961672.484660e+01
std2367.7026034.636993e+03
min1.0000001.000000e+00
25%1.0000001.000000e+00
50%1.0000002.000000e+00
75%1.0000003.000000e+00
max641981.0000001.256574e+06
\n", - "
" - ], - "text/plain": [ - " purchase_id ticket_id\n", - "count 73518.000000 7.351800e+04\n", - "mean 10.096167 2.484660e+01\n", - "std 2367.702603 4.636993e+03\n", - "min 1.000000 1.000000e+00\n", - "25% 1.000000 1.000000e+00\n", - "50% 1.000000 2.000000e+00\n", - "75% 1.000000 3.000000e+00\n", - "max 641981.000000 1.256574e+06" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "purchases.groupby('customer_id')[['purchase_id', 'ticket_id']].nunique().describe()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "d1212b10-3933-450a-b001-9e2cbf308f79", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ticket_idcustomer_idpurchase_idevent_type_idsupplier_namepurchase_datetype_of_ticket_nameamountchildrenis_full_pricename_event_typesname_facilitiesname_categoriesname_eventsname_seasons
0130708594818751074624vente en ligne2018-12-28 14:47:50+00:00Atelier8.0pricing_formulaFalsespectacle vivantmucemindiv prog enfantl'école des magiciens2018
1130708604818751074624vente en ligne2018-12-28 14:47:50+00:00Atelier4.0pricing_formulaFalsespectacle vivantmucemindiv prog enfantl'école des magiciens2018
2130708614818751074624vente en ligne2018-12-28 14:47:50+00:00Atelier4.0pricing_formulaFalsespectacle vivantmucemindiv prog enfantl'école des magiciens2018
3130708624818751074624vente en ligne2018-12-28 14:47:50+00:00Atelier4.0pricing_formulaFalsespectacle vivantmucemindiv prog enfantl'école des magiciens2018
4130708634818751074624vente en ligne2018-12-28 14:47:50+00:00Atelier4.0pricing_formulaFalsespectacle vivantmucemindiv prog enfantl'école des magiciens2018
................................................
182666720662815125613580076975vente en ligne2023-11-08 17:23:54+00:00Atelier11.0pricing_formulaFalseoffre muséale groupemucemindiv entrées tpNaN2023
182666820662816125613680076985vente en ligne2023-11-08 18:32:18+00:00Atelier11.0pricing_formulaFalseoffre muséale groupemucemindiv entrées tpNaN2023
182666920662817125613680076985vente en ligne2023-11-08 18:32:18+00:00Atelier11.0pricing_formulaFalseoffre muséale groupemucemindiv entrées tpNaN2023
182667020662818125613780076995vente en ligne2023-11-08 19:30:28+00:00Atelier11.0pricing_formulaFalseoffre muséale groupemucemindiv entrées tpNaN2023
182667120662819125613780076995vente en ligne2023-11-08 19:30:28+00:00Atelier11.0pricing_formulaFalseoffre muséale groupemucemindiv entrées tpNaN2023
\n", - "

1826672 rows × 15 columns

\n", - "
" - ], - "text/plain": [ - " ticket_id customer_id purchase_id event_type_id supplier_name \\\n", - "0 13070859 48187 5107462 4 vente en ligne \n", - "1 13070860 48187 5107462 4 vente en ligne \n", - "2 13070861 48187 5107462 4 vente en ligne \n", - "3 13070862 48187 5107462 4 vente en ligne \n", - "4 13070863 48187 5107462 4 vente en ligne \n", - "... ... ... ... ... ... \n", - "1826667 20662815 1256135 8007697 5 vente en ligne \n", - "1826668 20662816 1256136 8007698 5 vente en ligne \n", - "1826669 20662817 1256136 8007698 5 vente en ligne \n", - "1826670 20662818 1256137 8007699 5 vente en ligne \n", - "1826671 20662819 1256137 8007699 5 vente en ligne \n", - "\n", - " purchase_date type_of_ticket_name amount \\\n", - "0 2018-12-28 14:47:50+00:00 Atelier 8.0 \n", - "1 2018-12-28 14:47:50+00:00 Atelier 4.0 \n", - "2 2018-12-28 14:47:50+00:00 Atelier 4.0 \n", - "3 2018-12-28 14:47:50+00:00 Atelier 4.0 \n", - "4 2018-12-28 14:47:50+00:00 Atelier 4.0 \n", - "... ... ... ... \n", - "1826667 2023-11-08 17:23:54+00:00 Atelier 11.0 \n", - "1826668 2023-11-08 18:32:18+00:00 Atelier 11.0 \n", - "1826669 2023-11-08 18:32:18+00:00 Atelier 11.0 \n", - "1826670 2023-11-08 19:30:28+00:00 Atelier 11.0 \n", - "1826671 2023-11-08 19:30:28+00:00 Atelier 11.0 \n", - "\n", - " children is_full_price name_event_types name_facilities \\\n", - "0 pricing_formula False spectacle vivant mucem \n", - "1 pricing_formula False spectacle vivant mucem \n", - "2 pricing_formula False spectacle vivant mucem \n", - "3 pricing_formula False spectacle vivant mucem \n", - "4 pricing_formula False spectacle vivant mucem \n", - "... ... ... ... ... \n", - "1826667 pricing_formula False offre muséale groupe mucem \n", - "1826668 pricing_formula False offre muséale groupe mucem \n", - "1826669 pricing_formula False offre muséale groupe mucem \n", - "1826670 pricing_formula False offre muséale groupe mucem \n", - "1826671 pricing_formula False offre muséale groupe mucem \n", - "\n", - " name_categories name_events name_seasons \n", - "0 indiv prog enfant l'école des magiciens 2018 \n", - "1 indiv prog enfant l'école des magiciens 2018 \n", - "2 indiv prog enfant l'école des magiciens 2018 \n", - "3 indiv prog enfant l'école des magiciens 2018 \n", - "4 indiv prog enfant l'école des magiciens 2018 \n", - "... ... ... ... \n", - "1826667 indiv entrées tp NaN 2023 \n", - "1826668 indiv entrées tp NaN 2023 \n", - "1826669 indiv entrées tp NaN 2023 \n", - "1826670 indiv entrées tp NaN 2023 \n", - "1826671 indiv entrées tp NaN 2023 \n", - "\n", - "[1826672 rows x 15 columns]" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "purchases" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "49d5fd2d-9bc1-43ac-9270-1efd73759854", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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V1e6Xbt2bQD/+179559/cP36dek79c2MMTExuHHjhtJjenp6Kt3O+a7u2LFjrvY392lVPocP+XmtUqUKzM3NMWbMGCxZsgRXr159730KAwvpT8TXX3+N+vXr46effso13wkA4uPjoaenJ83VyyGTyWBra4v4+HildgsLC6Xbcrn8ne1paWlK7Xp6erC0tFRqs7W1lbK8rkyZMrmyZmVlYcGCBdDX11f616FDBwBQ+0s/57nffE4AsLOzQ3Z2NhISEt75GCkpKfj8889x4sQJTJs2DYcOHcKpU6ekJY5SU1PVypTz/rzuzbbHjx8jMTERcrk813sTGxurkWIox5MnT/J9Vn5ERAQeP36MAQMG5Frh5PHjxxBCwMbGJlfm6OjofGX28fHBypUrcffuXXTt2hXW1tZwcXFBRETEO+938uRJtGnTBsCrL/yjR4/i1KlT+OmnnwD877PKmfuXn9f75n4NAAYGBkqf++PHj3Hx4sVcr9fU1BRCiHy95sePH2P37t25HqNmzZoA/vczoO57o+793iWvnytV5ef9fZvHjx8DALp165brfZs1axaEEHj27Fm+Muf3c87PZ6Sutx0TXj+Gent7Y+HChRgwYAD++usvnDx5EqdOnULp0qXzfM808RkBgI2NDb766iuEhIRAoVDg4sWLOHLkCL777rs8++b1OoD/Hf8+5NimyjE0r/vm9/tGT08PPj4+2L59u3Ru0erVq1GmTBm0bdtWeszHjx9j3759MDQ0VPpXt25dpcfL8ea+lrMyT87nl7Nfjxo1KlfGIUOG5PmYqnyHv/79rern8CE/r2ZmZoiMjETdunXx448/ombNmrCzs0NgYGCedUxh4aodnwiZTIZZs2bBw8MDS5cuzbXd0tISWVlZePLkiVIxLYRAbGwsGjVqpNE8WVlZiI+PV/ohi42NlbK8mf115ubm0NXVhY+Pz1tHCB0cHNTKlfPcMTExubY9evQIOjo6SqPjefn777/x6NEjHDp0SBqFBqD2etM5mXLen9e92WZlZQVLS0uEhYXl+VimpqZqZchL6dKl833Cxw8//IB///0XvXv3RlZWFnr37i1ts7Kygkwmw5EjR/Jcui2/y7n17dsXffv2xYsXL3D48GEEBgbC09MTN2/ezDXykyM0NBT6+vrYs2cPDA0NpfY3123O+ZnIuYjCh7KysoKRkVGeJ6fl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lOvy3ERERESkfe7fv//OK02ykP7ITE1NAbz6YEqWLFnIaYiIiIjoTcnJyShfvrxUt70NC+mPLGc6R8mSJVlIExEREWmx903D5cmGRERERERqYCFNRERERKQGFtJERERERGpgIU1EREREpAYW0kREREREamAhTURERESkBhbSRERERERqYCFNRERERKQGFtJERERERGpgIU1EREREpAYW0kREREREamAhTURERESkBhbSRERERERqYCFNRERERKQGFtJERERERGrQK+wAREREREVdxbF7CztCkXRnZsfCjvBBOCJNRERERKQGFtJERERERGpgIU1EREREpAYW0kREREREamAhTURERESkBhbSRERERERq4PJ3RPTRcZko9RT1ZaKIiIobjkgTEREREamBhTQRERERkRpYSBMRERERqYGFNBERERGRGlhIExERERGpgYU0EREREZEaWEgTEREREamBhTQRERERkRpYSBMRERERqYGFNBERERGRGlhIExERERGpgYU0EREREZEaCrWQPnz4ML744gvY2dlBJpNhx44dStuFEJg0aRLs7OxgZGQEd3d3XLlyRalPeno6hg0bBisrK5iYmMDLywsPHjxQ6pOQkAAfHx+YmZnBzMwMPj4+SExMVOpz7949fPHFFzAxMYGVlRX8/f2RkZGh1OfSpUtwc3ODkZERypYtiylTpkAIobH3g4iIiIiKDpUL6cOHDyMrKytXe1ZWFg4fPqzSY7148QJ16tTBwoUL89weHByMuXPnYuHChTh16hRsbW3h4eGB58+fS30CAgKwfft2hIaGIioqCikpKfD09IRCoZD6eHt74/z58wgLC0NYWBjOnz8PHx8fabtCoUDHjh3x4sULREVFITQ0FFu3bsXIkSOlPsnJyfDw8ICdnR1OnTqFBQsWYM6cOZg7d65Kr5mIiIiIigeZUHFIVVdXFzExMbC2tlZqj4+Ph7W1tVIBq1IQmQzbt29Hp06dALwajbazs0NAQADGjBkD4NXos42NDWbNmoVBgwYhKSkJpUuXxtq1a/HVV18BAB49eoTy5ctj3759aNu2La5duwYnJydER0fDxcUFABAdHY2mTZvi+vXrcHR0xJ9//glPT0/cv38fdnZ2AIDQ0FD06dMHcXFxKFmyJBYvXoxx48bh8ePHMDAwAADMnDkTCxYswIMHDyCTyfL1OpOTk2FmZoakpCSULFlSrfeKqKirOHZvYUcoku7M7FjYEYjoLXhcU4+2HtfyW6+pPCIthMizaIyPj4eJiYmqD/dWt2/fRmxsLNq0aSO1GRgYwM3NDceOHQMAnDlzBpmZmUp97OzsUKtWLanP8ePHYWZmJhXRANCkSROYmZkp9alVq5ZURANA27ZtkZ6ejjNnzkh93NzcpCI6p8+jR49w586dt76O9PR0JCcnK/0jIiIioqJPL78du3TpAuDVyHGfPn2UCkqFQoGLFy/C1dVVY8FiY2MBADY2NkrtNjY2uHv3rtRHLpfD3Nw8V5+c+8fGxuYaPQcAa2trpT5vPo+5uTnkcrlSn4oVK+Z6npxtDg4Oeb6OGTNmYPLkye99vURERERUtOS7kDYzMwPwakTa1NQURkZG0ja5XI4mTZrAz89P4wHfHP1+24j4u/rk1V8TfXJmxbwrz7hx4zBixAjpdnJyMsqXL//O/ERERESk/fJdSK9atQoAULFiRYwaNUqj0zjyYmtrC+DVaG+ZMmWk9ri4OGkk2NbWFhkZGUhISFAalY6Li5NGx21tbfH48eNcj//kyROlxzlx4oTS9oSEBGRmZir1yRmdfv15gNyj5q8zMDBQGr0nIiIiouJB5TnSgYGBMDAwwP79+xESEiKtoPHo0SOkpKRoLJiDgwNsbW0REREhtWVkZCAyMlIqkhs0aAB9fX2lPjExMbh8+bLUp2nTpkhKSsLJkyelPidOnEBSUpJSn8uXLyMmJkbqEx4eDgMDAzRo0EDqc/jwYaUl8cLDw2FnZ5drygcRERERFX/5HpHOcffuXbRr1w737t1Deno6PDw8YGpqiuDgYKSlpWHJkiX5fqyUlBT8888/0u3bt2/j/PnzsLCwQIUKFRAQEICgoCBUrVoVVatWRVBQEIyNjeHt7Q3g1XST/v37Y+TIkbC0tISFhQVGjRoFZ2dntG7dGgBQo0YNtGvXDn5+fggJCQEADBw4EJ6ennB0dAQAtGnTBk5OTvDx8cHs2bPx7NkzjBo1Cn5+ftKZmt7e3pg8eTL69OmDH3/8Ebdu3UJQUBAmTpyY7xU7iIiIiKj4ULmQHj58OBo2bIgLFy7A0tJSau/cuTMGDBig0mOdPn0aLVq0kG7nzCX29fXF6tWrMXr0aKSmpmLIkCFISEiAi4sLwsPDYWpqKt1n3rx50NPTQ48ePZCamopWrVph9erV0NXVlfqsX78e/v7+0uoeXl5eSmtX6+rqYu/evRgyZAiaNWsGIyMjeHt7Y86cOVIfMzMzREREYOjQoWjYsCHMzc0xYsQIpfnPRERERPTpUHkdaSsrKxw9ehSOjo4wNTXFhQsXUKlSJdy5cwdOTk54+fJlQWUtFriONBHXW1WXtq63SkQ8rqlLW49rBbaOdHZ2dp4XXXnw4IHSSDERERERUXGmciHt4eGB+fPnS7dlMhlSUlIQGBiIDh06aDIbEREREZHWUnmO9Lx589CiRQs4OTkhLS0N3t7euHXrFqysrLBx48aCyEhEREREpHVULqTt7Oxw/vx5bNy4EWfPnkV2djb69++PXr16KV2khYiIiIioOFO5kAYAIyMj9OvXD/369dN0HiIiIiKiIkGtQvrmzZs4dOgQ4uLikJ2drbRt4sSJGglGRERERKTNVC6kly1bhsGDB8PKygq2trZKFyORyWQspImIiIjok6ByIT1t2jRMnz4dY8aMKYg8RERERERFgsrL3yUkJKB79+4FkYWIiIiIqMhQuZDu3r07wsPDCyILEREREVGRofLUjipVqmDChAmIjo6Gs7Mz9PX1lbb7+/trLBwRERERkbZSuZBeunQpSpQogcjISERGRiptk8lkLKSJiIiI6JOgUiEthMDBgwdhbW0NY2PjgspERERERKT1VJojLYRAtWrV8PDhw4LKQ0RERERUJKhUSOvo6KBq1aqIj48vqDxEREREREWCyqt2BAcH44cffsDly5cLIg8RERERUZGg8smG33zzDV6+fIk6depALpfDyMhIafuzZ880Fo6IiIiISFupXEjPnz+/AGIQERERERUtKhfSvr6+BZGDiIiIiKhIUXmONAD8+++/GD9+PHr27Im4uDgAQFhYGK5cuaLRcERERERE2krlQjoyMhLOzs44ceIEtm3bhpSUFADAxYsXERgYqPGARERERETaSOVCeuzYsZg2bRoiIiIgl8ul9hYtWuD48eMaDUdEREREpK1ULqQvXbqEzp0752ovXbo015cmIiIiok+GyoV0qVKlEBMTk6v93LlzKFu2rEZCERERERFpO5ULaW9vb4wZMwaxsbGQyWTIzs7G0aNHMWrUKPTu3bsgMhIRERERaR2VC+np06ejQoUKKFu2LFJSUuDk5ITmzZvD1dUV48ePL4iMRERERERaR+V1pPX19bF+/XpMnToVZ8+eRXZ2NurVq4eqVasWRD4iIiIiIq2k8oj0lClT8PLlS1SqVAndunVDjx49ULVqVaSmpmLKlCkFkZGIiIiISOuoXEhPnjxZWjv6dS9fvsTkyZM1EoqIiIiISNupXEgLISCTyXK1X7hwARYWFhoJRURERESk7fI9R9rc3BwymQwymQzVqlVTKqYVCgVSUlLw7bffFkhIIiIiIiJtk+9Cev78+RBCoF+/fpg8eTLMzMykbXK5HBUrVkTTpk0LJCQRERERkbbJdyHt6+sLAHBwcICrqyv09fULLBQRERERkbZTefk7Nzc3ZGdn4+bNm4iLi0N2drbS9ubNm2ssHBERERGRtlK5kI6Ojoa3tzfu3r0LIYTSNplMBoVCobFwRERERETaSuVC+ttvv0XDhg2xd+9elClTJs8VPIiIiIiIijuVC+lbt25hy5YtqFKlSkHkISIiIiIqElReR9rFxQX//PNPQWQhIiIiIioyVB6RHjZsGEaOHInY2Fg4OzvnWr2jdu3aGgtHRERERKStVC6ku3btCgDo16+f1CaTyaQrHvJkQyIiIiL6FKhcSN++fbsgchARERERFSkqF9L29vYFkYOIiIiIqEjJdyG9a9eufPXz8vJSOwwRERERUVGR70K6U6dO7+3DOdJERERE9KnIdyH95qXAiYiIiIg+ZSqvI01ERERERCykiYiIiIjUwkKaiIiIiEgNLKSJiIiIiNSgUiGtUCgQGRmJhISEgspDRERERFQkqFRI6+rqom3btkhMTCygOERERERERYPKUzucnZ3x33//FUQWIiIiIqIiQ+VCevr06Rg1ahT27NmDmJgYJCcnK/0jIiIiIvoU5PuCLDnatWsH4NWlwGUymdQuhOCVDYmIiIjok6FyIX3w4MGCyEFEREREVKSoXEi7ubkVRA4iIiIioiJF5UL68OHD79zevHlztcMQERERERUVKp9s6O7unutfixYtpH+alJWVhfHjx8PBwQFGRkaoVKkSpkyZguzsbKmPEAKTJk2CnZ0djIyM4O7ujitXrig9Tnp6OoYNGwYrKyuYmJjAy8sLDx48UOqTkJAAHx8fmJmZwczMDD4+PrmW+bt37x6++OILmJiYwMrKCv7+/sjIyNDoayYiIiKiokHlQjohIUHpX1xcHMLCwtCoUSOEh4drNNysWbOwZMkSLFy4ENeuXUNwcDBmz56NBQsWSH2Cg4Mxd+5cLFy4EKdOnYKtrS08PDzw/PlzqU9AQAC2b9+O0NBQREVFISUlBZ6enkonRnp7e+P8+fMICwtDWFgYzp8/Dx8fH2m7QqFAx44d8eLFC0RFRSE0NBRbt27FyJEjNfqaiYiIiKhokAkhhCYe6PDhw/j+++9x5swZTTwcAMDT0xM2NjZYsWKF1Na1a1cYGxtj7dq1EELAzs4OAQEBGDNmDIBXo882NjaYNWsWBg0ahKSkJJQuXRpr167FV199BQB49OgRypcvj3379qFt27a4du0anJycEB0dDRcXFwBAdHQ0mjZtiuvXr8PR0RF//vknPD09cf/+fdjZ2QEAQkND0adPH8TFxaFkyZL5ek3JyckwMzNDUlJSvu9DVNxUHLu3sCMUSXdmdizsCET0FjyuqUdbj2v5rddUHpF+m9KlS+PGjRuaejgAwGeffYYDBw7g5s2bAIALFy4gKioKHTp0AADcvn0bsbGxaNOmjXQfAwMDuLm54dixYwCAM2fOIDMzU6mPnZ0datWqJfU5fvw4zMzMpCIaAJo0aQIzMzOlPrVq1ZKKaABo27Yt0tPT3/nLQ3p6OtfaJiIiIiqGVD7Z8OLFi0q3hRCIiYnBzJkzUadOHY0FA4AxY8YgKSkJ1atXh66uLhQKBaZPn46ePXsCAGJjYwEANjY2SvezsbHB3bt3pT5yuRzm5ua5+uTcPzY2FtbW1rme39raWqnPm89jbm4OuVwu9cnLjBkzMHnyZFVeNhEREREVASoX0nXr1oVMJsObM0KaNGmClStXaiwYAGzatAnr1q3Dhg0bULNmTZw/fx4BAQGws7ODr6+v1O/1C8MA/7s4zLu82Sev/ur0edO4ceMwYsQI6XZycjLKly//zmxEREREpP1ULqRv376tdFtHRwelS5eGoaGhxkLl+OGHHzB27Fh8/fXXAABnZ2fcvXsXM2bMgK+vL2xtbQG8Gi0uU6aMdL+4uDhp9NjW1hYZGRlISEhQGpWOi4uDq6ur1Ofx48e5nv/JkydKj3PixAml7QkJCcjMzMw1Uv06AwMDGBgYqPPyiYiIiEiLqTxH2t7eXulf+fLlkZaWVhDZ8PLlS+joKEfU1dWVlr9zcHCAra0tIiIipO0ZGRmIjIyUiuQGDRpAX19fqU9MTAwuX74s9WnatCmSkpJw8uRJqc+JEyeQlJSk1Ofy5cuIiYmR+oSHh8PAwAANGjTQ8CsnIiIiIm2nciE9a9YsbNq0Sbrdo0cPWFhYoGzZsrhw4YJGw33xxReYPn069u7dizt37mD79u2YO3cuOnfuDODVVIuAgAAEBQVh+/btuHz5Mvr06QNjY2N4e3sDAMzMzNC/f3+MHDkSBw4cwLlz5/DNN9/A2dkZrVu3BgDUqFED7dq1g5+fH6KjoxEdHQ0/Pz94enrC0dERANCmTRs4OTnBx8cH586dw4EDBzBq1Cj4+flx9Q0iIiKiT5DKUztCQkKwbt06AEBERAQiIiIQFhaGP/74Az/88ING15JesGABJkyYgCFDhiAuLg52dnYYNGgQJk6cKPUZPXo0UlNTMWTIECQkJMDFxQXh4eEwNTWV+sybNw96enro0aMHUlNT0apVK6xevRq6urpSn/Xr18Pf319a3cPLywsLFy6Utuvq6mLv3r0YMmQImjVrBiMjI3h7e2POnDkae71EREREVHSovI60kZERbt68ifLly2P48OFIS0tDSEgIbt68CRcXFyQkJBRU1mKB60gTcb1VdWnreqtExOOaurT1uFZg60ibm5vj/v37AICwsDBpeoQQQulKgURERERExZnKUzu6dOkCb29vVK1aFfHx8Wjfvj0A4Pz586hSpYrGAxIRERERaSOVC+l58+ahYsWKuH//PoKDg1GiRAkAr1bCGDJkiMYDEhERERFpI5ULaX19fYwaNSpXe0BAgCbyEBEREREVCSrPkSYiIiIiIhbSRERERERqYSFNRERERKQGFtJERERERGpQuZC+f/8+Hjx4IN0+efIkAgICsHTpUo0GIyIiIiLSZioX0t7e3jh48CAAIDY2Fh4eHjh58iR+/PFHTJkyReMBiYiIiIi0kcqF9OXLl9G4cWMAwB9//IFatWrh2LFj2LBhA1avXq3pfEREREREWknlQjozMxMGBgYAgP3798PLywsAUL16dcTExGg2HRERERGRllK5kK5ZsyaWLFmCI0eOICIiAu3atQMAPHr0CJaWlhoPSERERESkjVQupGfNmoWQkBC4u7ujZ8+eqFOnDgBg165d0pQPIiIiIqLiTuVLhLu7u+Pp06dITk6Gubm51D5w4EAYGxtrNBwRERERkbZSax1pIQTOnDmDkJAQPH/+HAAgl8tZSBMRERHRJ+O9I9IvX75UKpDv3r2Ldu3a4d69e0hPT4eHhwdMTU0RHByMtLQ0LFmypEADExERERFpg/eOSM+bNw8hISHS7eHDh6Nhw4ZISEiAkZGR1N65c2ccOHCgYFISEREREWmZ945If/PNN+jRowcePnyIKVOmICoqCkePHoVcLlfqZ29vj4cPHxZYUCIiIiIibfLeEWl7e3scOXIEiYmJAIDs7GwoFIpc/R48eABTU1ONByQiIiIi0kb5OtlQLpfj119/BQB4eHhg/vz50jaZTIaUlBQEBgaiQ4cOBRKSiIiIiEjbqLz83bx589CiRQs4OTkhLS0N3t7euHXrFqysrLBx48aCyEhEREREpHVULqTt7Oxw/vx5hIaG4syZM8jOzkb//v3Rq1cvpZMPiYiIiIiKM5UL6cOHD8PV1RV9+/ZF3759pfasrCwcPnwYzZs312hAIiIiIiJtpPIFWVq0aIFnz57lak9KSkKLFi00EoqIiIiISNupXEgLISCTyXK1x8fHw8TERCOhiIiIiIi0Xb6ndnTp0gXAq1U6+vTpAwMDA2mbQqHAxYsX4erqqvmERERERERaKN+FtJmZGYBXI9KmpqZKJxbK5XI0adIEfn5+mk9IRERERKSF8l1Ir1q1CgBQsWJFjBo1itM4iIhI61Ucu7ewIxRJd2Z2LOwIREWCynOkAwMDYWBggP379yMkJATPnz8HADx69AgpKSkaD0hEREREpI1UXv7u7t27aNeuHe7du4f09HR4eHjA1NQUwcHBSEtLw5IlSwoiJxERERGRVlF5RHr48OFo2LAhEhISlOZJd+7cGQcOHNBoOCIiIiIibaXyiHRUVBSOHj0KuVyu1G5vb4+HDx9qLBgRERERkTZTeUQ6OzsbCoUiV/uDBw9gamqqkVBERERERNpO5ULaw8MD8+fPl27LZDKkpKQgMDAQHTp00GQ2IiIiIiKtpfLUjnnz5qFFixZwcnJCWloavL29cevWLVhZWWHjxo0FkZGIiIiISOuoXEjb2dnh/Pnz2LhxI86ePYvs7Gz0798fvXr1Ujr5kIiIiIioOFO5kAYAIyMj9OvXD/369dN0HiIiIiKiIkGtQvrmzZs4dOgQ4uLikJ2drbRt4sSJGglGRERERKTNVC6kly1bhsGDB8PKygq2traQyWTSNplMxkKaiIiIiD4JKhfS06ZNw/Tp0zFmzJiCyENEREREVCSovPxdQkICunfvXhBZiIiIiIiKDJUL6e7duyM8PLwgshARERERFRn5mtrx66+/Sv9fpUoVTJgwAdHR0XB2doa+vr5SX39/f80mJCIiIiLSQvkqpOfNm6d0u0SJEoiMjERkZKRSu0wmYyFNRERERJ+EfBXSt2/fLugcRERERERFispzpImIiIiISI1Culu3bpg5c2au9tmzZ3M1DyIiIiL6ZKhcSEdGRqJjx4652tu1a4fDhw9rJBQRERERkbZTuZBOSUmBXC7P1a6vr4/k5GSNhCIiIiIi0nYqF9K1atXCpk2bcrWHhobCyclJI6GIiIiIiLSdypcInzBhArp27Yp///0XLVu2BAAcOHAAGzduxObNmzUekIiIiIhIG6lcSHt5eWHHjh0ICgrCli1bYGRkhNq1a2P//v1wc3MriIxERERERFpH5UIaADp27JjnCYdERERERJ8KriNNRERERKQGlUekFQoF5s2bhz/++AP37t1DRkaG0vZnz55pLBwRERERkbZSeUR68uTJmDt3Lnr06IGkpCSMGDECXbp0gY6ODiZNmlQAEYmIiIiItI/KhfT69euxbNkyjBo1Cnp6eujZsyeWL1+OiRMnIjo6uiAyEhERERFpHZUL6djYWDg7OwMASpQogaSkJACAp6cn9u7dq9l0AB4+fIhvvvkGlpaWMDY2Rt26dXHmzBlpuxACkyZNgp2dHYyMjODu7o4rV64oPUZ6ejqGDRsGKysrmJiYwMvLCw8ePFDqk5CQAB8fH5iZmcHMzAw+Pj5ITExU6nPv3j188cUXMDExgZWVFfz9/XNNbSEiIiKiT4PKhXS5cuUQExMDAKhSpQrCw8MBAKdOnYKBgYFGwyUkJKBZs2bQ19fHn3/+iatXr+Lnn39GqVKlpD7BwcGYO3cuFi5ciFOnTsHW1hYeHh54/vy51CcgIADbt29HaGgooqKikJKSAk9PTygUCqmPt7c3zp8/j7CwMISFheH8+fPw8fGRtisUCnTs2BEvXrxAVFQUQkNDsXXrVowcOVKjr5mIiIiIigaVTzbs3LkzDhw4ABcXFwwfPhw9e/bEihUrcO/ePXz//fcaDTdr1iyUL18eq1atktoqVqwo/b8QAvPnz8dPP/2ELl26AADWrFkDGxsbbNiwAYMGDUJSUhJWrFiBtWvXonXr1gCAdevWoXz58ti/fz/atm2La9euISwsDNHR0XBxcQEALFu2DE2bNsWNGzfg6OiI8PBwXL16Fffv34ednR0A4Oeff0afPn0wffp0lCxZUqOvnYiIiIi0m8oj0jNnzsSPP/4IAOjWrRuioqIwePBgbN68GTNnztRouF27dqFhw4bo3r07rK2tUa9ePSxbtkzafvv2bcTGxqJNmzZSm4GBAdzc3HDs2DEAwJkzZ5CZmanUx87ODrVq1ZL6HD9+HGZmZlIRDQBNmjSBmZmZUp9atWpJRTQAtG3bFunp6UpTTd6Unp6O5ORkpX9EREREVPR98DrSLi4uGDFiBLy8vDSRR8l///2HxYsXo2rVqvjrr7/w7bffwt/fH7///juAV/O1AcDGxkbpfjY2NtK22NhYyOVymJubv7OPtbV1rue3trZW6vPm85ibm0Mul0t98jJjxgxp3rWZmRnKly+vyltARERERFpKqy/Ikp2djfr16yMoKAj16tXDoEGD4Ofnh8WLFyv1k8lkSreFELna3vRmn7z6q9PnTePGjUNSUpL07/79++/MRURERERFg1YX0mXKlIGTk5NSW40aNXDv3j0AgK2tLQDkGhGOi4uTRo9tbW2RkZGBhISEd/Z5/Phxrud/8uSJUp83nychIQGZmZm5RqpfZ2BggJIlSyr9IyIiIqKiT6sL6WbNmuHGjRtKbTdv3oS9vT0AwMHBAba2toiIiJC2Z2RkIDIyEq6urgCABg0aQF9fX6lPTEwMLl++LPVp2rQpkpKScPLkSanPiRMnkJSUpNTn8uXL0oolABAeHg4DAwM0aNBAw6+ciIiIiLSdyqt2fEzff/89XF1dERQUhB49euDkyZNYunQpli5dCuDVVIuAgAAEBQWhatWqqFq1KoKCgmBsbAxvb28AgJmZGfr374+RI0fC0tISFhYWGDVqFJydnaVVPGrUqIF27drBz88PISEhAICBAwfC09MTjo6OAIA2bdrAyckJPj4+mD17Np49e4ZRo0bBz8+Po8xEREREnyCVC+n79+9DJpOhXLlyAICTJ09iw4YNcHJywsCBAzUarlGjRti+fTvGjRuHKVOmwMHBAfPnz0evXr2kPqNHj0ZqaiqGDBmChIQEuLi4IDw8HKamplKfefPmQU9PDz169EBqaipatWqF1atXQ1dXV+qzfv16+Pv7S6t7eHl5YeHChdJ2XV1d7N27F0OGDEGzZs1gZGQEb29vzJkzR6OvmYiIiIiKBpkQQqhyh88//xwDBw6Ej48PYmNj4ejoiJo1a+LmzZvw9/fHxIkTCyprsZCcnAwzMzMkJSVxJJs+WRXHav4qqJ+COzM7FnaEIof7mnq4r6mO+5p6tHVfy2+9pvIc6cuXL6Nx48YAgD/++ENaj3nDhg1YvXq12oGJiIiIiIoSlQvpzMxM6VLg+/fvl9aPrl69utKJeERERERExZnKhXTNmjWxZMkSHDlyBBEREWjXrh0A4NGjR7C0tNR4QCIiIiIibaRyIT1r1iyEhITA3d0dPXv2RJ06dQC8upx3zpQPIiIiIqLiTuVVO9zd3fH06VMkJycrXXZ74MCBMDEx0Wg4IiIiIiJtpfKIdMuWLfH8+XOlIhoALCws8NVXX2ksGBERERGRNlO5kD506BAyMjJytaelpeHIkSMaCUVEREREpO3yPbXj4sWL0v9fvXoVsbGx0m2FQoGwsDCULVtWs+mIiIiIiLRUvgvpunXrQiaTQSaToWXLlrm2GxkZYcGCBRoNR0RERESkrfJdSN++fRtCCFSqVAknT55E6dKlpW1yuRzW1tZKl9wmIiIiIirO8l1I29vbAwCys7MLLAwRERERUVGh8smGALB27Vo0a9YMdnZ2uHv3LgBg3rx52Llzp0bDERERERFpK5UL6cWLF2PEiBHo0KEDEhMToVAoAADm5uaYP3++pvMREREREWkllQvpBQsWYNmyZfjpp5+U5kQ3bNgQly5d0mg4IiIiIiJtpXIhffv2bdSrVy9Xu4GBAV68eKGRUERERERE2k7lQtrBwQHnz5/P1f7nn3/CyclJE5mIiIiIiLRevlftyPHDDz9g6NChSEtLgxACJ0+exMaNGzFjxgwsX768IDISEREREWkdlQvpvn37IisrC6NHj8bLly/h7e2NsmXL4pdffsHXX39dEBmJiIiIiLSOyoV0YmIi/Pz84Ofnh6dPnyI7OxvW1tYAgH/++QdVqlTReEgiIiIiIm2j8hzpDh06IC0tDQBgZWUlFdE3btyAu7u7RsMREREREWkrlQtpc3NzdOrUCVlZWVLbtWvX4O7ujq5du2o0HBERERGRtlK5kN66dStevHgBb29vCCFw+fJluLu7o2fPnvjll18KIiMRERERkdZRuZA2NDTEnj17cOvWLXTv3h2tWrVC7969MXfu3ILIR0RERESklfJ1smFycrLSbZlMhk2bNqF169bo2rUrJkyYIPUpWbKk5lMSEREREWmZfBXSpUqVgkwmy9UuhMCSJUsQEhICIQRkMhkUCoXGQxIRERERaZt8FdIHDx4s6BxEREREREVKvgppNze3gs5BRERERFSkqHyy4apVq7B58+Zc7Zs3b8aaNWs0EoqIiIiISNupXEjPnDkTVlZWudqtra0RFBSkkVBERERERNpO5UL67t27cHBwyNVub2+Pe/fuaSQUEREREZG2U7mQtra2xsWLF3O1X7hwAZaWlhoJRURERESk7VQupL/++mv4+/vj4MGDUCgUUCgU+PvvvzF8+HB8/fXXBZGRiIiIiEjr5GvVjtdNmzYNd+/eRatWraCn9+ru2dnZ6N27N+dIExEREdEnQ+VCWi6XY9OmTZg6dSouXLgAIyMjODs7w97eviDyERERERFpJZUL6RzVqlVDtWrVNJmFiIiIiKjIyFchPWLECEydOhUmJiYYMWLEO/vOnTtXI8GIiIiIiLRZvgrpc+fOITMzU/p/IiIiIqJPXb4K6YMHD+b5/0REREREnyqVl7/r168fnj9/nqv9xYsX6Nevn0ZCERERERFpO5UL6TVr1iA1NTVXe2pqKn7//XeNhCIiIiIi0nb5XrUjOTkZQggIIfD8+XMYGhpK2xQKBfbt2wdra+sCCUlEREREpG3yXUiXKlUKMpkMMpksz2XvZDIZJk+erNFwRERERETaKt+F9MGDByGEQMuWLbF161ZYWFhI2+RyOezt7WFnZ1cgIYmIiIiItE2+C2k3NzcAwO3bt1GhQgXIZLICC0VEREREpO1UvrIhLwVORERERKTGqh1ERERERMRCmoiIiIhILSykiYiIiIjUoFYhnZWVhf379yMkJES6yuGjR4+QkpKi0XBERERERNpK5ZMN7969i3bt2uHevXtIT0+Hh4cHTE1NERwcjLS0NCxZsqQgchIRERERaRWVR6SHDx+Ohg0bIiEhAUZGRlJ7586dceDAAY2GIyIiIiLSViqPSEdFReHo0aOQy+VK7fb29nj48KHGghERERERaTOVR6Szs7OhUChytT948ACmpqYaCUVEREREpO1ULqQ9PDwwf/586bZMJkNKSgoCAwPRoUMHTWYjIiIiItJaKk/tmDdvHlq0aAEnJyekpaXB29sbt27dgpWVFTZu3FgQGYmIiIiItI7KhbSdnR3Onz+PjRs34uzZs8jOzkb//v3Rq1cvpZMPiYiIiIiKM5ULaQAwMjJCv3790K9fP03nISIiIiIqEvJVSO/atSvfD+jl5aV2GCIiIiKioiJfJxt26tRJ6V/nzp3zbOvcuXOBhp0xYwZkMhkCAgKkNiEEJk2aBDs7OxgZGcHd3R1XrlxRul96ejqGDRsGKysrmJiYwMvLCw8ePFDqk5CQAB8fH5iZmcHMzAw+Pj5ITExU6nPv3j188cUXMDExgZWVFfz9/ZGRkVFQL5eIiIiItFi+RqSzs7Ol/9+/fz/GjBmDoKAgNG3aFDKZDMeOHcP48eMRFBRUYEFPnTqFpUuXonbt2krtwcHBmDt3LlavXo1q1aph2rRp8PDwwI0bN6Tl+AICArB7926EhobC0tISI0eOhKenJ86cOQNdXV0AgLe3Nx48eICwsDAAwMCBA+Hj44Pdu3cDABQKBTp27IjSpUsjKioK8fHx8PX1hRACCxYsKLDX/TFVHLu3sCMUSXdmdizsCERERFQIVJ4jHRAQgCVLluCzzz6T2tq2bQtjY2MMHDgQ165d02hAAEhJSUGvXr2wbNkyTJs2TWoXQmD+/Pn46aef0KVLFwDAmjVrYGNjgw0bNmDQoEFISkrCihUrsHbtWrRu3RoAsG7dOpQvXx779+9H27Ztce3aNYSFhSE6OhouLi4AgGXLlqFp06a4ceMGHB0dER4ejqtXr+L+/fuws7MDAPz888/o06cPpk+fjpIlS+aZPT09Henp6dLt5ORkjb8/RERERPTxqbyO9L///gszM7Nc7WZmZrhz544mMuUydOhQdOzYUSqEc9y+fRuxsbFo06aN1GZgYAA3NzccO3YMAHDmzBlkZmYq9bGzs0OtWrWkPsePH4eZmZlURANAkyZNYGZmptSnVq1aUhENvPoFIj09HWfOnHlr9hkzZkjTRczMzFC+fPkPeCeIiIiISFuoXEg3atQIAQEBiImJkdpiY2MxcuRING7cWKPhACA0NBRnz57FjBkzcm2LjY0FANjY2Ci129jYSNtiY2Mhl8thbm7+zj7W1ta5Ht/a2lqpz5vPY25uDrlcLvXJy7hx45CUlCT9u3///vteMhEREREVASpP7Vi5ciU6d+4Me3t7VKhQAcCrk/CqVauGHTt2aDTc/fv3MXz4cISHh8PQ0PCt/WQymdJtIUSutje92Sev/ur0eZOBgQEMDAzemYWIiIiIih6VC+kqVarg4sWLiIiIwPXr1yGEgJOTE1q3bv3e4lVVZ86cQVxcHBo0aCC1KRQKHD58GAsXLsSNGzcAvBotLlOmjNQnLi5OGj22tbVFRkYGEhISlEal4+Li4OrqKvV5/Phxrud/8uSJ0uOcOHFCaXtCQgIyMzNzjVQTERERUfGn8tQO4NXIbJs2beDv74/hw4fDw8ND40U0ALRq1QqXLl3C+fPnpX8NGzZEr169cP78eVSqVAm2traIiIiQ7pORkYHIyEipSG7QoAH09fWV+sTExODy5ctSn6ZNmyIpKQknT56U+pw4cQJJSUlKfS5fvqw0pSU8PBwGBgZKhT4RERERfRrUurLhx2JqaopatWoptZmYmMDS0lJqDwgIQFBQEKpWrYqqVasiKCgIxsbG8Pb2BvDqJMj+/ftj5MiRsLS0hIWFBUaNGgVnZ2fp5MUaNWqgXbt28PPzQ0hICIBXy995enrC0dERANCmTRs4OTnBx8cHs2fPxrNnzzBq1Cj4+fm9dcUOIiIiIiq+tLqQzo/Ro0cjNTUVQ4YMQUJCAlxcXBAeHi6tIQ0A8+bNg56eHnr06IHU1FS0atUKq1evltaQBoD169fD399fWt3Dy8sLCxculLbr6upi7969GDJkCJo1awYjIyN4e3tjzpw5H+/FEhEREZHWkAkhRGGH+JQkJyfDzMwMSUlJWjeSzQuyqIcXZFEd9zX1cF9THfc19XBfUx33NfVo676W33pNrTnSRERERESfunxN7VDlanzaNspKRERERFQQ8lVIlypVKt/rMisUCo0EIyIiIiLSZvkqpA8ePFjQOYiIiIiIipR8FdJubm4FnYOIiIiIqEhRe/m7ly9f4t69e8jIyFBqr1279geHIiIiIiLSdioX0k+ePEHfvn3x559/5rmdc6SJiIiI6FOg8vJ3AQEBSEhIQHR0NIyMjBAWFoY1a9agatWq2LVrV0FkJCIiIiLSOiqPSP/999/YuXMnGjVqBB0dHdjb28PDwwMlS5bEjBkz0LGjdi6sTURERESkSSqPSL948QLW1tYAAAsLCzx58gQA4OzsjLNnz2o2HRERERGRllK5kHZ0dMSNGzcAAHXr1kVISAgePnyIJUuWoEyZMhoPSERERESkjVSe2hEQEICYmBgAQGBgINq2bYv169dDLpdj9erVms5HRERERKSVVC6ke/XqJf1/vXr1cOfOHVy/fh0VKlSAlZWVRsMREREREWkrlad2TJkyBS9fvpRuGxsbo379+jAxMcGUKVM0Go6IiIiISFupXEhPnjwZKSkpudpfvnyJyZMnayQUEREREZG2U7mQFkJAJpPlar9w4QIsLCw0EoqIiIiISNvle460ubk5ZDIZZDIZqlWrplRMKxQKpKSk4Ntvvy2QkERERERE2ibfhfT8+fMhhEC/fv0wefJkmJmZSdvkcjkqVqyIpk2bFkhIIiIiIiJtk+9C2tfXFwDg4OAAV1dX6OvrF1goIiIiIiJtp/Lyd25ublAoFNi6dSuuXbsGmUwGJycneHl5QVdXtyAyEhERERFpHZUL6X/++QcdOnTAw4cP4ejoCCEEbt68ifLly2Pv3r2oXLlyQeQkIiIiItIqKq/a4e/vj8qVK+P+/fs4e/Yszp07h3v37sHBwQH+/v4FkZGIiIiISOuoPCIdGRmJ6OhopaXuLC0tMXPmTDRr1kyj4YiIiIiItJXKI9IGBgZ4/vx5rvaUlBTI5XKNhCIiIiIi0nb5LqQPHz6MzMxMeHp6YuDAgThx4gSEEBBCIDo6Gt9++y28vLwKMisRERERkdbIdyHdokULJCQk4Ndff0XlypXRtGlTGBoawtDQEM2aNUOVKlXwyy+/FGRWIiIiIiKtke850kIIAECpUqWwc+dO3Lp1C9evX4cQAk5OTqhSpUqBhSQiIiIi0jYqnWz4+mXBq1atiqpVq2o8EBERERFRUaBSIT1hwgQYGxu/s8/cuXM/KBARERERUVGgUiF96dKld67M8fqINRERERFRcaZSIb19+3ZYW1sXVBYiIiIioiIj36t2cLSZiIiIiOh/8l1I56zaQUREREREKhTSq1atgpmZWUFmISIiIiIqMvI9R9rX17cgcxARERERFSn5HpEmIiIiIqL/YSFNRERERKQGFtJERERERGpQq5BOTEzE8uXLMW7cODx79gwAcPbsWTx8+FCj4YiIiIiItJVKF2QBgIsXL6J169YwMzPDnTt34OfnBwsLC2zfvh13797F77//XhA5iYiIiIi0isoj0iNGjECfPn1w69YtGBoaSu3t27fH4cOHNRqOiIiIiEhbqVxInzp1CoMGDcrVXrZsWcTGxmokFBERERGRtlO5kDY0NERycnKu9hs3bqB06dIaCUVEREREpO1ULqS//PJLTJkyBZmZmQAAmUyGe/fuYezYsejatavGAxIRERERaSOVC+k5c+bgyZMnsLa2RmpqKtzc3FClShWYmppi+vTpBZGRiIiIiEjrqLxqR8mSJREVFYW///4bZ8+eRXZ2NurXr4/WrVsXRD4iIiIiIq2kUiGdlZUFQ0NDnD9/Hi1btkTLli0LKhcRERERkVZTaWqHnp4e7O3toVAoCioPEREREVGRoPIc6fHjxytd0ZCIiIiI6FOk8hzpX3/9Ff/88w/s7Oxgb28PExMTpe1nz57VWDgiIiIiIm2lciHdqVOnAohBRERERFS0qFxIBwYGFkQOIiIiIqIiReVCOsfp06dx7do1yGQy1KhRAw0aNNBkLiIiIiIiraZyIf3gwQP07NkTR48eRalSpQAAiYmJcHV1xcaNG1G+fHlNZyQiIiIi0joqr9rRr18/ZGZm4tq1a3j27BmePXuGa9euQQiB/v37F0RGIiIiIiKto/KI9JEjR3Ds2DE4OjpKbY6OjliwYAGaNWum0XBERERERNpK5RHpChUqIDMzM1d7VlYWypYtq5FQRERERETaTuVCOjg4GMOGDcPp06chhADw6sTD4cOHY86cORoNN2PGDDRq1AimpqawtrZGp06dcOPGDaU+QghMmjQJdnZ2MDIygru7O65cuaLUJz09HcOGDYOVlRVMTEzg5eWFBw8eKPVJSEiAj48PzMzMYGZmBh8fHyQmJir1uXfvHr744guYmJjAysoK/v7+yMjI0OhrJiIiIqKiIV+FtLm5OSwsLGBhYYG+ffvi/PnzcHFxgaGhIQwMDODi4oKzZ8+iX79+Gg0XGRmJoUOHIjo6GhEREcjKykKbNm3w4sULqU9wcDDmzp2LhQsX4tSpU7C1tYWHhweeP38u9QkICMD27dsRGhqKqKgopKSkwNPTU+lS597e3jh//jzCwsIQFhaG8+fPw8fHR9quUCjQsWNHvHjxAlFRUQgNDcXWrVsxcuRIjb5mIiIiIioa8jVHev78+QUcI29hYWFKt1etWgVra2ucOXMGzZs3hxAC8+fPx08//YQuXboAANasWQMbGxts2LABgwYNQlJSElasWIG1a9eidevWAIB169ahfPny2L9/P9q2bYtr164hLCwM0dHRcHFxAQAsW7YMTZs2xY0bN+Do6Ijw8HBcvXoV9+/fh52dHQDg559/Rp8+fTB9+nSULFnyI74zRERERFTY8lVI+/r6FnSOfElKSgIAWFhYAABu376N2NhYtGnTRupjYGAANzc3HDt2DIMGDcKZM2eQmZmp1MfOzg61atXCsWPH0LZtWxw/fhxmZmZSEQ0ATZo0gZmZmXRi5fHjx1GrVi2piAaAtm3bIj09HWfOnEGLFi3yzJyeno709HTpdnJysmbeDCIiIiIqVGpfkCUuLg5xcXHIzs5Waq9du/YHh8qLEAIjRozAZ599hlq1agEAYmNjAQA2NjZKfW1sbHD37l2pj1wuh7m5ea4+OfePjY2FtbV1rue0trZW6vPm85ibm0Mul0t98jJjxgxMnjxZlZdKREREREWAyoX0mTNn4OvrK60d/TqZTKY071iTvvvuO1y8eBFRUVG5tslkMqXbQohcbW96s09e/dXp86Zx48ZhxIgR0u3k5GRetIaIiIioGFC5kO7bty+qVauGFStWwMbG5r0FqyYMGzYMu3btwuHDh1GuXDmp3dbWFsCr0eIyZcpI7XFxcdLosa2tLTIyMpCQkKA0Kh0XFwdXV1epz+PHj3M975MnT5Qe58SJE0rbExISkJmZmWuk+nUGBgYwMDBQ9SUTERERkZZTefm727dvIzg4GC4uLqhYsSLs7e2V/mmSEALfffcdtm3bhr///hsODg5K2x0cHGBra4uIiAipLSMjA5GRkVKR3KBBA+jr6yv1iYmJweXLl6U+TZs2RVJSEk6ePCn1OXHiBJKSkpT6XL58GTExMVKf8PBwGBgYoEGDBhp93URERESk/VQekW7VqhUuXLiAKlWqFEQeJUOHDsWGDRuwc+dOmJqaSnORzczMYGRkBJlMhoCAAAQFBaFq1aqoWrUqgoKCYGxsDG9vb6lv//79MXLkSFhaWsLCwgKjRo2Cs7OztIpHjRo10K5dO/j5+SEkJAQAMHDgQHh6ekpXcGzTpg2cnJzg4+OD2bNn49mzZxg1ahT8/Py4YgcRERHRJ0jlQnr58uXw9fXF5cuXUatWLejr6ytt9/Ly0li4xYsXAwDc3d2V2letWoU+ffoAAEaPHo3U1FQMGTIECQkJcHFxQXh4OExNTaX+8+bNg56eHnr06IHU1FS0atUKq1evhq6urtRn/fr18Pf3l1b38PLywsKFC6Xturq62Lt3L4YMGYJmzZrByMgI3t7eGr8IDREREREVDSoX0seOHUNUVBT+/PPPXNs0fbLhmycz5kUmk2HSpEmYNGnSW/sYGhpiwYIFWLBgwVv7WFhYYN26de98rgoVKmDPnj3vzURERERExZ/Kc6T9/f3h4+ODmJgYZGdnK/0rqBU7iIiIiIi0jcqFdHx8PL7//vt3rlRBRERERFTcqVxId+nSBQcPHiyILERERERERYbKc6SrVauGcePGISoqCs7OzrlONvT399dYOCIiIiIibaXWqh0lSpRAZGQkIiMjlbbJZDIW0kRERET0SVC5kL59+3ZB5CAiIiIiKlJUniP9OiFEvpaoIyIiIiIqbtQqpH///Xc4OzvDyMgIRkZGqF27NtauXavpbEREREREWkvlqR1z587FhAkT8N1336FZs2YQQuDo0aP49ttv8fTpU3z//fcFkZOIiIiISKuoXEgvWLAAixcvRu/evaW2L7/8EjVr1sSkSZNYSBMRERHRJ0HlqR0xMTFwdXXN1e7q6oqYmBiNhCIiIiIi0nYqF9JVqlTBH3/8kat906ZNqFq1qkZCERERERFpO5WndkyePBlfffUVDh8+jGbNmkEmkyEqKgoHDhzIs8AmIiIiIiqOVB6R7tq1K06cOAErKyvs2LED27Ztg5WVFU6ePInOnTsXREYiIiIiIq2j8og0ADRo0ADr1q3TdBYiIiIioiLjgy7IQkRERET0qcr3iLSOjg5kMtk7+8hkMmRlZX1wKCIiIiIibZfvQnr79u1v3Xbs2DEsWLCAlwsnIiIiok9GvgvpL7/8Mlfb9evXMW7cOOzevRu9evXC1KlTNRqOiIiIiEhbqTVH+tGjR/Dz80Pt2rWRlZWF8+fPY82aNahQoYKm8xERERERaSWVCumkpCSMGTMGVapUwZUrV3DgwAHs3r0btWrVKqh8RERERERaKd9TO4KDgzFr1izY2tpi48aNeU71ICIiIiL6VOS7kB47diyMjIxQpUoVrFmzBmvWrMmz37Zt2zQWjoiIiIhIW+W7kO7du/d7l78jIiIiIvpU5LuQXr16dQHGICIiIiIqWnhlQyIiIiIiNbCQJiIiIiJSAwtpIiIiIiI1sJAmIiIiIlIDC2kiIiIiIjWwkCYiIiIiUgMLaSIiIiIiNbCQJiIiIiJSAwtpIiIiIiI1sJAmIiIiIlIDC2kiIiIiIjWwkCYiIiIiUgMLaSIiIiIiNbCQJiIiIiJSAwtpIiIiIiI1sJAmIiIiIlIDC2kiIiIiIjWwkCYiIiIiUgMLaSIiIiIiNbCQJiIiIiJSAwtpIiIiIiI1sJAmIiIiIlIDC2kiIiIiIjWwkCYiIiIiUgMLaSIiIiIiNbCQJiIiIiJSAwtpIiIiIiI1sJAmIiIiIlIDC2kiIiIiIjWwkCYiIiIiUgMLaSIiIiIiNbCQJiIiIiJSAwtpIiIiIiI1sJBWw6JFi+Dg4ABDQ0M0aNAAR44cKexIRERERPSRsZBW0aZNmxAQEICffvoJ586dw+eff4727dvj3r17hR2NiIiIiD4iFtIqmjt3Lvr3748BAwagRo0amD9/PsqXL4/FixcXdjQiIiIi+oj0CjtAUZKRkYEzZ85g7NixSu1t2rTBsWPH8rxPeno60tPTpdtJSUkAgOTk5IILqqbs9JeFHaFI0sbPUttxX1MP9zXVcV9TD/c11XFfU4+27ms5uYQQ7+zHQloFT58+hUKhgI2NjVK7jY0NYmNj87zPjBkzMHny5Fzt5cuXL5CM9PGZzS/sBPSp4L5GHwv3NfpYtH1fe/78OczMzN66nYW0GmQymdJtIUSuthzjxo3DiBEjpNvZ2dl49uwZLC0t33ofUpacnIzy5cvj/v37KFmyZGHHoWKM+xp9LNzX6GPhvqYeIQSeP38OOzu7d/ZjIa0CKysr6Orq5hp9jouLyzVKncPAwAAGBgZKbaVKlSqoiMVayZIleRCgj4L7Gn0s3NfoY+G+prp3jUTn4MmGKpDL5WjQoAEiIiKU2iMiIuDq6lpIqYiIiIioMHBEWkUjRoyAj48PGjZsiKZNm2Lp0qW4d+8evv3228KORkREREQfEQtpFX311VeIj4/HlClTEBMTg1q1amHfvn2wt7cv7GjFloGBAQIDA3NNkSHSNO5r9LFwX6OPhftawZKJ963rQUREREREuXCONBERERGRGlhIExERERGpgYU0EREREZEaWEgTERGRRqSkpBR2BKKPioU0ERERfbCZM2eif//+ePToUWFHIS0khEBxXN+ChTQRERF9sPr162Pz5s0IDAxkMU25XL16FTKZDACwePFi7N+/v5ATaQbXkSZSkRACMpkMsbGxMDExgRCCl12lQpWzT76vjaigZGdno02bNjh48CBat26N7OxsTJ06FXZ2doUdjbTAtWvXUL9+fUydOhXPnj3Db7/9hnPnzhV2LI1gIU2kIplMhu3bt2P8+PEQQsDZ2RkjRoyAi4tLYUejT1B2djZ0dF79cfHhw4fIyspC+fLlpTaij0FHRwcKhQJubm6IiIiAh4cHALCYJgCAjY0N5s2bh5EjR8LAwADXr19H2bJlkZWVBT29ol2K8khLlE85c7tu3ryJfv36wc/PD97e3sjKysI333yDw4cPF3JC+tQIIaSCecqUKfD09ESLFi3g7OyM9evXIyEhoZAT0qdEV1cXAODu7o4///wTv//+OyZMmMBpHgQLCwuYm5sjPT0dCoUC69evBwDo6elBoVAUcroPwysbEqng5MmTOHHiBOLi4jB16lQAwNmzZzFnzhxER0dj9erVaN68eSGnpE/NtGnTsHDhQixduhQeHh5o1aoVnjx5gj179sDR0bGw41ExljOF6Pr163jw4AEAwNnZGTY2Nti/fz/at2+P3r17c2T6E/T6X8sAID4+Hg8fPsThw4cxfvx4jBw5EhMmTCjEhJpRtMfTiT6i+Ph4TJs2DQcOHECvXr2k9vr162PUqFGYM2cO/Pz8sGjRIrRq1aoQk9KnQgiB5ORk7N+/H/Pnz4eXlxf++usvXLlyBcHBwXB0dMz1ZUakKTlF9NatWzF69GgYGRnBzMwM9+/fx969e9G6dWtpmoeuri4mTpyIcuXKFXZs+gheP+5cvHgRCoUCtWvXhqWlJcqWLYvU1FRMnz4durq6+PHHHwEAgYGBaN26NT7//PPCjK46QUT5tnPnTtG2bVthbW0trly5orTt7NmzwtPTU9SpU0e8fPmykBLSpyYmJkZUqlRJJCQkiIiICFGiRAmxePFiIYQQL168EAsXLhSxsbGFnJKKq2PHjomSJUuKkJAQIYQQBw4cEDKZTEydOlUoFAohhBB///23kMlk4rvvvhNZWVmFGZc+sjFjxojSpUsLGxsb4ejoKE6dOiWEECIhIUHMnj1bGBsbi6+//lq0bt1aVKpUqUjuH5zaQfQW4i2rHhw8eBBBQUF4/vw5li9fjlq1aknbLl68KP3GTaRpb9snP//8c5iamiIqKgrz5s1D//79AQD37t1Dr1698P3336NLly4fOy59AkJCQnDixAmsXLkS9+7dw2effQYvLy8sXLgQAJCUlAQzMzMcPnwYpUuXRo0aNQo5MRWk10eiw8LCMGzYMCxYsAAmJiYIDg7GiRMnEBoaipYtWyIlJQV79uzBqlWrYGdnh6VLl0JfX7/I/RWNhTRRHnIKlv3792Pjxo1ISkqCo6MjAgICULp0aRw8eBDBwcFISEjAihUrULNmzcKOTMXc618uiYmJkMlkMDMzA/BqTdapU6eifv362LNnDwDg5cuX6N69O9LS0hAeHi6dCEakrpzj4uv74pgxY3Dnzh0EBwfjs88+Q4cOHbBkyRLIZDLs3r0bZ86cwejRo2FsbFzI6eljWrlyJVJSUpCeno4ffvhBau/SpQuOHDmCP/74Ay1atACgPEBQFFfxKDolP9FHJJPJsHPnTnh6eiIjIwMlS5bE0qVL0blzZxw/fhwtWrTA999/D2tra3Tp0gXXrl0r7MhUzOUULhMnTkTHjh1RvXp1DB8+HPv378fAgQPh7e2N69evo3nz5ujduzc8PDzw4MEDhIWFQVdXt8ifGU+FL6fYefz4sdRWq1Yt3L9/H02bNkXbtm0REhIC4NUvfuHh4YiJiSmUrFR40tPTMX/+fAQEBOD27dtK27Zt24bmzZvD29sbf/75JxQKhbRfCSGKXBENsJAmAgCkpaUp3X7y5AkmTZqEadOmYe3atVi5ciWuXr2Kly9fYvTo0UhOTkabNm3Qv39/1K1bF0ZGRoWUnIq77Oxs6f9/+eUXLFmyBL169cKQIUNw9epVjB49Grt27UJwcDAWLlyIcuXKwcTEBB07dsSZM2egr6+PrKwsjkiTRty6dQtly5bFihUrALwaYdTR0UFiYiK6d++OjIwMJCUlYfz48di8eTMCAgI4Gv0JEULAwMAABw8eRPv27bFnzx5cunRJ2gYAW7duhaOjI3777Tel41JRvYAUp3bQJ2/atGkoU6YM+vbtK436xcfHw9XVFbNmzUKnTp2QkZEBuVyOuLg4VK9eHaNGjZLONH7x4gVMTEwK8yXQJ+DSpUtYuXIlmjZtih49ekhtS5YswenTpxESEoK6devmup9CoWARTRoTHx+P6dOnY+HChQgJCUHfvn3x/PlzuLm5ITMzE/Hx8ahRowZu3ryJXbt2oV69eoUdmQrQm/OZXz/eJCYmokOHDoiPj8eOHTtQo0YNpWkcRW0u9NsUvTF0Ig17+vSpNKqScxCQy+VISUnBhQsX0KlTJ8jlcmRkZMDa2hpubm64d++edH8W0VSQsrOzERUVBXd3d+jr6ysVJs7Ozhg0aBDCw8Nx9uxZ1K1bN9cJiSyiSV0542yv70+WlpYYP348DA0N0b9/fwgh0K9fP0RFReHAgQO4ceMGqlWrhrp166JChQqFFZ0+gtcL4cWLF+P8+fN48OABhg4dCg8PD5QqVQr79u1Dhw4d0LlzZ+zYsQPVq1eX7q+jo1MsiuminZ7oA+R8ScyfPx9OTk6IjIxESEgInj59ClNTU/zwww9YvHgx1qxZAwCQy+UAXs3/MjU1LbTcVPy9Pp1DR0cHzZs3x5w5c5CZmYmoqCjEx8dL22vXrg0HBwccPXoUQNH98yhpj9TUVACv9iWZTIYDBw7gr7/+krZbWFhg5MiRGDt2LAYMGIB169bB2NgYX3zxBUaNGgUvLy8W0Z+AnAJ47NixmDZtGnR0dFC5cmV8+eWXWLRoEZ4+fSoV01ZWVmjSpAnu3r2b52MUaR95uT0irZOdnS2EEKJ///7C2tpaLFmyRKSkpIi4uDgREBAgSpcuLcaMGSNWrFgh/P39hampqbh27Vohp6ZPwYYNG0RoaKh0e+bMmUImk4mZM2eKx48fCyGESE5OFrVr1xbjx48vrJhUjCxYsEA0atRIxMXFCSGESE1NFX369BE6OjoiPDxcqe/jx4+Fp6enkMlk4vfffy+MuFTI1q5dK+zt7aX1oY8dOyZkMpnQ19cXkyZNEk+fPhVCCPHs2TMxaNCgIrlO9PuwkKZPVk4BHR8fL7UNGTJEVKpUSSxevFikp6eLp0+fit9++01UrlxZ1K9fXzRv3lycP3++sCLTJyQhIUHUqlVLuLu7ix07dkjt06ZNEzKZTHz++edi2LBh4ssvvxS1a9cW6enphZiWiotLly4JW1tb0a5dO/HkyRMhhBA3b94Ufn5+olSpUuKvv/5S6j927FhhY2MjzM3NRWJionRcpeIp5yI7Qrz6Dl2+fLlYsmSJEEKIXbt2iZIlS4rQ0FDx66+/Cn19fTF79uxcF4QqbsU0C2n6JOUc7Pft2ye6du2qNNIyaNAg4eDgIBYvXiyeP38uhBDi5cuX4uXLlyIlJaVQ8lLxl1cB8s8//wh3d3fRunVrsW3bNql9zpw5QiaTidatW4s1a9ZI7RkZGR8lKxVPOUXSjRs3hL29vfDw8JBGpv/55x/Rr18/YW5uLiIiIqT7/PDDD2LlypUiISGhMCJTITl16pTIysoSt27dEvfu3RP3798XdevWFXPnzhVCvPrly9TUVMhkMrFixYpCTluwisHkFCLVyWQybN26FV27dkWjRo1gaWkpbVuyZAlat26N4OBgrF+/Hk+fPoWRkRGMjIx4YiEVmJy5zY8ePZLaKleujBUrViA9PR2LFi3Crl27AAAjR47EzJkzcejQISQkJCAzMxMAoK+v//GDU7EgXjtJVV9fH8HBwdi/fz++++47xMfHo3Llyvjxxx/RtWtXtGvXDr1790bXrl2xcuVKfP755yhVqlThvgD6KIQQCA8Ph7u7OxITE1GlShWUL18ejx8/hkKhgJubG4BX53n4+/tj06ZN6N27dyGnLmCFXckTFbTExMRcbdeuXRP29vZi6dKlSu2vT9sYPHiwMDc3FytWrOCfK+mjWLx4sWjVqpU4fvy4UvutW7dEzZo1RePGjcXOnTul9unTpwu5XC6CgoKkv54QfYitW7cKS0tL4e/vL1xdXYWpqanw8PCQ5rrGx8eL3377TbRq1Up89dVX4sKFC4WcmAqDs7Oz+Pbbb6Xbhw4dErq6umLlypXi5MmTomPHjsLLy0vanpmZWRgxPwoW0lSsnTx5UoSFheVqj4yMFFWqVBFpaWkiPT1dLFq0SLi5uQlTU1PRoUMHqd/3338vbt269TEj0ycsOjpaODg4iG7duuUqpvfu3StMTExE48aNxcGDB6X2n376SVhYWCjN9SfKjzfnqt6/f1/Y2dmJn3/+WQjx6kTDo0ePCjs7O9GmTRtpmkfONk4lKv7e3EdyzsWYP3++cHNzE//995+0bdy4cUImk4lKlSqJhg0bfjL7B6d2ULF28OBBLF++PFd72bJloaOjA09PTzRo0ABhYWFo3LgxwsLC8Oeff0r3mTt3LqpUqfKxY9Mn4PUl7nK4uLggNDQUFy5cQHBwMKKjo6VtGRkZ6NixIxo1aoTmzZtL7dOmTcPNmzdhYWHxUXJT8TBmzBjs2bNHqS09PR26urpo2rQpAMDQ0BCurq4IDQ3F0aNHMWLECGnqkaGhIacSFWMPHjwA8L916C9fvgzgf8vAdu7cGVeuXMGGDRuk+wQFBeH06dPYsmULoqOjpauqFncspKlYq1GjBmxsbAC8mnt679493LlzB5UrV8Yvv/yCcuXKoXPnzpgzZw5mzZoFV1dXuLu7o3Tp0oWcnIqz1y9CsHfvXixbtgzr1q3D/fv30bhxY2zYsAFXrlzB7NmzsXHjRsTExGDVqlVwcXHBwoULpQsZ5BTjLKJJVQkJCXBwcADwvzX1ra2t8eLFCxw+fFipb+3atVG1alWsX78ew4YNy/OXQCo+vvzyS6UCedu2bejcuTO8vLxw5coVxMfHo0KFCpg0aRI2btyICxcuSH3r16+PevXqQVdXFwqFAnp6xf+6f7xEOBVrJ0+eRFZWFlJTU/Hjjz/iyZMnsLa2RsOGDbFw4UKlvgqFAlOmTMGKFSsQFRWFihUrFk5o+mSMGjUKoaGhMDMzg0KhwKNHj/DHH3+gXbt2OHPmDEaPHo3r169DR0cH1tbW0iiPeOPqhUT59ea+Ex4ejuTkZLRv3x4mJiaYOHEidu3ahTFjxqBnz55SvyFDhuDLL79ElSpVULly5cKITh/Jnj170KZNG8jlcqSlpSElJQXHjx/HrFmz8OzZM1StWhWjR4+GgYEBhg8fjqFDh8Lb21vp8uCflEKdWEJUgHJOEDx06JAwNDQUCxcuFDdv3hSLFi0SMplMbNmyReq7d+9e4evrK2xsbMTZs2cLKzJ9QjZs2CAsLS3FqVOnRHJysrh3754YOHCgMDY2FlFRUUKIV3NWo6Ojxd69e6W5isX5pB36OF4/ebpXr15CJpOJrVu3CiFeLX3Xu3dvUbNmTTFp0iSxb98+MXz4cGFraytiYmIKKzJ9BG+eVD9v3jzRp08fcefOHalt7dq1wtfXVxgYGIjvv/9elC5dWlSsWFGkpqZ+7Lhao/iPudMnK2fUZefOnRg5ciSGDh2Khw8fYtasWRg8eDC6du0q9U1NTYWlpSUOHTqE6tWrF1ZkKsZen84BALdv34aLiwsaNmwIADA1NcXChQvx/PlzDBgwAMeOHUO5cuVQrlw56T6fyp9KqWDJZDKcOHECjRs3xrp166CrqwtfX19kZ2ejW7duGD9+PP744w8sWLAAGzZsgEwmw759+2Bra1vY0ekjMjU1xb59+2Bubo6BAweievXq+Oabb/DNN9+ge/fu2LVrF3R0dCCXy6W505+kwq7kiQpSdna2cHNzE7NnzxZPnjwRZcuWFQMHDpR+816zZo3Yt2+fEEKItLS0woxKxdjrIz2LFy8WDx48ELNmzRJlypSRRppz/rtz505hb2+vdDY8kSa9fPlS2NjYiEGDBkltPj4+okSJEmLz5s1S24sXL0RMTAwvtvKJ+fnnn8Xhw4eFEEKsWrVKlC1bVgwfPlzcuHFDqV9KSoq4ffu2dOx6/aqHnxKebEjFmhACzZo1w8WLF9GgQQN06NABISEhAIAXL17g6NGjOHv2LLKysmBgYFDIaak4Eq/NSV2wYAEmTpyImJgYtGjRAjY2Npg8eTKSkpKkuYW2trYwNDREWlpaYcamYszIyAijRo3Cv//+i3/++QcA8Pvvv6Nr167o27cvtm7dihcvXsDY2Bi2tra82MonZtu2bfjpp58AAH369EFQUBC2bNmCRYsWSfsLABgbG6NixYrSiYWv/8XtU/JpvmoqdrKysqQzz+Pi4vDs2TNkZWVBR0cHrq6u+OOPP2Bqaopx48ZJ/YOCghAWFoavvvqKfy6nApNTRJ86dQqXLl3C0qVL0bBhQ9SvXx9t27bFwYMHMX78ePz777+4evUqJk2aBDs7Ozg6OhZycioOxFvWE2jdujXOnTuHY8eOSW2rV69Gjx490L17d+zfv/9jRSQtkbOvjBs3DmlpaTh48CAAoHfv3pgxYwa2bt2KRYsW4fr16wCgdNLqJ3mS4f9j9UBF2rJly9C1a1dp+a8dO3Zg9OjRMDIygqmpKbZu3YqOHTtizZo1GDBgAL799lvo6OjAxMQEhw4dQkREBNeJpgK3Y8cO/PTTT3j+/Dn69OkD4NUXz5QpUzBz5kzs27cPVatWRc2aNWFiYoIjR45IS9x9qqM89GHu3r0Le3t7qdjJGUnMOd7VrVsXgwcPxsyZM9G8eXNplaIVK1bAwMCA54p8AsQbK7jk/L+rqysyMzMRGhqKFi1aAAB8fHwgk8nQp08f2Nvbc/94DZe/oyIrPj4eDRo0gKGhIU6dOoX4+HjUq1cP48aNg7GxMTZt2oR//vkH4eHhcHZ2xoEDB3DixAlcuHABDRs2xJdffolq1aoV9sugYujNL6iEhAQEBARgy5YtGDhwIIKDg6WLWWRnZyMjIwPR0dEwNzeHs7MzdHR0kJWVxb+UkFqWL1+OoKAgXLlyBQYGBoiNjUW9evVQpUoVtGjRAmPGjIGxsTH++ecfeHt7Y+zYsejevTvS0tJgaGhY2PHpI/vjjz/w/Plz9O/fX2r7888/0bt3b2zatAktW7aU2sPCwuDh4fFJj0C/iYU0FWlXr16Fr68vMjIyMGfOHBw9ehSTJk0CADx9+hQ+Pj44f/48IiIiUKtWrcINS5+E14voLVu2oFy5cmjSpAmSk5Ph7++PS5cuoV+/fhg0aBD09PTyHHXmSDR9iKysLNy9exeVK1dGYmIiSpUqhaNHj+LixYsIDAxElSpV8Pnnn2PixIkYNmwYrl27huPHjxd2bPrIhBB49uwZunbtipiYGJQoUQITJ05E/fr1Ub58ebRt2xbNmjXDxIkTkZGRobQyxye7ZnQeeKSmImfGjBmYPXs2AMDJyQm///479PX10bZtW9y+fVvqZ2VlhbVr16Ju3bro2LGj0tWXiApCdna2VESfOHECwcHBmDZtGi5fvoySJUti/vz5qFGjBtavX4+QkBBpHv+b4xksokkdf/31Fx49egQ9PT1UrlwZp0+fRqVKlXDkyBE0a9YMgwcPxs2bN9GqVSscP34c1apVg66uLk6cOKF0JTv6NMhkMlhaWmLXrl2IiIhA5cqVERQUhPbt2yMiIgLOzs5YsmQJHj58mGt5OxbRrymMpUKIPsSkSZOETCYTv/32m9R2+fJl0bJlS1GxYkXx+PFjIcT/lhx7+vSpaNq0qahRo4ZIT08vlMxU/L2+xF1QUJDw9fUVjo6OQi6XCy8vL+lCPwkJCeKbb74RzZo1E7NmzZKWjiJSV3Z2trh165aQyWRi8ODB0jEwIyNDtG7dWtjZ2Ynjx49L/RUKhcjMzBQzZ84UzZs3FzY2NuLff/8trPhUiN68CEtUVJQYN26csLS0FG3bthUymUzMmTOnkNIVDZzaQUWK+P8/m8+ZMwdjxozBr7/+iqFDhwIArl27hl69eiEjIwNRUVEoVaqU1P/Zs2dISUlBhQoVCvkVUHE3d+5cTJo0Cdu2bYO9vT327t2L0NBQ2NraYtKkSahbty4SExPRq1cvlCtXDkuWLOHlvkkjdu3ahe7du8PPzw8//fQTypQpg6ysLHTt2hXR0dHYuXMnmjRponSf+/fvw9jYGJaWloWUmrTBm9PJTp48ib///htnz57Fhg0beL7GO7CQpiJDCAEhBHR0dJCUlITp06fjl19+waJFi6STJK5duwZvb29kZmbmKqaJCpIQAllZWejcuTOqVq2KefPmSdt+//13TJ06FU5OTpg2bRqcnZ2RkpICIyMj6Orqch+lD5KdnY3s7Gzo6elh9+7d+PLLLzFmzBh89913KFu2LDIzM9GtW7e3FtNUvL3rnIt3HXtenwfNk5/fjhPxqMiQyWTQ0dHB1q1b4erqigcPHsDIyAiDBg3Cb7/9BgCoUaMGNmzYAGNjY9SsWRNJSUksUOijkMlk0NfXh6mpKR4/fozs7GxpW+/evdGhQweEh4dj0qRJuHTpEkqUKAFdXV2ledVE6pDJZNDT08OePXvw+PFj2NvbIzg4GLNnz0ZsbCz09fWxZcsWNGnSBN26dcORI0cKOzJ9JK8X0Tt37sSKFSuwcOFCPHjwAADeeex5fR40i+i3YyFNRcrFixfh6+uLgIAALFq0COfOncPYsWPh7++vVEyvXLkSVapUQXx8fCEnpk+Nk5MTIiMjcfr0aaX2qlWrws3NDc+fP8fGjRuhUCgA8MRC+nAymQx//fUXunTpgtTUVAQGBmLKlCn49ddfMX36dKmY3rp1K6pWrYoBAwbwypmfiJzjy+jRozFkyBDs3r0bv/76K7p06YL169cXcrpionCmZhOpJyIiQlSrVk3ExMQotY8bN07o6emJVatWSW08sZA+ptdP2mnVqpVwcHAQBw8eFDExMeLly5eiU6dOYsWKFWLChAnC2tpaxMfHF2JaKm58fX1F165dldq2bNkiZDKZCAgIEA8ePBBCCJGZmSnu3btXGBHpI3r9eLR27VpRtmxZ6YTnjRs3CplMJvbu3VtY8YoVDoVQkSKTyXDr1i0kJSUBeDVvCwC++eYbyOVy9OvXD8uWLQOAXMv1EBUkmUwmjTKHh4ejevXq6N27N5o2bYr69evj8uXL6NevH1q0aIFSpUpJ+y7RhxD/f5rT8+fPpYv8KBQK6STDH3/8EYsXL0ZQUBAeP34MPT09lC9fvjAjUwE6cOAAnj9/DplMJu0b//33H9q1a4d69eohNDQU3377LX777Td06NABqampePjwYSGnLtpYSFOR0qxZM7Ru3RojRozAnTt3pHlblpaW6NGjB4KCgvDZZ58Vckoqrl6f9/y6nAI658RBHR0d7Nu3DwsXLsSPP/6IESNG4Pr16wCATZs2wdLSEkZGRh8tNxVfOXNc3dzcsHv3bpw/fx66urpSu42NDSpVqoTQ0NBc65VT8fLrr7+iW7du2LJlC1JSUqR94MaNG7CyssK5c+fg5+eHGTNmYPDgwRBCYNWqVdi+fTt/sf8AXLWDtJL4/zOJr1+/juTkZKSmpsLNzQ3Aq8uZLlmyBHp6epg9ezZMTEywatUq7Nu3D1FRUTAxMSnk9FQcvX7STlRUFBISEqCnp4c2bdpAV1dX6Qz3vK76dfHiRSxatAibN2/GwYMHUbt27Y/+Gqjoyzk2/vvvv0hISICDgwPMzc2RmJiIfv364e7du1i1ahXq1q0L4NXc2Dp16uDLL79EiRIlCjc8Fbi+ffsiOjoao0aNQo8ePWBqaopdu3ahZ8+eSE1Nxfr169GzZ08AwMuXL9GlSxfUqlULc+bMKeTkRVihTSoheoucuV3btm0T9vb2okaNGsLY2Fj06tVLmue3ZcsW0b59eyGTyUTlypWFtbW1NP+LqCCNHj1aVK9eXTg6OopmzZoJJycnkZiY+M77vHz5UuzcuVO0aNFCXLhw4SMlpeJq8+bNokKFCsLc3Fw0adJELFmyRCgUCnH27Fnx5ZdfCkNDQ9GhQwfh7u4ujI2NxcWLFws7MhWwjIwM6f99fHxEtWrVxPLly0VycrJ4/vy5GDJkiLC1tRXr1q0TSUlJ4tKlS6Jdu3aiXr16IjMzsxCTF30spEkr/fXXX6JUqVJi6dKlIjMzU4SHhwuZTCY6d+4s7ty5I/WLiooSJ06ckApsIk1686pfCxcuFFZWVuLEiRNCCCHmzZsnZDKZ2Ldv31vv87rnz58XTFAq1l7fp27duiXq1KkjfvvtNxEdHS169eolGjduLGbOnCkUCoVISUkRISEhYsCAASIgIEBcuXKlEJPTx6BQKHK1ffPNN6JatWpixYoVIjMzU9y8eVMEBAQIAwMDUaZMGeHs7CxatGghFeC8wqr6OLWDtE5ycjLGjBmDMmXKYOLEibh9+zY8PDzQoEED7N+/Hy4uLvj5559Ro0aNwo5Kxdi///6LypUrS+s8y2QyfPfdd6hSpQoCAgKwY8cO9O7dGz///DP8/Pzw4sULGBkZcTk70pinT5/CyspKun3hwgVs2bIF8fHx+PXXX6Gnp4eXL19i7NixOHHiBDp16oSRI0dCLpfzIj+fiNennK1atQqmpqbo1q0bAMDX1xfHjx/H2LFj4ePjA319fVy7dg23b9+GjY0N6tWrBx0dHV5s5QPxiE9ax9DQEK1bt4a3tzeePXuGbt26wd3dHZs2bcKSJUsQFhaG77//Hrdu3SrsqFRMzZkzB1WrVsWZM2ekLykhBG7dugWFQoE///wTPj4+mDVrFvz8/JCdnY2VK1di+fLlhZyciouFCxdixIgRyMjIQFZWFtLT0xEYGIj58+fjwoULUuFjbGyMoKAguLi4YN++fQgMDERmZiaL6E/E6+tEBwYG4vTp04iJiQEArFmzBk2bNsXMmTOxdu1aJCUloUaNGujQoQMaNGgAHR0d6YqYpD4W0qR15HI5PD09UaVKFYSHh0Mul2PixInS9pYtW+LWrVswMDAoxJRUnLVu3Rrdu3fHF198gTNnzkhL2zVs2BCbNm1Cz549MWvWLAwePBgAEB8fj7CwMCQnJxdyciouzM3NMXHiRMjlcqSnp8PAwACLFy9Gp06d8PDhQyxevFhaRaZEiRIICgqSfvnjfvhpWbZsGVatWoWdO3ciKCgIZcqUkVYSWrNmDVxdXTFnzhysWbMGqampSvflX9A+HN9B0ko5RfKdO3eQnJwsrcRx9uxZeHp64vr166hQoUJhRqRirG7duggMDMRnn32Gjh074tSpU9DT00OfPn3w+PFj2NjYoFGjRkhNTcW9e/fg6+uL+Ph4BAQEFHZ0KiZ69eqFKlWq4MSJE/D19cWVK1dQpkwZzJ49Gw0bNsTGjRuxatUqqX+JEiWwYMECrF27FpaWloWYnD62CxcuoFevXqhXr570y9Xrf5FYvXo1KlWqhOPHj8PQ0LCwYhZbnCNNWu3KlSto3LgxatWqBRMTE5w9exaHDx/m0mFUYF6fW3rlyhVMnjwZkZGR2LVrF1xcXHDlyhV4eXmhRIkSePz4MSpVqgSFQoGoqCjo6+vnufQdkbpWrVqF3377DVWrVsXEiRNRo0YNxMTEYNiwYXj8+DH69euHvn37FnZMKkRt27aFsbExtm/fDuB/x7C0tDRcuHABLi4uAP43n5rz5zWLI9KkVV6/4EV2djZq1qyJyMhI1KhRA87Ozjh69CiLaCoQeY3k1KxZE+PHj0fz5s3h5eWF6OhoaZ8MDg5GYGAgpkyZgmPHjkFfXx9ZWVksokmj+vbtC39/f8TExCAwMBDXrl1DmTJlsGDBAtjZ2WHevHlYt25dYcekj+DNcU8hBLKzs9GoUSM8fPgQ586dg0KhkI5hsbGxGDduHI4ePQoA0pxoFtGaxRFp+uhyfhs+f/48Ll++DJlMhsqVK6NJkya5+ub8Bv36yglEmvb6me+nT58G8Go/bdSoEYBXF1OZOnUqDh8+LI1Mvzmqw5Fo0rTX98vVq1dj9erVsLa2xuTJk1GjRg08ePAAP/30E6ZMmQJ7e/tCTksF6fV9ITY2FsbGxgCAkiVL4t9//8Vnn32Ghg0bYsSIEWjSpAmePn2KoUOHIjExEQcPHuSxqQCxkKZCsXXrVgwZMgS1atVCZmYmHj58CH9/fwwfPrywo9En5vWCeMKECdi8eTPS0tKgp6eHXr16YfLkyQCAS5cuYerUqTh69Ci2bNmCpk2bFmZs+kTkVUyXKVMGP/300/+1d99RVVzdw8e/Q4l0W8DesEUsWLHXPKIosQOWKIoFrLG3aOw9GqNiid0nIqgRBVTUWLAbO4ode7BEjUaRznn/8Me8oD5JRPQmsD9ruda9M2eGzeU6s+fMmX0oV66cXMBlAam/A9OmTWPbtm08efKEsmXLMmLECKpUqcKlS5dwd3dHKcW9e/f0C6ujR4/KkLMP7eOWrRZZVepi72fPnlV2dnbK19dXKaXUoUOH1CeffKKGDRtmqPCEUJMmTVK2trYqLCxMPXz4UA0cOFBpmqaGDh2qtwkPD1eNGjVSrq6uBoxUZAWpJ9lI/Xr16tXK0dFRde3aVcXFxf3pBEAic/n666+Vra2t8vPzU/7+/qpevXqqcOHC6siRI0oppaKiolRYWJjy9fVVQUFB+nlXZi78sCSRFh/Ujh079Ncp/5k3btyo/vOf/yillLp586YqXLiw6t27t97u8uXLHzdIkWUkJCSoo0ePvrH8/PnzqmnTpio0NFQppVRISIjKkSOH8vT0VKampmr48OF622vXrr11JjEh0iMlEY6MjFTHjx9Xx48f179fqTsgUn/n/Pz80szwKjK/0NBQ5ejoqA4fPqyUUmrr1q3K2tpaVahQQdnZ2alffvnlrdvJjIUfnjxsKD6YY8eO0a1bN/r27QugF32PiYnBwsKCy5cvU6dOHZo2bcr8+fMBOHDgACtXruThw4cGi1tkXkeOHGHbtm1vLC9cuDAuLi7UqlWL/fv34+3tzbRp01ixYgUeHh7MmjWLXr16AVC8eHF93L4Q70P937CiTZs28cUXX9C+fXv69etHzZo1efbsWZpb8am/cx06dJAx0VlMnjx5aNKkCTVr1mT79u107dqVGTNmsGrVKszMzGjbti2HDx9+YzsZzvHhSSItPpiSJUvy1VdfcejQIQYMGKAv//TTTzl06BDVq1fH1dWVJUuW6P/ZAwICuHbtmtS6FB+EqakpYWFhbyy3tramV69eWFtbs2XLFpydnfH09MTIyIjChQvj7OzMzZs30yTPMpGBeFfqtUeSNE0jLCyMLl26MGDAAMLDwxk1ahTHjx9PU4kjZTv5zmUNJ06c0CfVmTZtGvv376dixYqMGDGC5ORkfH198fb2pnfv3jg6OlKqVCkSExOZMmWKgSPPmmReSPFBKKXIlSsXvXr1wsjIiNWrV9O/f3/mz59P06ZN9R4/Jycnbt26hbGxMfPmzcPf35+wsDBsbGwM/SuITCg2NlZPRrZs2cKtW7cwNTWlfv36ODg4EBcXx5kzZ7C1tcXc3JyYmBguXrxIly5d6NixI5D2wR8h3sWDBw/ImzdvmipER48epXv37nh7e3Pnzh0GDBhAnz599Dt5Smr+ZikXL17E29tbr2K1aNEizp07B0CuXLl48OAB4eHheHh4APD06VNy5szJqlWraNy4scHizsqkaof4IFInGw8fPmTNmjWsXr2aevXq4evrC8CAAQPw8/PD2NiYQoUK8ccffxAQEEClSpUMGbrI5BITE5k7dy6+vr4ULVqUHDlyEBQUxJ49e6hfvz5r1qyhW7duuLi4cO/ePRITEzl58iQmJiaS1Ih0CwwMxM3NjSNHjlCtWjX9GOnp6YmVlRVjxozBycmJZs2asXjxYjRNY8OGDdy/f5/+/fsbOnzxEc2bN4+pU6fy/PlzQkNDqVu3LomJiZiYmJCYmIiHhweRkZH069cPPz8/EhISCAsL04f/yIX+xyWftvggjIyM+Pnnnzl79ix2dnZ4enri6elJWFiYflKYN28eQUFBLF++nLlz57J//35JosUHt379embNmkVAQAB79+6ldevWKKW4e/cuAK1atWLlypVYWVlRv359Tpw4gYmJSZqJDoR4V/b29rRo0YLWrVtz8uRJPempWrUq165dw8nJiaZNm7JkyRIAEhIS2Lt3Lzdv3iQ2NtbA0YsPLTk5WR/CU7x4cbJly4a9vT3r16/n8ePH+jHIxMSEvn37Ym9vz3fffYeFhQV79uyRJNqApEdafBCxsbG0b9+eoKAgzpw5Q4UKFfjtt99YvXr1Gz3TQnxMkydP5uHDh8ybN49Nmzbh6enJnDlz6NmzJ8+fPyc6Olq//Z5yUkrpDRLifVy4cIHx48ezf/9+QkJCqFq1KpGRkTg7O/P8+XNCQkJwcnIiOjqaqVOnsnLlSvbu3Uvp0qUNHbr4gFIfay5fvoymaVhbW7NhwwbWrVuHo6MjU6dOJVeuXPo28fHxPH/+nFy5cqFpmhyjDEguXUSGSrkuMzMzY/bs2bRr147atWtz9uxZbG1t9Z7pw4cP061bNwNHKzK7t1XWePr0KUlJSWzevBlPT09mzZpFz549gVe33319fXnx4oV+YlNKyQlKZAgHBwfGjRtHvXr1aN68OceOHaN48eIEBweTLVs2+vbti4ODA+7u7qxYsYKtW7dKEp3JKaX0Y82YMWPw8PDgypUr5MuXj759+9KmTRvCw8MZO3YsT58+BaBPnz6cPHmS3Llzo2kaycnJcowyIOmRFhkiZexoXFwc2bJl09/fuHGDIUOGsGvXLg4dOqT3TC9atIgdO3awadMm8uTJY+jwRSaUupfn1KlTfPbZZ1hYWLBixQqmTJnCw4cPmTZtGv369QPg2bNndOjQgQoVKjB9+nRDhi4yufDwcCZPnkxYWBhbtmyhRo0a3Lhxg4MHD3Lu3DnKlStHnTp1sLe3N3So4iOZMGECCxcuZM2aNVSqVAk7Ozvg1XFszpw5bNq0CaUUFhYWREREcPfuXUme/yEkkRYZ5sSJE3h4eLB3714KFy6cJpnu27cvhw8f5ujRo3z22Wc8evQIIyOjNLeqhMgoqZPosWPH8tNPP/Htt9/SrFkzANq1a8f27dtZvnw5VatWJTY2lmHDhvHw4UOOHTsmDxaKDJHyHbpz5w7JycnExsbqPczh4eFMmjSJ/fv3ExQURPXq1eU7l0VFRUXh6urKkCFD6NSpk748ZbiGUor169dz+PBhYmNj8fX11cdMS51ow5NEWmSYY8eO8dVXX/HHH3+wc+dOChYsqCc027dvp3nz5sCrE0i5cuUMHK3ICsaMGcOyZctYtWoVVapUwdbWVl/n5uZGREQEV69epWrVqmTLlo1du3ZhamoqJyjx3lKS4qCgIMaPH8+zZ8+wsLCgXbt2jBs3DoBz584xceJEjhw5wsaNG/WSZyJruXTpErVq1eLnn3+mcuXKaToCYmNjSU5OxsLCIs02Mib6n0PGSIt0e/0arHr16sybN4+8efPSsGFDbt++rR8MChQoQNu2benevbv85xcfxdWrV9m0aRMrVqygadOmmJqacvXqVebNm0d4eDgbNmwgODiY4OBgli1bxp49ezA1NSUxMVGSaPHeNE1j27ZtdOzYES8vLwIDA+nSpQsTJkxg5MiRAJQvX55x48ZRtmxZPD09iYuLe+O4KjKXt/19CxQogJWVFdu3bwdeVb1KTEwE4ODBgwQEBJCQkJBmGzmP/nNIj7RIl5TeluPHj3P9+nWsrKz0HucTJ04wfPhwbt26xbZt28iTJw9z584lIiKC1atXv3FlLURGeL3006lTp3BxcSEkJITY2Fj8/f05cOAA9+7do0CBAkyfPp2mTZv+6T6E+DsiIiIoW7ZsmmX379/H29ubBg0aMGjQIO7du0etWrUoWrQohw8fpn///nz77bfAq2oe2bNnp0CBAoYIX3wkqY8vz58/JzExEWtra72k3enTp+nTpw9ffvkl8KrX2dXVldy5c7N27VpDhi7+jBIinbZs2aJMTU2Vo6Oj0jRNeXl5qXv37imllDpz5oxycXFRmqap8uXLK2tra3XmzBkDRyyygoMHD+qva9SoofLnz6/MzMxU//79VXBwsHrx4oUqUaKEmjt3rgGjFJlFZGSkGjdu3BvLX7x4oWbMmKFu3Lih7t+/r8qWLau8vb1VdHS0GjRokNI0TfXr1+/jBywMIjk5WX89adIk5eLiovLmzav69u2rduzYoX777TfVtm1bVbFiReXu7q5GjhypatWqpcqVK6cSEhIMGLn4K9IjLd6ZUorExEQ6duyIs7Mz7u7uhIeH4+LiQpMmTZg3b57es7Jx40aSk5OpVq0axYoVM3DkIrM7dOgQjRs3ZujQoUycOBEAf39/ChcuTM2aNfUHuerXr0/79u3p3bu3IcMVmcClS5do06YNx48fx9LSMs266OhoLC0tmTt3Ltu2bWPt2rXY2toyZ84cVq1axZMnTzhx4gR58+Y1UPTiYxs7diyLFi1iyZIlmJqaMnPmTKKioggPD+fx48ds374df39/cuTIQcGCBZk7d64+o6EM5/hnkr+K+NvU/w3nePLkCUZGRpQuXZr69euTPXt26taty8GDB6lTpw4DBgxgzpw5FClShHbt2hk6bJGFFC1alJEjR7Jy5UpMTEz45ptvaN++PfAqqXn06BF9+vTh2bNneu1oId7HJ598wieffIKlpSXh4eFERkaiaRrlypWjRIkSJCcnc+7cOZKSkvSHXaOiovDy8qJXr14y1C0LuX79Ojt37mTDhg00bNiQvXv3curUKRYsWICVlRVWVlb4+Pjg4+OTZjtJov/Z5C8j/jZN0/jpp5+YOHEif/zxB48ePaJKlSqUKlUKgIoVK3Lw4EEaNmxIr169WLp0KYULFzZw1CKzUm8pFVagQAF69eqFkZERS5YswcjIiDFjxgCv7o4sXLgQc3Nzjh8/LuWjRIawt7cnKCiIgwcP0rFjR+zs7LC2tubs2bNs2LCBzz//nObNm+Ph4YGnpycJCQmEhoZy+PBhSaKzoCdPnlClShX94dM5c+bg5eVFTEwMGzdupFatWhQvXjzNNpJE/7PJUzXibzt//jyDBw/G1dWVgQMHYmFhwbJly/jll1/0NhUrVmTXrl1ERERIgiI+qJQkesmSJWmmm8+bNy/du3fH29sbX19fZs+eDUDLli0ZNGgQu3fvluocIkM9ePCAFi1aMGrUKE6cOMHUqVN5+vQpe/bsAaBRo0bMnz+f69evExsby759+/jss88MHLX4kFJGzaYePRsTE4ORkRELFizAy8uLGTNm6L3PFy5cYMuWLTx8+NAg8Yr0kzHS4m+5ePEifn5+JCQk6LO+nTp1ivbt21O+fHlGjBiBk5OT3j5lhkMhPqQnT54wZMgQDhw4wNdff51m2vl79+7x5ZdfcvDgQYYNG8bkyZP1ddITLTLS2rVrCQoKIiAggFu3blG3bl2++OIL/QLvyZMn5MqVSy9vZ2ZmZuCIxYeUujpHTEwM5ubm+jofHx9++OEHRo4cydSpUwF4+fIl7u7uJCcnExISIpWD/mXkfoH4n1JunUdFReHj48OZM2do3Lixvr5y5cr4+fnRsWNHZs+ezYABA6hduzbwatygEBnt9fJ0uXLlYsiQIWTPnp0ZM2aQnJxM9+7dAciXLx/lypUjNjaWq1evphkKIkm0yEhRUVE8f/6cq1ev8vnnn+Pi4sL8+fMB2LFjB7t372b06NHkyJHDsIGKD04ppR+jZsyYwc6dO7G0tMTe3p65c+cyffp0nj59yvfff09ycjLx8fGcPXuWBw8ecPr0aYyMjKQM57+M/KXE/6RpGv7+/qxcuZKvv/6aatWqce7cObZs2aK3qVq1Kv7+/uzevZsffviB2NhYfVshMlLqk0tERATnz58HoFy5cvj4+NC4cWO+/fZbVqxYAbx6uPDx48f07t2bgIAANE2TyS7Ee0v5Dt25c0c/3pUpU4b79+9Tt25dnJ2dWbJkiX4M3Lp1K/fv35dxrllA6ov12bNnM3XqVGrWrEn+/PkJDAykWrVqxMXF4e/vz5AhQwgPD+f69etUq1aNM2fO6EPOJIn+l/n4FffEP11Kvct79+6pvHnzqnnz5imllDp9+rRq0KCBcnV1VSEhIWm2OX36tLp27dpHj1VkPSNGjFCffvqpKliwoKpSpYq6efOmUkqpy5cvq0GDBikbGxtVs2ZNValSJVWhQgWVmJiolEpbx1WI9Ej5Dm3ZskU5ODgof39/lZSUpJRSys3NTWmapvz9/dXjx4/VgwcP1MiRI5Wtra2KiIgwZNjiIzt48KDy8fFRwcHB+rLIyEhVoUIFVaNGDX1ZTExMmu1SjlXi30XGSIu32rVrF1euXOHKlSvMmjVLH6px4sQJhg0bhoWFBf369cPFxcXAkYrMTqXq5dm7dy+9e/fmu+++A2D69OncvHmToKAgHB0defToEUePHmXLli3kz5+fsWPHSnUOkaG2bNlCp06dmDBhAi1atKBkyZL6uhYtWnDp0iV+++03ypUrx927d9m0aROVKlUyYMTiY9q6dSujRo3i8ePHBAYG4uTkpN9NS5lvYerUqXh6eqa5y6beUoVI/DvIvSbxhsTERDZv3syiRYuoUKGCfiszOTmZqlWrMmvWLEaNGsXUqVMxNjbG2dnZwBGLzOr1sYI2Njb06NFDv4CrU6cOrVu35osvviAkJIQKFSrg6uqKq6urvo3UYBUZ5dGjR0ycOJGxY8cyZMgQEhISiI6OJjQ0FCcnJ4KCgjh+/Djh4eEUK1aM0qVLy7Tfmdzrx6hixYpRuXJlAgIC2Lx5M05OTvr6QoUKkT17dn7//XeANNtJEv3vJQNxxBtSJrIYOXIk58+fJzg4WF+nlKJq1apMmjSJHDlyUKZMGQNGKjIzleqhnVmzZtG1a1c8PDy4cOEC8fHxAFhbW7N582ZKly5Nq1atOHny5Bv7kSRavK+UzoTo6Giio6OpVKkSDx48YOrUqTRv3pwOHTrQunVrNm3aRLVq1ejevTuNGjWSJDqTS51EBwYGcvPmTRwcHJg4cSKdOnVi69atfP/993p7a2trjI2NSUxMNFTI4gOQoR1Cv6UUGxtLfHw8NjY2wKuyPYMHD2b58uUEBQXRtGlTkpOTgVdX0lLiTnwoqU9Qc+bMYdy4cXh4eHDq1CmuX7+On58fjRs3xtTUFIAXL15Qp04dihcvzk8//WTI0EUmdP36dezt7QGoW7cuN2/eJDY2lrp169KwYUPatWuHi4sLTZo0YcaMGQaOVnwMqYdijB49mjVr1jB06FB9tsrIyEimTp3Kjh07qFevHiVKlOD8+fOcO3eOixcvygV+JiJ/ySws5RpK0zRCQkLw9fXl9u3blClTBjc3N9q2bcv8+fNJTk6mRYsWBAcH06RJEz2ZlhJ34kNJXZ3jwoULBAcH06BBAwBcXFzo0aMHq1atolGjRpiYmGBlZcWRI0fkwk5kuOvXr1OnTh08PT2ZNm0aBw4cYP78+djY2NCmTRvMzc0xMTHBwcEBExOTNMdVkXml/H0nTZrE0qVL2bZtG2XKlMHCwgKlFMWLF2f8+PFomsb69eupXLky3bp1Y9OmTYDUss9MZGhHFvT8+XPg1YFA0zS2bdtG27ZtKV++PD4+Pjx58oQ5c+Ywffp0NE1j7ty5eHt74+Liws8//6wnOXKiEB/STz/9RKNGjfSZCFNs376dChUq0K1bN/bt20dCQgIA5ubmGBkZkZSUZKiQRSZkbm5O9+7dCQgIYOLEiQD0798fT09PrK2tefnyJWPGjCE0NJQuXbrox1WR+T158oT9+/czd+5cqlWrxrNnz9i/fz9du3Zl+fLlWFlZMWHCBNzc3Pjkk094+fKlvq18RzIP6ZHOYnr16kVSUhI//PADmqYRHR3NggUL0sz81qNHD8aNG0dQUBDly5enZcuWjBs3DjMzMxnzJz6atm3bEhISgp+fH/v376dixYpYWloCEBoaSvPmzXF2dubYsWNUq1ZN3056ecT7eL16Qr58+ejbty9mZmYsXrwYTdMYO3YsACEhISxcuJBLly6xe/duSpcubaiwhQFomsaFCxe4ePEi+/fvZ+HChdy4cUO/y/vs2TMGDx7M8OHDmTlzJmvXrtWHTEqt6Ezk41fcE4aybt06ZWtrq06fPp1mee3atdWIESOUUv+/jmVsbKyqWbOm6ty5s95O6vCKjyUhIUF/3bFjR/XZZ5+pNWvWqOjo6DTtBg8eLLVXRYY7cOCAWrp0aZplUVFRavLkySpfvnxqxowZSimlHj9+rObPny819LOwZcuWqZw5cyobGxs1fPhwtWvXLqWUUp07d05z/oyMjFRubm7K2dlZ/f777waKVnwI0iOdhdy5c4fcuXNTsWJFgoKCOH/+PKNHjyZ79uxcunQJQL81ni1bNpydndm9ezfx8fF88skncitKfDSpaz+vXbuW9u3bM23aNOBVT7WFhQXwavYwkPGGIuO8fPkSf39/AgMDMTY2plu3bsCrnmkvLy9OnTrFuHHjiIuLY+zYsfTr18/AEQtD6t69O40bNyYuLk6vKZ6cnExUVBQ1atTQx8zb29szY8YMzMzMZKr4TEbuLWQhDRo0QCnF559/TqtWrfSn0CdOnEhoaCgjR45E0zQ9Ibl27RoFChSQW1DCIIyNjfXxzv7+/jg6OjJr1izWrFlDXFzcG22FyAgWFhZ4e3vj7u7OjBkzWL58ub4uX758ODo6UqhQITZt2sRvv/0m084LChcuTMmSJXnx4gUHDx6kZcuWPHz4UH/YMEWxYsXIly+fASMVH4KUv8ti+vbty6JFi6hZsyaHDh3Sl/v7++Pp6cnnn39OwYIFSUpKYv369Rw+fJjy5csbMGKRWb0+kUFqqXuYU792dnbGzs6O//73v3KHRGQI9X9joh88eEBycrKe6Fy8eJGFCxfy888/M2zYMLy8vAAYNWoUn376KT169CB79uyGDF38gyilCAsLY/bs2SQkJBAcHIypqancLcsCJJHOQmJiYnB1dcXe3p7Dhw9TqVIlfvzxR319eHg4M2bM4I8//sDGxoZRo0ZRrlw5A0YsMqvUSfSPP/7I5cuXSUhIoE6dOmlmJUyR+mSUsq2SKXVFBgkMDGTgwIFYWVmRM2dO1q9fT/78+bly5QoLFy5k7dq1VKtWDSsrK3bt2sXx48cpUaKEocMW/zBxcXFcuHABR0dHjIyMZFbVLEIS6Szm5cuXWFhYsGLFCmbOnEnVqlXTJNMp//FTxkUL8SENHz6cNWvW0LZtW+7evUtERAQeHh5MmTLljbapk+8/680W4l1cuXIFZ2dn+vbti52dHUuWLOHXX38lKCgIR0dH7t27R1hYGKtWrSJPnjwMHTpU7tKJvyTHqKxDEuks6sWLF2zYsIGZM2dSpUoVPZlOSEjA1NRUevvEB7d161b69etHQEAATk5OrFu3Di8vL5YtW0anTp0MHZ7IxFIf36Kioli8eLFeI/rFixe0atWKK1euEBISQoUKFYBXd0WSkpKkg0EIkYZcLmVRVlZWuLu7M3z4cM6ePUvLli0B9IkvJIkWGS1lRswUUVFRlCxZEicnJzZu3Ii3tzffffcdnTp1Ijo6miNHjhgoUpGZpSTRu3btYsSIEXTp0oULFy4QHR0NvDo2bt68mVKlStGmTRtOnToFvHqgVZJoIcTrJJHOwiwtLXF3d6dPnz7cv3+fqKgoQ4ckMrGU25x+fn7cvXuXmJgYChQoQGhoKN26dWPmzJn4+PgAsHPnTrZu3crjx48NGbLIhDRN4+eff8bFxYXTp0/z66+/Ehoayp49e/RZMlOS6Zw5c9KtW7c3qsQIIUQKGdohePnyJQkJCfIEuvggUj8oOG3aNMaPH8/Vq1eJioqiVq1aAKxcuRJPT0/g1UOxrVu3pkiRIvpMckJklAcPHjBt2jQcHBzo1asXycnJuLq6cubMGVatWkWjRo30B8Sio6N5/PgxhQsXNnDUQoh/KumRFlhYWEgSLTJcv379OH36tJ5EX7p0iWzZsrFx40YKFy5MjRo1WLx4Maampty+fZtDhw5x6NAhWrVqxf379/H19UXTNKnTKzLMmTNnaNy4Mbt27SJPnjzAqzsl27Zto0KFCnTt2pV9+/bpPdOWlpaSRAsh/pQk0kKIDNesWTNOnjypP6h14MABHBwcmDBhQpon2b/88ksWLlzIggULcHNz46uvvsLExITjx4/rsxtKj7TIKBUrVsTBwYGLFy9y/PhxYmJi9HWhoaFUrlyZ5s2bc/DgQQNGKYT4N5FEWgiRoW7dusW9e/cYPXo0xsbG7Nu3jzx58jBx4kRiYmK4ePEi8OqhLwsLC7p3786pU6fYvXs3GzZsICQkBFNTUxITE2UiA5FhUs+S2alTJzZs2MDGjRt5+fKl3iYkJIQWLVpQoEABQ4UphPiXkTHSQogMc/nyZfLmzUvt2rVp2rQpDx484MiRIxw/fhwjIyNmzpzJ9OnTWbt2Le3bt0cphVLqjXqrUoNVfAipx+u3b9+e8PBwRo4cSbt27bCwsDBwdEKIfyOZckcIkSEaNWpEmTJl8PX1ZcGCBTRr1gwjIyP8/f3JmTMnACNGjCApKYlOnTqhaRoeHh5v3Zck0eJDMDY21pNpf39/2rdvz+zZs4mNjaVz586Ym5sbOkQhxL+MnK2EEO9t8uTJXL16FV9fX+DV8I7Y2Fg0TWP//v3cuHEDABsbG0aPHs3w4cPp3LkzK1eulDHQ4qNIqWOekkzDq2EeBQoUYOXKlcTHxxsyPCHEv5T0SAsh3ptSCkdHR5RSTJs2jSJFivDs2TPCwsLo2LEj8fHxDBw4kKJFi2JjY8OoUaN49uwZK1asoFu3boYOX2QSKZOt/PLLL0RERPD7779TvXp1ateujZGRkb4+dc/0tm3b+PXXX6VykRAiXWSMtBDivQUFBdG1a1fKlSvHwYMHuXLlCiVKlABg/fr19OjRAy8vLwYNGkSRIkWAV/XLzc3NpUdaZKiffvqJnj170qhRI27dugVAnTp1+O67795om3rMtBBCpIf0SAsh3luLFi0oWbIkR48epXv37uTLl09f5+7uDkCvXr0wMjKib9++FC9eXH+4K6WXUIj3FRERwcCBA5k2bRre3t6Eh4dTo0YNmjRpkqZd6p5pIYR4HzJGWgjxXpKTk3n69Cm5cuVi6NChrF+/nilTpqSZct7d3Z2lS5cyd+5cQkJC0mwvSbRIr9dvqN65c4f8+fPj7e3NjRs3aNGiBZ07d2by5MkAnD17FpDvnBAi40iPtBDinaUuT2dkZESOHDkIDg7GxMSEggULMnLkSDRNo1+/fnrvtJubG7lz56ZevXqGDF1kQseOHaNQoUJER0djZ2fH7du3qVevHs2aNWPhwoUAHD58mG3btmFra0v+/PkNHLEQIrOQRFoI8U5SJ9Fbtmzh/v37aJpGgwYNKFWqFH369EHTNEaMGIGmafTt21dPphs1agRAYmIiJiZy+BHpkzI0Q9M0QkNDadasGWFhYdjb27Njxw6KFy9Onz59+P777/Vt/P39iYyMlHrRQogMJWcyIcQ7SUmihw4dyurVq/nss884c+YMZcuWxc3NjSFDhtC7d2+MjIwYOXIkz549Y/z48eTOnVvfhyTRIj0WLFhAlSpVqFmzJgAPHz7k/v37zJw5k7p16wKwePFi+vTpg52dHTdv3iQ+Pp5ly5bx448/cuDAAXLkyGHA30AIkdnI2UwI8c42btyIn58foaGhVK5cmWfPnjF8+HCCgoKwsrLC29sbb29vYmJi2Lp1K7ly5TJ0yOJfbsyYMSxdupSjR48CEBkZScmSJcmXLx8TJkzQ27m7uxMXF8fQoUNZvHgx2bNnR9M0du/eTdmyZQ0VvhAik5Lyd0KIdzZz5kw2bdrEgQMHMDY2xsjIiAcPHtCnTx+eP3/Ozp079bYpt+GlOodID6UUv//+O66urri5uTFo0CCuXLkCwNq1a5k+fTqjRo1i/Pjxab5jkZGR3L59G2tra4oUKYKtra0hfw0hRCYlPdJCiL8tJVExMTEhNjaW+Ph4LC0tSUxMJE+ePIwaNQonJyfOnDmDo6OjPo5VkmiRXr/++iv58+fH2NiY69evM3/+fCZPnkxYWBiDBg0iKSmJSZMmUbp0aTp06IBSCqUUxYsXp3jx4oYOXwiRyUkiLYT421KS4aZNmzJ8+HC+/fZbxo0bp495TkpKoly5ctjY2KRJnCWJFukxbNgwrl27RmBgINOnT6dp06bEx8czbtw4PvvsMwCGDx9OYmIiX375JUZGRnh4eBg4aiFEViKJtBDinTk4OLB8+XJ69uzJ8+fPadOmDTlz5mTChAnkyJGDokWLGjpE8S8XEBDAggULOHXqFADW1tZER0djbm7O06dPuXHjBsWKFcPGxobRo0cD4OnpSWxsLJ6enoYMXQiRhUgiLYRIF09PT6ysrOjfvz/r1q3DwsICOzs79u3bh5GRUZoyeUK8qxcvXuDk5ESZMmUIDQ3l/v37HDlyhEePHtGhQwfi4+MZOHAgRYsW1ZPp6OhoBg8eTJs2bbC2tjb0ryCEyALkYUMhxHu5f/8+Dx48ID4+nipVqmBkZCR1osV72759O19++SXOzs4EBAQQGBhIy5YtgVe91T179sTLy4tBgwZRpEgRAJ4/f05MTAx2dnaGDF0IkYVIIi2EyFDSEy0yiqenJ+vWraNp06b4+/unmUxl/fr19OjRg549e9K3b1/s7e0NGKkQIquSs50QIkNJEi3eV3JyMjExMVy/fp02bdoQFhbGlClTiIqK0tu4u7uzYsUKvvvuO5YtW0ZiYqIBIxZCZFXSIy2EEOIf6eXLl1hYWLBo0SJGjBhB//796devnz7lPEBgYCAODg6ULl3agJEKIbIqGcQohBDC4FJqjYeHhxMVFcXLly+pU6cOFhYW9O7dG4ARI0YApEmmW7dubbCYhRBCEmkhhBAGp2kaGzduxMfHh0KFChEeHk716tVxd3dn4MCB9O7dG03T+Prrr4mOjmbkyJHkzZvX0GELIbI4GcwohBDC4E6fPk3v3r2ZMWMGe/bsISoqilKlShEYGMiCBQsA8PHxYdy4cWzatAljY2MDRyyEEDJGWgghxD+An58fU6ZM4ciRI1hbW6NpGg8ePGDw4MHcuXOH7du3Y2lpCcDTp0/JkSOHYQMWQgikR1oIIcQ/gJGREXFxcbx8+RJN00hMTCRPnjxMmTKFgwcPcuTIEb1t9uzZDRipEEL8f5JICyGEMLhq1apx9+5dfRhHyoQ+mqZRrly5NDMVappmkBiFEOJ18rChEEIIgytevDjLly/Hy8uL5ORkvLy8sLGxYenSpTx9+pRChQoZOkQhhHiDjJEWQgjxj6CUwt/fH29vb3LmzImZmRkvX75ky5YtVK5c2dDhCSHEGySRFkII8Y9y69YtLl26RFJSEhUqVKBgwYKGDkkIId5KEmkhhBBCCCHSQR42FEIIIYQQIh0kkRZCCCGEECIdJJEWQgghhBAiHSSRFkIIIYQQIh0kkRZCCCGEECIdJJEWQgghhBAiHSSRFkIIIYQQIh0kkRZCCCGEECIdJJEWQgih27x5M+vWrXvn7f773/+ybdu2DxCREEL8c0kiLYQQmdi+ffvQNI2nT5/+Zdtjx44xYMAAatas+c4/p0aNGvj4+HD27Nl0RCmEEP9OkkgLIUQ6aJr2p/+6du1q6BDfat++fRQtWvSN5U+ePKF79+5s3rz5rev/SsmSJVm/fj1dunThjz/+eP9A/0He5WJECJG1mBg6ACGE+De6d++e/jogIIBvvvmGy5cv68vMzc0NEVa65cqVi/Pnz7/XPmrUqCE90kKILEV6pIUQIh3y5s2r/8uePTuappE3b17y5MlDnTp1WLp0aZr258+fx8jIiMjISOBVj/aiRYtwcXHB3NycYsWKsWHDhjTb/Prrr3h4eJAzZ05y585Ny5YtuXnz5p/GtW3bNkqVKoW5uTkNGzb8y/YAwcHBVKlSBTMzM+zt7ZkwYQKJiYkAdOjQgfbt26dpn5CQwKeffsrKlSsBUEoxc+ZM7O3tMTc3p3z58mnGWaf06O7evZuqVatiYWFBrVq10lx4/FUcKZ/ZkiVLcHV1xcLCgjJlynDkyBGuXbtGgwYNsLS0pGbNmvpn/C77XbZsGa1bt8bCwoKSJUsSFBQEwM2bN2nYsCEAOXPmTHO3YePGjZQvXx5zc3Ny587Nf/7zH6Kjo//y8xZCZCJKCCHEe1m5cqXKnj27/n7KlCnKwcEhTZtBgwapevXq6e8BlTt3brV06VJ1+fJlNWbMGGVsbKwuXLiglFIqOjpalSxZUnl5eanw8HB14cIF1bFjR1W6dGkVFxf31jhu376tsmXLpr766it16dIl9eOPP6o8efIoQP3+++9KKaX27t2rihQpom8TGhqqbGxs1KpVq1RkZKTauXOnKlq0qBo/frxSSqng4GBlbm6unj9/rm8THByszMzM1LNnz5RSSo0ePVqVLVtW7dy5U12/fl2tXr1amZmZqR07dug/E1DVq1dX+/btUxEREapu3bqqVq1afzuOlM+sQIECKiAgQF2+fFm1atVKFS1aVDVq1EiFhoaqCxcuqBo1aqimTZu+834LFiyo/Pz81NWrV9WAAQOUlZWVevz4sUpMTFQ//fSTAtTly5fVvXv31NOnT1VUVJQyMTFRc+bMUTdu3FDh4eHK19c3zeckhMj8JJEWQoj39HoiHRUVpYyNjdWxY8eUUkrFx8crW1tbtWrVKr0NoHx8fNLsp3r16qp3795KKaWWL1+uSpcurZKTk/X1cXFxytzcXE9QXzdq1ChVpkyZNNuMGDEiTSL9urp166qpU6emWfbf//5X5cuXT4/9008/VWvWrNHXd+jQQbm5uSmllHrx4oUyMzPTf9cUPXv21NukJNI///yzvn7r1q0KUDExMX8rDqVefWZjxozR3x85ckQBavny5fqydevWKTMzs7/9+71tvy9evFCapqnt27eniT/1Z3jy5EkFqJs3byohRNYlY6SFECKD5cuXj+bNm7NixQqcnJwICQkhNjYWNze3NO1er45Rs2ZNzpw5A8DJkye5du0a1tbWadrExsa+MXQhxcWLF6lRowaapv3Pn/G6kydPcvz4caZMmaIvS0pKIjY2lpcvX2JhYYGbmxtr166lc+fOREdHs2XLFvz8/AC4cOECsbGxVK9e/Y19V6lSJc37ChUq6K/z5csHwMOHDylcuPDfiuP1feTJkweA8uXLp1kWGxvLH3/8gY2NTbr2a2lpibW1NQ8fPvyfn5ujoyOff/455cuXp0mTJjg7O9OuXTty5sz5P7cRQmQ+kkgLIcQH0KNHDzp37sx3333HypUr8fDw0JO2P5OSBCcnJ1OlShXWrl37RhtbW9u3bquUeuc4k5OTmTBhAm3atHljnZmZGQCdOnWifv36PHz4kF27dmFmZoaLi4u+PcD169cpVqzYn/4sU1NT/XXq3/PvxvG/9pHR+03ZT8o+3sbY2Jhdu3Zx+PBhdu7cyfz58/n66685duzYX34OQojMQxJpIYT4AJo1a4alpSWLFi1i+/bt7N+//402R48epUuXLmneV6pUCYDKlSsTEBCAnZ0dNjY2f+tnOjg4sHnz5jd+xp+pXLkyly9fpkSJEv+zTa1atShUqBABAQFs374dNzc3PvnkE/1nZsuWjd27d9OjR4+/FWd64zDUflN+16SkpDTLNU2jdu3a1K5dm2+++YYiRYoQGBjI4MGD3ytmIcS/hyTSQgjxARgbG9O1a1dGjRpFiRIl3jrEYsOGDVStWpU6deqwdu1afvnlF5YvXw686gWeNWsWLVu2ZOLEiRQsWJDbt2+zadMmhg0bRsGCBd/Yn4+PD7Nnz2bw4MF4e3tz8uRJVq1a9adxfvPNN7i6ulKoUCHc3NwwMjIiPDycc+fOMXnyZOBVwtixY0cWL17MlStX2Lt3r769tbU1Q4cOZfjw4WiaRv369Xn+/Dn79+/H0tLybyfXfyeO9MiI/RYpUgRN0wgJCaFZs2aYm5sTERHB7t27cXZ2xs7OjmPHjvHbb79RpkyZdMcqhPgXMvQgbSGE+Ld7/WHDFJGRkQpQM2fOfGMdoHx9fVXjxo1VtmzZVJEiRdS6devStLl3757q0qWL+vTTT1W2bNmUvb296tmzp14t422Cg4NViRIlVLZs2VTdunXVihUr/vRhQ6VeVbaoVauWMjc3VzY2NsrJyUn98MMPadpEREQoQBUpUiTNw4xKKZWcnKy+//57Vbp0aWVqaqpsbW1VkyZNVFhYmFLq7Q/rnT59WgHqxo0bfzsOQAUGBurvb9y4oQB1+vRpfdnbfta77lcppbJnz65Wrlypv584caLKmzev0jRNeXp6qgsXLqgmTZooW1tblS1bNlWqVCk1f/78//kZCyEyJ02pdAyqE0II8ZcOHTpEgwYNuHv3rv5gXApN0wgMDKRVq1aGCU4IIcR7k6EdQgiRweLi4rhz5w5jx47F3d39jSRaCCFE5iAzGwohRAZbt24dpUuX5tmzZ8ycOdPQ4QghhPhAZGiHEEIIIYQQ6SA90kIIIYQQQqSDJNJCCCGEEEKkgyTSQgghhBBCpIMk0kIIIYQQQqSDJNJCCCGEEEKkgyTSQgghhBBCpIMk0kIIIYQQQqSDJNJCCCGEEEKkw/8D8xb9bwxbuAkAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Nombre Total de tickets achetés sur Internet par Type d'évènements\n", - "\n", - "nb_tickets_internet = customer.groupby('name_event_types')['nb_tickets_internet'].sum()\n", - "nb_tickets_internet.plot(kind='bar', figsize=(8, 5))\n", - "plt.xlabel(\"Type d'évènements\")\n", - "plt.ylabel('Nombre Total de tickets achetés sur Internet')\n", - "plt.title(\"Nombre Total de tickets achetés sur Internet par Type d'évènements\")\n", - "plt.xticks(rotation=45)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "d679204b-f3e8-4502-8de9-3bf4180da3bd", - "metadata": {}, - "source": [ - "# 2 - Autres informations sur client " - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "id": "1df2a145-f47f-4511-aa76-0df7531dd2ec", - "metadata": {}, - "outputs": [], - "source": [ - "def tags_information(tenant_id, first_tags = 20):\n", - "\n", - " customersplus = load_dataset_2(tenant_id, \"customersplus\")[['id', 'structure_id']]\n", - " customersplus.rename(columns = {'id' : 'customer_id'}, inplace = True)\n", - " tags = load_dataset_2(tenant_id, \"tags\")[['id', 'name']]\n", - " tags.rename(columns = {'id' : 'tag_id', 'name' : 'tag_name'}, inplace = True)\n", - " structure_tag_mappings = load_dataset_2(tenant_id, \"structure_tag_mappings\")[['structure_id', 'tag_id']]\n", - " \n", - " customer_tags = pd.merge(customersplus, structure_tag_mappings, on = 'structure_id', how = 'left')\n", - " customer_tags = pd.merge(customer_tags, tags, on = 'tag_id', how = 'inner')\n", - " \n", - " nb_customers_with_tag = customer_tags['customer_id'].nunique()\n", - " \n", - " # print('Nombre de client avec tag : ', nb_customers_with_tag)\n", - " # print('Proportion de clients avec tags : ', nb_customers_with_tag/len(customersplus))\n", - " # print('Moyenne de tags par client : ', len(customer_tags)/nb_customers_with_tag)\n", - " \n", - " # info = customer_tags.groupby(['tag_id', 'tag_name'])['customer_id'].count().reset_index().sort_values('customer_id', ascending = False).head(first_tags)\n", - "\n", - " tags_informations = pd.DataFrame({'company_number' : tenant_id,\n", - " 'nb_customers_with_tags' : [nb_customers_with_tag],\n", - " 'prop_customers_with_tags' : [nb_customers_with_tag/len(customersplus)],\n", - " 'mean_tags_per_customers' : [len(customer_tags)/nb_customers_with_tag]})\n", - " \n", - " return tags_informations" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "id": "c4ecbb15-0f55-46dc-a3df-6e8c4ae44ebd", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre de client avec tag : 13320\n", - "Proportion de clients avec tags : 0.0877089012682233\n", - "Moyenne de tags par client : 2.1725975975975977\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_467/1769900082.py:8: DtypeWarning: Columns (20) have mixed types. Specify dtype option on import or set low_memory=False.\n", - " df = pd.read_csv(file_in, sep=\",\")\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre de client avec tag : 5953\n", - "Proportion de clients avec tags : 0.021598421025897787\n", - "Moyenne de tags par client : 1.0\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_467/1769900082.py:8: DtypeWarning: Columns (19,20) have mixed types. Specify dtype option on import or set low_memory=False.\n", - " df = pd.read_csv(file_in, sep=\",\")\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre de client avec tag : 23659\n", - "Proportion de clients avec tags : 0.09207484608139978\n", - "Moyenne de tags par client : 3.0620482691576143\n", - "Nombre de client avec tag : 10495\n", - "Proportion de clients avec tags : 0.03271416949025744\n", - "Moyenne de tags par client : 5.298427822772749\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_467/1769900082.py:8: DtypeWarning: Columns (20) have mixed types. Specify dtype option on import or set low_memory=False.\n", - " df = pd.read_csv(file_in, sep=\",\")\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre de client avec tag : 532342\n", - "Proportion de clients avec tags : 0.18660686931118298\n", - "Moyenne de tags par client : 24.114082676174338\n" - ] - } - ], - "source": [ - "tags_comparaison = pd.DataFrame()\n", - "\n", - "for tenant_id in companies['musee'] : \n", - " \n", - " tags_comparaison = pd.concat([tags_comparaison, tags_information(tenant_id)])" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "id": "bd2dd513-3375-4073-a12a-fa0e9f20571e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_numbernb_customers_with_tagsprop_customers_with_tagsmean_tags_per_customers
01133200.0877092.172598
0259530.0215981.000000
03236590.0920753.062048
04104950.0327145.298428
01015323420.18660724.114083
\n", - "
" - ], - "text/plain": [ - " company_number nb_customers_with_tags prop_customers_with_tags \\\n", - "0 1 13320 0.087709 \n", - "0 2 5953 0.021598 \n", - "0 3 23659 0.092075 \n", - "0 4 10495 0.032714 \n", - "0 101 532342 0.186607 \n", - "\n", - " mean_tags_per_customers \n", - "0 2.172598 \n", - "0 1.000000 \n", - "0 3.062048 \n", - "0 5.298428 \n", - "0 24.114083 " - ] - }, - "execution_count": 59, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tags_comparaison" - ] - }, - { - "cell_type": "markdown", - "id": "507c1db3-1d6c-4106-a9a2-0187055e0480", - "metadata": {}, - "source": [ - "# 3 - Graphiques communs" - ] - }, - { - "cell_type": "markdown", - "id": "aac367ed-9d5e-482a-a376-bfc7d1a5767e", - "metadata": {}, - "source": [ - "## Nombre de clients" - ] - }, - { - "cell_type": "code", - "execution_count": 62, - "id": "94254c32-dc81-42f2-9d27-372ff38c70ed", - "metadata": {}, - "outputs": [], - "source": [ - "def compute_nb_clients(customer_musee):\n", - " company_nb_clients = customer_musee[customer_musee[\"purchase_count\"]>0].groupby(\"number_company\")[\"customer_id\"].count().reset_index()\n", - " plt.bar(company_nb_clients[\"number_company\"], company_nb_clients[\"customer_id\"]/1000)\n", - "\n", - " # Ajout de titres et d'étiquettes\n", - " plt.xlabel('Company')\n", - " plt.ylabel(\"Nombre de clients (milliers)\")\n", - " plt.title(\"Nombre de clients de chaque compagnie de musee\")\n", - " \n", - " # Affichage du barplot\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "aed68c8c-1912-4d8d-a974-11ad371f6ee8", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHFCAYAAAD2eiPWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJYElEQVR4nO3dd3RU1f7+8WcgPYRAAqRACAFCMwSkFzWUAEZBEBQsl6LIRSlKuyqiF1CKFKkqXq9KsQAqRSkCkRJFBKlSBAUvVYn0BCIEkuzfH34zP4YEyJAJSY7v11qzFrNnzzmffXYyeThtbMYYIwAAAAsrkt8FAAAA5DUCDwAAsDwCDwAAsDwCDwAAsDwCDwAAsDwCDwAAsDwCDwAAsDwCDwAAsDwCDwAAsDwCTwEza9Ys2Ww2eXl56fDhw1leb9asmaKiovKhMqlHjx4qVqxYvqz7Zmw2m0aMGHFb19msWTM1a9bsttexfPny2zbW/NiuFSpUUNu2bW/rOlHwHTp0SDabTbNmzcrzdeXHzz3yHoGngEpNTdXLL7+c32XASd9//72eeuqpPF3H8uXLNXLkyDxdB1DQhISE6Pvvv9f999+f36WgkCLwFFD33nuvPvnkE/3444/5XYpLGGN08eLF/C4jzzVq1EjlypXL7zIAy/H09FSjRo1UunTp/C4FhRSBp4B6/vnnFRgYqBdeeOGmfS9duqShQ4cqIiJCHh4eKlu2rPr27atz58459Ms8VLB06VLdeeed8vb2VvXq1bV06VJJfx1Oq169unx9fdWgQQNt2bIl2/Xt2bNHLVu2lK+vr0qXLq1+/frpzz//dOhjs9nUr18/vfPOO6pevbo8PT01e/ZsSdL+/fv12GOPqUyZMvL09FT16tX11ltv5Wi7JCcnq1evXgoMDFSxYsV077336pdffsm2b27Wk5GRoenTp6t27dry9vZWiRIl1KhRI3355Zc3fF92u8ITExPVu3dvlStXTh4eHoqIiNDIkSOVlpZm75O5u37ixImaNGmSIiIiVKxYMTVu3FgbN2609+vRo4d9DDabzf44dOiQJOmzzz5Tw4YN5e/vLx8fH1WsWFFPPvnkTcdbELfrihUrVKdOHXl7e6tatWr64IMPHF4/efKk+vTpoxo1aqhYsWIqU6aMWrRooW+//TbLsn7//Xd17txZfn5+8vf3V5cuXbRx48Ysh0iyO0wp/bXdK1So4NB2+fJljRo1StWqVZOnp6dKly6tJ554QidPnszRtti0aZPatWunwMBAeXl5qVKlShowYIBDn/Xr16tly5by8/OTj4+PmjRpomXLljn0yTwMvmbNGvscFi9eXN26dVNKSooSExPVuXNnlShRQiEhIRoyZIiuXLlif3/mz9748eM1evRolS9fXl5eXqpXr55Wr17tsK4DBw7oiSeeUGRkpHx8fFS2bFm1a9dOu3btyjK+PXv2qHXr1vLx8VHp0qXVt29fLVu2TDabTevWrXPY5lFRUdq8ebPuvvtu+8/t66+/royMjCx1XntIqzB8nmR+Hs6cOVNVq1aVt7e36tWrp40bN8oYowkTJth/51u0aKEDBw44vL9ChQrq0aNHluVe+/OakZGhUaNG2ddRokQJRUdHa+rUqbc0luTkZA0ZMsThb8uAAQOUkpKSo3EXOAYFysyZM40ks3nzZjN16lQjyaxevdr+ekxMjLnjjjvszzMyMkybNm2Mm5ubeeWVV8yqVavMxIkTja+vr7nzzjvNpUuX7H3Dw8NNuXLlTFRUlJk7d65Zvny5adiwoXF3dzf//ve/TdOmTc3ChQvNokWLTJUqVUxQUJD5888/7e/v3r278fDwMOXLlzejR482q1atMiNGjDBubm6mbdu2DuOQZMqWLWuio6PNJ598YtasWWN2795t9uzZY/z9/U3NmjXNnDlzzKpVq8zgwYNNkSJFzIgRI264bTIyMkzz5s2Np6enff3Dhw83FStWNJLM8OHD7X1zsx5jjOnataux2WzmqaeeMl988YX56quvzOjRo83UqVMd5iImJibLuK+u4/jx4yYsLMyEh4eb//znP+brr782r732mvH09DQ9evSw9zt48KCRZCpUqGDuvfdes3jxYrN48WJTs2ZNU7JkSXPu3DljjDEHDhwwDz30kJFkvv/+e/vj0qVLZsOGDcZms5lHHnnELF++3KxZs8bMnDnTdO3atVBt18yf0xo1apg5c+aYlStXmocffthIMgkJCfZ++/btM88884yZN2+eWbdunVm6dKnp2bOnKVKkiFm7dq29359//mmqV69u/P39zfTp083KlSvNs88+a8qXL28kmZkzZ95wTo3562c/PDzc/jw9Pd3ce++9xtfX14wcOdLEx8eb9957z5QtW9bUqFHD4fcmOytWrDDu7u4mOjrazJo1y6xZs8Z88MEH5pFHHrH3WbdunXF3dzd169Y18+fPN4sXLzatW7c2NpvNzJs3z94v8zMjIiLCDB482KxatcqMGzfOFC1a1Dz66KOmTp06ZtSoUSY+Pt688MILRpJ544037O/P/NkLCwszd911l1mwYIH57LPPTP369Y27u7vZsGGDvW9CQoIZPHiw+fzzz01CQoJZtGiR6dChg/H29jb79u2z9/v9999NYGCgKV++vJk1a5ZZvny56dq1q6lQoYKR5DA/MTExJjAw0ERGRpp33nnHxMfHmz59+hhJZvbs2VnqvHq+CsvniSQTHh5umjRp4vAZGxAQYAYOHGjat29vli5daj7++GMTFBRkoqOjTUZGhv394eHhpnv37lmWe+3P69ixY03RokXN8OHDzerVq82KFSvMlClTHGrM6VhSUlJM7dq1TalSpcykSZPM119/baZOnWr8/f1NixYtHOorLAg8BczVgSc1NdVUrFjR1KtXz/7DdW3gWbFihZFkxo8f77Cc+fPnG0nm3XfftbeFh4cbb29vc+zYMXvbjh07jCQTEhJiUlJS7O2LFy82ksyXX35pb+vevbuR5PDHyRhjRo8ebSSZ9evX29skGX9/f3PmzBmHvm3atDHlypUzSUlJDu39+vUzXl5eWfpf7auvvrrh+q/+gMrNer755hsjyQwbNuy6fYzJWeDp3bu3KVasmDl8+LBDv4kTJxpJZs+ePcaY//9hXrNmTZOWlmbv98MPPxhJZu7cufa2vn37muz+r5K5zMxwlFMFbbuGh4cbLy8vh2128eJFExAQYHr37n3d96WlpZkrV66Yli1bmgcffNDePmPGDCPJfPHFFw79e/XqdcuBZ+7cuUaSWbBggUO/zZs3G0nm7bffvuEYK1WqZCpVqmQuXrx43T6NGjUyZcqUMefPn3cYY1RUlClXrpz9MyHzM6N///4O7+/QoYORZCZNmuTQXrt2bVOnTh3788yfvdDQUId6kpOTTUBAgImNjb1ujWlpaeby5csmMjLSDBw40N7+r3/9y9hsNvvPd6Y2bdpkG3gkmU2bNjn0rVGjhmnTpk2WOq+er8LweWLMX58LwcHB5sKFC/a2zM/Y2rVrO4SHKVOmGElm586d9racBp62bdua2rVr37CWnI5l7NixpkiRImbz5s0O/T7//HMjySxfvvyG6ymIOKRVgHl4eGjUqFHasmWLPv3002z7rFmzRpKy7O58+OGH5evrm2WXdO3atVW2bFn78+rVq0v6a9eoj49PlvbsrhR7/PHHHZ4/9thjkqS1a9c6tLdo0UIlS5a0P7906ZJWr16tBx98UD4+PkpLS7M/7rvvPl26dMnh8M21Mpd/vfW7aj1fffWVJKlv377X7ZNTS5cuVfPmzRUaGupQR1xcnCQpISHBof/999+vokWL2p9HR0dLyn4erlW/fn1JUufOnfXpp5/qt99+y1GNBXG71q5dW+XLl7c/9/LyUpUqVbJsh3feeUd16tSRl5eX3Nzc5O7urtWrV2vv3r0O4/Pz89MDDzxww/E5Y+nSpSpRooTatWvnsB1q166t4OBgh0M21/rll1/066+/qmfPnvLy8sq2T0pKijZt2qSHHnrI4crIokWLqmvXrjp27Jh+/vlnh/dce2Vb5u/wtSf5Vq9ePdufp44dOzrU4+fnp3bt2umbb75Renq6JCktLU1jxoxRjRo15OHhITc3N3l4eGj//v0O2zwhIUFRUVGqUaOGwzoeffTRbMcbHBysBg0aOLRFR0ff8Oe+sHyeZGrevLl8fX3tzzPnJy4uTjabLUt7Tn7nr9WgQQP9+OOP6tOnj1auXKnk5ORbHsvSpUsVFRWl2rVrO/Rr06ZNlsOShQWBp4B75JFHVKdOHQ0bNszhuHum06dPy83NLcuJfDabTcHBwTp9+rRDe0BAgMNzDw+PG7ZfunTJod3NzU2BgYEObcHBwfZarhYSEpKl1rS0NE2fPl3u7u4Oj/vuu0+SdOrUqSxjvHas11u/q9Zz8uRJFS1aNMtyb8Uff/yhJUuWZKnjjjvuyLaOa8fm6ekpSTk64fuee+7R4sWLlZaWpm7duqlcuXKKiorS3Llzb/i+grhdr61F+mtbXL0dJk2apGeeeUYNGzbUggULtHHjRm3evFn33nuvQ7/Tp08rKCgoy/JyM79//PGHzp07Jw8PjyzbIjEx8abbQdINT24/e/asjDFZfockKTQ0VFLW3zdnfrev/b2Wst8ewcHBunz5si5cuCBJGjRokF555RV16NBBS5Ys0aZNm7R582bVqlUrR9s8uzYpZ/N9rcLyeZIpt5+9OTF06FBNnDhRGzduVFxcnAIDA9WyZUv7+ZjOjOWPP/7Qzp07s/Tz8/OTMSZHYy5o3PK7ANyYzWbTuHHj1KpVK7377rtZXg8MDFRaWppOnjzpEHqMMUpMTLT/r99V0tLSdPr0aYcPicTERHst19Z+tZIlS9r/h3q9/+VHRERcd92ZY73e+l21ntKlSys9PV2JiYnZ/sFxRqlSpRQdHa3Ro0dn+3rmHy9Xad++vdq3b6/U1FRt3LhRY8eO1WOPPaYKFSqocePG2b6nMG5XSfroo4/UrFkzzZgxw6H9/PnzDs8DAwP1ww8/ZHn/teOT/tqTlJSUlKX92g/3UqVKKTAwUCtWrMi2Nj8/v+vWnfl7euzYsev2KVmypIoUKaLjx49nee3333+31+BK2W2PxMREeXh42PcyffTRR+rWrZvGjBnj0O/UqVMqUaKE/XlgYKD++OOPHK3jVhWWzxNX8PLyUmpqapb2U6dOOfwcuLm5adCgQRo0aJDOnTunr7/+Wi+99JLatGmjo0ePOjWWUqVKydvbO8vFAplc/fN3O7CHpxCIjY1Vq1at9Oqrr9r/p5WpZcuWkv76ILraggULlJKSYn/dlT7++GOH55988okkZXt1y9V8fHzUvHlzbd++XdHR0apXr16WR3b/08vUvHnzG67fVevJPNx07R/SW9G2bVvt3r1blSpVyraOWwk8Odnr4+npqZiYGI0bN06StH379uv2LYzbVforUGdui0w7d+7U999/79DWvHlznT9/PsuVYNeOT/rraphffvnF4Y/L6dOntWHDBod+bdu21enTp5Wenp7tdqhatep1665SpYoqVaqkDz74INs/YpLk6+urhg0bauHChQ7znJGRoY8++kjlypVTlSpVrruOW7Fw4UKHvQrnz5/XkiVLdPfdd9sPs2a3zZctW5bl8GlMTIx2796tn376yaF93rx5Lqu3sHyeuEKFChW0c+dOh7Zffvkly2HNq5UoUUIPPfSQ+vbtqzNnzujQoUNOjaVt27b69ddfFRgYmG2/a69aLAzYw1NIjBs3TnXr1tWJEyfsh0MkqVWrVmrTpo1eeOEFJScnq2nTptq5c6eGDx+uO++8U127dnVpHR4eHnrjjTd04cIF1a9fXxs2bNCoUaMUFxenu+6666bvnzp1qu666y7dfffdeuaZZ1ShQgWdP39eBw4c0JIlS+znJGWndevWuueee/T8888rJSVF9erV03fffacPP/zQpeu5++671bVrV40aNUp//PGH2rZtK09P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8fX1NYcOHTLGGPPiiy+arl272vtPnjzZLFq0yPzyyy9m9+7d5sUXXzSSzIIFC/JrCDl2/vx5s337drN9+3YjyUyaNMls377dHD582BiTdaz/+9//jI+Pjxk4cKD56aefzPvvv2/c3d3N559/nl9DcIqz4y3Mc/vMM88Yf39/s27dOnP8+HH7488//7T3scr83spYC+vcDh061HzzzTfm4MGDZufOneall14yRYoUMatWrTLGWGdOMzk73sI6r9dz7ZVLVpvfq91srK6aWwLPNd566y0THh5uPDw8TJ06dRwub+3evbuJiYmxPx83bpypVKmS8fLyMiVLljR33XWXWbZsWT5U7bzMy/yufXTv3t0Yk3Wsxhizbt06c+eddxoPDw9ToUIFM2PGjNtf+C1ydryFeW6zG6ckM3PmTHsfq8zvrYy1sM7tk08+af9sKl26tGnZsqX9j78x1pnTTM6Ot7DO6/VcGwKsNr9Xu9lYXTW3NmP+7ywnAAAAi+KkZQAAYHkEHgAAYHkEHgAAYHkEHgAAYHkEHgAAYHkEHgAAYHkEHgAAYHkEHgAAYHkEHgC3TWJiovr376+KFSvK09NTYWFhateunVavXp3fpQGwOL48FMBtcejQITVt2lQlSpTQ+PHjFR0drStXrmjlypXq27ev9u3bl98lArAw9vAAuC369Okjm82mH374QQ899JCqVKmiO+64Q4MGDdLGjRslSUeOHFH79u1VrFgxFS9eXJ07d9Yff/xhX8aIESNUu3ZtffDBBypfvryKFSumZ555Runp6Ro/fryCg4NVpkwZjR492mHdNptNM2bMUFxcnLy9vRUREaHPPvvMoc8LL7ygKlWqyMfHRxUrVtQrr7yiK1euZFn3hx9+qAoVKsjf31+PPPKIzp8/L0maM2eOAgMDs3ybd6dOndStWzeXbksAziPwAMhzZ86c0YoVK9S3b1/5+vpmeb1EiRIyxqhDhw46c+aMEhISFB8fr19//VVdunRx6Pvrr7/qq6++0ooVKzR37lx98MEHuv/++3Xs2DElJCRo3Lhxevnll+0hKtMrr7yiTp066ccff9Q//vEPPfroo9q7d6/9dT8/P82aNUs//fSTpk6dqv/+97+aPHlylnUvXrxYS5cu1dKlS5WQkKDXX39dkvTwww8rPT1dX375pb3/qVOntHTpUj3xxBO53oYAcim333IKADezadMmI8ksXLjwun1WrVplihYtao4cOWJv27Nnj5FkfvjhB2OMMcOHDzc+Pj4mOTnZ3qdNmzamQoUKJj093d5WtWpVM3bsWPtzSebpp592WF/Dhg3NM888c916xo8fb+rWrWt/nt26//Wvf5mGDRvanz/zzDMmLi7O/nzKlCmmYsWKJiMj47rrAXB7cA4PgDxnjJH016Gl69m7d6/CwsIUFhZmb6tRo4ZKlCihvXv3qn79+pKkChUqyM/Pz94nKChIRYsWVZEiRRzaTpw44bD8xo0bZ3m+Y8cO+/PPP/9cU6ZM0YEDB3ThwgWlpaWpePHiDu+5dt0hISEO6+nVq5fq16+v3377TWXLltXMmTPVo0ePG44bwO3BIS0AeS4yMlI2m83hENK1jDHZBoNr293d3R1et9ls2bZlZGTctK7M5W7cuFGPPPKI4uLitHTpUm3fvl3Dhg3T5cuXHfrfbD133nmnatWqpTlz5mjbtm3atWuXevTocdM6AOQ9Ag+APBcQEKA2bdrorbfeUkpKSpbXz507pxo1aujIkSM6evSovf2nn35SUlKSqlevnusarj2nZ+PGjapWrZok6bvvvlN4eLiGDRumevXqKTIyUocPH76l9Tz11FOaOXOmPvjgA8XGxjrssQKQfwg8AG6Lt99+W+np6WrQoIEWLFig/fv3a+/evZo2bZoaN26s2NhYRUdH6/HHH9e2bdv0ww8/qFu3boqJiVG9evVyvf7PPvtMH3zwgX755RcNHz5cP/zwg/r16ydJqly5so4cOaJ58+bp119/1bRp07Ro0aJbWs/jjz+u3377Tf/973/15JNP5rpuAK5B4AFwW0RERGjbtm1q3ry5Bg8erKioKLVq1UqrV6/WjBkzZLPZtHjxYpUsWVL33HOPYmNjVbFiRc2fP98l6x85cqTmzZun6OhozZ49Wx9//LFq1KghSWrfvr0GDhyofv36qXbt2tqwYYNeeeWVW1pP8eLF1alTJxUrVkwdOnRwSe0Acs9mMs8mBACLstlsWrRo0W0LIK1atVL16tU1bdq027I+ADfHVVoA4CJnzpzRqlWrtGbNGr355pv5XQ6AqxB4AMBF6tSpo7Nnz2rcuHGqWrVqfpcD4Coc0gIAAJbHScsAAMDyCDwAAMDyCDwAAMDyCDwAAMDyCDwAAMDyCDwAAMDyCDwAAMDyCDwAAMDyCDwAAMDy/h/zrjlJvMlDWgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "compute_nb_clients(customer_musee)" - ] - }, - { - "cell_type": "markdown", - "id": "5eb3efcc-c7a9-4a0e-aab1-29a36032cb31", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Part de consentement à la reception de mails" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "id": "848963c9-6129-4106-80b5-76bf814b70d1", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_449/1336968363.py:1: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " customer_musee[\"already_purchased\"] = customer_musee[\"purchase_count\"] > 0\n" - ] - } - ], - "source": [ - "customer_musee[\"already_purchased\"] = customer_musee[\"purchase_count\"] > 0\n", - "\n", - "def mailing_consent(customer_musee):\n", - " df_graph = customer_musee.groupby([\"number_company\", \"already_purchased\"])[\"opt_in\"].mean().reset_index()\n", - " # Création du barplot groupé\n", - " fig, ax = plt.subplots(figsize=(10, 6))\n", - " \n", - " categories = df_graph[\"number_company\"].unique()\n", - " bar_width = 0.35\n", - " bar_positions = np.arange(len(categories))\n", - " \n", - " # Grouper les données par label et créer les barres groupées\n", - " for label in df_graph[\"already_purchased\"].unique():\n", - " label_data = df_graph[df_graph['already_purchased'] == label]\n", - " values = [label_data[label_data['number_company'] == category]['opt_in'].values[0]*100 for category in categories]\n", - " \n", - " label_printed = \"purchased\" if label else \"no purchase\"\n", - " ax.bar(bar_positions, values, bar_width, label=label_printed)\n", - " \n", - " # Mise à jour des positions des barres pour le prochain groupe\n", - " bar_positions = [pos + bar_width for pos in bar_positions]\n", - " \n", - " # Ajout des étiquettes, de la légende, etc.\n", - " ax.set_xlabel('Numero de compagnie')\n", - " ax.set_ylabel('Part de consentement (%)')\n", - " ax.set_title('Part de consentement au mailing selon les compagnies')\n", - " ax.set_xticks([pos + bar_width / 2 for pos in np.arange(len(categories))])\n", - " ax.set_xticklabels(categories)\n", - " ax.legend()\n", - " \n", - " # Affichage du plot\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "id": "c7239078-5c1a-4522-8d72-848efe7df28f", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIhCAYAAABwnkrAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABhr0lEQVR4nO3dd3yN9///8ecRkS0kyNCIILYY1ar4VGLvVrXVojWqRe2iRvVTsWK0xUe1RluhWqufoqqoHZugwQdVWpuIWomVSHL9/ugv59tzYuSQ5ASP++12bjfX+1qv6+Sd8fS+rvcxGYZhCAAAAABglsfeBQAAAABAbkNQAgAAAAArBCUAAAAAsEJQAgAAAAArBCUAAAAAsEJQAgAAAAArBCUAAAAAsEJQAgAAAAArBCUAAAAAsEJQArLBrFmzZDKZzK+8efPqqaeeUqdOnXTmzJksPVdkZKSWLFnyUMc4fvy4TCaTZs2alSU1PWm++OKLx/K9y4q+9SiLiIiQyWSyaAsPD1d4eLhFm8lkUkRERM4Vlk3sdR3pPy+PHz+e4+eGbR6Xvg5kFkEJyEZRUVHatm2bVq9erXfeeUfz5s3T888/r+vXr2fZOZ70P2ZzA4LS4+ntt9/Wtm3b7rvdtm3b9Pbbb+dARYB90dfxpMlr7wKAx1nFihVVvXp1SVKdOnWUmpqqkSNHasmSJWrXrt1DHfvmzZtycXHJijIB3MFTTz2lp5566r7bPffcczlQDWB/9HU8aRhRAnJQ+i+ZEydOSJKGDx+uGjVqyMvLS/nz51e1atX09ddfyzAMi/2KFy+u5s2ba9GiRapataqcnZ01fPhwmUwmXb9+XbNnzzbf5md9W5C1s2fPqnXr1vLw8JCnp6dee+01xcXF3XHbXbt26YUXXpCXl5ecnZ1VtWpVLVy4MFPXmpSUpBEjRqhcuXJydnaWt7e36tSpo61bt5q3uXXrloYMGaKgoCDly5dPRYsWVY8ePXTlypU7Xv/KlStVrVo1ubi4qGzZspo5c6bFdjdu3NCAAQMUFBQkZ2dneXl5qXr16po3b57N15V+O9D69ev17rvvqlChQvL29larVq109uxZi9oOHDig6Oho89egePHi5vUJCQnmmtKvsW/fvhlGFU0mk3r27KmoqCiVKVNGLi4uql69urZv3y7DMPTxxx8rKChI7u7uqlu3ro4ePZrhPV+zZo3q1aun/Pnzy9XVVbVq1dLatWsttkm/nezAgQNq06aNPD095ePjo7feektXr161qMfWvpXZ/ny323eKFy+ujh073vMc6beJfvzxxxo3bpyKFy8uFxcXhYeH6/fff9ft27c1ePBg+fv7y9PTUy+99JLi4+MtjrFgwQI1bNhQfn5+cnFxUbly5TR48OAMX5M73Xp3J9bXk9m+I/39fdK/f3/5+vrK1dVVtWvX1u7duzP1XkjS1KlTVblyZbm7u8vDw0Nly5bVBx98YLFNXFycunbtqqeeekr58uVTUFCQhg8frpSUlPse/3//+59efPFFFSxYUM7OzqpSpYpmz55tsc2GDRtkMpk0b948DR06VP7+/sqfP7/q16+vw4cP3/ccd5OZ/nzhwgV16dJFAQEBcnJyUuHChVWrVi2tWbPmvsf/7bff1KZNG/n4+MjJyUnFihVT+/btlZSU9EDXP3fuXA0aNEh+fn5yd3dXixYtdP78eSUmJqpLly4qVKiQChUqpE6dOunatWsWx0j//p8+fbpKly4tJycnlS9fXvPnz89wvd27d1f58uXl7u6uIkWKqG7dutq0aVOG6zt9+rReeeUVeXh4qECBAmrXrp1iYmIy3GbdsWNHubu76+jRo2ratKnc3d0VEBCg/v37W7wX6XVaf+9mtn9lpq8CuQ0jSkAOSv/jtnDhwpL+/qOva9euKlasmCRp+/bt6tWrl86cOaOPPvrIYt89e/bo0KFD+vDDDxUUFCQ3Nze1bNlSdevWVZ06dfTvf/9bkpQ/f/67nv/mzZuqX7++zp49qzFjxqh06dL6+eef9dprr2XYdv369WrcuLFq1KihadOmydPTU/Pnz9drr72mGzdu3POPuJSUFDVp0kSbNm1S3759VbduXaWkpGj79u06efKkQkNDZRiGWrZsqbVr12rIkCF6/vnntW/fPg0bNkzbtm3Ttm3b5OTkZD7m3r171b9/fw0ePFg+Pj766quv1LlzZ5UqVUq1a9eWJPXr109z5szRqFGjVLVqVV2/fl3/+9//dPHixQe+rrffflvNmjXT3LlzderUKb3//vt64403tG7dOknS4sWL9corr8jT01NffPGFJJnrvnHjhsLCwnT69Gl98MEHCgkJ0YEDB/TRRx9p//79WrNmjcUf4suWLdOvv/6qsWPHymQyadCgQWrWrJk6dOig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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "mailing_consent(customer_musee)" - ] - }, - { - "cell_type": "markdown", - "id": "a6c94f0f-4ef4-432f-b2c9-11f51627b7e9", - "metadata": {}, - "source": [ - "## Part homme / femme client" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "id": "321feb43-242e-4147-a5c8-ad1b41fc1246", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
customer_idstreet_idstructure_idmcp_contact_idfidelitytenant_idis_partnerdeleted_atgenderis_email_trueopt_inlast_buying_datemax_priceticket_sumaverage_priceaverage_purchase_delayaverage_price_basketaverage_ticket_baskettotal_pricepurchase_countfirst_buying_datecountrygender_labelgender_femalegender_malegender_othercountry_frnumber_companyalready_purchased
\n", - "
" - ], - "text/plain": [ - "Empty DataFrame\n", - "Columns: [customer_id, street_id, structure_id, mcp_contact_id, fidelity, tenant_id, is_partner, deleted_at, gender, is_email_true, opt_in, last_buying_date, max_price, ticket_sum, average_price, average_purchase_delay, average_price_basket, average_ticket_basket, total_price, purchase_count, first_buying_date, country, gender_label, gender_female, gender_male, gender_other, country_fr, number_company, already_purchased]\n", - "Index: []" - ] - }, - "execution_count": 77, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "customer_musee[customer_musee['gender_male'] + customer_musee['gender_female'] + customer_musee['gender_other'] == 0]" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "id": "3bb5dc1e-05dc-41da-83bb-cb6b8d43fa73", - "metadata": {}, - "outputs": [], - "source": [ - "def gender_bar(customer_musee):\n", - " company_genders = customer_musee.groupby(\"number_company\")[[\"gender_male\", \"gender_female\", \"gender_other\"]].mean().reset_index()\n", - " \n", - " # Création du barplot\n", - " plt.bar(company_genders[\"number_company\"], company_genders[\"gender_male\"], label = \"Homme\")\n", - " plt.bar(company_genders[\"number_company\"], company_genders[\"gender_female\"], \n", - " bottom = company_genders[\"gender_male\"], label = \"Femme\")\n", - " plt.bar(company_genders[\"number_company\"], company_genders[\"gender_other\"], \n", - " bottom = company_genders[\"gender_male\"] + company_genders[\"gender_female\"], label = \"Inconnu\")\n", - " \n", - " # Ajout de titres et d'étiquettes\n", - " plt.xlabel('Company')\n", - " plt.ylabel(\"Part de clients de chaque sexe\")\n", - " plt.title(\"Sexe des clients de chaque compagnie de musee\")\n", - " plt.legend()\n", - "\n", - " # Définir les étiquettes de l'axe x\n", - " plt.xticks(company_genders[\"number_company\"], [\"{}\".format(i) for i in company_genders[\"number_company\"]])\n", - " \n", - " \n", - " # Affichage du barplot\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "id": "c61c4b41-ba31-44f4-9515-25922798b86a", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "outputs": [ - { - "data": { - "image/png": "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R25MTEzQuHFjxMfHq7THx8fDz8+v2Ok2bNiAkJAQ/PTTTwgKCirrMomIiOgto7MjNwAQFhaGDz/8ED4+PvD19cXKlSuRkpKCESNGAHh+SunOnTtYu3YtgOfBJjg4GIsXL0bz5s2VR33Mzc1ha2urs/UgIiKiN4dOw03fvn3x4MEDzJo1C6mpqahXrx5iY2Ph5uYGAEhNTVV55s2KFStQUFCAUaNGYdSoUcr2wYMHIzo6+nWXT0RERG8gnYYbAAgNDUVoaGiR414MLPv37y/7goiIiOitpvO7pYiIiIi0ieGGiIiI9ArDDREREekVhhsiIiLSKww3REREpFcYboiIiEivMNwQERGRXmG4ISIiIr3CcENERER6heGGiIiI9ArDDREREekVhhsiIiLSKww3REREpFcYboiIiEivMNwQERGRXmG4ISIiIr3CcENERER6heGGiIiI9ArDDREREekVhhsiIiLSKww3REREpFcYboiIiEivMNwQERGRXmG4ISIiIr3CcENERER6heGGiIiI9ArDDREREekVhhsiIiLSKww3REREpFcYboiIiEivMNwQERGRXmG4ISIiIr3CcENERER6heGGiIiI9ArDDREREekVhhsiIiLSKww3REREpFcYboiIiEivMNwQERGRXmG4ISIiIr3CcENERER6heGGiIiI9IqRrgsgelucS07RdQlERKQBHrkhIiIivcJwQ0RERHqF4YaIiIj0CsMNERER6RWGGyIiItIrDDdERESkVxhuiIiISK8w3BAREZFeYbghIiIivcJwQ0RERHqF4YaIiIj0CsMNERER6RWGGyIiItIrfCs4kYbcc3/SdQnvrBu6LoCI3io8ckNERER6heGGiIiI9IrOw82yZcvg4eEBMzMzNG7cGAcPHnxp/4SEBDRu3BhmZmbw9PTE8uXLX1OlRERE9DbQabiJiYnBuHHjMGXKFCQlJaFly5bo0KEDUlJSiuyfnJyMjh07omXLlkhKSsIXX3yBMWPGYPPmza+5ciIiInpT6TTcLFy4EMOGDcPw4cNRu3ZtREREwMXFBZGRkUX2X758OVxdXREREYHatWtj+PDhGDp0KL799tvXXDkRERG9qXQWbp49e4bTp0+jXbt2Ku3t2rXDkSNHipzm6NGjav0DAwNx6tQp5Ofnl1mtRERE9PbQ2a3gGRkZkMvlcHZ2Vml3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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "gender_bar(customer_musee)" - ] - }, - { - "cell_type": "markdown", - "id": "b02a2668-5cea-44db-b2b5-168f7738a949", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Part de clients français" - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "id": "4b3bb641-814b-4679-9a67-4eca87a920a6", - "metadata": {}, - "outputs": [], - "source": [ - "def country_bar(customer_sport):\n", - " company_country_fr = customer_sport.groupby(\"number_company\")[\"country_fr\"].mean().reset_index()\n", - " # Création du barplot\n", - " plt.bar(company_country_fr[\"number_company\"], company_country_fr[\"country_fr\"])\n", - " \n", - " # Ajout de titres et d'étiquettes\n", - " plt.xlabel('Company')\n", - " plt.ylabel(\"Part de clients français\")\n", - " plt.title(\"Nationalité des clients de chaque compagnie de musée\")\n", - "\n", - " # Définir les étiquettes de l'axe x\n", - " plt.xticks(company_country_fr[\"number_company\"], [\"{}\".format(i) for i in company_country_fr[\"number_company\"]])\n", - "\n", - " \n", - " # Affichage du barplot\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 98, - "id": "01258674-6b98-49e4-93f4-f4185964999f", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "outputs": [ - { - "data": { - "image/png": "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JSYmavTo0Xb977Q9b7c/ZXd5r169qiZNmujEiROKiYlR6dKl9f3336t9+/YOfdesWaPHH39ctWrV0owZMxQYGKgvv/xS7du315UrV257bZQz6/X777/Xb7/9prFjx8rPz08TJ07U008/rf3796tEiRKSbv5hCg4O1ltvvaUHHnhAZ8+e1dy5c1WrVi1t375dZcqUkSSdOnVKkZGRypMnj6ZNm6bQ0FDNnz8/R9f1XLlyRZGRkTp27Jhee+01VapUSb///rtGjRql3bt367///a9d6LzVzJkz9eKLLyoyMlIzZsxQSEiIDhw4oD179tj6fP755+rUqZOaNm2qL774QsnJyZo4caIee+wxrVq1SvXr17ebZrt27fT888+rV69eio2Ntf1H67///a/69OmjwYMH6/PPP9fQoUNVsmRJPfPMM3bjv/baa6pWrZo++eQTXbhwQW+88YYee+wxbd++3bbODx8+rDJlyqhDhw4KCgpSQkKCpk+frpo1a2rv3r0qWLCgpJsXqUZFRal06dKaO3eufH19NWPGDH322WcZro+dO3dq0KBBGjZsmEJDQ/XJJ5+oR48eKlmypB599NFM12NO9se7td+nmzp1qipVqqSpU6fq/PnzGjRokFq2bKlatWopT548mjVrlo4cOaLBgwerZ8+e+u677+44zVtFR0fr008/1bhx41S1alVdvnxZe/bs0ZkzZ5xelpx+n7uUgWybPXu2Icn47bffjOTkZKNEiRJGjRo1jLS0NMMwDCMyMtJ4+OGHMx0/NTXVuHHjhjFv3jzD09PTOHv2rG1YixYtjPDw8AzHk2SMHj3a9r5Dhw6Gj4+PER8fb9evefPmhq+vr3H+/HnDMAxjzZo1hiTjiSeesOv31VdfGZKMTZs2ZTi/tLQ048aNG8aRI0cMSca3337rsA4OHTpka+vatatD7fny5TO6du3qMO1evXoZfn5+xpEjR+za33nnHUOS8fvvv2dYk2EYRlxcnCHJGDhwoF37/PnzDUl288vqfF5++WUjf/78mc4zM/PmzTMkGR9//PFt+4WHh9vVdejQIUOSMXv2bFtbs2bNjAcffNC4cOGC3bgvv/yyYbVabfuJM9szs/0pu8s7ffp0h33BMAzjxRdfdFiesmXLGlWrVjVu3Lhh1/fJJ580ChcubKSmpmY6n6yuV0lGaGiokZSUZGs7efKk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0Knp/F1my/Pkk09q+fLleuihh5z+4k2/E2X+/PmqXr26rf2rr75yuDI/O/PJly+fmjdvruvXr+upp57S77//nukf++bNm+uLL77QnDlzcnRqytfXVw0bNtT27dtVqVIl2//Icior+5Mzy9uwYUN99dVX+u677+wO0X/++ed2/cqUKaNSpUpp586dDoEiK1y1XtNZLBaH/fr777/X8ePHVbJkSVtbw4YNNXHiRO3cudPu1NStyyfdvPtk165ddm0HDhzQ/v377QLLk08+qTfffFPBwcFOB9S6desqMDBQM2bMUIcOHTI8NVWmTBkVLVrU9liK9D6XL1/WokWLbHdQudIXX3yh6Oho27yOHDmijRs3qkuXLpJurm/DMBzW+SeffKLU1FS7tsjISC1fvtwuFKalpWnhwoUuqzen++Pd2u9dIaP9cvXq1bp06VKm44SGhqpbt27auXOnJk+erCtXrji1LDn5Pnc1wk0umDBhgqpXr67Tp0/r4YcftrVHRUXJ29tbzz33nIYMGaJr165p+vTpOnfunMM0KlasqMWLF2v69OmqXr26PDw8VKNGjQznN3r0aNu5zlGjRikoKEjz58/X999/r4kTJyowMNCp+suWLauHHnpIw4YNk2EYCgoK0tKlSxUbG+vcirhledauXaulS5eqcOHC8vf3V5kyZTR27FjFxsaqbt266t+/v8qUKaNr167p8OHDWr58uWbMmJHpofhy5crp+eef1+TJk5UnTx41adJEe/bs0TvvvGO7GytdVufz4osvKm/evKpXr54KFy6skydPKiYmRoGBgapZs2amy/fcc89p9uzZ6t27t/bv36+GDRsqLS1Nv/zyi8qVK6cOHTpkeV29//77ql+/vho0aKCXXnpJxYsX18WLF3Xw4EEtXbpUq1evzvK00mW2P2V3ebt06aL33ntPXbp00fjx41WqVCktX75cP/74o0PfDz/8UM2bN1ezZs3UrVs3FS1aVGfPnlVcXJy2bdt22z9erlyv0s0v3zlz5qhs2bKqVKmStm7dqrffftthHxswYIBmzZqlFi1aaNy4cba7pfbt2+cwzc6dO+v5559Xnz591KZNGx05ckQTJ060HW35+zQXLVqkRx99VAMHDlSlSpWUlpam+Ph4rVy5UoMGDVKtWrUyrNvPz0/vvvuuevbsqSZNmtie5H3w4EHt3LlTH3zwgTw8PDRx4kR16tRJTz75pHr16qXk5GS9/fbbOn/+fK48dO306dN6+umn9eKLL+rChQsaPXq0rFarhg8fLunmXZGPPvqo3n77bRUsWFDFixfXunXrNHPmTLsjZZI0YsQILV26VI0bN9aIESOUN29ezZgxw3abvCuO3Ek52x/v1n7vCp07d9bIkSM1atQoRUZGau/evfrggw8c/h7UqlVLTz75pCpVqqQCBQooLi5On376qV0Yzuqy5OT73OXu2qXLJvT3u6Vu1bFjR0OSw91SS5cuNSpXrmxYrVajaNGixquvvmr88MMPDlf0nz171nj22WeN/PnzGxaLxfj7plIGV8Hv3r3baNmypREYGGh4e3sblStXtrty3zD+/86BhQsX2rVndMfO3r17jaioKMPf398oUKCA0bZtWyM+Pt5h3lm9W2rHjh1GvXr1DF9fX0OS3V0kf/31l9G/f38jIiLCyJMnjxEUFGRUr17dGDFihHHp0iWHdft3ycnJxqBBg4yQkBDDarUatWvXNjZt2pThHSxZmc/cuXONhg0bGqGhoYa3t7dRpEgRo127dsauXbtuW4dh3LxbY9SoUUapUqUMb29vIzg42GjUqJGxceNGW5+s3C2V3v7CCy8YRYsWNfLkyWM88MADRt26dY1x48bZ+jizPTPbn3KyvMeOHTPatGlj+Pn5Gf7+/kabNm2MjRs3Zrg8O3fuNNq1a2eEhIQYefLkMQoVKmQ0atTImDFjxh3nk5X1Ksno27evw7i3ru9z584ZPXr0MEJCQgxfX1+jfv36xvr16x3ubDKM//8MWK1WIygoyOjRo4fx7bffOnxW09LSjIkTJxolSpQwrFarUaNGDWP16tUZTvPSpUvG66+/bpQpU8bw9vY2AgMDjYoVKxoDBw40Tp48ecd1sXz5ciMyMtLIly+f4evra5QvX96YMGGCXZ8lS5YYtWrVMqxWq5EvXz6jcePGxs8//2zXJ/1uqb/fmWQYNz+7+fLlc5jvrXd+pu97n376qdG/f3/jgQceMHx8fIwGDRoYW7ZssRs3fT8pUKCA4e/vbzz++OPGnj17MvyMrl+/3qhVq5bh4+NjFCpUyHj11VeNCRMmGJJsd30axs3t2qJFiwzr/Ps6z+huKcPI2f54N/b79M/w22+/bdee2Wc+o79FycnJxpAhQ4ywsDAjb968RmRkpLFjxw6H9T5s2DCjRo0aRoECBQwfHx+jRIkSxsCBA43ExMRsLUtOvs9dyWIYhnF3YhQA3N/Wrl2rhg0bas2aNQ4P6PsnSV8PCxcu1LPPPpur82ratKkOHz6c7btJ8c/EaSkAwD0hOjpaVatWVVhYmM6ePav58+crNjZWM2fOdHdpuM8QbgAA94TU1FSNGjVKJ0+elMViUfny5fXpp5/q+eefd3dpuM9wWgoAAJgKTygGAACmQrgBAACmQrgBAACm8o+7oDgtLU0nTpyQv79/pj9ABwAA7i2GYejixYtZ+r25f1y4OXHihMPPIgAAgPvD0aNH7/ik439cuPH395d0c+Xc+oh+AABwb0pKSlJYWJjt7/jt/OPCTfqpqICAAMINAAD3maxcUsIFxQAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFTcGm5++ukntWzZUkWKFJHFYtGSJUvuOM66detUvXp1Wa1WlShRQjNmzMj9QgEAwH3DreHm8uXLqly5sj744IMs9T906JCeeOIJNWjQQNu3b9drr72m/v37a9GiRblcKQAAuF+49Tk3zZs3V/PmzbPcf8aMGSpWrJgmT54sSSpXrpy2bNmid955R23atMmlKgEAwP3kvrrmZtOmTWratKldW7NmzbRlyxbduHEjw3GSk5OVlJRk9wIAAOZ1X4WbkydPKjQ01K4tNDRUKSkpSkxMzHCcmJgYBQYG2l78rhQAAOZ2X4UbyfGxy4ZhZNiebvjw4bpw4YLtdfTo0VyvEQAAuM999dtShQoV0smTJ+3aTp8+LS8vLwUHB2c4jo+Pj3x8fO5GeQAA4B5wXx25qVOnjmJjY+3aVq5cqRo1aihPnjxuqgoAANxL3BpuLl26pB07dmjHjh2Sbt7qvWPHDsXHx0u6eUqpS5cutv69e/fWkSNHFB0drbi4OM2aNUszZ87U4MGD3VE+AAC4B7n1tNSWLVvUsGFD2/vo6GhJUteuXTVnzhwlJCTYgo4kRUREaPny5Ro4cKCmTp2qIkWKaMqUKdwGDgAAbCxG+hW5/xBJSUkKDAzUhQsXFBAQ4PLpFx/2vcuniaw5/FYLd5cAAMglzvz9vq+uuQEAALgTwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADCV++q3pQAAyCqeO+Y+7n7uGEduAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqXi5uwAAcKfiw753dwn/WIffauHuEmBSHLkBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACmQrgBAACm4vZwM23aNEVERMhqtap69epav379bfvPnz9flStXlq+vrwoXLqzu3bvrzJkzd6laAABwr3NruFmwYIEGDBigESNGaPv27WrQoIGaN2+u+Pj4DPtv2LBBXbp0UY8ePfT7779r4cKF+u2339SzZ8+7XDkAALhXuTXcTJo0ST169FDPnj1Vrlw5TZ48WWFhYZo+fXqG/Tdv3qzixYurf//+ioiIUP369dWrVy9t2bLlLlcOAADuVW4LN9evX9fWrVvVtGlTu/amTZtq48aNGY5Tt25dHTt2TMuXL5dhGDp16pS+/vprtWjRItP5JCcnKykpye4FAADMy23hJjExUampqQoNDbVrDw0N1cmTJzMcp27dupo/f77at28vb29vFSpUSPnz59d//vOfTOcTExOjwMBA2yssLMylywEAAO4tbr+g2GKx2L03DMOhLd3evXvVv39/jRo1Slu3btWKFSt06NAh9e7dO9PpDx8+XBcuXLC9jh496tL6AQDAvcXLXTMuWLCgPD09HY7SnD592uFoTrqYmBjVq1dPr776qiSpUqVKypcvnxo0aKBx48apcOHCDuP4+PjIx8fH9QsAAADuSW47cuPt7a3q1asrNjbWrj02NlZ169bNcJwrV67Iw8O+ZE9PT0k3j/gAAAC49bRUdHS0PvnkE82aNUtxcXEaOHCg4uPjbaeZhg8fri5dutj6t2zZUosXL9b06dP1559/6ueff1b//v31yCOPqEiRIu5aDAAAcA9x22kpSWrfvr3OnDmjsWPHKiEhQRUqVNDy5csVHh4uSUpISLB75k23bt108eJFffDBBxo0aJDy58+vRo0aacKECe5aBAAAcI9xa7iRpD59+qhPnz4ZDpszZ45DW79+/dSvX79crgoAANyv3H63FAAAgCsRbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKkQbgAAgKnkONykpqZqx44dOnfunCvqAQAAyBGnw82AAQM0c+ZMSTeDTWRkpKpVq6awsDCtXbvW1fUBAAA4xelw8/XXX6ty5cqSpKVLl+rQoUPat2+fBgwYoBEjRri8QAAAAGc4HW4SExNVqFAhSdLy5cvVtm1blS5dWj169NDu3btdXiAAAIAznA43oaGh2rt3r1JTU7VixQo1adJEknTlyhV5enq6vEAAAABneDk7Qvfu3dWuXTsVLlxYFotFUVFRkqRffvlFZcuWdXmBAAAAznA63LzxxhuqUKGCjh49qrZt28rHx0eS5OnpqWHDhrm8QAAAAGc4HW4k6dlnn3Vo69q1a46LAQAAyKkshZspU6boX//6l6xWq6ZMmXLbvv3793dJYQAAANmRpXDz3nvvqVOnTrJarXrvvfcy7WexWAg3AADArbIUbg4dOpThvwEAAO41/LYUAAAwlWxdUHzs2DF99913io+P1/Xr1+2GTZo0ySWFAQAAZIfT4WbVqlVq1aqVIiIitH//flWoUEGHDx+WYRiqVq1abtQIAACQZU6flho+fLgGDRqkPXv2yGq1atGiRTp69KgiIyPVtm3b3KgRAAAgy5wON3FxcbZn2nh5eenq1avy8/PT2LFjNWHCBJcXCAAA4Aynw02+fPmUnJwsSSpSpIj++OMP27DExETXVQYAAJANTl9zU7t2bf38888qX768WrRooUGDBmn37t1avHixateunRs1AgAAZJnT4WbSpEm6dOmSpJu/M3Xp0iUtWLBAJUuWvO0D/gAAAO4Gp8NNiRIlbP/29fXVtGnTXFoQAABATjh9zc1vv/2mX375xaH9l19+0ZYtW1xSFAAAQHY5HW769u2ro0ePOrQfP35cffv21blz5/Ttt98qISHBJQUCAAA4w+nTUnv37s3wYX1Vq1bVb7/9ppYtWyo1NVVJSUn6/fffXVIkAABAVjkdbnx8fHTq1Cm7a28kKSEhQT4+PtqwYYP+/PNPlS9f3mVFAgAAZJXTp6WioqI0fPhwXbhwwdZ2/vx5DR8+XC1btpR0MwBNnz7ddVUCAABkkdNHbt599109+uijCg8PV9WqVSVJO3bsUGhoqD777DNJUtGiRdW9e3fXVgoAAJAFToebokWLateuXZo/f7527typvHnzqnv37nruueeUJ0+e3KgRAAAgy5wON9LNn2D417/+5epaAAAAcixb4ebAgQNau3atTp8+rbS0NLtho0aNcklhAAAA2eF0uPn444/10ksvqWDBgipUqJAsFottmMViIdwAAAC3cjrcjBs3TuPHj9fQoUNzox4AAIAccfpW8HPnzqlt27a5UQsAAECOOR1u2rZtq5UrV+ZGLQAAADnm9GmpkiVLauTIkdq8ebMqVqzocPt3//79XVYcAACAs5wONx999JH8/Py0bt06rVu3zm6YxWIh3AAAALdyOtwcOnQoN+oAAABwCaevuQEAALiXZeshfseOHdN3332n+Ph4Xb9+3W7YpEmTXFIYAABAdjgdblatWqVWrVopIiJC+/fvV4UKFXT48GEZhqFq1arlRo0AAABZ5vRpqeHDh2vQoEHas2ePrFarFi1apKNHjyoyMpLn3wAAALdzOtzExcWpa9eukiQvLy9dvXpVfn5+Gjt2rCZMmODyAgEAAJzhdLjJly+fkpOTJUlFihTRH3/8YRuWmJjousoAAACywelrbmrXrq2ff/5Z5cuXV4sWLTRo0CDt3r1bixcvVu3atXOjRgAAgCxzOtxMmjRJly5dkiS98cYbunTpkhYsWKCSJUvqvffec3mBAAAAznDqtFRqaqqOHj2qsLAwSZKvr6+mTZumXbt2afHixQoPD3e6gGnTpikiIkJWq1XVq1fX+vXrb9s/OTlZI0aMUHh4uHx8fPTQQw9p1qxZTs8XAACYk1NHbjw9PdWsWTPFxcWpQIECOZ75ggULNGDAAE2bNk316tXThx9+qObNm2vv3r0qVqxYhuO0a9dOp06d0syZM1WyZEmdPn1aKSkpOa4FAACYg9OnpSpWrKg///xTEREROZ75pEmT1KNHD/Xs2VOSNHnyZP3444+aPn26YmJiHPqvWLFC69at059//qmgoCBJUvHixXNcBwAAMA+n75YaP368Bg8erGXLlikhIUFJSUl2r6y6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AO4zbjtyI0nR0dHq3LmzatSooTp16uijjz5SfHy8evfuLenmKaXjx49r3rx5km4Gmy5duuj9999X7dq1bUd98ubNq8DAQLctBwAAuHe4Ndy0b99eZ86c0dixY5WQkKAKFSpo+fLlCg8PlyQlJCTYPfPmww8/VEpKivr27au+ffva2rt27ao5c+bc7fIBAMA9yK3hRpL69OmjPn36ZDjs1sCydu3a3C8IAADc19x+txQAAIArEW4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpuD3cTJs2TREREbJarapevbrWr19/2/7r1q1T9erVZbVaVaJECc2YMeMuVQoAAO4Hbg03CxYs0IABAzRixAht375dDRo0UPPmzRUfH59h/0OHDumJJ55QgwYNtH37dr322mvq37+/Fi1adJcrBwAA9yovd8580qRJ6tGjh3r27ClJmjx5sn788UdNnz5dMTExDv1nzJihYsWKafLkyZKkcuXKacuWLXrnnXfUpk2bu1k6/oGKD/ve3SX8Yx1+q4W7SwBwH3HbkZvr169r69atatq0qV1706ZNtXHjxgzH2bRpk0P/Zs2aacuWLbpx40au1QoAAO4fbjtyk5iYqNTUVIWGhtq1h4aG6uTJkxmOc/LkyQz7p6SkKDExUYULF3YYJzk5WcnJybb3Fy5ckCQlJSXldBEylJZ8JVemizvLrW2ajm3rPrm5bdmu7sNn1rxyY9umT9MwjDv2detpKUmyWCx27w3DcGi7U/+M2tPFxMRozJgxDu1hYWHOlop7XOBkd1eA3MK2NSe2q3nl5ra9ePGiAgMDb9vHbeGmYMGC8vT0dDhKc/r0aYejM+kKFSqUYX8vLy8FBwdnOM7w4cMVHR1te5+WlqazZ88qODj4tiHqnyYpKUlhYWE6evSoAgIC3F0OXIhta15sW3Niu2bMMAxdvHhRRYoUuWNft4Ubb29vVa9eXbGxsXr66adt7bGxsWrdunWG49SpU0dLly61a1u5cqVq1KihPHnyZDiOj4+PfHx87Nry58+fs+JNLCAggA+TSbFtzYtta05sV0d3OmKTzq23gkdHR+uTTz7RrFmzFBcXp4EDByo+Pl69e/eWdPOoS5cuXWz9e/furSNHjig6OlpxcXGaNWuWZs6cqcGDB7trEQAAwD3GrdfctG/fXmfOnNHYsWOVkJCgChUqaPny5QoPD5ckJSQk2D3zJiIiQsuXL9fAgQM1depUFSlSRFOmTOE2cAAAYOP2C4r79OmjPn36ZDhszpw5Dm2RkZHatm1bLlf1z+Pj46PRo0c7nMLD/Y9ta15sW3Niu+acxcjKPVUAAAD3Cbf/thQAAIArEW4AAICpEG4AAICpEG4AAICpEG6gn376SS1btlSRIkVksVi0ZMkSd5cEF4iJiVHNmjXl7++vkJAQPfXUU9q/f7+7y0IOTZ8+XZUqVbI94K1OnTr64Ycf3F0WckFMTIwsFosGDBjg7lLuO4Qb6PLly6pcubI++OADd5cCF1q3bp369u2rzZs3KzY2VikpKWratKkuX77s7tKQAw8++KDeeustbdmyRVu2bFGjRo3UunVr/f777+4uDS7022+/6aOPPlKlSpXcXcp9iVvBYcdiseibb77RU0895e5S4GJ//fWXQkJCtG7dOj366KPuLgcuFBQUpLfffls9evRwdylwgUuXLqlatWqaNm2axo0bpypVqmjy5MnuLuu+wpEb4B/iwoULkm7+IYQ5pKam6ssvv9Tly5dVp04dd5cDF+nbt69atGihJk2auLuU+5bbn1AMIPcZhqHo6GjVr19fFSpUcHc5yKHdu3erTp06unbtmvz8/PTNN9+ofPny7i4LLvDll19q27Zt+u2339xdyn2NcAP8A7z88svatWuXNmzY4O5S4AJlypTRjh07dP78eS1atEhdu3bVunXrCDj3uaNHj+qVV17RypUrZbVa3V3OfY1rbmCHa27Mp1+/flqyZIl++uknRUREuLsc5IImTZrooYce0ocffujuUpADS5Ys0dNPPy1PT09bW2pqqiwWizw8PJScnGw3DJnjyA1gUoZhqF+/fvrmm2+0du1ago2JGYah5ORkd5eBHGrcuLF2795t19a9e3eVLVtWQ4cOJdg4gXADXbp0SQcPHrS9P3TokHbs2KGgoCAVK1bMjZUhJ/r27avPP/9c3377rfz9/XXy5ElJUmBgoPLmzevm6pBdr732mpo3b66wsDBdvHhRX375pdauXasVK1a4uzTkkL+/v8M1cfny5VNwcDDXyjmJcANt2bJFDRs2tL2Pjo6WJHXt2lVz5sxxU1XIqenTp0uSHnvsMbv22bNnq1u3bne/ILjEqVOn1LlzZyUkJCgwMFCVKlXSihUrFBUV5e7SgHsG19wAAABT4Tk3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AHLFyZMn1a9fP5UoUUI+Pj4KCwtTy5YttWrVKneXBsDk+PkFAC53+PBh1atXT/nz59fEiRNVqVIl3bhxQz/++KP69u2rffv2ubtEACbGkRsALtenTx9ZLBb9+uuvevbZZ1W6dGk9/PDDio6O1ubNmyVJ8fHxat26tfz8/BQQEKB27drp1KlTtmm88cYbqlKlimbNmqVixYrJz89PL730klJTUzVx4kQVKlRIISEhGj9+vN28LRaLpk+frubNmytv3ryKiIjQwoUL7foMHTpUpUuXlq+vr0qUKKGRI0fqxo0bDvP+9NNPVbx4cQUGBqpDhw66ePGiJGnevHkKDg52+CXuNm3aqEuXLi5dlwCcR7gB4FJnz57VihUr1LdvX+XLl89heP78+WUYhp566imdPXtW69atU2xsrP744w+1b9/eru8ff/yhH374QStWrNAXX3yhWbNmqUWLFjp27JjWrVunCRMm6PXXX7cFpnQjR45UmzZttHPnTj3//PN67rnnFBcXZxvu7++vOXPmaO/evXr//ff18ccf67333nOY95IlS7Rs2TItW7ZM69at01tvvSVJatu2rVJTU/Xdd9/Z+icmJmrZsmXq3r17jtchgBwyAMCFfvnlF0OSsXjx4kz7rFy50vD09DTi4+Ntbb///rshyfj1118NwzCM0aNHG76+vkZSUpKtT7NmzYzixYsbqamptrYyZcoYMTExtveSjN69e9vNr1atWsZLL72UaT0TJ040qlevbnuf0bxfffVVo1atWrb3L730ktG8eXPb+8mTJxslSpQw0tLSMp0PgLuDa24AuJRhGJJunh7KTFxcnMLCwhQWFmZrK1++vPLnz6+4uDjVrFlTklS8eHH5+/vb+oSGhsrT01MeHh52badPn7abfp06dRze79ixw/b+66+/1uTJk3Xw4EFdunRJKSkpCggIsBvn1nkXLlzYbj4vvviiatasqePHj6to0aKaPXu2unXrdtvlBnB3cFoKgEuVKlVKFovF7jTQrQzDyDAE3NqeJ08eu+EWiyXDtrS0tDvWlT7dzZs3q0OHDmrevLmWLVum7du3a8SIEbp+/bpd/zvNp2rVqqpcubLmzZunbdu2affu3erWrdsd6wCQ+wg3AFwqKChIzZo109SpU3X58mWH4efPn1f58uUVHx+vo0eP2tr37t2rCxcuqFy5cjmu4dZrcDZv3qyyZctKkn7++WeFh4drxIgRqlGjhkqVKqUjR45kaz49e/bU7NmzNWvWLDVp0sTuSBQA9yHcAHC5adOmKTU1VY888ogWLVqk//3vf4qLi9OUKVNUp04dNWnSRJUqVVKnTp20bds2/frrr+rSpYsiIyNVo0aNHM9/4cKFmjVrlg4cOKDRo0fr119/1csvvyxJKlmypOLj4/Xll1/qjz/+0JQpU/TNN99kaz6dOnXS8ePH9fHHH+uFF17Icd0AXINwA8DlIiIitG3bNjVs2FCDBg1ShQoVFBUVpVWrVmn69OmyWCxasmSJChQooEcffVRNmjRRiRIltGDBApfMf8yYMfryyy9VqVIlzZ07V/Pnz1f58uUlSa1bt9bAgQP18ssvq0qVKtq4caNGjhyZrfkEBASoTZs28vPz01NPPeWS2gHknMVIv/oPAEzAYrHom2++uWthIyoqSuXKldOUKVPuyvwA3Bl3SwFANpw9e1YrV67U6tWr9cEHH7i7HAB/Q7gBgGyoVq2azp07pwkTJqhMmTLuLgfA33BaCgAAmAoXFAMAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFMh3AAAAFP5P09tkdZHP04qAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "country_bar(customer_musee)" - ] - }, - { - "cell_type": "markdown", - "id": "6c9e8051-06d1-44ed-aa17-eb8ddd9fb5ed", - "metadata": {}, - "source": [ - "## Ouverture mails" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "id": "e346fdc0-617f-463b-af29-caa0d9f88485", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "def campaigns_effectiveness(customer_sport, Train=False):\n", - " if not Train:\n", - " customer_sport[\"already_purchased\"] = customer_sport[\"purchase_count\"]>0\n", - "\n", - " nb_customers_purchasing = customer_sport[customer_sport[\"already_purchased\"]].groupby([\"number_company\",\"already_purchased\"])[\"customer_id\"].count().reset_index()\n", - " nb_customers_no_purchase = customer_sport[~customer_sport[\"already_purchased\"]].groupby([\"number_company\",\"already_purchased\"])[\"customer_id\"].count().reset_index()\n", - "\n", - " plt.bar(nb_customers_purchasing[\"number_company\"], nb_customers_purchasing[\"customer_id\"]/1000, label = \"has purchased\")\n", - " plt.bar(nb_customers_no_purchase[\"number_company\"], nb_customers_no_purchase[\"customer_id\"]/1000, \n", - " bottom = nb_customers_purchasing[\"customer_id\"]/1000, label = \"has not purchased\")\n", - " \n", - " # Ajout de titres et d'étiquettes\n", - " plt.xlabel('Company')\n", - " plt.ylabel(\"Nombre de clients (en milliers)\")\n", - " plt.title(\"Nombre de clients ayant acheté ou été ciblés par des mails pour les compagnies de musée\")\n", - " plt.legend()\n", - "\n", - " \n", - " \n", - " # Affichage du barplot\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "id": "928dab1d-96ff-4fc2-91ea-2ff119620f31", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_449/3480143790.py:3: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " customer_sport[\"already_purchased\"] = customer_sport[\"purchase_count\"]>0\n" - ] - }, - { - "data": { - "image/png": "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gWjfvj06deqEOnXq4MWLF9KA8Yzt8Ndff6FDhw5wcXFB//79MXToUAwYMAAA0KxZM+zbtw9hYWGoVasW6tati3nz5sHR0RHAx7th7dq1C8nJyahduzb69u0rNx6CiIiIcicT2V34S8VWnz59cPToUcTExMDExASenp4YO3asdMcfIQSmTJmC//3vf3j16hXq1KmDX3/9Fe7u7tIykpKS8MMPP2DTpk14//49GjdujCVLluRp3EJCQgJMTEwQHx+f5exDUlISoqKi4OzsDF1d3cJpOBUKPz8/eHl5YcGCBeoOpUTgZ5kIQLCJuiP4fAXHF/oic/v9JlKEd1UqYVauXJnrdJlMhuDg4CwPLfuUrq4uQkND83QZCRERERF93nipEhERERERKcQzDkSfkRMnTqg7BCIiIiqheMaBiIiIiIgUYuJARYbj7qmk42eYiIjo/zBxoEKXcc9/RQ8NIyruMj7DyjzHgoiIqLTjGAcqdBoaGjA1NUVcXByAj/ffl8lkao6KSHlCCLx79w5xcXEwNTWVnqpNRET0OWPiQEXCxsYGAKTkgagkMjU1lT7LREREnzsmDlQkZDIZbG1tYWVlhZSUFHWHQ5RnWlpaPNNARET0CSYOVKQ0NDR48EVERERUCnBwNBERERERKcTEgYiIiIiIFGLiQERERERECjFxICIiIiIihZg4EBERERGRQkwciIiIiIhIISYORERERESkEBMHIiIiIiJSiIkDEREREREpxMSBiIiIiIgUYuJAREREREQKaao7ACL6zASbqDuCz1dwvLojICKiEoxnHIiIiIiISCEmDkREREREpBATByIiIiIiUoiJAxERERERKcTEgYiIiIiIFGLiQERERERECjFxICIiIiIihZg4EBERERGRQkwciIiIiIhIISYORERERESkEBMHIiIiIiJSiIkDEREREREppKnuAD4HQgiEh4fj1KlTiI6Oxrt372BpaYnq1avD398fDg4O6g6RiIiIiChXPONQhN6/f4+ZM2fCwcEBAQEB+PPPP/H69WtoaGjg/v37mDx5MpydndGiRQucO3dO3eESEREREeWIZxyKkIuLC+rUqYNly5ahWbNm0NLSylLn4cOH2LRpEzp16oSffvoJ/fr1U0OkRERERES5Y+JQhA4cOAB3d/dc6zg6OmL8+PEICgrCw4cPVRQZEREREVHe8FKl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KrJ69WoMHDgQ2trasLCwkHu+g0wmY+JARERERMUaEwcVmTRpEiZNmoTx48ejTJky6g6HiIiIiChPeASrIu/evUPnzp2ZNBARERFRicSjWBXp06cPtm/fru4wiIiIiIjyhZcqqUhISAhatWqFgwcPwsPDA1paWnLT582bp6bIiIiIiIgUY+KgIjNnzsShQ4fg6uoKAFkGRxMRERERFWdMHFRk3rx5WLVqFXr27KnuUIiIiIiI8oxjHFRER0cHPj4+6g6DiIiIiChfmDioyPfff4/Q0FB1h0FERERElC+8VElFLly4gGPHjmHfvn2oWrVqlsHRO3fuVFNkRERERESKMXFQEVNTU7Rv317dYRARERER5QsTBxVZvXq1ukMgIiIiIso3jnEgIiIiIiKFmDgQEREREZFCTByIiIiIiEghJg5ERERERKQQEwciIiIiIlKId1VSoaNHj+Lo0aOIi4tDenq63LRVq1apKSoiIiIiIsWYOKjIlClTMHXqVHh7e8PW1hYymUzdIRERERERKY2Jg4osW7YMa9asQffu3dUdChERERFRnnGMg4p8+PAB9evXV3cYRERERET5wsRBRfr27YtNmzapOwwiIiIionzhpUoqkpSUhN9++w1HjhyBp6cntLS05KbPmzdPTZERERERESnGMw4qcv36dXh5eaFMmTK4efMmIiMjpdfVq1eVXk5ISAhq1aoFIyMjWFlZoW3btrh7965cHSEEgoODYWdnBz09Pfj5+eHWrVtydZKTkzFs2DCULVsWBgYG+Prrr/HkyZPCaCoRERERlUI846Aix48fL5TlhIeHY8iQIahVqxZSU1MxYcIENG3aFLdv34aBgQEAYPbs2Zg3bx7WrFkDFxcXTJ8+HU2aNMHdu3dhZGQEABgxYgT27t2LLVu2wMLCAkFBQWjVqhUuX74MDQ2NQomViIiIiEoPJg4qdv/+ffzzzz9o0KAB9PT0IITI061ZDx48KPd+9erVsLKywuXLl9GgQQMIIbBgwQJMmDAB7du3BwCsXbsW1tbW2LRpEwYMGID4+HisXLkS69evh7+/PwBgw4YNcHBwwJEjR9CsWbPCazARERERlQq8VElFXrx4gcaNG8PFxQUtWrRATEwMgI+DpoOCgvK93Pj4eACAubk5ACAqKgqxsbFo2rSpVEdHRwe+vr6IiIgAAFy+fBkpKSlydezs7ODu7i7VySw5ORkJCQlyLyIiIiL6fDBxUJGRI0dCS0sLjx49gr6+vlTeqVOnLGcRlCWEwKhRo/Dll1/C3d0dABAbGwsAsLa2lqtrbW0tTYuNjYW2tjbMzMxyrJNZSEgITExMpJeDg0O+YiYiIiKikomJg4ocPnwYs2bNQrly5eTKK1WqhIcPH+ZrmUOHDsX169exefPmLNMyX/6kzCVRudUZP3484uPjpdfjx4/zFTMRERERlUxMHFQkMTFR7kxDhufPn0NHRyfPyxs2bBj27NmD48ePyyUjNjY2AJDlzEFcXJx0FsLGxgYfPnzAq1evcqyTmY6ODoyNjeVeRERERPT5YOKgIg0aNMC6deuk9zKZDOnp6fjll1/QsGFDpZcjhMDQoUOxc+dOHDt2DM7OznLTnZ2dYWNjg7CwMKnsw4cPCA8Pl55cXbNmTWhpacnViYmJwc2bN/l0ayIiIiLKFu+qpCK//PIL/Pz8cOnSJXz48AFjxozBrVu38PLlS5w5c0bp5QwZMgSbNm3CH3/8ASMjI+nMgomJCfT09CCTyTBixAjMnDkTlSpVQqVKlTBz5kzo6+uja9euUt0+ffogKCgIFhYWMDc3x+jRo+Hh4SHdZYmIiIiI6FNMHFSkSpUquH79OpYuXQoNDQ0kJiaiffv2GDJkCGxtbZVeztKlSwEAfn5+cuWrV69Gz549AQBjxozB+/fvMXjwYLx69Qp16tTB4cOHpWc4AMD8+fOhqamJjh074v3792jcuDHWrFnDZzgQERERUbZkQgih7iCo5ElISICJiQni4+M53oHyxGncn+oO4bMV/XPLolt4sEnRLZtyFxxfxMtn36pNEfQtf7+pIDjGoQg9evQoT/WfPn1aRJEQERERERUME4ciVKtWLfTr1w8XLlzIsU58fDyWL18Od3d37Ny5U4XREREREREpj2McitCdO3cwc+ZMNG/eHFpaWvD29oadnR10dXXx6tUr3L59G7du3YK3tzd++eUXBAQEqDtkIiIiIqJs8YxDETI3N8ecOXPw77//YunSpXBxccHz589x7949AEC3bt1w+fJlnDlzhkkDERERERVrPOOgArq6umjfvj3at2+v7lCIiIiIiPKFZxyIiIiIiEghJg5ERERERKQQEwciIiIiIlKIiQMRERERESnExIGIiIiIiBRi4qAia9euxZ9//im9HzNmDExNTVG/fn08fPhQjZERERERESnGxEFFZs6cCT09PQDA2bNnsXjxYsyePRtly5bFyJEj1RwdEREREVHu+BwHFXn8+DEqVqwIANi9eze++eYb9O/fHz4+PvDz81NvcERERERECvCMg4oYGhrixYsXAIDDhw/D398fwMeHw71//16doRERERERKcQzDirSpEkT9O3bF9WrV8fff/+Nli1bAgBu3boFJycn9QZHRERERKQAzzioyK+//op69erh2bNn2LFjBywsLAAAly9fRpcuXdQcHRERERFR7njGQUUSEhKwaNEilCkjn6sFBwfj8ePHaoqKiIiIiEg5POOgIs7Oznj+/HmW8pcvX8LZ2VkNERERERERKY+Jg4oIIbItf/v2LXR1dVUcDRERERFR3vBSpSI2atQoAIBMJsOkSZOgr68vTUtLS8P58+fh5eWlpuiIiIiIiJTDxKGIRUZGAvh4xuHGjRvQ1taWpmlra6NatWoYPXq0usIjIiIiIlIKE4cidvz4cQBAr169sHDhQhgbG6s5IiIiIiKivGPioCKrV69WdwhERERERPnGxEFFEhMT8fPPP+Po0aOIi4tDenq63PQHDx6oKTIiIiIiIsWYOKhI3759ER4eju7du8PW1hYymUzdIRERERERKY2Jg4ocOHAAf/75J3x8fNQdChERERFRnvE5DipiZmYGc3NzdYdBRERERJQvTBxUZNq0aZg0aRLevXun7lCIiIiIiPKMlyqpyNy5c/HPP//A2toaTk5O0NLSkpt+5coVNUVGRERERKQYEwcVadu2rbpDICIiIiLKNyYOKjJ58mR1h0BERERElG8c46BCr1+/xooVKzB+/Hi8fPkSwMdLlJ4+farmyIiIiIiIcsczDipy/fp1+Pv7w8TEBNHR0ejXrx/Mzc2xa9cuPHz4EOvWrVN3iEREREREOWLioCKjRo1Cz549MXv2bBgZGUnlAQEB6Nq1qxojIyIqOKekTeoO4bMVre4AiOizwUuVVOTixYsYMGBAlnJ7e3vExsaqISIiIiIiIuUxcVARXV1dJCQkZCm/e/cuLC0t1RAREREREZHymDioSJs2bTB16lSkpKQAAGQyGR49eoRx48ahQ4cOao6OiIiIiCh3TBxUZM6cOXj27BmsrKzw/v17+Pr6omLFijAyMsKMGTPUHR4RERERUa44OFpFjI2Ncfr0aRw7dgxXrlxBeno6atSoAX9/f3WHRkRElCMOfFefaHUHQJQJEwcVa9SoERo1aqTuMIiIiIiI8oSJQxFatGgR+vfvD11dXSxatCjXusOHD1dRVEREREREecfEoQjNnz8f3bp1g66uLubPn59jPZlMxsSBiIiIiIo1Jg5FKCoqKtv/ExERERGVNLyrEhERERERKcQzDkVo1KhRStedN2+e0nVPnjyJX375BZcvX0ZMTAx27dqFtm3bStN79uyJtWvXys1Tp04dnDt3TnqfnJyM0aNHY/PmzXj//j0aN26MJUuWoFy5ckrHQURERESfDyYORSgyMlKpejKZLE/LTUxMRLVq1dCrV68cHx7XvHlzrF69Wnqvra0tN33EiBHYu3cvtmzZAgsLCwQFBaFVq1a4fPkyNDQ08hQPEREREZV+TByK0PHjx4tkuQEBAQgICMi1jo6ODmxsbLKdFh8fj5UrV2L9+vXScyQ2bNgABwcHHDlyBM2aNSv0mPMs2ETdEXy+guPVHQEREREVQxzjoCLx8fF4+fJllvKXL18iISGh0Nd34sQJWFlZwcXFBf369UNcXJw07fLly0hJSUHTpk2lMjs7O7i7uyMiIiLb5SUnJyMhIUHuRURERESfDyYOKtK5c2ds2bIlS/m2bdvQuXPnQl1XQEAANm7ciGPHjmHu3Lm4ePEiGjVqhOTkZABAbGwstLW1YWZmJjeftbU1YmNjs11mSEgITExMpJeDg0OhxkxERERExRsTBxU5f/48GjZsmKXcz88P58+fL9R1derUCS1btoS7uztat26NAwcO4O+//8aff/6Z63xCiBzHW4wfPx7x8fHS6/Hjx4UaMxEREREVb0wcVCQ5ORmpqalZylNSUvD+/fsiXbetrS0cHR1x7949AICNjQ0+fPiAV69eydWLi4uDtbV1tsvQ0dGBsbGx3IuIiIiIPh9MHFSkVq1a+O2337KUL1u2DDVr1izSdb948QKPHz+Gra0tAKBmzZrQ0tJCWFiYVCcmJgY3b95E/fr1izQWIiIiIiqZeFclFZkxYwb8/f1x7do1NG7cGABw9OhRXLx4EYcPH87Tst6+fYv79+9L76OionD16lWYm5vD3NwcwcHB6NChA2xtbREdHY0ff/wRZcuWRbt27QAAJiYm6NOnD4KCgmBhYQFzc3OMHj0aHh4e0l2WiIiIiIg+xcRBRXx8fHD27Fn88ssv2LZtG/T09ODp6YmVK1eiUqVKeVrWpUuX5MZLZDxoLjAwEEuXLsWNGzewbt06vH79Gra2tmjYsCG2bt0KIyMjaZ758+dDU1MTHTt2lB4At2bNGj7DgYiIiIiyxcRBhby8vLBx48YCL8fPzw9CiBynHzp0SOEydHV1ERoaitDQ0ALHQ0RERESlH8c4EBERERGRQkwciIiIiIhIISYORERERESkEBMHIiIiIiJSiImDit2/fx+HDh2SHvqW2yBnIiIiIqLigomDirx48QL+/v5wcXFBixYtEBMTAwDo27cvgoKC1BwdEREREVHumDioyMiRI6GpqYlHjx5BX19fKu/UqRMOHjyoxsiIiIiIiBTjcxxU5PDhwzh06BDKlSsnV16pUiU8fPhQTVERERERESmHZxxUJDExUe5MQ4bnz59DR0dHDRERERERESmPiYOKNGjQAOvWrZPey2QypKen45dffkHDhg3VGBkRERERkWK8VElFfvnlF/j5+eHSpUv48OEDxowZg1u3buHly5c4c+aMusMjIiIiIsoVzzioSJUqVXD9+nXUrl0bTZo0QWJiItq3b4/IyEh88cUX6g6PiIiIiChXPOOgQjY2NpgyZYq6wyAiIiIiyjMmDkXo+vXrStf19PQswkiIiIiIiAqGiUMR8vLygkwmgxACMplMKs94WvSnZWlpaSqPj4iIiIhIWRzjUISioqLw4MEDREVFYceOHXB2dsaSJUtw9epVXL16FUuWLMEXX3yBHTt2qDtUIiIiIqJc8YxDEXJ0dJT+/+2332LRokVo0aKFVObp6QkHBwdMnDgRbdu2VUOERERERETK4RkHFblx4wacnZ2zlDs7O+P27dtqiIiIiIiISHlMHFTEzc0N06dPR1JSklSWnJyM6dOnw83NTY2REREREREpxkuVVGTZsmVo3bo1HBwcUK1aNQDAtWvXIJPJsG/fPjVHR0RERESUOyYOKlK7dm1ERUVhw4YN+OuvvyCEQKdOndC1a1cYGBioOzwiIiIiolwxcVAhfX199O/fX91hEBERERHlGcc4EBERERGRQkwciIiIiIhIISYORERERESkEBMHIiIiIiJSiImDCr1+/RorVqzA+PHj8fLlSwDAlStX8PTpUzVHRkRERESUO95VSUWuX78Of39/mJiYIDo6Gv369YO5uTl27dqF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8fGBTCbD6dOncfTo0WwTCiIiIiKi4oRnHFSkQ4cOOH/+PMqWLYvdu3dj586dKFu2LC5cuIB27dqpOzwiIiIiolzxjIMK1axZExs2bFB3GEREREREecYzDkREREREpBDPOBSxMmXKQCaT5VpHJpMhNTVVRREREREREeUdE4citmvXrhynRUREIDQ0FEIIFUZERERERJR3TByKWJs2bbKU/fXXXxg/fjz27t2Lbt26Ydq0aWqIjIiIiIhIeRzjoEL//vsv+vXrB09PT6SmpuLq1atYu3Ytypcvr+7QiIiIiIhyxcRBBeLj4zF27FhUrFgRt27dwtGjR7F37164u7urOzQiIiIiIqXwUqUiNnv2bMyaNQs2NjbYvHlztpcuUVZOSZvUHcJnK1rdARAREVGxxMShiI0bNw56enqoWLEi1q5di7Vr12Zbb+fOnSqOjIiIiIhIeUwciliPHj0U3o6ViIiIiKi4Y+JQxNasWaPuEIiIiIiICoyDo4mIiIiISCEmDkREREREpBATByIiIiIiUoiJAxERERERKcTEgYiIiIiIFGLiQERERERECjFxICIiIiIihZg4EBERERGRQkwciIiIiIhIISYORERERESkEBMHIiIiIiJSiIkDEREREREpxMSBiIiIiIgUYuJAREREREQKMXEgIiIiIiKFmDgQEREREZFCTByIiIiIiEghJg5ERERERKQQE4dSKDg4GDKZTO5lY2MjTRdCIDg4GHZ2dtDT04Ofnx9u3bqlxoiJiIiIqLhj4lBKVa1aFTExMdLrxo0b0rTZs2dj3rx5WLx4MS5evAgbGxs0adIEb968UWPERERERFScMXEopTQ1NWFjYyO9LC0tAXw827BgwQJMmDAB7du3h7u7O9auXYt3795h06ZNao6aiIiIiIorJg6l1L1792BnZwdnZ2d07twZDx48AABERUUhNjYWTZs2lerq6OjA19cXEREROS4vOTkZCQkJci8iIiIi+nwwcSiF6tSpg3Xr1uHQoUNYvnw5YmNjUb9+fbx48QKxsbEAAGtra7l5rK2tpWnZCQkJgYmJifRycHAo0jYQERERUfHCxKEUCggIQIcOHeDh4QF/f3/8+eefAIC1a9dKdWQymdw8QogsZZ8aP3484uPjpdfjx4+LJngiIiIiKpaYOHwGDAwM4OHhgXv37kl3V8p8diEuLi7LWYhP6ejowNjYWO5FRERERJ8PJg6fgeTkZNy5cwe2trZwdnaGjY0NwsLCpOkfPnxAeHg46tevr8YoiYiIiKg401R3AFT4Ro8ejdatW6N8+fKIi4vD9OnTkZCQgMDAQMhkMowYMQIzZ85EpUqVUKlSJcycORP6+vro2rWrukMnIiIiomKKiUMp9OTJE3Tp0gXPnz+HpaUl6tati3PnzsHR0REAMGbMGLx//x6DBw/Gq1evUKdOHRw+fBhGRkZqjpyIiIiIiismDqXQli1bcp0uk8kQHByM4OBg1QRERERERCUexzgQEREREZFCTByIiIiIiEghJg5ERERERKQQEwciIiIiIlKIiQMRERERESnExIGIiIiIiBRi4kBERERERAoxcSAiIiIiIoWYOBARERERkUJMHIiIiIiISCEmDkREREREpBATByIiIiIiUoiJAxERERERKcTEgYiIiIiIFGLiQERERERECjFxICIiIiIihZg4EBERERGRQkwciIiIiIhIISYORERERESkEBMHIiIiIiJSiIkDEREREREpxMSBiIiIiIgUYuJAREREREQKMXEgIiIiIiKFmDgQEREREZFCTByIiIiIiEghJg5ERERERKQQEwciIiIiIlKIiQMRERERESnExIGIiIiIiBRi4kBERERERAoxcSAiIiIiIoWYOBARERERkUJMHIiIiIiISCEmDkREREREpBATByIiIiIiUoiJAxERERERKcTEgYiIiIiIFGLiQERERERECjFxICIiIiIihZg4EBERERGRQkwciIiIiIhIISYORERERESkEBOHz9ySJUvg7OwMXV1d1KxZE6dOnVJ3SERERERUDDFx+Ixt3boVI0aMwIQJExAZGYmvvvoKAQEBePTokbpDIyIiIqJihonDZ2zevHno06cP+vbtCzc3NyxYsAAODg5YunSpukMjIiIiomKGicNn6sOHD7h8+TKaNm0qV960aVNERESoKSoiIiIiKq401R0Aqcfz58+RlpYGa2truXJra2vExsZmqZ+cnIzk5GTpfXx8PAAgISGhSOJLT35XJMslxYqqTzOwb9WnKPuW/ao+/M6WXkXRtxnLFEIU+rKp9GPi8JmTyWRy74UQWcoAICQkBFOmTMlS7uDgUGSxkXqYLFB3BFRU2LelE/u19CrKvn3z5g1MTEyKbgVUKjFx+EyVLVsWGhoaWc4u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lwzl5M6dO3BwcICDg4NUVqVKFZiamuLOnTuoVasWAMDJyQlGRkZSHWtra2hoaKBMmTJyZXFxcXLLr1evXpb3V69eld7//vvvWLBgAe7fv4+3b98iNTUVxsbGcvNkXretra3cevr164datWrh6dOnsLe3x+rVq9GzZ89c201EROrBS5WIiIqhSpUqQSaTyV0alJkQItsD7MzlWlpactNlMlm2Zenp6QrjyljuuXPn0LlzZwQEBGDfvn2IjIzEhAkT8OHDB7n6itZTvXp1VKtWDevWrcOVK1dw48YN9OzZU2EcRESkekwciIiKIXNzczRr1gy//vorEhMTs0x//fo1qlSpgkePHuHx48dS+e3btxEfHw83N7cCx5B5zMO5c+dQuXJlAMCZM2fg6OiICRMmwNvbG5UqVcLDhw/ztZ6+ffti9erVWLVqFfz9/eXOoBARUfHBxIGIqJhasmQJ0tLSULt2bezYsQP37t3DnTt3sGjRItSrVw/+/v7w9PREt27dcOXKFVy4cAE9evSAr68vvL29C7z+7du3Y9WqVfj7778xefJkXLhwAUOHDgUAVKxYEY8ePcKWLVvwzz//YNGiRdi1a1e+1tOtWzc8ffoUy5cvR+/evQscNxERFQ0mDkRExZSzszOuXLmChg0bIigoCO7u7mjSpAmOHj2KpUuXQiaTYffu3TAzM0ODBg3g7++PChUqYOvWrYWy/ilTpmDLli3w9PTE2rVrsXHjRlSpUgUA0KZNG4wcORJDhw6Fl5cXIiIiMHHixHytx9jYGB06dIChoSHatm1bKLETEVHhk4mMEXhERET/n0wmw65du1R2IN+kSRO4ublh0aJFKlkfERHlHe+qREREavPy5UscPnwYx44dw+LFi9UdDhER5YKJAxERqU2NGjXw6tUrzJo1C66uruoOh4iIcsFLlYiIiIiISCEOjiYiIiIiIoWYOBARERERkUJMHIiIiIiISCEmDkREREREpBATByIiIiIiUoiJAxERERERKcTEgYiIiIiIFGLiQERERERECjFxICIiIiIihf4f0MO9cNp9asoAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "campaigns_effectiveness(customer_musee)" - ] - }, - { - "cell_type": "markdown", - "id": "6a787c90-145e-40c8-b25e-83921f94513a", - "metadata": {}, - "source": [ - "# 4 - Statistiques descriptives sur données d'entrainement" - ] - }, - { - "cell_type": "markdown", - "id": "d0fd69fc-326c-4b81-811f-c3ab86c80935", - "metadata": {}, - "source": [ - "## Nombre de clients sauvegardé dans le dataset de modélisation" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "id": "bb70a2c5-b873-4b31-a326-27d00a2613e8", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_595/699052242.py:8: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " customer_musee['company_number'] = customer_musee['customer_id'].apply(lambda x: premiere_partie(x))\n" - ] - } - ], - "source": [ - "def premiere_partie(chaine):\n", - " if chaine:\n", - " return chaine.split('_')[0]\n", - " else:\n", - " return None\n", - "\n", - "dataset_modelization['company_number'] = dataset_modelization['customer_id'].apply(lambda x: premiere_partie(x))\n", - "customer_musee['company_number'] = customer_musee['customer_id'].apply(lambda x: premiere_partie(x))" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "id": "bfcd1447-6702-406c-b4a2-efdbd9bb991b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
company_numbernb_clients_modelnb_classe_1prop_classe_1nb_clientsTaux_client_modelisationPart_entreprise_modelisation
011141031802.00.0157931518650.7513450.183919
12999494253.00.0425522756210.3626320.161105
231783504987.00.0279622569530.6940960.287477
3422799615547.00.0681903208080.7106930.367500
\n", - "
" - ], - "text/plain": [ - " company_number nb_clients_model nb_classe_1 prop_classe_1 nb_clients \\\n", - "0 1 114103 1802.0 0.015793 151865 \n", - "1 2 99949 4253.0 0.042552 275621 \n", - "2 3 178350 4987.0 0.027962 256953 \n", - "3 4 227996 15547.0 0.068190 320808 \n", - "\n", - " Taux_client_modelisation Part_entreprise_modelisation \n", - "0 0.751345 0.183919 \n", - "1 0.362632 0.161105 \n", - "2 0.694096 0.287477 \n", - "3 0.710693 0.367500 " - ] - }, - "execution_count": 91, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "nb_customer_modelization = (dataset_modelization\n", - " .groupby('company_number')\n", - " .agg(nb_clients_model = ('customer_id', 'count'),\n", - " nb_classe_1 = ('y_has_purchased', 'sum'))\n", - " .reset_index())\n", - "nb_customer_modelization['prop_classe_1'] = nb_customer_modelization['nb_classe_1'] /nb_customer_modelization['nb_clients_model']\n", - "\n", - "nb_customer_all = customer_musee.groupby('company_number')['customer_id'].count().reset_index()\n", - "nb_customer_all.rename(columns={'customer_id' : 'nb_clients'}, inplace = True)\n", - "\n", - "nb_customer_comp = pd.merge(nb_customer_modelization, nb_customer_all, on = 'company_number', how = 'inner')\n", - "\n", - "nb_customer_comp['Taux_client_modelisation'] = nb_customer_comp['nb_clients_model'] / nb_customer_comp['nb_clients']\n", - "nb_customer_comp['Part_entreprise_modelisation'] = nb_customer_comp['nb_clients_model'] / len(dataset_modelization)\n", - "\n", - "nb_customer_comp" - ] - }, - { - "cell_type": "markdown", - "id": "16353f8b-d3be-44a0-be49-b8ab4cd6f764", - "metadata": {}, - "source": [ - "## Corrélations avec la variable dépendante" - ] - }, - { - "cell_type": "code", - "execution_count": 114, - "id": "22c62773-5dd8-4453-970f-ea2972eb4e60", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Choix des variables\n", - "features = ['nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers', 'vente_internet_max', 'purchase_date_min', 'purchase_date_max', \n", - " 'time_between_purchase', 'nb_tickets_internet', 'fidelity', 'is_email_true', 'opt_in', #'is_partner',\n", - " 'gender_female', 'gender_male', 'gender_other', 'country_fr', 'nb_campaigns', 'nb_campaigns_opened']\n", - "\n", - "var_to_predict = ['y_has_purchased']\n", - "\n", - "# Sélection des colonnes dans le DataFrame\n", - "selected_columns = features + var_to_predict\n", - "\n", - "# Sélection des données pertinentes\n", - "data_for_corr = dataset_modelization[selected_columns]\n", - "\n", - "# Calcul de la matrice de corrélation\n", - "correlation_matrix = data_for_corr.corr()\n", - "\n", - "# Affichage de la matrice de corrélation sous forme de heatmap avec Seaborn\n", - "plt.figure(figsize=(12, 10))\n", - "sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=\".2f\", annot_kws={'size': 10}, linewidths=0.5)\n", - "plt.title('Matrice de corrélation')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "d176762c-672b-4a3d-82d5-205454bbe7a0", - "metadata": {}, - "outputs": [], - "source": [ - "# def d'une fonction permettant de générer un barplot à plusieurs barres selon une modalité \n", - "\n", - "def multiple_barplot(data, x, y, var_labels, bar_width=0.35,\n", - " figsize=(10, 6), xlabel=None, ylabel=None, title=None, dico_labels = None) :\n", - "\n", - " # si on donne aucun nom pour la legende, le graphique reprend les noms des variables x et y \n", - " xlabel = x if xlabel==None else xlabel\n", - " ylabel = y if ylabel==None else ylabel\n", - " \n", - " fig, ax = plt.subplots(figsize=figsize)\n", - " \n", - " categories = data[x].unique()\n", - " bar_width = bar_width\n", - " bar_positions = np.arange(len(categories))\n", - " \n", - " # Grouper les données par label et créer les barres groupées\n", - " for label in data[var_labels].unique():\n", - " label_data = data[data[var_labels] == label]\n", - " values = [label_data[label_data[x] == category][y].values[0] for category in categories]\n", - " \n", - " # label_printed = \"achat durant la période\" if label else \"aucun achat\"\n", - " label_printed = f\"{var_labels}={label}\" if dico_labels==None else dico_labels[label]\n", - " \n", - " ax.bar(bar_positions, values, bar_width, label=label_printed)\n", - " \n", - " # Mise à jour des positions des barres pour le prochain groupe\n", - " bar_positions = [pos + bar_width for pos in bar_positions]\n", - "\n", - " # Ajout des étiquettes, de la légende, etc.\n", - " ax.set_xlabel(xlabel)\n", - " ax.set_ylabel(ylabel)\n", - " ax.set_title(title)\n", - " ax.set_xticks([pos + bar_width / 2 for pos in np.arange(len(categories))])\n", - " ax.set_xticklabels(categories)\n", - " ax.legend()\n", - " \n", - " # Affichage du plot - la proportion de français est la même selon qu'il y ait achat sur la période ou non\n", - " # sauf compagnie 12, et peut-être 13\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5e6ea49e-be3f-4dfc-9e16-f353a11928a5", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 110, - "id": "d35f00e3-b9b0-42b3-9dce-785c1ad5506c", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAIiCAYAAADCc/lyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB0wklEQVR4nO3dd3yN9///8edJZItIIlNJqL2pUZRQtTcdSqtolaqqVaVLjNpVRbWlilaNalHV0qrV2jGCqpoxanzslSAk1+8Pv5yvIwnn4qQ5icf9dsvtlvO+1vO6znXOySvv63ofi2EYhgAAAAAAdnPJ7AAAAAAAkNVQSAEAAACASRRSAAAAAGAShRQAAAAAmEQhBQAAAAAmUUgBAAAAgEkUUgAAAABgEoUUAAAAAJhEIQUAAAAAJlFIIU3Tp0+XxWKx/uTIkUOPPPKIOnbsqGPHjjl0W8OGDdPChQsfaB2HDh2SxWLR9OnTHZLJXpGRkerQocN/nmPWrFkaN25chm5DyrzjCvPuPBczk8ViUXR0dGbHyHDHjx9XdHS0YmNjM3Q7mfk6TPkseBj9V++zsJXW+Z5yHh46dMiudQwePFglSpRQcnKyJCkhIUHR0dFatWqV4wNLWrVqlSwWS4at/0FNmjQpzfePvXv3yt3dXVu3bv3vQ2UTFFK4q2nTpmn9+vVatmyZOnfurNmzZ6tGjRqKj4932DYcUUg5i7CwMK1fv16NGzfO0O3wAY87LViwQO+//35mx3ioHD9+XIMGDcrwQgqZg/fZzPGgn6PHjx/XqFGjNHjwYLm43PozNyEhQYMGDcqwQqdChQpav369KlSokCHrf1DpFVJFihRRu3bt1KtXr/8+VDaRI7MDwLmVKlVKFStWlCTVrl1bSUlJGjJkiBYuXKh27do90LqvXr0qLy8vR8R0Gh4eHnr88cczOwYeQuXLl8/sCMB/7urVq/L09Hxoe82yowf9HP3kk0+UO3dutWrV6r7XkZCQIG9vb7vnz5UrV5b97O/evbsqVqyodevWqVq1apkdJ8uhRwqmpLxRHD58WJI0aNAgValSRQEBAcqVK5cqVKigqVOnyjAMm+UiIyPVpEkTzZ8/X+XLl5enp6cGDRoki8Wi+Ph4zZgxw3oZYa1ate6a4fjx43r22Wfl6+srPz8/Pffcczp58mSa827evFnNmjVTQECAPD09Vb58eX333Xd27ev169c1ePBgFS9eXJ6engoMDFTt2rW1bt26dJdJ7xKcffv2qW3btgoODpaHh4eKFy+uTz/91GaelEsDZs+erXfffVfh4eHKlSuXnnrqKe3Zs8c6X61atfTzzz/r8OHDNpdfpvjss89UtmxZ5cyZU76+vipWrJjeeeede+6vo49rQkKC+vbtqwIFCsjT01MBAQGqWLGiZs+efc8sx44d06uvvqp8+fLJ3d1d4eHhevrpp/W///3POs+RI0f0wgsv2BzTjz76yHoph/R/z8fo0aM1cuRIRUZGysvLS7Vq1dLevXt148YN9e/fX+Hh4fLz81PLli116tQpmywp5+6CBQtUpkwZeXp6qmDBgho/frzNfNeuXVOfPn1Urlw5+fn5KSAgQFWrVtWPP/6Yav8uXLigl19+WQEBAcqZM6caN26sgwcPprokLjo6WhaLRbt27dLzzz8vPz8/hYSEqFOnTrp48WKqnHde2nfp0iXrc+Du7q68efOqZ8+eqXqU582bpypVqsjPz0/e3t4qWLCgOnXqdM/n6dKlS+rcubMCAwOVM2dONWjQQHv37k1zXnteA+m5V76U187MmTPVu3dvhYaGysvLS1FRUdq2bVuq9dn7vnC383DVqlWqVKmSJKljx47W12HK87d582a1adPGes5FRkbq+eeft7532rudu3mQY2qxWNS9e3d98803Kl68uLy9vVW2bFktXrz4nssmJydr1KhRKlasmDw8PBQcHKz27dvr33//tZkvvctNa9WqZX2fP336tNzd3dPsTf3nn39ksVisr7WUy7t+++03derUSUFBQfL29tb169e1f/9+dezYUYULF5a3t7fy5s2rpk2baufOnTbrdNT7bFrmzp2revXqKSwsTF5eXipevLj69++f6vV2+/7frkOHDoqMjLRpu9fn0N0u+3yQ95O01KpVS6VKldL69etVrVo163k9bdo0SdLPP/+sChUqyNvbW6VLl9bSpUttlrf3OXqQS1kTExM1depUtW3b1tobdejQIQUFBUmS9e8Oi8ViPTdTjsvWrVv19NNPy9/fX48++qgk+1/HaV3a16FDB+XMmVP79+9Xo0aNlDNnTuXLl099+vTR9evX77kvK1asUK1atRQYGCgvLy/lz59frVu3VkJCgs3+Dh061PpaDAoKUseOHXX69GnrPJGRkdq1a5dWr15t3ffbz7PHHntMxYsX1+eff27qWOMWeqRgyv79+yXJ+qZ06NAhdenSRfnz55ckbdiwQW+88YaOHTumDz74wGbZrVu3avfu3XrvvfdUoEAB+fj4qEWLFnryySdVu3Zt6wdprly50t3+1atX9dRTT+n48eMaPny4ihQpop9//lnPPfdcqnlXrlypBg0aqEqVKvr888/l5+enOXPm6LnnnlNCQsJd7ye5efOmGjZsqD///FM9e/bUk08+qZs3b2rDhg06cuSIqf/a/P3336pWrZry58+vjz76SKGhofr111/Vo0cPnTlzRgMHDrSZ/5133lH16tX15Zdf6tKlS3r77bfVtGlT7d69W66urpo0aZJeffVVHThwQAsWLLBZds6cOerWrZveeOMNjRkzRi4uLtq/f7/+/vvvu2bMiOPau3dvffPNNxo6dKjKly+v+Ph4/fXXXzp79uxdsxw7dkyVKlXSjRs39M4776hMmTI6e/asfv31V50/f14hISE6ffq0qlWrpsTERA0ZMkSRkZFavHix+vbtqwMHDmjSpEk26/z0009VpkwZffrpp7pw4YL69Omjpk2bqkqVKnJzc9NXX32lw4cPq2/fvnrllVe0aNEim+VjY2PVs2dPRUdHKzQ0VN9++63efPNNJSYmqm/fvpJu/cFz7tw59e3bV3nz5lViYqJ+//13tWrVStOmTVP79u0l3fojtGnTptq8ebOio6Otl4Q0aNAg3WPSunVrPffcc3r55Ze1c+dODRgwQJL01VdfpbtMQkKCoqKi9O+//1qP465du/TBBx9o586d+v3332WxWLR+/Xo999xzeu655xQdHS1PT08dPnxYK1asuOvzZBiGWrRooXXr1umDDz5QpUqVtHbtWjVs2DDVvGZfA7czk++dd95RhQoV9OWXX+rixYuKjo5WrVq1tG3bNhUsWFCS/efvvc7DChUqaNq0aerYsaPee+8962VIjzzyiKRb741FixZVmzZtFBAQoBMnTuizzz5TpUqV9PfffytPnjx2bSckJCTN4/IgxzTFzz//rJiYGA0ePFg5c+bUqFGj1LJlS+3Zs8d6vDp06JDqvfK1117T5MmT1b17dzVp0kSHDh3S+++/r1WrVmnr1q3WfbNHUFCQmjRpohkzZmjQoEHWP36lW5eWu7u7p7r6oVOnTmrcuLG++eYbxcfHy83NTceP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HovFoqZNm9q0lSlT5p7nWbly5eTu7q5XX31VM2bM0MGDB1PNs3jxYuXOnVtNmza1eQ8oV66cQkNDTQ2sERwcLEkOH5X5YUAhhbv6+uuvFRMTo23btun48ePasWOHqlevLknatGmT6tWrJ0maMmWK1q5dq5iYGL377ruSlOoP57CwsAfOc/bs2TQvdQkNDbV5nHJvQd++feXm5mbz061bN0m6a5Fx+vRphYeH2/zxfb95b968qQkTJqTK0ahRozRzBAYG2jxO6YK3pxB58cUXrZeptW7dWsHBwapSpYqWLVt2z5yOPq7jx4/X22+/rYULF6p27doKCAhQixYttG/fvrtmOX36tPXyqLvlTet8Svkgv/PywYCAAJvH7u7ud22/du2aTfudx+H2tpRtzZ8/X88++6zy5s2rmTNnav369YqJiVGnTp1s1nf27FnlyJEj1bbTu4RLur9z4n//+5927NiR6nny9fWVYRjW56lmzZpauHChbt68qfbt2+uRRx5RqVKl7nkvW8p+3JntzmN1P6+B25nJl97zlPIcmTl/7TkP76Zt27aaOHGiXnnlFf3666/atGmTYmJiFBQUZPO83c92HvSYprjzuZNunVt3O69SjmV6r797Xbqblhw5cujFF1/UggULdOHCBUm37ocKCwtT/fr1U82f1rZ79+6t999/Xy1atNBPP/2kjRs3KiYmRmXLlk1zfx7kfTYtV65cUY0aNbRx40YNHTpUq1atUkxMjObPn3/f63XU59CdHmTf73zfkm69b9rzXmr2ObofV69elZubm1xdXU0vm9Z5Ze/rOD3e3t7y9PS0afPw8Ej1GXOnRx99VL///ruCg4P1+uuv69FHH9Wjjz6qTz75xDrP//73P124cEHu7u6p3gdOnjxp9z9SJVkzOup5eJhwjxTuqnjx4tZR++40Z84cubm5afHixTZvFOkNZe6I624DAwO1adOmVO13DoqQ8t+oAQMGpDtyz92uxw4KCtKaNWuUnJz8QB9i/v7+cnV11YsvvqjXX389zXkKFChw3+tPS8eOHdWxY0fFx8frjz/+0MCBA9WkSRPt3btXERERaS6TEcfVx8dHgwYN0qBBg/S///3P2jvVtGlT/fPPP+nmDwoKSnXTelp5T5w4kar9+PHjNjkdJa1BN1LaUv4omTlzpgoUKKC5c+fanOt33lQcGBiomzdv6ty5czZ/fKQ3sMf9ypMnj7y8vNK97+H2Y9S8eXM1b95c169f14YNGzR8+HC1bdtWkZGRqlq1aprLp+zH2bNnbf4wu3M/HPEasDdfes9TSj4z568952F6Ll68qMWLF2vgwIHq37+/tT3lPrrb3c92MuN9JUXKsTxx4kSqAvD48eM255Wnp2eaN9WfOXMm1Wu0Y8eOGj16tPV+tUWLFqlnz55p/kGc1mfJzJkz1b59ew0bNizVtnLnzm33/t2vFStW6Pjx41q1apW1F0qStTC8naenZ5qDO9z5h689n0Mpn713Huf7KWgz2n/xHOXJk0eJiYmKj4+Xj4+PqWXvPK/MvI4zQo0aNVSjRg0lJSVp8+bNmjBhgnr27KmQkBC1adNGefLkUWBgYKpBPVLc3tt8Lyn74+jPzocBPVK4bylf1Hv7B93Vq1f1zTffmFrPvf4DervatWvr8uXLqQYDmDVrls3jokWLqnDhwtq+fbsqVqyY5s/d3mQaNmyoa9euPfAXYHp7e6t27dratm2bypQpk2aOtP4rfC/2HDMfHx81bNhQ7777rhITE7Vr1650583o4xoSEqIOHTro+eef1549e2xGHbpTw4YNtXLlyrteelmnTh39/fffqb5E8Ouvv5bFYrG50dgRdu3ape3bt9u0zZo1S76+vtbvDbFYLHJ3d7f5MD558mSqUftS/siaO3euTfucOXMcmrlJkyY6cOCAAgMD03ye7hwdTLp1XkVFRWnkyJGSlOaIdylSjvG3335r037nOePI18C98s2ePdtmxNDDhw9r3bp11hHSzJy/9pyH6f0n32KxyDCMVDd0f/nll0pKSrJps2c7d8qo9xV7PPnkk5Ju/VF8u5iYGO3evVt16tSxtkVGRmrHjh028+3duzfNfS1evLiqVKmiadOmadasWbp+/bo6duxody6LxZLqeP/8888PdKmSmc+mlNf9nRm++OKLVPNGRkZq7969NsXP2bNnU40Ia8/nUEhIiDw9PVMd57RGC81sGfEc3alYsWKSpAMHDti030+Po5nXcUZydXVVlSpVrCNypnzuNWnSRGfPnlVSUlKa7wG3/7P4XufywYMH5eLi4pABPx429EjhvjVu3Fhjx45V27Zt9eqrr+rs2bMaM2ZMqjedeyldurRWrVqln376SWFhYfL19U33xdy+fXt9/PHHat++vT788EMVLlxYv/zyi3799ddU837xxRdq2LCh6tevrw4dOihv3rw6d+6cdu/era1bt2revHnpZnr++ec1bdo0de3aVXv27FHt2rWVnJysjRs3qnjx4mrTpo3d+/fJJ5/oiSeeUI0aNfTaa68pMjJSly9f1v79+/XTTz/d12hOpUuX1vz58/XZZ5/psccek4uLiypWrKjOnTvLy8tL1atXV1hYmE6ePKnhw4fLz8/Peq9JWjLiuFapUkVNmjRRmTJl5O/vr927d+ubb75R1apV7/r9HIMHD9aSJUtUs2ZNvfPOOypdurQuXLigpUuXqnfv3ipWrJh69eqlr7/+Wo0bN9bgwYMVERGhn3/+WZMmTdJrr732wPfi3Sk8PFzNmjVTdHS0wsLCNHPmTC1btkwjR4607kvK8P7dunXT008/raNHj2rIkCEKCwuzuZyxQYMGql69uvr06aNLly7pscce0/r16/X1119LksMu4+nZs6d++OEH1axZU7169VKZMmWUnJysI0eO6LffflOfPn1UpUoVffDBB/r3339Vp04dPfLII7pw4YI++eQTm/s70lKvXj3VrFlT/fr1U3x8vCpWrKi1a9em+Y+UB3kNmMl36tQptWzZUp07d9bFixc1cOBAeXp6Wkclk+w/f+05Dx999FF5eXnp22+/VfHixZUzZ06Fh4crPDxcNWvW1OjRo5UnTx5FRkZq9erVmjp1aqr/vNuznbRkxPuKPYoWLapXX31VEyZMkIuLixo2bGgdtS9fvnw2X+z54osv6oUXXlC3bt3UunVrHT58WKNGjUo1WlqKTp06qUuXLjp+/LiqVatm6o+6Jk2aaPr06SpWrJjKlCmjLVu2aPTo0Q90eWZ677NpqVatmvz9/dW1a1cNHDhQbm5u+vbbb1P9A0a6dVy++OILvfDCC+rcubPOnj2rUaNGpRqx1p7PIYvFohdeeEFfffWVHn30UZUtW1abNm1K9Q8NZ5ARz9GdUv5psmHDBut9b9Kt3pmIiAj9+OOPqlOnjgICAqyvzfTkypXL7texo33++edasWKFGjdurPz58+vatWvWqwueeuopSVKbNm307bffqlGjRnrzzTdVuXJlubm56d9//9XKlSvVvHlztWzZUtKtc3nOnDmaO3euChYsKE9PT5UuXdq6vQ0bNqhcuXLy9/fP0P3KljJ1qAs4rZQRcu4c8etOX331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AJhEIQUAAAAAJlFIAVlcYmKihg0bpt27d2d2FAAAgIcGhRTSFB0drXLlymXa9letWiWLxaILFy5kWob70aFDB7Vo0eI/3Wbfvn21c+dOFStW7J7zOiJfVn1uAAAAHClTv0cqS4v2+4+3l/WGrz106JAKFCigbdu2ZWpR5gjR0dFauHChYmNjMzuKjR9++EF//fWXli5dKovFcs/5P/nkE/GNBwAAAA+OHilkW4mJiZkdIcO1bt1aK1askLu7+13nS0pKUnJysvz8/JQ7d+7/JhwAAEA2RiGVTS1dulRPPPGEcufOrcDAQDVp0kQHDhywmefff/9VmzZtFBAQIB8fH1WsWFEbN260meebb75RZGSk/Pz81KZNG12+fNnubRQoUECSVL58eVksFtWqVSvdvL/88ouKFCkiLy8v1a5dW4cOHbKZntalhuPGjVNkZKT1ccpla8OHD1d4eLiKFCkiSZo5c6YqVqwoX19fhYaGqm3btjp16pR1uZRL1ZYvX66KFSvK29tb1apV0549eyRJ06dP16BBg7R9+3ZZLBZZLBZNnz493X25nT3Pw51q1aql7t27q3v37tbl3nvvPZuepMTERPXr10958+aVj4+PqlSpolWrVlmnT58+Xblz59bixYtVokQJeXh46PDhw6ku7bt+/bp69Oih4OBgeXp66oknnlBMTIxNnns9N5K0bt061axZU15eXsqXL5969Oih+Ph4u44RAABAVkQhlU3Fx8erd+/eiomJ0fLly+Xi4qKWLVsqOTlZknTlyhVFRUXp+PHjWrRokbZv365+/fpZp0vSgQMHtHDhQi1evFiLFy/W6tWrNWLECLu3sWnTJknS77//rhMnTmj+/PlpZj169KhatWqlRo0aKTY2Vq+88or69+9/X/u9fPly7d69W8uWLdPixYsl3So6hgwZou3bt2vhwoWKi4tThw4dUi377rvv6qOPPtLmzZuVI0cOderUSZL03HPPqU+fPipZsqROnDihEydO6LnnnrMrz72OUXpmzJihHDlyaOPGjRo/frw+/vhjffnll9bpHTt21Nq1azVnzhzt2LFDzzzzjBo0aKB9+/ZZ50lISNDw4cP15ZdfateuXQoODk61nX79+umHH37QjBkztHXrVhUqVEj169fXuXPnJNn33OzcuVP169dXq1attGPHDs2dO1dr1qxR9+7d7TpG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odizZ49j0wEAAACAEzLdI1WqVCnt2LFDBQsWVJUqVTRq1Ci5u7tr8uTJKliwYEZkBAAAAACnYrqQeu+99xQfHy9JGjp0qJo0aaIaNWooMDBQc+fOdXhAAAAAAHA2pgup+vXrW38vWLCg/v77b507d07+/v7WkfsAAAAAIDszfY/U9OnTdfXqVZu2gIAAiigAAAAADw3ThdSAAQMUEhKil19+WevWrcuITAAAAADg1EwXUv/++69mzpyp8+fPq3bt2ipWrJhGjhypkydPZkQ+AAAAAHA6pgspV1dXNWvWTPPnz9fRo0f16quv6ttvv1X+/PnVrFkz/fjjj0pOTs6IrAAAAADgFEwXUrcLDg5W9erVVbVqVbm4uGjnzp3q0KGDHn30Ua1atcpBEQEAAADAudxXIfW///1PY8aMUcmSJVWrVi1dunRJixcvVlxcnI4fP65WrVrppZdecnRWAAAAAHAKpoc/b9q0qX799VcVKVJEnTt3Vvv27RUQEGCd7uXlpT59+ujjjz92aFAAAAAAcBamC6ng4GCtXr1aVatWTXeesLAwxcXFPVAwAAAAAHBWpgupqVOn3nMei8WiiIiI+woEAAAAAM7OdCElSfHx8Vq9erWOHDmixMREm2k9evRwSDAAAAAAcFamC6lt27apUaNGSkhIUHx8vAICAnTmzBl5e3srODiYQgoAAABAtmd61L5evXqpadOmOnfunLy8vLRhwwYdPnxYjz32mMaMGZMRGQEAAADAqZgupGJjY9WnTx+5urrK1dVV169fV758+TRq1Ci98847GZERAAAAAJyK6ULKzc1NFotFkhQSEqIjR45Ikvz8/Ky/AwAAAEB2ZvoeqfLly2vz5s0qUqSIateurQ8++EBnzpzRN998o9KlS2dERgAAAABwKqZ7pIYNG6awsDBJ0pAhQxQYGKjXXntNp06d0uTJkx0eEAAAAACcjekeqYoVK1p/DwoK0i+//OLQQAAAAADg7Ez3SAEAAADAw87uHqnatWtbB5mQpBUrVmRIIAAAAABwdnYXUh06dMjAGAAAAACQddhdSL300ksZmQMAAAAAsgzTg02kSExM1KlTp5ScnGzTnj9//gcOBQAAAADOzHQhtXfvXr388stat26dTbthGLJYLEpKSnJYOAAAAABwRqYLqY4dOypHjhxavHixwsLCbAagAAAAAICHgelC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bR2aBQAAAABSmC6kihYtqj179igyMlLlypXTF198ocjISH3++ecKCwtzaLjPPvtMklSrVi2b9mnTpqlDhw6SpH79+unq1avq1q2bzp8/rypVqui3336Tr6+vQ7MAAAAAQArThVTPnj11/PhxSdLAgQNVv359ffvtt3J3d9f06dMdGs4wjHvOY7FYFB0drejoaIduGwAAAADSY7qQateunfX38uXL69ChQ/rnn3+UP39+5cmTx6HhAAAAAMAZ2T3YREJCgl5//XXlzZtXwcHBatu2rc6cOSNvb29VqFCBIgoAAADAQ8PuQmrgwIGaPn26GjdurDZt2mjZsmV67bXXMjIbAAAAADgluy/tmz9/vqZOnao2bdpIkl544QVVr15dSUlJcnV1zbCAAAAAAOBs7O6ROnr0qGrUqGF9XLlyZeXIkcM68AQAAAAAPCzsLqSSkpLk7u5u05YjRw7dvHnT4aEAAAAAwJnZfWmfYRjq0KGDPDw8rG3Xrl1T165d5ePjY22bP3++YxMCAAAAgJOxu5B66aWXUrW98MILDg0DAAAAAFmB3YXUtGnTMjIHAAAAAGQZdt8jBQAAAAC4hUIKAAAAAEyikAIAAAAAkyikAAAAAMAkCikAAAAAMIlCCgAAAABMopACAAAAAJMopAAAAADAJAopAAAAADCJQgoAAAAATKKQAgAAAACTKKQAAAAAwCQKKQAAAAAwiUIKAAAAAEyikAIAAAAAkyikAAAAAMAkCikAAAAAMIlCCgAAAABMopACAAAAAJMopAAAAADAJAopAAAAADCJQgoAAAAATKKQAgAAAACTKKQAAAAAwCQKKQAAAAAwiUIKAAAAAEyikAIAAAAAkyikAAAAAMAkCikAAAAAMIlCCgAAAABMopACAAAAAJMopAAAAADAJAopAAAAADCJQgoAAAAATKKQAgAAAACTKKQAAAAAwCQKKQAAAAAwiUIKAAAAAEyikAIAAAAAkyikAAAAAMAkCikAAAAAMIlCCgAAAABMopACAAAAAJMopAAAAADAJAopAAAAADCJQgoAAAAATKKQAgAAAACTKKQAAAAAwCQKKQAAAAAwiUIKAAAAAEyikAIAAAAAkyikAAAAAMAkCikAAAAAMIlCCgAAAABMopACAAAAAJMopAAAAADAJAopAAAAADCJQgoAAAAATKKQAgAAAACTKKQAAAAA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1a9fX61atdKOHTs0d+5crVmz5q7r/fnnn9WqVSs1btxY27Zt0/Lly1WxYkXr9A4dOmjz5s1atGiR1q9fL8Mw1KhRI924ccM6T0JCgsaPH685c+Zo6dKlWrVqlVq1aqVffvlFv/zyi7755htNnjxZ33//vc22R48erTJlymjr1q0aMGCAevXqpWXLllmnu7i4aPz48frrr780Y8YMrVixQv369bNOX7t2rbp27ao333xTsbGxqlu3rj788MNU+3jgwAEtXLhQixcv1uLFi7V69epUl4PermPHjlq7dq3mzJmjHTt26JlnnlGDBg1sCkgAeGgYAIBs56WXXjKaN29uGIZhPP7440anTp0MwzCMBQsWGLe/9Q8cONAoW7aszbIff/yxERERYbOuiIgIIykpydpWtGhRo0aNGtbHN2/eNHx8fIzZs2cbhmEYU6dONYoWLWokJydb57l+/brh5eVl/Prrr9b1hoSEGNevX7fOM3nyZMPf39+4cuWKte3nn382XFxcjJMnT6a5rwMGDDCKFy9us623337bkGScP3/eMAzDePHFF41XX33VZrk///zTcHFxMa5evZrmeqtWrWq0a9cuzWl79+41JBlr1661tp05c8bw8vIyvvvuO8MwDGPatGmGJGP//v3Webp06WJ4e3sbly9ftrbVr1/f6NKli/VxRESE0aBBA5vtPffcc0bDhg3TzGIYhvHdd98ZgYGBNvM3btzYZp527doZfn5+1scDBw40vL29jUuXLlnb3nrrLaNKlSrWx1FRUcabb75pGIZh7N+/37BYLMaxY8ds1lunTh1jwIAB6WYDgOyKHikAyOZGjhypGTNm6O+//77vdZQsWVIuLv/3kRESEqLSpUtbH7u6uiowMFCnTp2SJG3ZskX79++Xr6+vcubMqZw5cyogIEDXrl3TgQMHrMuVLl3a5r6o3bt3q2zZsvLx8bG2Va9eXcnJydqzZ0+a2Xbv3q3HH3/cZhCNqlWr2syzZcsWTZ8+3ZolZ86cql+/vpKTkxUXF5fmemNjY1WnTp10t5kjRw5VqVLF2hYYGKiiRYtq9+7d1jZvb289+uijNsctMjLSZvTCkJAQ63FLL3/VqlVt1rty5UrVrVtXefPmla+vr9q3b6+zZ89aL1Xcs2ePKleubLOOOx9Lty4j9PX1tT4OCwtLlSXF1q1bZRiGihQpYnMcV69ebfOcAsDDgsEmACCbq1mzpurXr6933nlHHTp0sJnm4uIiwzBs2m6/NC2Fm5ubzWOLxZJmW3JysiQpOTlZjz32mL799ttU6woKCrL+fnvBJEmGYaQ7qmB67XfmT0tycrK6dOmiHj16pJqWP3/+NJfx8vJKd33pbfPO/GaP292krPfw4cNq1KiRunbtqiFDhiggIEBr1qzRyy+/bH3u0jqOaWU2kyU5OVmurq7asmWLXF1dbab9V8PaA4AzoZACgIfAiBEjVK5cOeuADimCgoJ08uRJmz+8Y2NjH3h7FSpU0Ny5cxUcHKxcuXLZvVyJEiU0Y8YMxcfHW4ustWvXysXFJVX225dZuHChTduGDRtS5dm1a5cKFSpkd5YyZcpo+fLl6tixY5rbvHnzpjZu3Khq1apJks6ePau9e/eqePHidm8jPXfm37Bhg4oVKyZJ2rx5s27evKmPPvrI2kv43Xff2cxfrFgxbdq0yaZt8+bND5SpfPnySkpK0qlTp1SjRo0HWhcAZAdc2gcAD4HSpUurXbt2qUZ/q1Wrlk6fPq1Ro0bpwIED+vTTT7VkyZIH3l67du2UJ08eNW/eXH/++afi4uK0evVqvfnmm3cd+KJdu3by9PTUSy+9pL/++ksrV67UG2+8oRdffFEhISFpLtO1a1cdOHBAvXv31p49ezRr1ixNnz7dZp63335b69ev1+uvv67Y2Fjt27dPixYt0htvvJFuloEDB2r27NkaOHCgdu/erZ07d2rUqFGSpMKFC6t58+bq3Lmz1qxZo+3bt+uFF15Q3rx51bx5c/MH7A5r167VqFGjtHfvXn366aeaN2+e3nzzTUnSo48+qps3b2rChAk6ePCgvvnmG33++ec2y7/xxhv65ZdfNHbsWO3bt09ffPGFlixZ8kDfIVakSBG1a9dO7du31/z58xUXF6eYmBiNHDlSv/zyywPtLwBkRRRSAPCQGDJkSKrLu4oXL65Jkybp008/VdmyZbVp0yb17dv3gbfl7e2tP/74Q/nz51erVq1UvHhxderUSVevXr1rD5W3t7d+/fVXnTt3TpUqVdLTTz+tOnXqaOLEiekukz9/fv3www/66aefVLZsWX3++ecaNmyYzTxlypTR6tWrtW/fPtWoUUPly5fX+++/r7CwsHTXW6tWLc2bN0+LFi1SuXLl9OSTT2rjxo3W6dOmTdNjjz2mJk2aqGrVqjIMQ7/88kuqy+XuR58+fbRlyxaVL19eQ4YM0UcffaT69etLksqVK6exY8dq5MiRKlWqlL799ttUQ9xXr15dn3/+ucaOHauyZctq6dKl6tWrlzw9PR8o17Rp09S+fXv16dNHRYsWVbNmzbRx40bly5fvgdYLAFmRxbDn4nIAAPCfiIyMVM+ePW2+v8kROnfurH/++Ud//vmnQ9cLAA8r7pECACAbGjNmjOrWrSsfHx8tWbJEM2bM0KRJkzI7FgBkGxRSAABkQ5s2bdKoUaN0+fJlFSxYUOPHj9crr7yS2bEAINvg0j4AAAAAMInBJgAAAADAJAopAAAAADCJQgoAAAAATKKQAgAAAACTKKQAAAAAwCQKKQAAAAAwiUIKAAAAAEyikAIAAAAAkyikAAAAAMCk/wdQ8KSE0wZHgQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "multiple_barplot(company_lazy_customers, x=\"number_company\", y=\"no_campaign_opened\", var_labels=\"y_has_purchased\",\n", - " dico_labels = {0 : \"aucun achat\", 1 : \"achat durant la période\"},\n", - " xlabel = \"Numéro de compagnie\", ylabel = \"Part de clients n'ayant ouvert aucun mail (%)\", \n", - " title = \"Part de clients des compagnies de spectacle n'ouvrant aucun mail (train set)\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Musee/2_Modelization_musee.ipynb b/Musee/2_Modelization_musee.ipynb deleted file mode 100644 index c15fe59..0000000 --- a/Musee/2_Modelization_musee.ipynb +++ /dev/null @@ -1,2070 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "3415114e-9577-4487-89eb-4931620ad9f0", - "metadata": {}, - "source": [ - "# Predict Sales" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "f271eb45-1470-4764-8c2e-31374efa1fe5", - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "import os\n", - "import s3fs\n", - "import re\n", - "from sklearn.linear_model import LogisticRegression\n", - "from sklearn.ensemble import RandomForestClassifier\n", - "from sklearn.metrics import accuracy_score, confusion_matrix, classification_report, recall_score\n", - "from sklearn.utils import class_weight\n", - "from sklearn.neighbors import KNeighborsClassifier\n", - "from sklearn.pipeline import Pipeline\n", - "from sklearn.compose import ColumnTransformer\n", - "from sklearn.preprocessing import OneHotEncoder\n", - "from sklearn.impute import SimpleImputer\n", - "from sklearn.model_selection import GridSearchCV\n", - "from sklearn.preprocessing import StandardScaler, MaxAbsScaler, MinMaxScaler\n", - "from sklearn.metrics import make_scorer, f1_score, balanced_accuracy_score\n", - "import seaborn as sns\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.metrics import roc_curve, auc, precision_recall_curve, average_precision_score\n", - "from sklearn.exceptions import ConvergenceWarning, DataConversionWarning\n", - "\n", - "import pickle\n", - "import warnings\n", - "#import scikitplot as skplt" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "3fecb606-22e5-4dee-8efa-f8dff0832299", - "metadata": {}, - "outputs": [], - "source": [ - "warnings.filterwarnings('ignore')\n", - "warnings.filterwarnings(\"ignore\", category=ConvergenceWarning)\n", - "warnings.filterwarnings(\"ignore\", category=DataConversionWarning)" - ] - }, - { - "cell_type": "markdown", - "id": "ae591854-3003-4c75-a0c7-5abf04246e81", - "metadata": {}, - "source": [ - "### Load Data" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "59dd4694-a812-4923-b995-a2ee86c74f85", - "metadata": {}, - "outputs": [], - "source": [ - "# Create filesystem object\n", - "S3_ENDPOINT_URL = \"https://\" + os.environ[\"AWS_S3_ENDPOINT\"]\n", - "fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL})" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "017f7e9a-3ba0-40fa-bdc8-51b98cc1fdb3", - "metadata": {}, - "outputs": [], - "source": [ - "def load_train_test():\n", - " BUCKET = \"projet-bdc2324-team1/Generalization/musee\"\n", - " File_path_train = BUCKET + \"/Train_set.csv\"\n", - " File_path_test = BUCKET + \"/Test_set.csv\"\n", - " \n", - " with fs.open( File_path_train, mode=\"rb\") as file_in:\n", - " dataset_train = pd.read_csv(file_in, sep=\",\")\n", - " # dataset_train['y_has_purchased'] = dataset_train['y_has_purchased'].fillna(0)\n", - "\n", - " with fs.open(File_path_test, mode=\"rb\") as file_in:\n", - " dataset_test = pd.read_csv(file_in, sep=\",\")\n", - " # dataset_test['y_has_purchased'] = dataset_test['y_has_purchased'].fillna(0)\n", - " \n", - " return dataset_train, dataset_test" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "c479b230-b4bd-4cfb-b76b-d9faf6d95772", - "metadata": {}, - "outputs": [], - "source": [ - "dataset_train, dataset_test = load_train_test()" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "c24c446d-4e1c-4ac1-a048-f0b8d8559f36", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "customer_id 0\n", - "nb_tickets 0\n", - "nb_purchases 0\n", - "total_amount 0\n", - "nb_suppliers 0\n", - "vente_internet_max 0\n", - "purchase_date_min 0\n", - "purchase_date_max 0\n", - "time_between_purchase 0\n", - "nb_tickets_internet 0\n", - "street_id 0\n", - "structure_id 389658\n", - "mcp_contact_id 150354\n", - "fidelity 0\n", - "tenant_id 0\n", - "is_partner 0\n", - "deleted_at 434278\n", - "gender 0\n", - "is_email_true 0\n", - "opt_in 0\n", - "last_buying_date 183987\n", - "max_price 183987\n", - "ticket_sum 0\n", - "average_price 94783\n", - "average_purchase_delay 183987\n", - "average_price_basket 183987\n", - "average_ticket_basket 183987\n", - "total_price 89204\n", - "purchase_count 0\n", - "first_buying_date 183987\n", - "country 141237\n", - "gender_label 0\n", - "gender_female 0\n", - "gender_male 0\n", - "gender_other 0\n", - "country_fr 141237\n", - "nb_campaigns 0\n", - "nb_campaigns_opened 0\n", - "time_to_open 258182\n", - "y_has_purchased 0\n", - "dtype: int64" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dataset_train.isna().sum()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "825d14a3-6967-4733-bfd4-64bf61c2bd43", - "metadata": {}, - "outputs": [], - "source": [ - "def features_target_split(dataset_train, dataset_test):\n", - " features_l = ['nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers', 'vente_internet_max', 'purchase_date_min', 'purchase_date_max', \n", - " 'time_between_purchase', 'nb_tickets_internet', 'fidelity', 'is_email_true', 'opt_in', #'is_partner',\n", - " 'gender_female', 'gender_male', 'gender_other', 'nb_campaigns', 'nb_campaigns_opened']\n", - " X_train = dataset_train[features_l]\n", - " y_train = dataset_train[['y_has_purchased']]\n", - "\n", - " X_test = dataset_test[features_l]\n", - " y_test = dataset_test[['y_has_purchased']]\n", - " return X_train, X_test, y_train, y_test" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "69eaec12-b30f-4d30-a461-ea520d5cbf77", - "metadata": {}, - "outputs": [], - "source": [ - "X_train, X_test, y_train, y_test = features_target_split(dataset_train, dataset_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "d039f31d-0093-46c6-9743-ddec1381f758", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Shape train : (434278, 17)\n", - "Shape test : (186120, 17)\n" - ] - } - ], - "source": [ - "print(\"Shape train : \", X_train.shape)\n", - "print(\"Shape test : \", X_test.shape)" - ] - }, - { - "cell_type": "markdown", - "id": "a1d6de94-4e11-481a-a0ce-412bf29f692c", - "metadata": {}, - "source": [ - "### Prepare preprocessing and Hyperparameters" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "b808da43-c444-4e94-995a-7ec6ccd01e2d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{0.0: 0.5223906809346011, 1.0: 11.665359406898034}" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Compute Weights\n", - "weights = class_weight.compute_class_weight(class_weight = 'balanced', classes = np.unique(y_train['y_has_purchased']),\n", - " y = y_train['y_has_purchased'])\n", - "\n", - "weight_dict = {np.unique(y_train['y_has_purchased'])[i]: weights[i] for i in range(len(np.unique(y_train['y_has_purchased'])))}\n", - "weight_dict" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "id": "b32a79ea-907f-4dfc-9832-6c74bef3200c", - "metadata": {}, - "outputs": [], - "source": [ - "numeric_features = ['nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers', 'vente_internet_max', 'purchase_date_min', 'purchase_date_max', \n", - " 'time_between_purchase', 'nb_tickets_internet', 'fidelity', 'is_email_true', 'opt_in', #'is_partner',\n", - " 'gender_female', 'gender_male', 'gender_other', 'nb_campaigns', 'nb_campaigns_opened']\n", - "\n", - "numeric_transformer = Pipeline(steps=[\n", - " #(\"imputer\", SimpleImputer(strategy=\"mean\")), \n", - " (\"scaler\", StandardScaler()) \n", - "])\n", - "\n", - "categorical_features = ['opt_in'] \n", - "\n", - "# Transformer for the categorical features\n", - "categorical_transformer = Pipeline(steps=[\n", - " #(\"imputer\", SimpleImputer(strategy=\"most_frequent\")), # Impute missing values with the most frequent\n", - " (\"onehot\", OneHotEncoder(handle_unknown='ignore', sparse_output=False))\n", - "])\n", - "\n", - "preproc = ColumnTransformer(\n", - " transformers=[\n", - " (\"num\", numeric_transformer, numeric_features),\n", - " (\"cat\", categorical_transformer, categorical_features)\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "9809a688-bfbc-4685-a77f-17a8b2b79ab3", - "metadata": {}, - "outputs": [], - "source": [ - "# Set loss\n", - "balanced_scorer = make_scorer(balanced_accuracy_score)\n", - "recall_scorer = make_scorer(recall_score)" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "4f9b2bbf-5f8a-4ac1-8e6c-51bd0dd8ac85", - "metadata": {}, - "outputs": [], - "source": [ - "def draw_confusion_matrix(y_test, y_pred):\n", - " conf_matrix = confusion_matrix(y_test, y_pred)\n", - " sns.heatmap(conf_matrix, annot=True, fmt='d', cmap='Blues', xticklabels=['Class 0', 'Class 1'], yticklabels=['Class 0', 'Class 1'])\n", - " plt.xlabel('Predicted')\n", - " plt.ylabel('Actual')\n", - " plt.title('Confusion Matrix')\n", - " plt.show()\n", - "\n", - "\n", - "def draw_roc_curve(X_test, y_test):\n", - " y_pred_prob = pipeline.predict_proba(X_test)[:, 1]\n", - "\n", - " # Calcul des taux de faux positifs (FPR) et de vrais positifs (TPR)\n", - " fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob, pos_label=1)\n", - " \n", - " # Calcul de l'aire sous la courbe ROC (AUC)\n", - " roc_auc = auc(fpr, tpr)\n", - " \n", - " plt.figure(figsize = (14, 8))\n", - " plt.plot(fpr, tpr, label=\"ROC curve(area = %0.3f)\" % roc_auc)\n", - " plt.plot([0, 1], [0, 1], color=\"red\",label=\"Random Baseline\", linestyle=\"--\")\n", - " plt.grid(color='gray', linestyle='--', linewidth=0.5)\n", - " plt.xlabel('Taux de faux positifs (FPR)')\n", - " plt.ylabel('Taux de vrais positifs (TPR)')\n", - " plt.title('Courbe ROC : modèle logistique')\n", - " plt.legend(loc=\"lower right\")\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "206d9a95-7c37-4506-949b-e77d225e42c5", - "metadata": {}, - "outputs": [], - "source": [ - "# Hyperparameter\n", - "param_grid = {'logreg__C': np.logspace(-10, 6, 17, base=2),\n", - " 'logreg__penalty': ['l1', 'l2'],\n", - " 'logreg__class_weight': ['balanced', weight_dict]} " - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "7ff2f7bd-efc1-4f7c-a3c9-caa916aa2f2b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
Pipeline(steps=[('preprocessor',\n",
-       "                 ColumnTransformer(transformers=[('num',\n",
-       "                                                  Pipeline(steps=[('scaler',\n",
-       "                                                                   StandardScaler())]),\n",
-       "                                                  ['nb_tickets', 'nb_purchases',\n",
-       "                                                   'total_amount',\n",
-       "                                                   'nb_suppliers',\n",
-       "                                                   'vente_internet_max',\n",
-       "                                                   'purchase_date_min',\n",
-       "                                                   'purchase_date_max',\n",
-       "                                                   'time_between_purchase',\n",
-       "                                                   'nb_tickets_internet',\n",
-       "                                                   'fidelity', 'is_email_true',\n",
-       "                                                   'opt_in', 'gender_female',\n",
-       "                                                   'gender_male',\n",
-       "                                                   'gender_other',\n",
-       "                                                   'nb_campaigns',\n",
-       "                                                   'nb_campaigns_opened']),\n",
-       "                                                 ('cat',\n",
-       "                                                  Pipeline(steps=[('onehot',\n",
-       "                                                                   OneHotEncoder(handle_unknown='ignore',\n",
-       "                                                                                 sparse_output=False))]),\n",
-       "                                                  ['opt_in'])])),\n",
-       "                ('logreg',\n",
-       "                 LogisticRegression(class_weight={0.0: 0.5223906809346011,\n",
-       "                                                  1.0: 11.665359406898034},\n",
-       "                                    max_iter=5000, solver='saga'))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" - ], - "text/plain": [ - "Pipeline(steps=[('preprocessor',\n", - " ColumnTransformer(transformers=[('num',\n", - " Pipeline(steps=[('scaler',\n", - " StandardScaler())]),\n", - " ['nb_tickets', 'nb_purchases',\n", - " 'total_amount',\n", - " 'nb_suppliers',\n", - " 'vente_internet_max',\n", - " 'purchase_date_min',\n", - " 'purchase_date_max',\n", - " 'time_between_purchase',\n", - " 'nb_tickets_internet',\n", - " 'fidelity', 'is_email_true',\n", - " 'opt_in', 'gender_female',\n", - " 'gender_male',\n", - " 'gender_other',\n", - " 'nb_campaigns',\n", - " 'nb_campaigns_opened']),\n", - " ('cat',\n", - " Pipeline(steps=[('onehot',\n", - " OneHotEncoder(handle_unknown='ignore',\n", - " sparse_output=False))]),\n", - " ['opt_in'])])),\n", - " ('logreg',\n", - " LogisticRegression(class_weight={0.0: 0.5223906809346011,\n", - " 1.0: 11.665359406898034},\n", - " max_iter=5000, solver='saga'))])" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Pipeline\n", - "pipeline = Pipeline(steps=[\n", - " ('preprocessor', preproc),\n", - " ('logreg', LogisticRegression(solver='saga', class_weight = weight_dict,\n", - " max_iter=5000)) \n", - "])\n", - "\n", - "pipeline.set_output(transform=\"pandas\")" - ] - }, - { - "cell_type": "markdown", - "id": "ed415f60-9663-4179-877b-233faf6e1645", - "metadata": {}, - "source": [ - "## Baseline" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "2b467511-2ae5-4a16-a502-397c3460471d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
Pipeline(steps=[('preprocessor',\n",
-       "                 ColumnTransformer(transformers=[('num',\n",
-       "                                                  Pipeline(steps=[('scaler',\n",
-       "                                                                   StandardScaler())]),\n",
-       "                                                  ['nb_tickets', 'nb_purchases',\n",
-       "                                                   'total_amount',\n",
-       "                                                   'nb_suppliers',\n",
-       "                                                   'vente_internet_max',\n",
-       "                                                   'purchase_date_min',\n",
-       "                                                   'purchase_date_max',\n",
-       "                                                   'time_between_purchase',\n",
-       "                                                   'nb_tickets_internet',\n",
-       "                                                   'fidelity', 'is_email_true',\n",
-       "                                                   'opt_in', 'gender_female',\n",
-       "                                                   'gender_male',\n",
-       "                                                   'gender_other',\n",
-       "                                                   'nb_campaigns',\n",
-       "                                                   'nb_campaigns_opened']),\n",
-       "                                                 ('cat',\n",
-       "                                                  Pipeline(steps=[('onehot',\n",
-       "                                                                   OneHotEncoder(handle_unknown='ignore',\n",
-       "                                                                                 sparse_output=False))]),\n",
-       "                                                  ['opt_in'])])),\n",
-       "                ('logreg',\n",
-       "                 LogisticRegression(class_weight={0.0: 0.5223906809346011,\n",
-       "                                                  1.0: 11.665359406898034},\n",
-       "                                    max_iter=5000, solver='saga'))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" - ], - "text/plain": [ - "Pipeline(steps=[('preprocessor',\n", - " ColumnTransformer(transformers=[('num',\n", - " Pipeline(steps=[('scaler',\n", - " StandardScaler())]),\n", - " ['nb_tickets', 'nb_purchases',\n", - " 'total_amount',\n", - " 'nb_suppliers',\n", - " 'vente_internet_max',\n", - " 'purchase_date_min',\n", - " 'purchase_date_max',\n", - " 'time_between_purchase',\n", - " 'nb_tickets_internet',\n", - " 'fidelity', 'is_email_true',\n", - " 'opt_in', 'gender_female',\n", - " 'gender_male',\n", - " 'gender_other',\n", - " 'nb_campaigns',\n", - " 'nb_campaigns_opened']),\n", - " ('cat',\n", - " Pipeline(steps=[('onehot',\n", - " OneHotEncoder(handle_unknown='ignore',\n", - " sparse_output=False))]),\n", - " ['opt_in'])])),\n", - " ('logreg',\n", - " LogisticRegression(class_weight={0.0: 0.5223906809346011,\n", - " 1.0: 11.665359406898034},\n", - " max_iter=5000, solver='saga'))])" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pipeline.fit(X_train, y_train)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "6356e870-0dfc-4e60-9e48-e2de5e7f9f87", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy Score: 0.9083440790887599\n", - "F1 Score: 0.4349266289045679\n", - "Recall Score: 0.8231974921630094\n" - ] - } - ], - "source": [ - "y_pred = pipeline.predict(X_test)\n", - "\n", - "# Calculate the F1 score\n", - "acc = accuracy_score(y_test, y_pred)\n", - "print(f\"Accuracy Score: {acc}\")\n", - "\n", - "f1 = f1_score(y_test, y_pred)\n", - "print(f\"F1 Score: {f1}\")\n", - "\n", - "recall = recall_score(y_test, y_pred)\n", - "print(f\"Recall Score: {recall}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "09387a09-0d53-4c54-baac-f3c2a57a629a", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjYAAAHFCAYAAADhWLMfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABi10lEQVR4nO3deVxU9f7H8deIMCLKhCLguKSWkoilYSlqqbngguatrgtFUoZetbwkblRuLeKWVu7ZYtfsUjfTq2WEZWmmuJCkqGnlgiaIC+GSAuH8/vDn3EZQwWbR8f3scR4P55zP+Z7vGRv58Pl+v2cMFovFgoiIiIgbKOfqDoiIiIjYixIbERERcRtKbERERMRtKLERERERt6HERkRERNyGEhsRERFxG0psRERExG0osRERERG3ocRGRERE3IYSG3Fr27Zt44knnqBu3bpUqFCBSpUqcffddzNlyhROnDjh0Gtv3bqVNm3aYDKZMBgMvPbaa3a/hsFgYPz48XZv92oWLlyIwWDAYDDwzTffFDtusVi4/fbbMRgMtG3b9pquMWfOHBYuXFimc7755pvL9klEbg7lXd0BEUdZsGABgwcPJjg4mBEjRhASEkJhYSFbtmxh3rx5bNiwgaVLlzrs+k8++SRnzpwhKSkJPz8/6tSpY/drbNiwgZo1a9q93dKqXLkyb7/9drHkZc2aNfzyyy9Urlz5mtueM2cO/v7+xMTElPqcu+++mw0bNhASEnLN1xWRG5sSG3FLGzZsYNCgQXTs2JFly5ZhNBqtxzp27Eh8fDzJyckO7UNGRgaxsbF06dLFYddo0aKFw9oujd69e7N48WJmz56Nr6+vdf/bb79NeHg4J0+edEo/CgsLMRgM+Pr6uvw9ERHX0lCUuKWJEydiMBh48803bZKai7y8vOjRo4f19fnz55kyZQp33HEHRqORgIAAHn/8cQ4dOmRzXtu2bQkNDWXz5s3cd999VKxYkXr16jFp0iTOnz8P/G+Y5o8//mDu3LnWIRuA8ePHW//8ZxfP2b9/v3Xf6tWradu2LVWrVsXb25vatWvz8MMP8/vvv1tjShqKysjI4MEHH8TPz48KFSrQpEkT3nvvPZuYi0M2//73v3n++ecxm834+vrSoUMHdu/eXbo3Gejbty8A//73v6378vLyWLJkCU8++WSJ50yYMIHmzZtTpUoVfH19ufvuu3n77bf58/fx1qlThx07drBmzRrr+3ex4nWx74sWLSI+Pp4aNWpgNBr5+eefiw1FHTt2jFq1atGyZUsKCwut7e/cuRMfHx+io6NLfa8icmNQYiNup6ioiNWrVxMWFkatWrVKdc6gQYMYNWoUHTt2ZPny5bz00kskJyfTsmVLjh07ZhObnZ3No48+ymOPPcby5cvp0qULCQkJvP/++wB069aNDRs2APDII4+wYcMG6+vS2r9/P926dcPLy4t33nmH5ORkJk2ahI+PDwUFBZc9b/fu3bRs2ZIdO3bwxhtv8MknnxASEkJMTAxTpkwpFv/cc89x4MAB3nrrLd58801++uknunfvTlFRUan66evryyOPPMI777xj3ffvf/+bcuXK0bt378ve28CBA/noo4/45JNPeOihh3jmmWd46aWXrDFLly6lXr16NG3a1Pr+XTpsmJCQQGZmJvPmzWPFihUEBAQUu5a/vz9JSUls3ryZUaNGAfD777/z97//ndq1azNv3rxS3aeI3EAsIm4mOzvbAlj69OlTqvhdu3ZZAMvgwYNt9m/cuNECWJ577jnrvjZt2lgAy8aNG21iQ0JCLBERETb7AMuQIUNs9o0bN85S0sfu3XfftQCWffv2WSwWi+Xjjz+2AJb09PQr9h2wjBs3zvq6T58+FqPRaMnMzLSJ69Kli6VixYqW3377zWKxWCxff/21BbB07drVJu6jjz6yAJYNGzZc8boX+7t582ZrWxkZGRaLxWK55557LDExMRaLxWJp1KiRpU2bNpdtp6ioyFJYWGh58cUXLVWrVrWcP3/eeuxy51683v3333/ZY19//bXN/smTJ1sAy9KlSy39+vWzeHt7W7Zt23bFexSRG5MqNnLT+/rrrwGKTVK99957adiwIV999ZXN/qCgIO69916bfXfeeScHDhywW5+aNGmCl5cXAwYM4L333mPv3r2lOm/16tW0b9++WKUqJiaG33//vVjl6M/DcXDhPoAy3UubNm247bbbeOedd9i+fTubN2++7DDUxT526NABk8mEh4cHnp6ejB07luPHj5OTk1Pq6z788MOljh0xYgTdunWjb9++vPfee8ycOZPGjRuX+nwRuXEosRG34+/vT8WKFdm3b1+p4o8fPw5A9erVix0zm83W4xdVrVq1WJzRaOTs2bPX0NuS3XbbbXz55ZcEBAQwZMgQ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yB4xF2fLlHYYClSxERERuWEYjUZ8fX1ttmtNbPz9/SlfvjwhISE2+xs2bGhdFRUUFERBQQG5ubk2MTk5OdZqSlBQEEeOHCnW/tGjR21iLq265ObmUlhYeMWYnJwcgGKVnCtRYiMiIuJoLloVdSVeXl7cc8897N6922b/nj17uPXWWwEICwvD09OTVatWWY9nZWWRkZFBy5YtAQgPDycvL49NmzZZYzZu3EheXp5NTEZGBllZWdaYlJQUjEYjYWFh1pi1a9faLAFPSUnBbDZTp06dUt+XhqJEREQczU5DUWV1+vRpfv75Z+vrffv2kZ6eTpUqVahduzYjRoygd+/e3H///bRr147k5GRWrFjBN998A4DJZKJ///7Ex8dTtWpVqlSpwvDhw2ncuDEdOnQALlR4OnfuTGxsLPPnzwdgwIABREZGEhwcDECnTp0ICQkhOjqaqVOncuLECYYPH05sbCy+vr7AhSXjEyZMICYmhueee46ffvqJiRMnMnbs2DINRWm5t8hNRMu9RYpzynLvFqPs0s7Z1Mlliv/mm29o165dsf39+vVj4cKFALzzzjskJiZy6NAhgoODmTBhAg8++KA19ty5c4wYMYIPPviAs2fP0r59e+bMmUOtWrWsMSdOnGDo0KEsX74cgB49ejBr1ixuueUWa0xmZiaDBw9m9erVeHt7ExUVxbRp02yG0rZv386QIUPYtGkTfn5+/OMf/1BiA0psRC5HiY1IcU5JbMJH26Wdsxsm2aUdd6ahKBEREUdz0VDUzUjvtIiIiLgNVWxEREQczc4rmuTylNiIiIg4moainEaJjYiIiKOpYuM0SiFFRETEbahiIyIi4mgainIaJTYiIiKOpsTGafROi4iIiNtQxUZERMTRymnysLMosREREXE0DUU5jd5pERERcRuq2IiIiDianmPjNEpsREREHE1DUU6jd1pERETchio2IiIijqahKKdRYiMiIuJoGopyGiU2IiIijqaKjdMohRQRERG3oYqNiIiIo2koymmU2IiIiDiahqKcRimkiIiIuA1VbERERBxNQ1FOo8RGRETE0TQU5TRKIUVERMRtqGIjIiLiaBqKcholNiIiIo6mxMZp9E6LiIiI21DFRkRExNE0edhplNiIiIg4moainEaJjYiIiKOpYuM0SiFFRETEbahiIyIi4mgainIaJTYiIiKOpqEo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ERG3oaEoERERB9NQlPMosREREXEwTR52Hg1FiYiIiNtQxUZERMTBNBTlPEpsREREHEx5jfNoKEpERETchio2IiIijqaSjdMosREREXEwrYpyHg1FiYiIiNtQxUZERMTBtCrKeZTYiIiIOJjyGudRYiMiIuJoymycRnNsRERExG2oYiMiIuJgWhXlPEpsREREHEyTh51HQ1EiIiLiNgwWi8Xi6k6Ie8rPzycxMZGEhASMRqOruyNy3dBnQ8RxlNiIw5w8eRKTyUReXh6+vr6u7o7IdUOfDRHH0VCUiIiIuA0lNiIiIuI2lNiIiIiI21BiIw5jNBoZN26cJkeKXEKfDRHH0eRhERERcRuq2IiIiIjbUGIjIiIibkOJjYiIiLgNJTZSagaDgWXLlrm6GyLXFX0uRK4vSmwEgOzsbJ555hnq1auH0WikVq1adO/ena+++srVXQPAYrEwfvx4zGYz3t7etG3blh07dri6W+LmrvfPxSeffEJERAT+/v4YDAbS09Nd3SURl1NiI+zfv5+wsDBWr17NlClT2L59O8nJybRr144hQ4a4unsATJkyhenTpzNr1iw2b95MUFAQHTt25NSpU67umripG+FzcebMGVq1asWkSZNc3RWR64dFbnpdunSx1KhRw3L69Olix3Jzc61/BixLly61vh45cqSlfv36Fm9vb0vdunUtL7zwgqWgoMB6PD093dK2bVtLpUqVLJUrV7bcfffdls2bN1ssFotl//79lsjISMstt9xiqVixoiUkJMTy2Wefldi/8+fPW4KCgiyTJk2y7jt37pzFZDJZ5s2b9xfvXqRk1/vn4s/27dtnASxbt2695vsVcRflXZxXiYudOHGC5ORkXnnlFXx8fIodv+WWWy57buXKlVm4cCFms5nt27cTGxtL5cqVGTlyJACPPvooTZs2Ze7cuXh4eJCeno6npycAQ4YMoaCggLVr1+Lj48POnTupVKlSidfZt28f2dnZdOrUybrPaDTSpk0b1q9fz8CBA//COyBS3I3wuRCRkimxucn9/PPPWCwW7rjjjjKf+8ILL1j/XKdOHeLj4/nwww+t/4BnZmYyYsQIa9v169e3xmdmZvLwww/TuHFjAOrVq3fZ62RnZwMQGBhosz8wMJADBw6Uud8iV3MjfC5EpGSaY3OTs/z/g6cNBkOZz/34449p3bo1QUFBVKpUiTFjxpCZmWk9PmzYMJ566ik6dOjApEmT+OWXX6zHhg4dyssvv0yrVq0YN24c27Ztu+r1Lu2jxWK5pn6LXM2N9LkQEVtKbG5y9evXx2AwsGvXrjKdl5qaSp8+fejSpQuffvopW7du5fnnn6egoMAaM378eHbs2EG3bt1YvXo1ISEhLF26FICnnnqKvXv3Eh0dzfbt22nWrBkzZ84s8VpBQUHA/yo3F+Xk5BSr4ojYw43wuRCRy3DpDB+5LnTu3LnMkySnTZtmqVevnk1s//79LSaT6bLX6dOnj6V79+4lHhs9erSlcePGJR67OHl48uTJ1n35+fmaPCwOdb1/Lv5Mk4dF/kcVG2HOnDkUFRVx7733smTJEn766Sd27drFG2+8QXh4eInn3H777WRmZpKUlMQvv/zCG2+8Yf2tE+Ds2bM8/fTTfPPNNxw4cIDvvvuOzZs307BhQwDi4uL44osv2LdvH99//z2rV6+2HruUwWAgLi6OiRMnsnTpUjIyMoiJiaFixYpERUXZ/w0R4fr/XMCFSc7p6ens3LkTgN27d5Oenl6suilyU3F1ZiXXh8OHD1uGDBliufXWWy1eXl6WGjVqWHr06GH5+uuvrTFcsqx1xIgRlqpVq1oqVapk6d27t2XGjBnW30zz8/Mtffr0sdSqVcvi5eVlMZvNlqefftpy9uxZi8VisTz99NOW2267zWI0Gi3VqlWzREdHW44dO3bZ/p0/f94ybtw4S1BQkMVoNFruv/9+y/bt2x3xVohYXe+fi3fffdcCFNvGjRvngHdD5MZgsFj+f5aciIiIyA1OQ1EiIiLiNpTYiIiIiNtQYiMiIiJuQ4mNiIiIuA0lNiIiIuI2lNiIiIiI21BiIyIiIm5DiY2IGxo/fjxNmjSxvo6JiaFnz55O78f+/fsxGAykp6c7/doicnNSYiPiRDExMRgMBgwGA56entSrV4/hw4dz5swZh1739ddfZ+HChaWKVTIiIjey8q7ugMjNpnPnzrz77rsUFhby7bff8tRTT3HmzBnmzp1rE1dYWIinp6ddrmkymezSjojI9U4VGxEnMxqNBAUFUatWLaKionj00UdZtmyZdfjonXfeoV69ehiNRiwWC3l5eQwYMICAgAB8fX154IEH+OGHH2zanDRpEoGBgVSuXJn+/ftz7tw5m+OXDkWdP3+eyZMnc/vtt2M0GqlduzavvPIKAHXr1gWgadOmGAwG2rZtaz3v3XffpWHDhlSoUIE77riDOXPm2Fxn06ZNNG3alAoVKtCsWTO2bt1qx3dOROTqVLERcTFvb28KCwsB+Pnnn/noo49YsmQJHh4eAHTr1o0qVaqwcuVKTCYT8+fPp3379uzZs4cqVarw0UcfMW7cOGbPns19993HokWLeOONN6hXr95lr5mQkMCCBQuYMWMGrVu3Jisrix9//BG4kJzce++9fPnllzRq1AgvLy8AFixYwLhx45g1axZNmzZl69atxMbG4uPjQ79+/Thz5gyRkZE88MADvP/+++zbt49//vOfDn73REQu4eIv4RS5qfTr18/y4IMPWl9v3LjRUrVqVUuvXr0s48aNs3h6elpycnKsx7/66iuLr6+v5dy5czbt3HbbbZb58+dbLBaLJTw83PKPf/zD5njz5s0td911V4nXPXnypMVoNFoWLFhQYh/37dtnASxbt2612V+rVi3LBx98YLPvpZdesoSHh1ssFotl/vz5lipVqljOnDljPT537twS2xIRcRQNRYk42aeffkqlSpWoUKEC4eHh3H///cycOROAW2+9lWrVqllj09LSOH36NFWrVqVSpUrWbd++ffzyyy8A7Nq1i/DwcJtrXPr6z3bt2kV+fj7t27cvdZ+PHj3KwYMH6d+/v00/Xn75ZZt+3HXXXVSsWLFU/RARcQQNRYk4Wbt27Zg7dy6enp6YzWabCcI+Pj42sefPn6d69ep88803xdq55ZZbrun63t7eZT7n/PnzwIXhqObNm9scuzhkZrFYrqk/IiL2pMRGxMl8fHy4/fbbSxV79913k52dTfny5alTp06JMQ0bNiQ1NZXHH3/cui81NfWybdavXx9vb2+++uornnrqqWLHL86pKSoqsu4LDAykRo0a7N27l0cffbTEdkNCQli0aBFnz561Jk9X6oeIiCNoKErkOtahQwfCw8Pp2bMnX3zxBfv372f9+vW88MILbNmyBYB//vOfvPPOO7zzzjvs2bOHcePGsWPHjsu2WaFCBUaNGsXIkSP517/+xS+//EJqaipvv/02AAEBAXh7e5OcnMyRI0fIy8sDLjz0LzExkddff509e/awfft23n33XaZPnw5AVFQU5cqVo3///uzcuZOVK1cybdo0B79DIiK2lNiIXMcMBgMrV67k/vvv58knn6RBgwb06dOH/fv3ExgYCEDv3r0ZO3Yso0aNIiwsjAMHDjBo0KArtjtmzBji4+MZO3YsDRs2pHfv3uTk5ABQvnx53njjDebPn4/ZbObBBx8E4KmnnuKtt95i4cKFNG7cmDZt2rBw4ULr8vBKlSqxYsUKdu7cSdOmTXn++eeZPHmyA98dEZHiDBYNjIuIiIibUMVGRERE3IYSGxEREXEbSmxERETEbSixEREREbehxEZERETchhIbERERcRtKbERERMRtKLERERERt6HERkRERNyGEhsRERFxG0psRERExG0osRERERG38X8y64EAzxOXjgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "draw_confusion_matrix(y_test, y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "580b58d7-596f-4207-8c99-4365aba2bc9f", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABIQAAAK8CAYAAACeK2TMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hUddrG8e9MeieF0Lv0XgQBpQpIUVBAZO0ruyq7umJbsXcUC7ZVd33trogo4gqIoIiIoIKACIggvQVIIL1NOe8fBwKHCZhAkjOTuT/XlYuZM2dmniTcM8mTX3EYhmEgIiIiIiIiIiJBw2l3ASIiIiIiIiIiUrXUEBIRERERERERCTJqCImIiIiIiIiIBBk1hEREREREREREgowaQiIiIiIiIiIiQUYNIRERERERERGRIKOGkIiIiIiIiIhIkFFDSEREREREREQkyKghJCIiIiIiIiISZNQQEhEREQlwDz30EMnJyezYscPuUkRERCRAqCEkIiJSidauXcu1115LkyZNiIyMJDY2li5dujB16lQOHTpkS01vvfUWDoeDlStXVurzbN++HYfDUfLhdDpJTExk4MCBLFiw4KT3mz9/PsOHD6dmzZpERETQoEEDrr76ajZs2HDS+3z77bdceuml1KtXj/DwcBISEujVqxevvPIKeXl5lfHp2eLo92779u2W4w888AAXX3wxY8eOpbi4uNT7PvjggzgcjgqrZfHixTgcDhYvXlxhj1maxo0bc80115TrPsuWLePBBx8kMzPT57Z+/frRr1+/CqlNREQkkKkhJCIiUklee+01unbtyooVK7jjjjuYP38+n3zyCWPHjuXVV1/luuuus7vEKnHTTTexfPlyvv32W55++mk2b97MsGHDWLJkic+5d955J0OHDsXr9fLyyy+zcOFCHnjgAVasWEGXLl2YNWuWz30eeOAB+vTpw549e3jkkUdYuHAhH3zwAQMHDuTBBx/k3nvvrYpP03avvvoqNWvWZNKkSXaXUqE++eQT7rvvvnLdZ9myZTz00EOlNoRefvllXn755QqqTkREJHCF2l2AiIhIdbR8+XJuvPFGBg0axOzZs4mIiCi5bdCgQdx2223Mnz+/SmtyuVwVOkKkrBo2bMg555wDQO/evWnevDl9+/bl9ddfp0+fPiXnTZ8+naeeeoobb7zR8gt7nz59GD9+PH379uXKK6+kU6dONG3aFICZM2fy8MMPc9111/Haa69ZPr+hQ4dy5513snz58ir6TO0VGhrK3Llz7S6jwnXu3LlCH69NmzYV+ngiIiKBSiOEREREKsHjjz+Ow+HgP//5j6UZdFR4eDgXXXRRyXWv18vUqVNp1aoVERERpKamctVVV7F7927L/U42febEaTBHp/O8++673HbbbdSrV4+IiAh+//33knMOHz7MtddeS1JSEjExMVx44YVs3brV57G//PJLBg4cSHx8PNHR0fTu3ZuvvvrqNL4qpm7dugGwf/9+y/HHHnuMxMREnn76aZ/7xMTE8OKLL5Kfn8+0adNKjj/88MMkJibywgsvlNrsiouLY/Dgwadd64n69etHu3btWL58Ob169SIqKorGjRvz5ptvAjB37ly6dOlCdHQ07du3L7Xpt3TpUgYOHEhcXBzR0dH06tWr1EbO999/T+/evYmMjKRu3bpMnjwZl8tVal0zZsygZ8+exMTEEBsby+DBg/npp5/K9DmdeN8hQ4awevXqcnxVrP73v//Rs2dPoqOjiYuLY9CgQaU25T799FM6dOhAREQETZs25fnnny91WtuJ/+e9Xi+PPvooLVu2JCoqiho1atChQweef/55wJwad8cddwDQpEmTkimLR6e2lTZlbO/evVx66aXExcWRkJDAuHHj+P7773E4HLz11lsl551sutk111xD48aNLceKi4t59NFHSzJds2ZNrr32Wg4ePFi2L6SIiEglU0NIRESkgnk8HhYtWkTXrl1p0KBBme5z44038s9//pNBgwbxv//9j0ceeYT58+fTq1cv0tPTT7uWyZMns3PnTl599VU+++wzUlNTS2677rrrcDqdvP/++zz33HP8+OOP9OvXzzLN5r333mPw4MHEx8fz9ttv8+GHH5KUlMSQIUNOuym0bds2AFq0aFFybN++faxfv57BgwcTHR1d6v169uxJamoqCxcuLLnPunXrTnmfsjjaPHvwwQfLdH5aWhrXXnstEyZM4NNPP6V9+/b8+c9/5uGHH2by5MnceeedfPzxx8TGxjJq1Cj27t1bct9vvvmGAQMGkJWVxeuvv8706dOJi4vjwgsvZMaMGSXnbdiwgYEDB5KZmclbb73Fq6++yurVq3n00Ud96nn88ccZP348bdq04cMPP+Sdd94hOzub8847j3Xr1p3ycznxvu+++y45OTmcd955p1yz6WTef/99Ro4cSXx8PNOnT+f111/n8OHD9OvXj6VLl5acN3/+fC655BKSk5OZMWMGU6dOZfr06bz99tt/+BxTp07lwQcfZPz48cydO5cZM2Zw3XXXlfy/nTBhAjfddBMAs2bNYvny5SxfvpwuXbqU+ngFBQWcf/75LFiwgClTpjBz5kxq167NuHHjyv35H+X1ehk5ciRPPPEEf/rTn5g7dy5PPPEECxcupF+/fhQUFJz2Y4uIiFQYQ0RERCpUWlqaARiXXXZZmc7/9ddfDcCYOHGi5fgPP/xgAMbdd99dcqxRo0bG1Vdf7fMYffv2Nfr27Vty/euvvzYAo0+fPj7nvvnmmwZgXHzxxZbj3333nQEYjz76qGEYhpGXl2ckJSUZF154oeU8j8djdOzY0ejevfspP69t27YZgPHkk08aLpfLKCwsNNasWWP07NnTqFOnjrFt27aSc7///nsDMO66665TPmaPHj2MqKioct3njyxevNgICQkxHnrooT88t2/fvgZgrFy5suRYRkaGERISYkRFRRl79uwpOb5mzRoDMF544YWSY+ecc46Rmppq5OTklBxzu91Gu3btjPr16xter9cwDMMYN26cERUVZaSlpVnOa9WqlQGUfO127txphIaGGn/7298sdWZnZxupqanGmDFjSo498MADxvE/+h2970033WS5b05OjlG7dm3j0ksvPeXX4uj/sa+//towDPP/Rd26dY327dsbHo/H8nipqalGr169So6dffbZRoMGDYyioiLLecnJycaJP56e+H9+xIgRRqdOnU5Z21NPPWX5Oh3vxKy88sorBmB8+umnlvP+8pe/GIDx5ptvnvS+R1199dVGo0aNSq5Pnz7dAIyPP/7Yct6KFSsMwHj55ZdPWb+IiEhV0AghERERm3399dcAPlPBunfvTuvWrc9oetbo0aNPetvll19uud6rVy8aNWpUUs+yZcs4dOgQV199NW63u+TD6/VywQUXsGLFijLt4PXPf/6TsLAwIiMj6dSpE+vWreOzzz7zmWJTFoZhVPg6SH379sXtdnP//feX6fw6derQtWvXkutJSUmkpqbSqVMn6tatW3K8devWACVbwefl5fHDDz8wZswYYmNjS84LCQnhyiuvZPfu3fz222+A+X9i4MCB1KpVy3LeiaNWvvjiC9xuN3/+858tx+Pi4ujfvz/ffPPNST+Po/e96qqrLN/fyMhI+vbtW+7dw3777Tf27t3LlVdeidN57EfM2NhYRo8ezffff09+fj55eXmsXLmSUaNGER4ebjnvwgsv/MPn6d69Oz///DMTJ07kiy++IDs7u1x1nujrr78mLi7OMoUT4E9/+tNpP+acOXOoUaMGF154oeVr26lTJ2rXrl3pO7OJiIiUhRaVFhERqWApKSlER0eXTI36IxkZGYDZaDhR3bp1SxoKp6O0xzyqdu3apR47Ws/RNX7GjBlz0sc4dOgQMTExp6zhH//4B1dccQVFRUV8//333HvvvYwcOZKff/6Z5ORkwFx4GvjDr9mOHTtKpuGV9T4VLSkpyedYeHi4z/GjzY7CwkLAXLPJMIyTfp/h2P+FjIyMk35/jnf0e9SrVy+fc482707m6H3PPvvsUm8/vqlTFn/0/9jr9ZZ8DQzDsDS7jirt2IkmT55MTEwM7733Hq+++iohISH06dOHJ598smR9qvLWXdrzlvb1L6v9+/eTmZlpaXgd70ymgYqIiFQUNYREREQqWEhICAMHDuTzzz9n9+7d1K9f/5TnH22K7Nu3z+fcvXv3kpKSUnI9MjKSoqIin8dIT0+3nHfUqUbTpKWllXrsrLPOAih5vBdffLFkl7ATleUX+Pr165f8ot67d29q167NFVdcwQMPPMBLL70EmE2Etm3bsmDBAvLz80tdE2j58uXs37+fsWPHltynffv2p7yPP0lMTMTpdLJv3z6f246uM3T0a56cnHzS78/xjp7/ySef0KRJk3LVc/S+H330EY0aNSrXfUtz/P/jE+3duxen00liYmLJKK8TFxWH0v9Pnig0NJRbb72VW2+9lczMTL788kvuvvtuhgwZwq5du8r9/yA5OZkff/yxTLVERkaSlZXlc/zEBk9KSgrJyckn3UkwLi6uXDWKiIhUBk0ZExERqQSTJ0/GMAz+8pe/UFxc7HO7y+Xis88+A2DAgAGAuYDz8VasWMGvv/7KwIEDS441btyYtWvXWs7btGlTyVSj8vjvf/9rub5s2TJ27NhRsotS7969qVGjBhs2bKBbt26lfpxsBMSpXH755fTr14/XXnvNMvrpnnvu4fDhw9x+++0+98nLy+Pmm28mOjqaSZMmlRy/7777OHz4MDfffDOGYfjcLzc3lwULFpS7xsoQExNDjx49mDVrlmVRYa/Xy3vvvUf9+vVLFtru378/X331laVp4vF4LAtPAwwZMoTQ0FBWr15Nq1atSv04maP33bJly0m/v+XRsmVL6tWrx/vvv2/5XuTl5fHxxx+X7DwWExNDt27dmD17tiUbubm5zJkzp1zPWaNGDcaMGcPf/vY3Dh06xPbt2wFKdvYry+LN/fv3Jycnh//973+W4++//77PuY0bN2bTpk2WpmxGRgbLli2znDdixAgyMjLweDylfl1btmxZrs9TRESkMmiEkIiISCXo2bMnr7zyChMnTqRr167ceOONtG3bFpfLxerVq/nPf/5Du3btuPDCC2nZsiV//etfefHFF3E6nQwdOpTt27dz33330aBBA0sD5Morr+SKK65g4sSJjB49mh07djB16lRq1qxZ7hpXrlzJhAkTGDt2LLt27eKee+6hXr16TJw4ETDXdHnxxRe5+uqrOXToEGPGjCE1NZWDBw/y888/c/DgQV555ZXT+vo8+eST9OjRg0ceeYT/+7//A2D8+PGsWrWKp59+mu3bt/PnP/+ZWrVq8dtvvzFt2jS2bNnC+++/T9OmTUseZ+zYsdx333088sgjbNy4keuuu45mzZqRn5/PDz/8wL///W/GjRt3yq3nv/nmGwYOHMj9999f5nWETteUKVMYNGgQ/fv35/bbbyc8PJyXX36ZdevWMX369JIRXffeey//+9//GDBgAPfffz/R0dH861//8lmzqXHjxjz88MPcd999bNu2jWHDhpGUlMT+/fv54YcfiImJ4eGHHy61lqP3veeee9i6dSsXXHABiYmJ7N+/nx9//JGYmBgeeuihMn9uTqeTqVOncvnllzNixAiuv/56ioqKeOqpp8jMzOSJJ54oOffhhx9m+PDhDBkyhH/84x94PB6eeuopYmNjOXTo0Cmf58ILL6Rdu3Z069aNmjVrsmPHDp577jkaNWpE8+bNAWjfvj0Azz//PFdffTVhYWG0bNmy1JE5V111FdOmTeOqq67iscceo3nz5sybN48vvvjC59wrr7ySf//731xxxRX85S9/ISMjg6lTpxIfH28577LLLuO///0vw4YN4x//+Afdu3cnLCyM3bt38/XXXzNy5EguvvjiMn9tRUREKoV961mLiIhUf2vWrDGuvvpqo2HDhkZ4eLgRExNjdO7c2bj//vuNAwcOlJzn8XiM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rERERETkFAwDZs2CO++ErVtJefDBY7eNG2dbWSIiInYrc0PoKIfDQceOHenYseMZPXF6ejoej4datayjS2rVqkVaWlqp99m6dStLly4lMjKSTz75hPT0dCZOnMihQ4dOuo7QlClTeOihh3yOz5w5k+joaC655BK++uorsrKySE1NpXv37syZMweALl264PV6WbNmDQAjR45k6dKlZGRkkJSURJ8+fZg9ezZgNszCwsL46aefABg+fDgrV65k//79xMfHM3jwYD766CMA2rZtS2xsLD/88AMAQ4YMYd26dezZs4eYmBhGjBjBjBkzAGjZsiUpKSl89913AJx//vls2rSJnTt3EhISAphT77xeL82aNaNevXosWbIEgH79+rFz5062bt1KaGgoY8eO5eOPP6a4uJhGjRrRrFkzFi1aBMC5557LgQMH2LRpEwDjx4/n008/JT8/n/r169OmTRsWLFgAwNk9zmHKvF8BOK9mEW63m/nz55OTk0Pt2rXp0qUL8+bNM889+2wKCwv55ZdfALj44otZvHgxhw8fJiUlhZ49e5as4n50rubRjuyFF17I8uXLSU9PJzExkX79+vHJJ58A0L59eyIjI1mxYgUAw4YNY9WqVaSlpREXF8cFF1zAzJkzAWjTpg0JCQksX74cMJuOGzZsYPfu3URHRzNy5EimT58OQIsWLUhNTWXp0qUADBgwgC1btrBjxw7Cw8MZPXo0M2fOxO1207RpUxo2bMjixYsB6NOnD3v27GHLli04nU7GjRvHrFmzKCoqomHDhrRo0YIvv/wSgN69e5Oens5vv/0GwLhx45gzZw55eXnUq1ePdu3a8cUXXwDQo0cPcnNzWb9+PQBjxoxhwYIFZGdnU6tWLbp161ayblfXrl1xuVysXbsWgFGjRrFkyRIOHTpEcnIy5557Lp9++ikAnTp1wul0smrVKgBGjBjBjz/+yIEDB0hISGDgwIHMmjULgHbt2hEdHc2PP/4IwNChQ/n555/Zu3cvsbGxDBs2jA8//BCAVq1akZSUVNLYHTRoEBs3bmTXrl1ERUUxatQoPvjgAwzDoHnz5tSuXbtk7bD+/fuzfft2tm3bRlhYGGPGjOGjjz7C5XLRpEkTGjduzNdff23+3zvvPNLS0ti8eTMOh4PLLruM0NBQpk+fToMGDWjVqhULFy4EoFevXhw6dIiNGzcC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v3at//PVV1/RsmVL1+u88sorjBo1ir59+wJQrVo14uLi+PDDD7nrrrs4efIkJ0+epEKFCpbX6ty5s+X+hx9+SIkSJVi4cCHXXXed6/itt97Kv//9b9f9O+64g2eeecbVbKpevTqvvPIKTz31lKshNGTIENf51apV45VXXuGBBx64YENowoQJnDlzJs9fq/MdOnQIgHLlylmOlytXjt27d5OSkkJkZKTb86655hpGjx5N+/btqVGjBr/++iszZ87McV0pMNcpeuyxx2jbti0NGjSwPDZr1ixuvvlmkpOTKV++PPPmzaP0PwZfVKxYkV27dl3S55hXagj5oOzurwPjImfm0datMHQozJ5t3i9VCkaMgPvvh/O65SIiIiIiIv8UHhxI3MvX2PbanujUqRPjx48nOTmZCRMmsHXrVh555BG38wwj59+1DMPAcXYd1fNve2LdunVUqlTpsnd4a9iwoaUZBObaM59++ikvvvgihmEwadIkV8Pl6NGj7N27l3vuuYf77rvP9ZyMjAycTieAq8nyz5EwR44cYdiwYfz2228cPnyYzMxMkpOT2bNnj+W8Fi1aWO6vXr2alStX8tprr7mOZTfjkpOTiYiIYP78+YwcOZK4uDgSExPJyMggJSWF06dP59iYAbNZcrn++b272Pfzv//9L/fddx916tTB4XBQo0YN7r77bj777LMcz3/44YdZv359jiOIOnXqxLp16zh27Bgff/wx/fv3Z/ny5ZQtW9Z1Tnh4OMnJyZf42eWNGkI+KHuEkDM6On8uuHev2QwKCoJHHoEXX4QSJfLn2iKFaMCAAXaXIOJVlAkRd8qFiFV+ZMLhcFzytK3CFhkZSc2aNQEYO3YsnTp1YsSIEbzyyisAribNpk2baNOmjdvzN2/eTL169VznJiQkcPDgQY9GCYWHh1/w8YCAALeGVE6zQ3Jqltx6660888wzrFmzhjNnzrB3715uvvlmwJyqBua0sSuvvNLyvOzpaqVKlcLhcLjtvDZw4ECOHj3Ku+++S5UqVQgNDaV169Zui1n/s6asrCxGjBjhGpF0vrCwMHbv3k3Pnj0ZNGgQr7zyCiVLlmTJkiXcc889F5wRczlTxmJiYgBzpND537cjR45Qrly5XKd3lSlThhkzZpCSksLx48epUKECzzzzDNWqVXM795FHHuH7779n0aJFVKpUye3x7L+HNWvW5F//+he1atXik08+4dlnn3WdEx8fT5kyZS74OV4u7TLmg7LXEDp9Oue/4BeVlgYrVpy7f/XVMHKkOVVs9Gg1g8RnzZo1y+4SRLyKMiHiTrkQsfL3TLz00ku88847HDhwAIBu3bpRsmTJHHcI+/7779m2bRu33HILAP369SMkJIS33norx2ufPHkyx+ONGjVi3759rqln/1SmTBkOHTpkaQqtW7cuT59PpUqVaN++PV999RVfffUVXbp0cU2NKleuHBUrVmTHjh2uZkT2R3ZTIyQkhHr16hEXF2e57uLFixk8eDA9e/akfv36hIaGcuzYsYvW06xZM7Zs2eL2ejVr1iQgIIBVq1aRkZHBqFGj+Ne//kXt2rVd34sLmTBhAuvWrbvgR26qVatGTEwM8+bNcx1LS0tj4cKFtGnTxrXuT27CwsKoWLEiGRkZTJs2jd69e7seMwyDhx9+mOnTp/Pbb7/l2CzKiWEYpKamWo5t3LiRpk2b5un5l8o32rhikd0QwvBwUWnDgB9+gCeegAMHYNs2yO6InteJFPFV52/nKCLKhEhOlAsRK3/PRMeOHalfvz4jR47k/fffJzIykg8//JCbb76Z+++/n4cffpjo6Gh+/fVXnnzySfr160f//v0BiI2NZcyYMTz88MMkJiZy5513UrVqVfbt28cXX3xBVFRUjo2lDh060L59e2688UZGjx5NzZo12bx5Mw6Hg+7du9OxY0eOHj3KW2+9Rb9+/ZgzZw4//fQT0XmcIXLbbbcxfPhw0tLSGDNmjOWx4cOHM3jwYKKjo+nRowepqamsWrWKEydO8NhjjwHmWjlLliyxrO1Ts2ZNvvzyS1q0aEFiYiJPPvnkRUc6AQwbNozrrruO2NhYbrrpJgICAli/fj0bNmzg1VdfpUaNGmRkZPDee+/Rq1cvfv/9dz744IOLXvdypow5HA6GDBnCyJEjqVWrFrVq1WLkyJFERERw6623ukY93XnnnVSsWJHXX38dgOXLl7N//36aNGnC/v37GT58OFlZWZZFxR966CG+/vprZs6cSbFixVzrFTmdTsLDwzl9+jSvvfYa119/PeXLl+f48eOMGzeOffv2cdNNN1nqXLx4sWvkWoG56D5kRUxR2HZ+ybajRpWnZxlXvTI770/680/D6NzZMMy2kGGULWsYCxYUXJEiNrjQdo4i/kiZEHGnXIhYeZqJC2137e1y2nbeMAzjq6++MkJCQow9e/a4ji1atMjo3r274XQ6jZCQEKNevXrGO++8Y2RkZLg9f968ecY111xjlChRwggLCzPq1KljPPHEE8aBAwdyreX48ePG3XffbZQqVcoICwszGjRoYMyaNcv1+Pjx443Y2FgjMjLSuPPOO43XXnstx23nc3LixAkjNDTUiIiIyHH79q+++spo0qSJERISYpQoUcJo3769MX36dNfjmzZtMsLDw42TJ0+6jq1Zs8Zo0aKFERoaatSqVcuYOnWqUaVKFWPMmDGucwDju+++c3u9OXPmGG3atDHCw8ON6Ohoo1WrVsZHH33kenz06NFG+fLljfDwcOOaa64xvvjiCwMwTpw4kevX73JlZWUZL730khETE2OEhoYa7du3NzZs2GAYhmEkJiYahmEYHTp0MO666y7XcxYsWGDUrVvXCA0NNUqVKmXccccdxv79+y3XBXL8+OyzzwzDMPNzww03GBUqVDBCQkKM8uXLG9dff72xYsUKy3WWLl1qFC9e3EhOTs6x/vzadt5xtmi/kZiYiNPpJCEhIc8dVm+zeNtR7vhkBbXKRDDv8U4XPvnwYXNNoE8+gawsc8ewoUPNEUE++vmL5CY+Pj7XOb8i/kiZEHGnXIhYeZqJlJQUdu7cSbVq1dwWHpaio3///jRt2tSypo2/yMjIICjI3slUN910E02bNuW5557L8fEL5dCTnofWEPJB2YtKn0pKuvCJp09D/frw8cdmM+imm2DTJnj9dTWDpEj6+eef7S5BxKsoEyLulAsRK2VCcvL2228TFRVldxm2uNgaQgUtNTWVxo0bM3To0AJ/La0h5IOyB3VddIfDyEi46y5YtAjGjIG2bQu+OBEREREREfFpVapU4ZFHHrG7DL8UGhrKCy+8UCivpRFCPih7kl+xqH9sM7h6NXTsCGvWnDv22muwfLmaQeIX/rl9poi/UyZE3CkXIlbKhIiVP42Msr0hNG7cONe8t+bNm7N48eILnr9w4UKaN29OWFgY1atXz9MK5EVN9i5jRtbZXcYOHICBA6FlS1i4EM6fZxgWBgG2f5tFCsWpU6fsLkHEqygTIu6UCxErZULEKjMz0+4SCo2tnYIpU6YwZMgQnn/+edauXUu7du3o0aMHe/bsyfH8nTt30rNnT9q1a8fatWt57rnnGDx4MNOmTSvkyu2VvYZQVsIJeOUVqFULPv/cHDp0++3mmkEifuivv/6yuwQRr6JMiLhTLkSslAkRqzNnzthdQqGxdQ2h0aNHc88993DvvfcC8O677/Lzzz8zfvx4Xn/9dbfzP/jgAypXrsy7774LQN26dVm1ahXvvPMON954Y2GWbqssw+CarUt55dcPIfG4ebB1a3j3XWjVytbaRERERERERMT72TZCKC0tjdWrV9OtWzfL8W7durF06dIcn7Ns2TK386+55hpWrVpFenp6js9JTU0lMTHR8uHrDMOgzOmTlE08DpUrw+TJ8PvvagaJ3+vXr5/dJYh4FWVCxJ1yIWKlTIhYlShRwu4SCo1tI4SOHTtGZmYm5cqVsxwvV64chw4dyvE5hw4dyvH8jIwMjh07Rvny5d2e8/rrrzNixAi341OnTiUiIoK+ffvy66+/kpCQQNmyZWnVqhWzZs0CoFmzZmRlZbFu3ToAevfuzZIlSzh+/DglS5akffv2zJgxA4BGjRoRHBzM6tWrAbj22mtZtWoVhw8fJjo6mm7duvHtt98CUL9+faKioli+fDlgNrU2btzI/v37iYyM5LrrrmPKlCkAXHHFFZQuXZrff/8dgC5durB3+xaWtb6aD0KSGfTNOKZ8/z1ZkydTo0YNKlasyKJFiwDo2LEje/bsYceOHQQFBXHTTTcxbdo00tLSqFKlCjVq1OC3334DoG3bthw5coStW7cCcMsttzBz5kySk5OpVKkS9erVY+7cuQC0bt2ahIQE4uLiALjpppuYM2cOSUlJxMTE0KxZM2bPng1Ay5YtSUlJYcOGDQDccMMNLFiwgBMnTlC6dGlat27NDz/8AEDTpk0BWLt2LQC9evVi2bJlHDt2jBIlStCxY0e+++47ABo2bEhYWBgrV64EoGfPnqxZs4ZDhw5RrFgxunfvztSpUwGoV68eTqeTZcuWAWbTMS4ujn379hEREUHv3r2ZNGkSALVr16Zs2bIsWbIEgM6dO7N9+3Z2795NSEgIN954I1OnTiUjI4Pq1atTuXJlFixYAED79u3Zv38/27dvJyAggAEDBjB9+nRSU1OpXLkytWvX5pdffgHgqquu4tixY2zZsgWAAQMGMGvWLE6fPk3FihVp0KCBawvQK6+8klOnTrmG8/br14+5c+eSmJhIuXLlaNGiBT/++CMAzZs3Jz09nfXr1wPQp08fFi1aRHx8PKVKlaJt27bMnDkTgCZNmhAQEMCas4uQX3fddaxYsYIjR47gdDq5+uqrmT59OgANGjQgIiKCFStWANCjRw/+/PNPDhw4QFRUFD179uSbb74BoE6dOpQsWdLV2O3atSubN29m7969hIeH06dPHyZPnoxhGNSqVYuYmBjX2mGdOnVi165d7Ny5k+DgYPr168e3335Leno61apVo2rVqsyfPx+Adu3acejQIbZt24bD4eDmm2/mww8/pFSpUsTGxlKnTh3mzZsHQJs2bYiPj2fz5s0A9O/fn9mzZ3Pq1CkqVKhA48aN+emnnwBo1aoVycnJbNy4EcAn3yO2bt3Knj17CA0NpW/fvkyZMoWsrCy9R/jhe0RSUhI333yz3iPOvkfMmDGDM2fO6D3Cz98jDh8+TJcuXfQeoX9H6D0C8z1i69atrl2M8/IesWzZMqpWrUpaWhoZGRmkpqbicDgoWbIkJ06cICsri9DQUEJDQ13/GV+sWDHS09NJSUkBoFSpUpw8eZLMzExCQkIIDw93bfUdFRVFZmama9pOyZIlSUhIIDMzk+DgYCIiIlznRkZGYhgGycnJgPmLfFJSEhkZGQQHBxMZGcnJkycBiIiIAHCdW7x4cU6fPk16ejpBQUEUK1aMEydOuM51OBycPn0aAKfTSXJyMunp6QQGBuJ0OomPjwcgPDycwMBA11pMTqeTM2fOkJaWRmBgIMWLF+f4cXNWR1hYGMHBwSQlJQEQHR1NamoqqampBAQEUKJECeLj4zEMg9DQUEJCQlznnv81vNjXOyoqioyMDNfX+/yv4cW+3iVKlCAxMdH19T7/a3ihr3dQUBBRUVGWr/f5X8MLfb3Dw8MJCAiwfL3P/xpe6OsdHR1NSkoKaWlpbl/DC329s7+G53+9s7+GGRkZlChRItevd0hICGFhYZavd25/Z//59Y6MjCQrK8vy9c7t7+w/v97Fixfn1KlTZGRkkJWVhWEYzJo1i/T0dMt7RPb5eeEwstNfyA4cOEDFihVZunQprVu3dh1/7bXX+PLLL11vuOerXbs2d999N88++6zr2O+//07btm05ePAgMTExbs/J/oZnS0xMJDY2loSEBKKjo/P5sypckyZN4pZbbrG7DBGvoUyIWCkTIu6UCxErTzORkpLCzp07XRsDiRQ1x48fp1SpUnaXcUEXymFiYiJOpzNPPQ/bpoyVLl2awMBAt9FAR44ccRsFlC0mJibH84OCgnL9hoWGhhIdHW35KCpy+zqJ+CtlQsRKmRBxp1yIWCkThadq1aqu9XD9UceOHRkyZIjrvrd+PYKDg+0uodDY1hAKCQmhefPmrqGY2ebNm0ebNm1yfE7r1q3dzp87dy4tWrTwq29athYtWthdgohXUSZErJQJEXfKhYiVP2Vi4MCBOBwOHA4HQUFBVK5cmQceeMA1damoGj58uOvzdjgcOJ1O2rVrx8KFC22ta+XKldx///221pCTyMhIu0soNLZuO//YY48xYcIEPv30UzZt2sTQoUPZs2cPgwYNAuDZZ5/lzjvvdJ0/aNAgdu/ezWOPPcamTZv49NNP+eSTT3jiiSfs+hRslT3fW0RMyoSIlTIh4k65ELHyt0x0796dgwcPsmvXLiZMmMAPP/zAgw8+aHdZBa5+/focPHiQgwcPsmzZMmrVqsV1113nWtvGDmXKlHGt7eRNstfw8Qe2NoQGDBjAu+++y8svv0yTJk1YtGgRs2fPpkqVKgAcPHiQPXv2uM6vVq0as2fPZsGCBTRp0oRXXnmFsWPH+tWW8yIiIiIiIl7p9OncP84ucJync88uuHvRcy9BaGgoMTExVKpUiW7dujFgwADXovcAmZmZ3HPPPVSrVo3w8HCuuOIK/vvf/1quMXDgQPr06cM777xD+fLlKVWqFA899JBl5+sjR47Qq1cvwsPDqVatGl999ZVbLXv27KF3795ERUURHR1N//79OXz4sOvx4cOH06RJEz799FMqV65MVFQUDzzwAJmZmbz11lvExMRQtmxZXnvttYt+3kFBQcTExBATE0O9evUYMWIEp06dcm0GADB69GgaNmxIZGQksbGxPPjgg67FmwF2795Nr169KFGiBJGRkdSvX9+1CQBAXFwcPXv2JCoqinLlynHHHXdw7NixXGv655Qxh8PBhAkTuOGGG4iIiKBWrVp8//33lud4+hpyYbY2hAAefPBBdu3aRWpqKqtXr6Z9+/auxyZOnOjaeSFbhw4dWLNmDampqezcudM1msgfNW/e3O4SRLyKMiFipUyIuFMuRKzyNRNRUbl//PM/8cuWzf3cHj2s51atmvN5l2nHjh3MmTPHsvxIVlYWlSpV4ptvviEuLo5hw4bx3HPPuXbCyzZ//ny2b9/O/Pnz+fzzz5k4cSITJ050PT5w4EB27drFb7/9xrfffsu4ceM4cuSI63HDMOjTpw/x8fEsXLiQefPmsX37dgYMGGB5ne3bt/PTTz8xZ84cJk2axKeffsq1117Lvn37WLhwIW+++SYvvPACf/zxR54/79TUVCZOnEjx4sW54oorXMcDAgIYO3YsGzdu5PPPP+e3337jqaeecj3+0EMPkZqayqJFi9iwYQNvvvkmUWe/DwcPHqRDhw40adKEVatWMWfOHA4fPkz//v3zXBfAiBEj6N+/P+vXr6dnz57cdtttrh3G8us1LsafpozZtu28XL7zO9AiokyI/JMyIeJOuRCx8rdMzJo1y7VNePa27KNHj3Y9HhwczIgRI1z3q1WrxtKlS/nmm28sjYcSJUrw/vvvExgYSJ06dbj22mv59ddfue+++9i6dSs//fQTf/zxB1deeSUAn3zyCXXr1nU9/5dffmH9+vXs3LmT2NhYAL788kvq16/PypUradmyJWA2qD799FOKFStGvXr16NSpE1u2bGH27NkEBARwxRVX8Oabb7JgwQL+9a9/5fp5b9iwwdW8SU5OplixYkyZMsWy6dL5Cz5Xq1aNV155hQceeIBx48YB5oimG2+8kYYNGwJQvXp11/njx4+nWbNmjBw50nXs008/JTY2lq1bt1K7du0Lfl+yDRw40LXr3ciRI3nvvfdYsWIF3bt3z7fXuBibNmK3hRpCPmz9+vXUr1/f7jJEvIYyIWKlTIi4Uy5ErPI1E+dNL3ITGGi9f95oGTcB/5jIsmvXJZf0T506dWL8+PEkJyczYcIEtm7dyiOPPGI554MPPmDChAns3r2bM2fOkJaWRpMmTSzn1K9fn8DzPqfy5cuzYcMGADZt2kRQUJBlwe46depQvHhx1/1NmzYRGxvragYB1KtXj+LFi7Np0yZXQ6hq1aoUK1bMdU65cuUIDAwk4LyvUbly5Syjj3JyxRVXuKZfJSUlMWXKFG666Sbmz5/vqnP+/PmMHDmSuLg4EhMTycjIICUlhdOnTxMZGcngwYN54IEHmDt3Ll26dOHGG2+kUaNGAKxevZr58+e7mk7n2759e56bNdnXA3OkTrFixVyfW369xsUkJycTHh6eL9fydrZPGRMREREREZEiIDIy94+wsLyf+89fxnM775JKjKRmzZo0atSIsWPHkpqaahkR9M033zB06FD+/e9/M3fuXNatW8fdd99NWlqa5Tr/3OXa4XCQlZUFnBth4nA4cq3DMIwcH//n8Zxe50KvnZuQkBBq1qxJzZo1adq0KW+88QYVK1Z0reGze/duevbsSYMGDZg2bRqrV6/mf//7H3BuFNm9997Ljh07uOOOO9iwYQMtWrTgvffeA8yRTL169WLdunWWj23btlmWhbmYC31u+fUaco5GCPmwPn362F2CiFdRJkSslAkRd8qFiJW/Z+Kll16iR48ePPDAA1SoUIHFixfTpk0by85j27dv9+iadevWJSMjg1WrVtGqVSsAtmzZYtm9ql69euzZs4e9e/e6RgnFxcWRkJBgmVpWkAIDAzlzdgHvVatWkZGRwahRo1yjj/65bhJAbGwsgwYNYtCgQTz77LN8/PHHPPLIIzRr1oxp06ZRtWpVgoIKps1QGK8B5nRAf6ERQj5s0aJFdpcg4lWUCRErZULEnXIhYuXvmejYsSP169d3rUtTs2ZNVq1axc8//8zWrVt58cUXWblypUfXvOKKK+jevTv33Xcfy5cvZ/Xq1dx7772WaUhdunShUaNG3HbbbaxZs4YVK1Zw55130qFDB8tUs/ySkZHBoUOHOHToENu2bePVV18lLi6O3r17A1CjRg0yMjJ477332LFjB19++SUffPCB5RpDhgzh559/ZufOnaxZs4bffvvN1bx66KGHiI+P55ZbbmHFihXs2LGDuXPn8u9//5vMzMx8+RwK4zXAnFLnL9QQ8mHZq62LiEmZELFSJkTcKRciVsoEPPbYY3z88cfs3buXQYMG0bdvXwYMGMCVV17J8ePHLaOF8uqzzz4jNjaWDh060LdvX+6//37Kli3retzhcDBjxgxKlChB+/bt6dKlC9WrV2fKlCn5+am5/PXXX5QvX57y5cvTpEkTvvnmG8aPH8+dd94JQJMmTRg9ejRvvvkmDRo04KuvvuL111+3XCMzM5OHHnqIunXr0r17d6644grXgtMVKlTg999/JzMzk2uuuYYGDRrw6KOP4nQ6LesdXY7CeA0wm2f+wmH40xLaQGJiIk6nk4SEBMuK6r5o7ty5dOvWze4yRLyGMiFipUyIuFMuRKw8zURKSgo7d+6kWrVqhP1zXSCRIiAhIQGn02l3GRd0oRx60vPQCCEf1rZtW7tLEPEqyoSIlTIh4k65ELFSJkSsctrFrKhSQ8iHzZw50+4SRLyKMiFipUyIuFMuRKyUCRGr8xf/LurUEBIRERERERER8TNqCPmwJk2a2F2CiFdRJkSslAkRd8qFiJUyIWIVERFhdwmFRg0hH5afK6mLFAXKhIiVMiHiTrkQsbrUTPjZ3kTiRxwOh90lXFR+5U8/EX3YmjVr7C5BxKsoEyJWyoSIO+VCxMrTTAQHBwOQnJxcEOWI2O706dN2l3BRaWlpAAQGBl7WdYLyoxgREREREREp+gIDAylevDhHjhwBzOk1vjCiQiSv0tLSSElJsbuMXGVlZXH06FEiIiIICrq8lo7D8LOxfomJiTidThISEoiOjra7nMuSlJREsWLF7C5DxGsoEyJWyoSIO+VCxOpSMmEYBocOHfKr3ZjEf2RlZXn99OKAgACqVatGSEiI22Oe9Dw0QsiHrVixgquvvtruMkS8hjIhYqVMiLhTLkSsLiUTDoeD8uXLU7ZsWdLT0wuoMhF7LFu2jNatW9tdxgWFhITkS9NKDSEflj1MU0RMyoSIlTIh4k65ELG6nEwEBgZe9homIt7m0KFDhIWF2V1GofDucVByQU6n0+4SRLyKMiFipUyIuFMuRKyUCRErf8qE1hDyYampqYSGhtpdhojXUCZErJQJEXfKhYiVMiFi5euZ8KTnoRFCPmz69Ol2lyDiVZQJEStlQsSdciFipUyIWPlTJvxuDaHsAVGJiYk2V3L5kpOTi8TnIZJflAkRK2VCxJ1yIWKlTIhY+XomsmvPy2Qwv5sytm/fPmJjY+0uQ0RERERERESkQOzdu5dKlSpd8By/awhlZWVx4MABihUrhsPhsLucS5aYmEhsbCx79+71+bWQRPKDMiFipUyIuFMuRKyUCRGropAJwzBISkqiQoUKF92a3u+mjAUEBFy0S+ZLoqOjffYvqkhBUCZErJQJEXfKhYiVMiFi5euZyOtOaVpUWkRERERERETEz6ghJCIiIiIiIiLiZ9QQ8lGhoaG89NJLhIaG2l2KiFdQJkSslAkRd8qFiJUyIWLlb5nwu0WlRURERERERET8nUYIiYiIiIiIiIj4GTWERERERERERET8jBpCIiIiIiIiIiJ+Rg0hERERERERERE/o4aQFxs3bhzVqlUjLCyM5s2bs3jx4guev3DhQpo3b05YWBjVq1fnIVV8nwAAFGNJREFUgw8+KKRKRQqHJ5mYPn06Xbt2pUyZMkRHR9O6dWt+/vnnQqxWpOB5+nMi2++//05QUBBNmjQp2AJFCpmnmUhNTeX555+nSpUqhIaGUqNGDT799NNCqlakcHiai6+++orGjRsTERFB+fLlufvuuzl+/HghVStSsBYtWkSvXr2oUKECDoeDGTNmXPQ5Rfn3bDWEvNSUKVMYMmQIzz//PGvXrqVdu3b06NGDPXv25Hj+zp076dmzJ+3atWPt2rU899xzDB48mGnTphVy5SIFw9NMLFq0iK5duzJ79mxWr15Np06d6NWrF2vXri3kykUKhqeZyJaQkMCdd97J1VdfXUiVihSOS8lE//79+fXXX/nkk0/YsmULkyZNok6dOoVYtUjB8jQXS5Ys4c477+See+7hr7/+YurUqaxcuZJ77723kCsXKRinT5+mcePGvP/++3k6v6j/nq1t573UlVdeSbNmzRg/frzrWN26denTpw+vv/662/lPP/0033//PZs2bXIdGzRoEH/++SfLli0rlJpFCpKnmchJ/fr1GTBgAMOGDSuoMkUKzaVm4uabb6ZWrVoEBgYyY8YM1q1bVwjVihQ8TzMxZ84cbr75Znbs2EHJkiULs1SRQuNpLt555x3Gjx/P9u3bXcfee+893nrrLfbu3VsoNYsUFofDwXfffUefPn1yPaeo/56tEUJeKC0tjdWrV9OtWzfL8W7durF06dIcn7Ns2TK386+55hpWrVpFenp6gdUqUhguJRP/lJWVRVJSkv7RL0XCpWbis88+Y/v27bz00ksFXaJIobqUTHz//fe0aNGCt956i4oVK1K7dm2eeOIJzpw5UxglixS4S8lFmzZt2LdvH7Nnz8YwDA4fPsy3337LtddeWxgli3idov57dpDdBYi7Y8eOkZmZSbly5SzHy5Urx6FDh3J8zqFDh3I8PyMjg2PHjlG+fPkCq1ekoF1KJv5p1KhRnD59mv79+xdEiSKF6lIysW3bNp555hkWL15MUJB+/EvRcimZ2LFjB0uWLCEsLIzvvvuOY8eO8eCDDxIfH691hKRIuJRctGnThq+++ooBAwaQkpJCRkYG119/Pe+9915hlCzidYr679kaIeTFHA6H5b5hGG7HLnZ+TsdFfJWnmcg2adIkhg8fzpQpUyhbtmxBlSdS6PKaiczMTG699VZGjBhB7dq1C6s8kULnyc+JrKwsHA4HX331Fa1ataJnz56MHj2aiRMnapSQFCme5CIuLo7BgwczbNgwVq9ezZw5c9i5cyeDBg0qjFJFvFJR/j1b/0XohUqXLk1gYKBb5/7IkSNu3clsMTExOZ4fFBREqVKlCqxWkcJwKZnINmXKFO655x6mTp1Kly5dCrJMkULjaSaSkpJYtWoVa9eu5eGHHwbMX4YNwyAoKIi5c+fSuXPnQqldpCBcys+J8uXLU7FiRZxOp+tY3bp1MQyDffv2UatWrQKtWaSgXUouXn/9da666iqefPJJABo1akRkZCTt2rXj1Vdf9fnRECKeKuq/Z2uEkBcKCQmhefPmzJs3z3J83rx5tGnTJsfntG7d2u38uXPn0qJFC4KDgwusVpHCcCmZAHNk0MCBA/n66681912KFE8zER0dzYYNG1i3bp3rY9CgQVxxxRWsW7eOK6+8srBKFykQl/Jz4qqrruLAgQOcOnXKdWzr1q0EBARQqVKlAq1XpDBcSi6Sk5MJCLD+ihgYGAicGxUh4k+K/O/ZhnilyZMnG8HBwcYnn3xixMXFGUOGDDEiIyONXbt2GYZhGM8884xxxx13uM7fsWOHERERYQwdOtSIi4szPvnkEyM4ONj49ttv7foURPKVp5n4+uuvjaCgION///ufcfDgQdfHyZMn7foURPKVp5n4p5deeslo3LhxIVUrUvA8zURSUpJRqVIlo1+/fsZff/1lLFy40KhVq5Zx77332vUpiOQ7T3Px2WefGUFBQca4ceOM7du3G0uWLDFatGhhtGrVyq5PQSRfJSUlGWvXrjXWrl1rAMbo0aONtWvXGrt37zYMw/9+z1ZDyIv973//M6pUqWKEhIQYzZo1MxYuXOh67K677jI6dOhgOX/BggVG06ZNjZCQEKNq1arG+PHjC7likYLlSSY6dOhgAG4fd911V+EXLlJAPP05cT41hKQo8jQTmzZtMrp06WKEh4cblSpVMh577DEjOTm5kKsWKVie5mLs2LFGvXr1jPDwcKN8+fLGbbfdZuzbt6+QqxYpGPPnz7/g7wj+9nu2wzA09k9ERERERERExJ9oDSERERERERERET+jhpCIiIiIiIiIiJ9RQ0hERERERERExM+oISQiIiIiIiIi4mfUEBIRERERERER8TNqCImIiIiIiIiI+Bk1hERERERERERE/IwaQiIiIiIiIiIifkYNIREREfFaEydOpHjx4pd9neHDh1OuXDkcDgczZsy47Ot5q127duFwOFi3bt0Fz+vYsSNDhgxx3U9OTubGG28kOjoah8PByZMnL+n177jjDkaOHHlJz70cTzzxBIMHDy701xUREfFlagiJiIj4IYfDccGPgQMH2l1ivtm0aRMjRozgww8/5ODBg/To0cPukgpMbGwsBw8epEGDBgAsWLAgxwbP9OnTeeWVV1z3P//8cxYvXszSpUs5ePAgTqfT49dev349P/74I4888ojrWMeOHXP8+5WRkeH2eGhoKLVr12bkyJFkZmZa6s/+KFWqFJ07d+b333+3vPZTTz3FZ599xs6dOz2uW0RExF+pISQiIuKHDh486Pp49913iY6Othz773//a3eJ+Wb79u0A9O7dm5iYGEJDQ22uqOAEBgYSExNDUFDQBc8rWbIkxYoVc93fvn07devWpUGDBsTExOBwODx+7ffff5+bbrrJcl2A++67z/J36+DBg5b6sh/fsmULgwcP5oUXXuCdd96xXGPLli0cPHiQBQsWUKZMGa699lqOHDnierxs2bJ069aNDz74wOO6RURE/JUaQiIiIn4oJibG9eF0OnE4HK77wcHBDBo0iEqVKhEREUHDhg2ZNGmS5flVq1bl3XfftRxr0qQJw4cPB8yRHSEhISxevNj1+KhRoyhdujQHDx7Mta6JEydSuXJlIiIiuOGGGzh+/LjbOT/88APNmzcnLCyM6tWrM2LECNeIk38aPnw4vXr1AiAgIMDV6Fi5ciVdu3aldOnSOJ1OOnTowJo1a1zPy2nq1cmTJ3E4HCxYsACAl19+mQoVKlhqvP7662nfvj1ZWVk51jNw4ED69OnDiBEjKFu2LNHR0fznP/8hLS3NdU5qaiqDBw+mbNmyhIWF0bZtW1auXOl6/MSJE9x2222UKVOG8PBwatWqxWeffeZW965du+jUqRMAJUqUsIz8On/KWMeOHRk1ahSLFi3C4XDQsWNHAMaNG0etWrUICwujXLly9OvXL8fPCSArK4upU6dy/fXXuz0WERFh+fsWExOT4+NVq1bl4Ycf5uqrr3ab1le2bFliYmJo2LAhL7zwAgkJCSxfvtxyzvXXX+/291RERERyp4aQiIiIWKSkpNC8eXNmzZrFxo0buf/++7njjjvcfgG/kOyGwx133EFCQgJ//vknzz//PB9//DHly5fP8TnLly/n3//+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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "draw_roc_curve(X_test, y_test)" - ] - }, - { - "cell_type": "markdown", - "id": "ae8e9bd3-0f6a-4f82-bb4c-470cbdc8d6bb", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, - "source": [ - "## Cross Validation" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "7f0535de-34f1-4e97-b993-b429ecf0a554", - "metadata": {}, - "outputs": [], - "source": [ - "y_train = y_train['y_has_purchased']" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "id": "f7fca463-d7d6-493b-8329-fdfa92457f78", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Best parameters found: {'logreg__C': 0.0009765625, 'logreg__class_weight': 'balanced', 'logreg__penalty': 'l1'}\n", - "Best cross-validation score: 0.65\n", - "Test set score: 0.64\n" - ] - } - ], - "source": [ - "# Cross validation\n", - "\n", - "grid_search = GridSearchCV(pipeline, param_grid, cv=3, scoring=recall_scorer, error_score='raise',\n", - " n_jobs=-1)\n", - "\n", - "grid_search.fit(X_train, y_train)\n", - "\n", - "# Print the best parameters and the best score\n", - "print(\"Best parameters found: \", grid_search.best_params_)\n", - "print(\"Best cross-validation score: {:.2f}\".format(grid_search.best_score_))\n", - "\n", - "# Evaluate the best model on the test set\n", - "test_score = grid_search.score(X_test, y_test)\n", - "print(\"Test set score: {:.2f}\".format(test_score))" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "id": "56bd7828-4de1-4166-bea0-5d5e152b9d38", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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k9e8jyv7/+7qe7ky/yc/92KxWHj22Wf58MMPmT17NlWqVOGBBx7INXbDhg20aNECuLy665dffmHjxo288sor+b5ubvf5Tzl26dKFixcvEhISorksIi5KRYvcctzd3WnatCmbNm3KMZE2N1f+w3306NEc+44cOUJgYKBpuRUqVAiA9PR0u+1Xz5sBeOCBB/jiiy9ITU0lPj6e8PBwoqOjiY2Nveb5ixcvfs37AEy9l7/r0qULJ06cYPbs2Tz77LPXjIuNjcXT05Mvv/ySjh070qBBA+rWrXtD18xtQvO1HD16lD59+lCrVi1OnjzJoEGDbuiaIuJcKlrkljRs2DAMw6B79+65TlzNzMzkiy++AOChhx4CsE2kvWLjxo3s3r2bpk2bmpbXlRUw27Zts9t+JZfcuLu7U69ePWbMmAHA5s2brxnbtGlTVq1aZStSrvjvf/+Lj4+Pw5YDlypVisGDB9OuXTueeeaZa8ZZLBY8PDxwd3e3bbtw4QILFizIEWtW9yorK4snnngCi8XC119/TUxMDNOmTeOzzz771+cWkZtLz2mRW1J4eDizZs2id+/e1KlTh169elG9enUyMzPZsmULc+fOpUaNGrRr146qVavSo0cPpk2bhpubG61bt+bgwYMMHz6cMmXK8OKLL5qWV5s2bShWrBjdunXjtddew8PDg/nz5/Pnn3/axc2ePZtVq1bRtm1bypYty8WLF20rdJo1a3bN848cOZIvv/ySBx98kBEjRlCsWDE++ugjvvrqK8aPH4+/v79p93K1sWPHXjembdu2TJo0icjISHr06MHJkyeZOHFirsvSa9asSWxsLJ988gkVKlSgUKFCNzQPZeTIkfz888+sXLmSkJAQBg4cyOrVq+nWrRu1a9emfPny+T6niDiHiha5ZXXv3p377ruPyZMnM27cOJKSkvD09KRKlSpERkbSt29fW+ysWbOoWLEi7733HjNmzMDf359WrVoRExOT6xyWG+Xn50dcXBzR0dE89dRTFC1alOeee47WrVvz3HPP2eJq1arFypUrGTlyJElJSRQuXJgaNWqwfPly25yQ3FStWpW1a9fy8ssv06dPHy5cuEC1atWYN29evp4s6ygPPfQQ77//PuPGjaNdu3aUKlWK7t27ExQURLdu3exiR48ezdGjR+nevTtnz56lXLlyds+xyYtvv/2WmJgYhg8f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Hp+/2ZTzfNrlHlPO46rUaREREXEwN70x0RSaiCsiIiIuQZ0WERERB1OfxRwqWkRERBzMGauHbkUaHhIRERGXoE6LiIiIg7mp0WKKPBUty5cvz/MJ27dvf8PJiIiI3Io0PGSOPBUtHTp0yNPJLBYLWVlZ/yYfERERkVzlqWjJzs52dB4iIiK3LDVazKE5LSIiIg6m4SFz3FDRkpaWxurVq0lMTCQjI8NuX//+/U1JTERE5FahibjmyHfRsmXLFtq0acP58+dJS0ujWLFinDhxAh8fH4KCglS0iIiIiEPk+zktL774Iu3atePUqVN4e3sTHx/PoUOHqFOnTr7f1igiInI7sFgspnxud/kuWhISEhg4cCDu7u64u7uTnp5OmTJlGD9+PC+//LIjchQREXFpFpM+t7t8Fy2enp62ai84OJjExEQA/P39bX8WERERMVu+57TUrl2bX3/9lSpVqvDggw8yYsQITpw4wYIFC6hZs6YjchQREXFpbhraMUW+Oy1jxoyhZMmSALz++usUL16cXr16kZyczNy5c01PUERExNVZLOZ8bnf57rTUrVvX9ucSJUqwYsUKUxMSERERyY0eLiciIuJgWvljjnwXLeXLl//HL3///v3/KiEREZFbjWoWc+S7aImOjrb7OTMzky1bthAXF8fgwYPNyktERETETr6LlhdeeCHX7TNmzODXX3/91wmJiIjcarR6yBz5Xj10La1bt2bJkiVmnU5EROSWodVD5jBtIu7ixYspVqyYWacTERG5ZWgirjlu6OFyf//yDcMgKSmJ48ePM3PmTFOTExEREbki30XLww8/bFe0uLm5UaJECZo0acKdd95panI3KmXjdGenIFIgZV7KdnYKIrcl0+Zi3ObyXbSMGjXKAWmIiIjcujQ8ZI58F3/u7u4kJyfn2H7y5Enc3d1NSUpERETkavnutBiGkev29PR0vLy8/nVCIiIitxo3NVpMkeeiZerUqcDlFte7775L4cKFbfuysrL46aefCsycFhERkYJERYs58ly0TJ48GbjcaZk9e7bdUJCXlxd33HEHs2fPNj9DEREREfJRtBw4cACABx98kM8++4yAgACHJSUiInIr0URcc+R7TssPP/zgiDxERERuWRoeMke+Vw899thjjB07Nsf2CRMm8Pjjj5uSlIiIiMjV8l20rF69mrZt2+bY3qpVK376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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "y_pred = grid_search.predict(X_test)\n", - "\n", - "draw_confusion_matrix(y_test, y_pred)" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "id": "319fe0eb-4d4a-492c-bd50-3f08ab483021", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABIQAAAK8CAYAAACeK2TMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hUddrG8e+k904ooSahSheBJIggioINBUTWvuqqrLr2tfeKBdtrXde6IqKIq7IIFsQA0hEBBRJ6JwnpPXPePw4MHAcwgSRnJnN/rotL5pwzyQNy54SH33l+DsMwDERERERERERExGf42V2AiIiIiIiIiIg0LjWERERERERERER8jBpCIiIiIiIiIiI+Rg0hEREREREREREfo4aQiIiIiIiIiIiPUUNIRERERERERMTHqCEkIiIiIiIiIuJj1BASEREREREREfExagiJiIiIiIiIiPgYNYREREREvNzDDz9MfHw8mzdvtrsUERER8RJqCImIiDSglStXcuWVV9KhQwdCQkKIiIigb9++TJw4kby8PFtqevfdd3E4HCxZsqRBP8+mTZtwOByuH35+fsTGxjJs2DBmzZp1xPfNnDmTs846i2bNmhEcHEybNm24/PLLWbNmzRHf89NPP3HhhReSlJREUFAQ0dHRpKen89prr1FSUtIQvzxbHPh/t2nTJsvxBx98kPPPP5+xY8dSWVl52Pc+9NBDOByOeqtlzpw5OBwO5syZU28f83Dat2/PFVdcUaf3zJ8/n4ceeoj8/Hy3c0OGDGHIkCH1UpuIiIg3U0NIRESkgbz11luceOKJLF68mDvuuIOZM2fy+eefM3bsWF5//XWuuuoqu0tsFDfeeCMLFizgp59+4tlnn2X9+vWMHDmSuXPnul175513MmLECJxOJ6+++iqzZ8/mwQcfZPHixfTt25dp06a5vefBBx9k8ODBbN++nUcffZTZs2fz8ccfM2zYMB566CHuu+++xvhl2u7111+nWbNm3HLLLXaXUq8+//xz7r///jq9Z/78+Tz88MOHbQi9+uqrvPrqq/VUnYiIiPcKsLsAERGRpmjBggVcf/31nH766UyfPp3g4GDXudNPP53bbruNmTNnNmpNVVVV9bpCpLbatm3LwIEDAcjIyKBjx46ccsopvP322wwePNh13eTJk3nmmWe4/vrrLX9hHzx4MOPHj+eUU07h0ksvpXfv3iQnJwMwdepUHnnkEa666ireeusty69vxIgR3HnnnSxYsKCRfqX2CggI4Ouvv7a7jHrXp0+fev143bp1q9ePJyIi4q20QkhERKQBPPHEEzgcDt58801LM+iAoKAgzj33XNdrp9PJxIkT6dKlC8HBwSQmJnLZZZexbds2y/uO9PjMHx+DOfA4zwcffMBtt91GUlISwcHBZGVlua7Zt28fV155JXFxcYSHh3POOeewYcMGt4/97bffMmzYMKKioggLCyMjI4PvvvvuGH5XTP369QNg9+7dluOPP/44sbGxPPvss27vCQ8P5+WXX6a0tJRJkya5jj/yyCPExsby0ksvHbbZFRkZyfDhw4+51j8aMmQI3bt3Z8GCBaSnpxMaGkr79u155513APj666/p27cvYWFh9OjR47BNv8zMTIYNG0ZkZCRhYWGkp6cftpHz888/k5GRQUhICK1ateLuu++mqqrqsHVNmTKFtLQ0wsPDiYiIYPjw4SxdurRWv6Y/vveMM85g+fLldfhdsfrvf/9LWloaYWFhREZGcvrppx+2KffFF1/Qs2dPgoODSU5O5sUXXzzsY21//DPvdDp57LHH6Ny5M6GhocTExNCzZ09efPFFwHw07o477gCgQ4cOrkcWDzzadrhHxnbs2MGFF15IZGQk0dHRjBs3jp9//hmHw8G7777ruu5Ij5tdccUVtG/f3nKssrKSxx57zJXpZs2aceWVV7J3797a/UaKiIg0MDWERERE6llNTQ3ff/89J554Im3atKnVe66//nr++c9/cvrpp/Pf//6XRx99lJkzZ5Kenk5OTs4x13L33XezZcsWXn/9db788ksSExNd56666ir8/Pz46KOPeOGFF1i0aBFDhgyxPGbz4YcfMnz4cKKionjvvff45JNPiIuL44wzzjjmptDGjRsB6NSpk+vYzp07Wb16NcOHDycsLOyw70tLSyMxMZHZs2e73rNq1aqjvqc2DjTPHnrooVpdv2vXLq688kquvvpqvvjiC3r06MFf//pXHnnkEe6++27uvPNOPvvsMyIiIhg1ahQ7duxwvffHH3/k1FNPpaCggLfffpvJkycTGRnJOeecw5QpU1zXrVmzhmHDhpGfn8+7777L66+/zvLly3nsscfc6nniiScYP3483bp145NPPuH999+nsLCQk08+mVWrVh311/LH937wwQcUFRVx8sknH3Vm05F89NFHnHfeeURFRTF58mTefvtt9u3bx5AhQ8jMzHRdN3PmTC644ALi4+OZMmUKEydOZPLkybz33nt/+jkmTpzIQw89xPjx4/n666+ZMmUKV111levP7dVXX82NN94IwLRp01iwYAELFiygb9++h/14ZWVlnHbaacyaNYsnn3ySqVOn0qJFC8aNG1fnX/8BTqeT8847j6eeeoq//OUvfP311zz11FPMnj2bIUOGUFZWdswfW0REpN4YIiIiUq927dplAMZFF11Uq+t/++03AzAmTJhgOb5w4UIDMO655x7XsXbt2hmXX36528c45ZRTjFNOOcX1+ocffjAAY/DgwW7XvvPOOwZgnH/++Zbj8+bNMwDjscceMwzDMEpKSoy4uDjjnHPOsVxXU1Nj9OrVy+jfv/9Rf10bN240AOPpp582qqqqjPLycmPFihVGWlqa0bJlS2Pjxo2ua3/++WcDMO66666jfswBAwYYoaGhdXrPn5kzZ47h7+9vPPzww3967SmnnGIAxpIlS1zHcnNzDX9/fyM0NNTYvn276/iKFSsMwHjppZdcxwYOHGgkJiYaRUVFrmPV1dVG9+7djdatWxtOp9MwDMMYN26cERoaauzatctyXZcuXQzA9Xu3ZcsWIyAgwPj73/9uqbOwsNBITEw0xowZ4zr24IMPGod+63fgvTfeeKPlvUVFRUaLFi2MCy+88Ki/Fwf+jP3www+GYZh/Llq1amX06NHDqKmpsXy8xMREIz093XXspJNOMtq0aWNUVFRYrouPjzf++O3pH//Mn3322Ubv3r2PWtszzzxj+X061B+z8tprrxmA8cUXX1iuu+aaawzAeOedd4743gMuv/xyo127dq7XkydPNgDjs88+s1y3ePFiAzBeffXVo9YvIiLSGLRCSERExGY//PADgNujYP3796dr167H9XjW6NGjj3ju4osvtrxOT0+nXbt2rnrmz59PXl4el19+OdXV1a4fTqeTM888k8WLF9dqB69//vOfBAYGEhISQu/evVm1ahVffvml2yM2tWEYRr3PQTrllFOorq7mgQceqNX1LVu25MQTT3S9jouLIzExkd69e9OqVSvX8a5duwK4toIvKSlh4cKFjBkzhoiICNd1/v7+XHrppWzbto21a9cC5p+JYcOG0bx5c8t1f1y18s0331BdXc1f//pXy/HIyEiGDh3Kjz/+eMRfx4H3XnbZZZb/vyEhIZxyyil13j1s7dq17Nixg0svvRQ/v4PfYkZERDB69Gh+/vlnSktLKSkpYcmSJYwaNYqgoCDLdeecc86ffp7+/fvzyy+/MGHCBL755hsKCwvrVOcf/fDDD0RGRloe4QT4y1/+cswf86uvviImJoZzzjnH8nvbu3dvWrRo0eA7s4mIiNSGhkqLiIjUs4SEBMLCwlyPRv2Z3NxcwGw0/FGrVq1cDYVjcbiPeUCLFi0Oe+xAPQdm/IwZM+aIHyMvL4/w8PCj1vCPf/yDSy65hIqKCn7++Wfuu+8+zjvvPH755Rfi4+MBc/A08Ke/Z5s3b3Y9hlfb99S3uLg4t2NBQUFuxw80O8rLywFzZpNhGEf8/wwH/yzk5uYe8f/PoQ78P0pPT3e79kDz7kgOvPekk0467PlDmzq18Wd/jp1Op+v3wDAMS7PrgMMd+6O7776b8PBwPvzwQ15//XX8/f0ZPHgwTz/9tGs+VV3rPtznPdzvf23t3r2b/Px8S8PrUMfzGKiIiEh9UUNIRESknvn7+zNs2DD+97//sW3bNlq3bn3U6w80RXbu3Ol27Y4dO0hISHC9DgkJoaKiwu1j5OTkWK474GiraXbt2nXYY6mpqQCuj/fyyy+7dgn7o9r8Bb5169auv6hnZGTQokULLrnkEh588EFeeeUVwGwinHDCCcyaNYvS0tLDzgRasGABu3fvZuzYsa739OjR46jv8SSxsbH4+fmxc+dOt3MH5gwd+D2Pj48/4v+fQx24/vPPP6dDhw51qufAez/99FPatWtXp/cezqF/jv9ox44d+Pn5ERsb61rl9ceh4nD4P5N/FBAQwK233sqtt95Kfn4+3377Lffccw9nnHEGW7durfOfg/j4eBYtWlSrWkJCQigoKHA7/scGT0JCAvHx8UfcSTAyMrJONYqIiDQEPTImIiLSAO6++24Mw+Caa66hsrLS7XxVVRVffvklAKeeeipgDnA+1OLFi/ntt98YNmyY61j79u1ZuXKl5bp169a5HjWqi//85z+W1/Pnz2fz5s2uXZQyMjKIiYlhzZo19OvX77A/jrQC4mguvvhihgwZwltvvWVZ/XTvvfeyb98+br/9drf3lJSUcNNNNxEWFsYtt9ziOn7//fezb98+brrpJgzDcHtfcXExs2bNqnONDSE8PJwBAwYwbdo0y1Bhp9PJhx9+SOvWrV2DtocOHcp3331naZrU1NRYBk8DnHHGGQQEBLB8+XK6dOly2B9HcuC92dnZR/z/WxedO3cmKSmJjz76yPL/oqSkhM8++8y181h4eDj9+vVj+vTplmwUFxfz1Vdf1elzxsTEMGbMGP7+97+Tl5fHpk2bAFw7+9VmePPQoUMpKiriv//9r+X4Rx995HZt+/btWbdunaUpm5uby/z58y3XnX322eTm5lJTU3PY39fOnTvX6dcpIiLSELRCSEREpAGkpaXx2muvMWHCBE488USuv/56TjjhBKqqqli+fDlvvvkm3bt355xzzqFz58787W9/4+WXX8bPz48RI0awadMm7r//ftq0aWNpgFx66aVccsklTJgwgdGjR7N582YmTpxIs2bN6lzjkiVLuPrqqxk7dixbt27l3nvvJSkpiQkTJgDmTJeXX36Zyy+/nLy8PMaMGUNiYiJ79+7ll19+Ye/evbz22mvH9Pvz9NNPM2DAAB599FH+9a9/ATB+/HiWLVvGs88+y6ZNm/jrX/9K8+bNWbt2LZMmTSI7O5uPPvqI5ORk18cZO3Ys999/P48++ii///47V111FSkpKZSWlrJw4ULeeOMNxo0bd9St53/88UeGDRvGAw88UOs5QsfqySef5PTTT2fo0KHcfvvtBAUF8eqrr7Jq1SomT57sWtF133338d///pdTTz2VBx54gLCwMP7v//7PbWZT+/bteeSRR7j//vvZuHEjI0eOJC4ujt27d7Nw4ULCw8N55JFHDlvLgffee++9bNiwgTPPPJPY2Fh2797NokWLCA8P5+GHH671r83Pz4+JEydy8cUXc/bZZ3PttddSUVHBM888Q35+Pk899ZTr2kceeYSzzjqLM844g3/84x/U1NTwzDPPEBERQV5e3lE/zznnnEP37t3p168fzZo1Y/Pmzbzwwgu0a9eOjh07AtCjRw8AXnzxRS6//HICAwPp3LnzYVfmXHbZZUyaNInLLruMxx9/nI4dOzJjxgy++eYbt2svvfRS3njjDS655BKuueYacnNzmThxIlFRUZbrLrroIv7zn/8wcuRI/vGPf9C/f38CAwPZtm0bP/zwA+eddx7nn39+rX9vRUREGoR986xFRESavhUrVhiXX3650bZtWyMoKMgIDw83+vTpYzzwwAPGnj17XNfV1NQYTz/9tNGpUycjMDDQSEhIMC655BJj69atlo/ndDqNiRMnGsnJyUZISIjRr18/4/vvvz/iLmNTp051q+nALmOzZs0yLr30UiMmJsYIDQ01Ro4caaxfv97t+h9//NE466yzjLi4OCMwMNBISkoyzjrrrMN+7EMd2GXsmWeeOez5sWPHGgEBAUZWVpbl+IwZM4yRI0ca8fHxrs936aWXGqtXrz7i5/rxxx+NMWPGGC1btjQCAwONqKgoIy0tzXjmmWeMwsLCo9Z54PfqwQcfPOp1hmHuMnXCCSe4HW/Xrp1x1llnuR0H3HYA++mnn4xTTz3VCA8PN0JDQ42BAwcaX375pdt7582bZwwcONAIDg42WrRoYdxxxx3Gm2++edjds6ZPn24MHTrUiIqKMoKDg4127doZY8aMMb799lvXNX/cZawu7z2cP+4ydujHGzBggBESEmKEh4cbw4YNM+bNm+f2/s8//9zo0aOHERQUZLRt29Z46qmnjJtuusmIjY21XPfHXcaee+45Iz093UhISHC996qrrjI2bdpked/dd99ttGrVyvDz87PUebidwrZt22aMHj3aiIiIMCIjI43Ro0cb8+fPd9tlzDAM47333jO6du1qhISEGN26dTOmTJnitsuYYRhGVVWV8eyzzxq9evUyQkJCjIiICKNLly7Gtddee9iciYiINDaHYRxmfbWIiIiISCOqqqqid+/eJCUlecRjfps2baJDhw688847bjsAioiINAV6ZExEREREGt1VV13F6aefTsuWLdm1axevv/46v/32Gy+++KLdpYmIiPgENYREREREpNEVFRVx++23s3fvXgIDA+nbty8zZszgtNNOs7s0ERERn6BHxkREREREREREfIy2nRcRERERERER8TFqCImIiIiIiIiI+Bg1hEREREREREREfIzPDZV2Op3s2LGDyMhIHA6H3eWIiIiIiIiIiNQLwzAoKiqiVatW+PkdfQ2QzzWEduzYQZs2bewuQ0RERERERESkQWzdupXWrVsf9RqfawhFRkYC5m9OVFSUzdUcn5kzZ3LmmWfaXYaIx1AmRKyUCRF3yoWIlTIhYuXtmSgsLKRNmzau3sfR+Ny284WFhURHR1NQUOD1DaHq6moCAnyupydyRMqEiJUyIeJOuRCxUiZErLw9E3XpeWiotBebOnWq3SWI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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "draw_roc_curve(X_test, y_test)" - ] - }, - { - "cell_type": "markdown", - "id": "ab122f66-1591-43ea-a364-2564f09b2bb3", - "metadata": {}, - "source": [ - "# Segmentation du score de prédiction" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "id": "279e18c7-29d8-4328-963a-18babd13c2c8", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABA4AAAIjCAYAAACDPFmSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD8YklEQVR4nOzdd1gUV/s38O8ufekgUgyICCIWFIMoVixYUCOWYEsQW0LUWFBRYgNDFAuW6BNjEhVjNKapsaCIBWPsUVGfYIlERB9RogZQUVzYef/w3fm5sgtLE2W/n+vySubMmTP3zD0M7NkzZySCIAggIiIiIiIiIlJDWt0BEBEREREREdHrix0HRERERERERKQROw6IiIiIiIiISCN2HBARERERERGRRuw4ICIiIiIiIiKN2HFARERERERERBqx44CIiIiIiIiINGLHARERERERERFpxI4DIiIiIiIiItKIHQdERERUIUlJSTAwMMD27durOxSiKiOXy9GtWzf4+/tDLpdXdzjVatiwYfD09MS9e/eqOxQiekXYcUBEVAkSEhIgkUjwxx9/VHco5bZ582YsX768usOocgEBAQgICKjuMF57aWlpiI6ORkZGRon1bt26hffeew8rVqxAcHCw1u1HR0dDIpGUKab8/HxER0cjJSWl2Drlz2Bp8b6pynO+XpWMjAxIJBIkJCRUdyiVJiwsDK6uriplBgYG+OWXX/D06VNMnTpV47av6h6jLsZX4csvv8SBAwewd+9e1KpV65Xvv7JJJBJER0e/8v2+qntWeY4vMTFR4zaurq4ICwurcFz05mHHARERAdCdjgPSTlpaGmJiYkr8o7awsBCDBg3CBx98gLFjx5ap/dGjR+P48eNl2iY/Px8xMTFqOw569eqF48ePw9HRsUxtEpWFubk5EhMTsWPHDvz444/VHc4rd/bsWcyePRuJiYmoV69edYdTKY4fP47Ro0dXdxhVpjzHl5iYiJiYGLXrtm3bhtmzZ1dGaPSG0a/uAIiIqHrl5+dDJpNVdxhUAdWVQ319fRw9erRM2yhjfeutt/DWW29VWix2dnaws7OrtPaINHF0dMT169erO4xX4uV7S4sWLfDPP/9Uyb6ePHkCY2PjVz6ypnXr1q90f69aZR+fj49PpbZHbw6OOCAiqiJhYWEwMzPD5cuX0b17d5iamsLR0RFxcXEAgBMn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QADz5s1jxIgR5n0qV67Mc889x/Tp03M9t8FgYNKkSUybNg2Ay5cv4+bmRnx8PB07dsz1mJdeeonffvuNTz75hD///JNy5cqRmJhI69atb9q3VatWdOrUiYkTJ5rXrVixgqioKH755Zdb9suXX35J586dSU5OpkqVKgBs3LiRTp063dQXN3rttdf46KOP2L9/P3C9ALRu3TqLUSZbtmyhW7dupKWl4ejoaF5fo0YNoqKizMUNa6Kjo3nttdf49ddfcXNzA6Bjx44cP36cpKQk7OyuD/apWbMmkZGRTJgwIdd2Pv74Y1588UXOnTtnXvfNN9/QunVrJkyYwMyZM9m8eTOtWrW6ZSwxMTE3rV+1ahUuLi63vA4RERERESm5MjIy6N27NxcuXMDd3d3qfjY74qBu3boWyz4+PqSlpRW6jYoVK5qHwt+4bu/evbcX6P/XtGlTc9EAoFmzZsydO5fs7Gzs7e3z3U5YWJj532lpafzyyy/m4oc1N15nmTJlcHNzs+irt99+m/fee48zZ85w5coVrl69ai66eHl5ERkZSYcOHWjXrh2PPPIIERER+Pj4AHDgwAH27dtnMWQ/Ozubv//+m4yMjFve2B47doyqVauaiwZwvV/+6ZNPPmHevHmcOnWKS5cuce3atVt+KHLiunTpEuXKlbNYf+XKFZKSkm55bA5/f39z0QCu/z7Y29ubiwY5627sy61btzJjxgyOHj1Keno6165d4++//+by5cuUKVPGfI1jx45l2rRpjB8//pZFA4CJEycyevRo83J6ejp+fn60b98+z364F7xx+A/sjNcI/OUA7dq1o1SpUsUdktxBWVlZJCQkKNclnPJsO5Rr26A82wbluWTKGY2cF5stHPzzl91gMGA0Gs03dTcOxLA2fOPGNgwGg9U27waDwcA/B4/kFnfOzSeAs7Nzvtq+1XWtWbOGUaNGMXfuXJo1a4abmxuvvfYae/bsMe+/dOlShg8fzsaNG/noo4+YNGkSCQkJNG3aFKPRSExMDN27d7/pvE5OTreMK7fBMjcWVwB2797N008/TUxMDB06dMDDw4PVq1czd+7cW7ZtNBrx8fExz2txI09Pz1semyO3frtVX545c4bOnTszePBgpk2bhpeXF19//TUDBgywyKXRaGTnzp3Y29tz8uTJPONwdHS0GDVxY3z3wx99o93//Zm6X2KW26dc2wbl2XYo17ZBebYNynPJkt9c2mzhwBpvb28AUlNTCQ0NBbAYwl5cdu/efdNyYGCgebSBt7c3qamp5u0nT57Mc2JGNzc3/P392bx5M23atClUXDt27OChhx5iyJAh5nW5fSMfGhpKaGgoEydOpFmzZqxatYqmTZvSoEEDjh8/To0aNQp87lq1apGSksIvv/yCr68vcH0Y/4127txJtWrVePnll83rbpyYEaB06dJkZ2dbrGvQoAG//vorDg4O+Pv7Fzi2wti/fz/Xrl1j7ty55gLWmjVrbtrvtdde49ixY2zbto0OHTqwdOlSnnvuubsSo4iIiIiI2B4VDv7B2dmZpk2bEhsbi7+/P+fOnWPSpEnFHRY//fQTo0eP5oUXXuDbb79l4cKFFt+at23blkWLFpm/xR8/fny+qkfR0dEMHjyYChUq0KlTJy5evMjOnTsZNmxYvuKqUaMGH3zwAZs2bSIgIIDly5ezb98+AgICADh9+jTvvvsuXbp0wdfXl+PHj3PixAn69u0LwJQpU3jsscfw8/Pjqaeews7OjsOHD3PkyBGr8y7keOSRRwgODqZv377MnTuX9PR0iwJBTnwpKSmsXr2aRo0asX79ej799FOLfXImIjx06BBVqlTBzc2NRx55hGbNmtG1a1dmzZpFcHAwv/zyC/Hx8XTt2tXikY+i8sADD3Dt2jUWLlzI448/zs6dO3n77bct9jl06BBTpkzhk08+oXnz5syfP58RI0bQunVri8dkREREREREiopNvo4xL0uWLCErK4uwsDBGjBiR5w3s3dC3b1+uXLlC48aNeemllxg2bJjFBH1z587Fz8+PVq1a0bt3b8aOHZuvie/69evHvHnzePPNN6lduzaPPfZYvoa/5xg8eDDdu3enZ8+eNGnShD/++MNi9IGLiws//PADPXr0ICgoiEGDBjF06FBeeOEFADp06MAXX3xBQkICjRo1omnTprz++utUq1Ytz3Pb2dnx6aefkpmZSePGjXn++edver3hE088wahRoxg6dCj169dn165dTJ482WKfHj160LFjR9q0aYO3tzcffvghBoOB+Ph4WrVqRf/+/QkKCuLpp58mOTmZihUr5rt/CqJ+/fq8/vrrzJo1iwcffJCVK1cyc+ZM8/a///6bPn36EBkZyeOPPw7AgAEDeOSRR3j22WdvGjUhIiIiIiJS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s7PNMS5fvhxnZ2eqVatGuXLl6NOnD3379mXu3LmEhoZy7tw5tmzZQp06dejcuTMjR46kU6dOBAUF8ddff7Fly5Z8TygpIiIiIiJSUBpxUAIsWbKErKwswsLCGDFiBNOnTy/ukPIlJiaG1atXU7duXZYtW8bKlSupVatWvo+PjY1l1qxZ1KtXjx07dvDf//6X8uXLA+Dl5cWKFSuIj4+nTp06fPjhh7m+EjI3//nPf2jUqBG9evWiVq1aREVFkZ2dne+4lixZwl9//UVoaCjPPvssw4cPp0KFCubtnp6eLF68mObNm1O3bl02b97M559/bp7DYOnSpfTt25cxY8YQHBxMly5d2LNnD35+fgBkZ2fz0ksvERISQseOHQkODs73hJIiIiIiIiIFZTD980FwkXtccnIyAQEBHDx4kPr16xd3OPed9PR0PDw8uHDhwj07OWLsQctHO+yM1wg+u4fOnTvrmboSLisri/j4eOW6hFOebYdybRuUZ9ugPJdM+b030IgDEREREREREbFKhQO5SUpKCq6urrn+2NnZYWdnZ3V7zisHb8eMGTOstt+pU6ciuEIRERERERHJL02OKDfx9fUt9JsZfH19b/v8gwcPJiIiItdtzs7OVK5c+aZXLUrJMiG0vMVyVlYW8WeLKRgRERERERunwoHcxMHBgRo1ahTb+b28vPDy8iq284uIiIiIiMj/0aMKIiIiIiIiImKVCgciIiIiIiIiYpUeVRCR+8Ybh//AaFd0f7b+OZeCiIiIiIjcTCMORERERERERMQqFQ5ERERERERExCoVDkRERERERETEKhUOpMQyGAysW7euSNuMjIyka9eu+do3OTkZg8HAoUOHijQGERERERGRu0mFA5FcWLvpnz9/PnFxcXctjjtR/BARERERESkIvVVBpAA8PDyKOwQREREREZG7SiMOBIDw8HCGDx9OVFQUXl5eVKpUiejoaCD3b9/Pnz+PwWAgMTERgMTERAwGA5s2bSI0NBRnZ2fatm1LWloaGzZsICQkBHd3d3r16kVGRsYdjfdGqampdOrUCWdnZwICAvj444/z1X5AQAAAoaGhGAwGwsPDgZsfVTAajcyaNYsaNWrg6OhI1apVefXVV3Nt02g0MnDgQIKCgjhz5gwAn3/+OQ0bNsTJyYnq1asTExPDtWvXAPD39wegW7duGAwG8/J3331HmzZtcHNzw93dnYYNG7J///58XZeIiIiIiEhBacSBmC1btozRo0ezZ88evvnmGyIjI2nevDmBgYH5biM6OppFixbh4uJCREQEERERODo6smrVKi5dukS3bt1YuHAh48ePv2PxtmvXzrzP5MmTiY2NZf78+SxfvpxevXrx4IMPEhIScsu29+7dS+PGjfnqq6+oXbs2pUuXznW/iRMnsnjxYt544w1atGhBamoqP/zww037Xb16ld69e5OUlMTXX39NhQoV2LRpE8888wwLFiygZcuWJCUlMWjQIACmTp3Kvn37qFChAkuXLqVjx47Y29sD0KdPH0JDQ3nrrbewt7fn0KFDlCpVyuq1ZGZmkpmZaV5OT08HICsri6ysrFv2w70iJ04747U70q7cO3JyotyUbMqz7VCubYPybBuU55Ipv/k0mEwm0x2ORe4D4eHhZGdns2PHDvO6xo0b07ZtWwYPHkxAQAAHDx6kfv36wPURB2XLlmXr1q2Eh4eTmJhImzZt+Oqrr3j44YcBiI2NZeLEiSQlJVG9enUABg8eTHJyMhs3brxj8cbGxgLX5wcYPHgwb731lnmfpk2b0qBBA958881btp+cnHzTNcP1EQfnz59n3bp1XLx4EW9vbxYtWsTzzz9vtY0dO3YQExPDlStXWL9+vflxh1atWtGpUycmTpxoPmbFihVERUXxyy+/mK/h008/tRjl4O7uzsKFC+nXr1+++io6OpqYmJib1q9atQoXF5d8tSEiIiIiIiVPRkYGvXv35sKFC7i7u1vdTyMOxKxu3boWyz4+PqSlpRW6jYoVK+Li4mIuGuSs27t37+0Fmsu5IPd4mzVrdtNyUb3l4NixY2RmZpoLJdb06tWLKlWqsHnzZosb9QMHDrBv3z6LRxuys7P5+++/ycjIsHpTP3r0aJ5//nmWL1/OI488wlNPPcUDDzxg9fwTJ05k9OjR5uX09HT8/Pxo3779Lf843EuysrJISEjgpG9DjHZF92drVN1yRdaWFI2cXLdr1+6WI2nk/qY82w7l2jYoz7ZBeS6ZckYj50WFAzH75x8Ag8GA0WjEzu76VBg3Dk6xNqTlxjYMBoPVNu9kvHkxGAxFcn5nZ+d87de5c2dWrFjB7t27adu2rXm90WgkJiaG7t2733SMk5OT1faio6Pp3bs369evZ8OGDUydOpXVq1fTrVu3XPd3dHTE0dHxpvWlSpW67/7oG+0cirRwcL9dvy25H38/peCUZ9uhXNsG5dk2KM8lS35zqckRJU/e3t7A9YkGcxTVt/Z32u7du29arlmzZp7H5cxpkJ2dbXWfwMBAnJ2d2bx58y3bevHFF4mNjaVLly5s27bNvL5BgwYcP36cGjVq3PSTU6wpVapUrjEEBQUxatQovvzyS7p3787SpUvzvCYREREREZHC0IgDyZOzszNNmzYlNjYWf39/zp07x6RJk4o7rHz5+OOPCQsLo0WLFqxcuZK9e/fy/vvv53lchQoVcHZ2ZuPGjVSpUgUnJ6ebXsXo5OTE+PHjiYqKonTp0jRv3pzff/+d77//ngEDBljsO2zYMLKzs3nsscfYsGEDLVq0YMqUKTz22GP4+fnx1FNPYWdnx+HDhzly5AjTp08Hrr9ZYfPmzTRv3hxHR0ecnJwYN24cTz75JAEBAZw9e5Z9+/bRo0ePous0ERERERGRG2jEgeTLkiVLyMrKIiwsjBEjRphvbO91MTExrF69mrp167Js2TJWrlxJrVq18jzOwcGBBQsW8M477+Dr68sTTzyR636TJ09mzJgxTJkyhZCQEHr27Gl1XoiRI0cSExND586d2bVrFx06dOCLL74gISGBRo0a0bRpU15//XWqVatmPmbu3LkkJCTg5+dHaGgo9vb2/PHHH/Tt25egoCAiIiLo1KlTrpMfioiIiIiIFAW9VUHExqSnp+Ph4ZHnzKn3kqysLOLj4zlepUmRznEwIbR8kbUlRSMn1507d9bzkyWY8mw7lGvboDzbBuW5ZMrvvYFGHIiIiIiIiIiIVSocSLFISUnB1dU11x87Ozvs7Oysbk9JSbnt88+YMcNq+506dSqCKxQRERERESkZNDmiFAtfX99Cv5nB19f3ts8/ePBgIiIict2W39csyt03qm45DY0TEREREbnLVDiQYuHg4ECNGjWK7fxeXl54eXkV2/lFRERERETuF3pUQURERERERESsUuFARERERERERKxS4UBERERERERErFLhQERERERERESsUuFARERERERERKxS4UBERERERERErFLhQERERERERESsUuFARERERERERKxS4UBERERERERErFLhQERERERERESsUuFARERERERERKxS4UBERERERERErFLhQERERERERESsUuFARERERERERKxS4UBE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yZMns2zZMqt9N27cOLZu3cqnn37Kl19+SWJiIgcOHLDY57nnnmPnzp2sXr2aw4cP89RTT9GxY0dOnjwJwEsvvURmZibbt2/nyJEjzJo165ZzAPTt25fVq1ezYMECjh07xttvv23e32g0UqVKFdasWcPRo0eZMmUK//rXv1izZo1FG5s3b+bYsWMkJCTwxRdfANdviKdNm8Z3333HunXrOH36tMUN8636b+zYsURERNCxY0dSU1NJTU3loYceIiMjgzZt2uDq6sr27dv5+uuvcXV1pWPHjhYjTHKL50affPIJb7zxBu+88w4nT55k3bp11KlTB4C1a9dSpUoVXnnlFfO5c7NmzRqmTp3Kq6++yv79+/Hx8cmzMJSbos6niMgdYRIREREppH79+pmeeOIJ83Lr1q1NLVq0MC9fu3bNVKZMGdOzzz5rXpeammoCTN98843JZDKZtm7dagJMq1evNu/zxx9/mJydnU0fffSRyWQymXr37m1q166dxbnHjRtnqlWrlnm5WrVqpq5du1rsc/r0aRNgOnjw4C2v49q1ayY3NzfT559/bl4HmCZNmmRevnTpkslgMJg2bNhgMplMpokTJ5oCAgJMV69ezbVNPz8/06pVqyzWTZs2zdSsWbNc97948aKpdOnSufbDiBEjTCaTyXTq1CmTwWAw/fzzzxbHPvzww6aJEyeaTCaTqU6dOqbo6OhbXm+O48ePmwBTQkJCvvY3mUymIUOGmHr06GFe7tevn6lixYqmzMzMWx63d+9eE2C6ePGiyWTKu//++btlMplM77//vik4ONhkNBrN6zIzM03Ozs6mTZs23TKeatWqmd544w2TyWQyzZ071xQUFGT13Dfum2Pp0qUmDw8P83KzZs1MgwcPttinSZMmpnr16pmXW7dubc5djieeeMLUr18/k8lU9PkUEblTNOJAREREilTdunXN/7a3t6dcuXLmb3MBKlasCHDTsPVmzZqZ/+3l5UVwcDDHjh0D4NixYzRv3txi/+bNm3Py5Emys7PN68LCwvIVY1paGoMHDyYoKAgPDw88PDy4dOkSKSkpVq+lTJkyuLm5meM+dOgQLVu2pFSpUje1//vvv/PTTz8xYMAAXF1dzT/Tp0+3eJThRklJSVy9ejXXfsjx7bffYjKZCAoKsmh327Zt5naHDx/O9OnTad68OVOnTuXw4cNW++HQoUPY29vTunVrq/u8/fbbhIWF4e3tjaurK4sXL76pn+rUqXPTvAYHDx7kiSeeoFq1ari5uZkfE8k59lb9Z82BAwc4deoUbm5u5mv38vLi77//tujX3OK50VNPPcWVK1eoXr06AwcO5NNPPzWPFMmvY8eOWeQKuGk5L0WdTxGRO0WTI4qIiEiR+ueNoMFgsFiX88y40WjMs62cfU0mk/nfOUwm0037lylTJl8xRkZG8vvvvzNv3jyqVauGo6MjzZo1u2lCxdyuJSfuW02Ul7PP4sWLadKkicU2e3v7XI/J7Xpya9fe3p4DBw7c1E7O8PXnn3+eDh06sH79er788ktmzpzJ3LlzGTZs2E3t5TXZ35o1axg1ahRz586lWbNmuLm58dprr7Fnzx6L/f7Z75cvX6Z9+/a0b9+eFStW4O3tTUpKCh06dDD3cWEmGjQajTRs2JCVK1fetO3GyQ/z+j3w8/Pj+PHjJCQk8NVXXzFkyBBee+01tm3bVqBCRl7s7OxuymvO4zdQ9PkUEblTNOJARERE7gm7d+82//uvv/7ixIkT1KxZE4BatWrx9ddfW+y/a9cugoKCrN6IA+ZvnW8clQCwY8cOhg8fTufOnc0TLp47d65A8datW5cdO3ZY3AjmqFixIpUrV+bHH3+kRo0aFj85Ezb+U40aNShVqlSu/ZAjNDSU7Oxs0tLSbmq3UqVK5v38/PwYPHgwa9euZcyYMSxevDjXc9apUwej0ci2bdty3b5jxw4eeughhgwZQmhoKDVq1LA6YuJGP/zwA+fOnSM2NpaWLVtSs2bNm0aY3Kr/4Hru/pm3Bg0acPLkSSpUqHDT9Xt4eOQZ142cnZ3p0qULCxYsIDExkW+++cY8IWdu5/6nkJAQi1wBNy17e3tbzJGQnZ3N//73P/NyUedTROROUeFARERE7gmvvPIKmzdv5n//+x+RkZGUL1+erl27AjBmzBg2b97MtGnTOHHiBMuWLWPRokWMHTv2lm1WqFABZ2dnNm7cyG+//caFCxeA6zfpy5cv59ixY+zZs4c+ffoU+BvwoUOHkp6eztNPP83+/fs5efIky5cv5/jx48D1WftnzpzJ/PnzOXHiBEeOHGHp0qW8/vrrubbn6urKgAEDGDdunEU/2Nn93/9dCwoKok+fPvTt25e1a9dy+vRp9u3bx6xZs8wz7Y8cOZJNmzZx+vRpvv32W7Zs2UJISEiu5/T396dfv37079/fPIFhYmKiefLDGjVqsH//fjZt2sSJEyeYPHky+/bty7NvqlatSunSpVm4cCE//vgjn332GdOmTStQ//n7+3P48GGOHz/OuXPnyMrKok+fPpQvX54nnniCHTt2cPr0abZt28aIESM4e/ZsnnHliIuL4/333+d///sfP/74I8uXL8fZ2Zlq1aqZz719+3Z+/vlnqwWlESNGsGTJEpYsWcKJEyeYOnUq33//vcU+bdu2Zf369axfv54ffviBIUOGcP78efP2os6niMidosKBiIiI3BNiY2MZMWIEDRs2JDU1lc8++8w8YqBBgwasWbOG1atX8+CDDzJlyhReeeUVi1n6c+Pg4MCCBQt455138PX15YknngBgyZIl/PXXX4SGhvLss88yfPhwKlSoUKB4y5Urx5YtW7h06RKtW7emYcOGLF682DzU/fnnn+e9994jLi6OOnXq0Lp1a+Li4qyOOIDrb4Vo1aoVXbp04ZFHHqFFixY0bNjQYp+lS5fSt29fxowZQ3BwMF26dGHPnj34+fkB17/VfumllwgJCaFjx44EBwffcrb/t956iyeffJIhQ4ZQs2ZNBg4cyOXLlwEYPHgw3bt3p2fPnjRp0oQ//viDIUOG5Nk33t7exMXF8fHHH1OrVi1iY2OZM2dOgfpv4MCBBAcHm+dX2LlzJy4uLmzfvp2qVavSvXt3QkJC6N+/P1euXMHd3T3PuHJ4enqyePFimjdvTt26ddm8eTOff/455cqVA64XsZKTk3nggQcsHoG4Uc+ePZkyZQrjx4+nYcOGnDlzhhdffNFin/79+9OvXz/69u1L69atCQgIoE2bNhb7FHU+RUTuBIMpPw/UiYiIiNwhiYmJtGnThr/++gtPT8/iDkek0KKjo1m3bh2HDh0q7lBERIqURhyIiIiIiIiIiFUqHIiIiIiIiIiIVXpUQURERERERESs0ogDEREREREREbFKhQMRERERERERsUqFAxERERERERGxSoUDEREREREREbFKhQMRERERERERsUqFAxERERERERGxSoUDEREREREREbFKhQMRERERERERsUqFAxERERERERGx6v8B81Ss5sc+BJ4AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "coefficients = pipeline.named_steps['logreg'].coef_[0]\n", - "feature_names = pipeline.named_steps['logreg'].feature_names_in_\n", - "\n", - "# Tracer l'importance des caractéristiques\n", - "plt.figure(figsize=(10, 6))\n", - "plt.barh(feature_names, coefficients, color='skyblue')\n", - "plt.xlabel('Importance des caractéristiques')\n", - "plt.ylabel('Caractéristiques')\n", - "plt.title('Importance des caractéristiques dans le modèle de régression logistique')\n", - "plt.grid(True)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 70, - "id": "210b931c-6d46-4ebf-a9c7-d1ee05c3fadf", - "metadata": {}, - "outputs": [], - "source": [ - "# Création d'un dataframe avec le score\n", - "dataset_for_segmentation = dataset_test[['customer_id'] + numeric_features + categorical_features]\n", - "\n", - "y_predict_proba = pipeline.predict_proba(X_test)[:, 1]\n", - "\n", - "dataset_for_segmentation['prediction_probability'] = y_predict_proba\n", - "\n", - "# Arrondir les valeurs de la colonne 'prediction_probability' et les multiplier par 10\n", - "dataset_for_segmentation['category'] = dataset_for_segmentation['prediction_probability'].apply(lambda x: int(x * 10))\n", - "\n", - "dataset_for_segmentation['prediction'] = y_pred\n", - "\n", - "def premiere_partie(chaine):\n", - " if chaine:\n", - " return chaine.split('_')[0]\n", - " else:\n", - " return None\n", - "\n", - "dataset_for_segmentation['company_number'] = dataset_for_segmentation['customer_id'].apply(lambda x: premiere_partie(x))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "055e47dd-9ff3-4853-a46d-d5a5edc1f361", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 73, - "id": "969f1f92-d715-4d74-85a7-437e72838cb5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
nb_ticketsnb_purchasestotal_amountnb_suppliersvente_internet_maxpurchase_date_minpurchase_date_maxtime_between_purchasenb_tickets_internetfidelitygender_femalegender_malegender_othernb_campaignsnb_campaigns_opened
meanmeanmeanmeanmeanmeanmeanmeanmeanmeanmeanmeanmeanmeanmean
category
00.1136370.0062741.5863660.0058210.000647548.790455548.773103-0.9771180.0015850.0007760.0000000.0000320.99996813.9842191.302720
10.8108410.1284329.6112920.1252950.018186525.437516525.275222-0.7293280.0543120.1118320.2454800.4959290.25859118.4135623.718711
21.1594190.33925315.1821430.3375770.323824501.529129501.415505-0.5544390.9699390.3047570.3925700.2972580.31017317.3950422.608084
32.1530800.74416127.8200440.7348810.600982287.051054286.6753850.1053601.7760350.6598780.2888130.2532440.45794316.7904214.173954
42.0447490.77764027.3531450.7545490.079213297.179255295.0199021.8981780.2937600.8948770.6669800.3014240.03159616.9547076.060621
53.2379880.95852046.6373800.8076550.484785387.464785380.1450687.1113572.0803971.1649580.4977580.2597690.24247327.00640612.457719
63.5922331.10288149.9892260.8780140.599906268.627019250.94934417.5392472.5259941.4209210.5346070.3042590.16113414.0732854.604134
73.7470161.39126640.7103350.9147020.160990309.716173274.79557034.7968760.8442501.9630280.6503640.2634640.08617226.1863178.891703
85.6982761.56700663.0336990.9079150.334248326.485952257.94019468.4254602.7942792.4130090.6065830.2515670.14185030.98746111.676332
914.5059563.211571107.2885141.0116280.157119369.696066209.280306160.3485443.5144645.3944980.6693140.2237660.10692045.92824718.241634
102262.85915545.61971811051.7323941.4647890.154930467.11187531.146796435.95099454.29577564.7042250.5070420.2957750.19718353.35211326.070423
\n", - "
" - ], - "text/plain": [ - " nb_tickets nb_purchases total_amount nb_suppliers \\\n", - " mean mean mean mean \n", - "category \n", - "0 0.113637 0.006274 1.586366 0.005821 \n", - "1 0.810841 0.128432 9.611292 0.125295 \n", - "2 1.159419 0.339253 15.182143 0.337577 \n", - "3 2.153080 0.744161 27.820044 0.734881 \n", - "4 2.044749 0.777640 27.353145 0.754549 \n", - "5 3.237988 0.958520 46.637380 0.807655 \n", - "6 3.592233 1.102881 49.989226 0.878014 \n", - "7 3.747016 1.391266 40.710335 0.914702 \n", - "8 5.698276 1.567006 63.033699 0.907915 \n", - "9 14.505956 3.211571 107.288514 1.011628 \n", - "10 2262.859155 45.619718 11051.732394 1.464789 \n", - "\n", - " vente_internet_max purchase_date_min purchase_date_max \\\n", - " mean mean mean \n", - "category \n", - "0 0.000647 548.790455 548.773103 \n", - "1 0.018186 525.437516 525.275222 \n", - "2 0.323824 501.529129 501.415505 \n", - "3 0.600982 287.051054 286.675385 \n", - "4 0.079213 297.179255 295.019902 \n", - "5 0.484785 387.464785 380.145068 \n", - "6 0.599906 268.627019 250.949344 \n", - "7 0.160990 309.716173 274.795570 \n", - "8 0.334248 326.485952 257.940194 \n", - "9 0.157119 369.696066 209.280306 \n", - "10 0.154930 467.111875 31.146796 \n", - "\n", - " time_between_purchase nb_tickets_internet fidelity gender_female \\\n", - " mean mean mean mean \n", - "category \n", - "0 -0.977118 0.001585 0.000776 0.000000 \n", - "1 -0.729328 0.054312 0.111832 0.245480 \n", - "2 -0.554439 0.969939 0.304757 0.392570 \n", - "3 0.105360 1.776035 0.659878 0.288813 \n", - "4 1.898178 0.293760 0.894877 0.666980 \n", - "5 7.111357 2.080397 1.164958 0.497758 \n", - "6 17.539247 2.525994 1.420921 0.534607 \n", - "7 34.796876 0.844250 1.963028 0.650364 \n", - "8 68.425460 2.794279 2.413009 0.606583 \n", - "9 160.348544 3.514464 5.394498 0.669314 \n", - "10 435.950994 54.295775 64.704225 0.507042 \n", - "\n", - " gender_male gender_other nb_campaigns nb_campaigns_opened \n", - " mean mean mean mean \n", - "category \n", - "0 0.000032 0.999968 13.984219 1.302720 \n", - "1 0.495929 0.258591 18.413562 3.718711 \n", - "2 0.297258 0.310173 17.395042 2.608084 \n", - "3 0.253244 0.457943 16.790421 4.173954 \n", - "4 0.301424 0.031596 16.954707 6.060621 \n", - "5 0.259769 0.242473 27.006406 12.457719 \n", - "6 0.304259 0.161134 14.073285 4.604134 \n", - "7 0.263464 0.086172 26.186317 8.891703 \n", - "8 0.251567 0.141850 30.987461 11.676332 \n", - "9 0.223766 0.106920 45.928247 18.241634 \n", - "10 0.295775 0.197183 53.352113 26.070423 " - ] - }, - "execution_count": 73, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Grouper le DataFrame par la colonne 'category' et calculer la moyenne pour chaque groupe\n", - "summary_stats = dataset_for_segmentation.groupby('category')[numeric_features].describe()\n", - "\n", - "# Sélectionner uniquement la colonne 'mean' pour chaque variable numérique\n", - "mean_stats = summary_stats.loc[:, (slice(None), 'mean')]\n", - "\n", - "# Afficher le DataFrame résultant\n", - "mean_stats" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "id": "14da601e-7b1b-469c-bab1-de8fad4047f2", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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6vLz8w1/f38jPj7eabyoqMho3bq10b59e8dY3bp1jTFjxlxy/y6lpOcL99kwDGPJkiWGJGPx4sWGYVz9sWoYpf+MKHHxa1GeY7XExa/dxS51TJflp59+Mtzc3IwHH3zwsnVDhgwp9efghYqKigy73W689dZbhpubm3H8+HHDMAxj69athiRj5cqVl3zuiy++aEgyTpw4ccmaqVOnGnXq1DG2bNniNP7uu+8akozVq1dftv8LXeq9BlwJn3cAV+mtt97Sli1bSv389re/veJz27dvr507d2rUqFH65JNPdPLkyave7po1aySp1FnX9u3bq3nz5o6PuDdu3KiCggINHDjQqe7OO++85Lfy77333jLHX3vtNd1xxx3y8vKSu7u7rFarPvvsM+3du7dUbZ8+fZw+Om3evLmk82cXL1QynpmZ6TR+++23q2HDhqXqunTp4nSdcMl4ydmxH374Qd9++60efPBBSee/pFby06dPH2VlZWnfvn1l7p90/nX18/NTv379nMYTEhKcHpdnO+3bt9fHH3+sZ555Rl988YXOnj17ye2XpWQbJTp06KDw8HDHe6BE/fr1dffddzuNff7552rRooXat2/vND506FAZhuF0Vk+SBgwYIC8vL8djPz8/xcfH68svv1RRUZFjX6dMmaIWLVrIw8ND7u7u8vDw0Pfff1/meyEhIcHpbGB4eLg6dOhQqv/KlJ6eruPHj2vIkCFOc1NcXKxevXppy5Ytjo//27dvrwULFmjy5MnauHFjqcsQruTi+Rk4cKDc3d0d+3e1x2pFXOpYvVrlOaYvlJaWpqKiIj322GPl3uaOHTvUr18/BQQEyM3NTVarVYMHD1ZRUZG+++47SdItt9yi+vXr689//rNee+017dmzp9R6fvOb30g6/3r/5z//0X//+99SNatWrVJUVJRuv/12p/dBz549uZMHqg2hGrhKzZs3V7t27Ur92Gy2Kz53woQJevHFF7Vx40b17t1bAQEB6tat2yVv03ehko+mSy4JuVBoaKhjecl/g4ODS9WVNXapdc6cOVN//OMfFR0drffee08bN27Uli1b1KtXrzJDor+/v9NjDw+Py47/+uuvlfL8w4cPS5LGjx8vq9Xq9FNy54ejR4+Wud/S+derrNclJCTE6XF5tvPPf/5Tf/7zn7Vy5Up17dpV/v7+6t+/v77//vtL9nG5bZeMXXx5QlnzduzYsUu+R0qWX822CgsLdfr0aUnnL2f561//qv79++vDDz/Upk2btGXLFrVu3brM98LV9l+ZSubnvvvuKzU/L7zwggzDcFz+8M4772jIkCH697//rZiYGPn7+2vw4MGXvI6+rH25kLu7uwICAkodg1c6ViuirHVerfIe0xcquRzsar5ceqHMzEzddddd+u9//6uXX35Z69at05YtW/TKK69IkmO7NptNa9eu1e23365nn31Wt912m0JDQzVp0iTHP3o6deqklStX6ty5cxo8eLAaNWqkqKgop+8qHD58WF9//XWp94Cfn58Mw7jsnwVAZeGaaqAauLu7a+zYsRo7dqxOnDihTz/9VM8++6x69uypgwcPXvbODQEBAZLOX0d78V9sv/zyi+MazZK6kpBxoezs7DLPVpd1jeHixYvVpUsXzZ0712m85PrGa0XJfk+YMEEDBgwos+bia34vFBAQoM2bN5cavzhglWc7vr6+Sk5OVnJysg4fPuw4ax0fH69vv/32ivtUVrjLzs7WLbfc4jRW1rwFBAQoKyur1Pgvv/zitB9X2paHh4fq1q0r6f9fqzxlyhSnuqNHjzpd432ldZa8N6tCyX7Nnj37kncMKfnHU2BgoGbNmqVZs2YpMzNTH3zwgZ555hnl5OQoJSXlitvKzs52+lTl3LlzOnbsmGP/rvZYlSQvLy8VFBSU2sbRo0fLvO7azPXAZo7pG2+8UdL5+3+HhYVd9TZXrlyp/Px8vf/++woPD3eMZ2RklKpt2bKlli1bJsMw9PXXX2vBggX6+9//Lm9vbz3zzDOSpN/97nf63e9+p4KCAm3cuFFTp05VQkKCbrrpJsXExCgwMFDe3t6Oa7UvVtFr2YHy4Ew1UM1uuOEG3XfffXrsscd0/Phxx313PT09JanUmaOSj/kXL17sNL5lyxbt3bvX8SWs6OhoeXp66p133nGq27hx4xW/UHQhi8Xi6KXE119/fVX3Fq5OkZGRioiI0M6dO8v8BKFdu3by8/O75PO7du2qU6dOlfri5NKlSytlO8HBwRo6dKgeeOAB7du3T2fOnLniPi1ZssTpcXp6ug4cOHDFL5JJUrdu3bRnzx5t377dafytt96SxWJR165dncbff/99p08NTp06pQ8//FB33XWX3NzcJJX9Xvjoo4/K/Phdkt5++22nL+4eOHBA6enpV9X/lVzq+OjYsaNuuOEG7dmz55LzU/Ipx4UaN26sxx9/XLGxsaVes0u5eH7+85//6Ny5c479u9pjVTp/94+vv/7aqe6777677CVLFWXmmO7Ro4fc3NxKBfKr2aYkp+0ahqHXX3/9ss9p3bq1XnrpJd1www1lzounp6c6d+6sF154QZIcd5eJi4vTjz/+qICAgDLfA7X5F9Og9uBMNVAN4uPjFRUVpXbt2unGG2/UgQMHNGvWLIWHhysiIkLS+bM1kvTyyy9ryJAhslqtioyMVGRkpEaOHKnZs2erTp066t27t+OOAmFhYXrqqacknb9cYuzYsZo6darq16+ve+65R4cOHVJycrIaNGhw1beMiouL03PPPadJkyapc+fO2rdvn/7+97+rSZMmZd79pCbNmzdPvXv3Vs+ePTV06FA1bNhQx48f1969e7V9+3YtX778ks8dPHiwXnrpJQ0ePFjPP/+8IiIitHr1an3yyScV3k50dLTi4uLUqlUr1a9fX3v37tWiRYsUExNzVfeR3rp1q4YPH677779fBw8e1MSJE9WwYcOr+kUmTz31lN566y317dtXf//73xUeHq6PPvpIr776qv74xz+WuvuLm5ubYmNjNXbsWBUXF+uFF17QyZMnlZyc7KiJi4vTggULdOutt6pVq1batm2bpk+ffslLAXJycnTPPfdoxIgRysvL06RJk+Tl5aUJEyZcsf8riYqKkiT961//kp+fn7y8vNSkSRMFBARo9uzZGjJkiI4fP6777rvPcRebnTt36siRI5o7d67y8vLUtWtXJSQk6NZbb5Wfn5+2bNmilJSUS34CcbH3339f7u7uio2Nddz9o3Xr1o7vMVztsSqdvxPJQw89pFGjRunee+/VgQMHNG3aNMeZ4cpk5pi+6aab9Oyzz+q5557T2bNn9cADD8hms2nPnj06evSo0/vlQrGxsfLw8NADDzygp59+Wr/++qvmzp2r3Nxcp7pVq1bp1VdfVf/+/dW0aVMZhqH3339fJ06cUGxsrKTzdx85dOiQunXrpkaNGunEiRN6+eWXZbVa1blzZ0nSmDFj9N5776lTp0566qmn1KpVKxUXFyszM1OpqakaN26coqOjL7mfZ86c0erVqyWdPxEhSWvXrtXRo0fl6+ur3r17X92LDddWg1+SBGqFkjszXPyt8hJ9+/a94t0/ZsyY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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Plot histogram\n", - "plt.figure(figsize=(8, 6))\n", - "plt.hist(y_predict_proba, bins=10, range=(0, 1), color='blue', alpha=0.7)\n", - "\n", - "# Réglage des limites des axes x et y\n", - "plt.xlim(0, 1)\n", - "plt.ylim(0, None) # Laissez le maximum sur l'axe y pour s'ajuster automatiquement\n", - "\n", - "plt.title('Histogramme des probabilités pour la classe 1')\n", - "plt.xlabel('Probabilité')\n", - "plt.ylabel('Fréquence')\n", - "plt.grid(True)\n", - "plt.show()\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Notebook_AR.ipynb b/Notebook_AR.ipynb index 0ad1826..0f59f90 100644 --- a/Notebook_AR.ipynb +++ b/Notebook_AR.ipynb @@ -1,8361 +1,216 @@ { "cells": [ - { - "cell_type": "markdown", - "id": "455cc769-1b3b-4fef-b395-e74a988ceed3", - "metadata": {}, - "source": [ - "## Notebook Alexis" - ] - }, { "cell_type": "code", - "execution_count": 274, - "id": "20eeb149-6618-4ef2-9cfd-ff062950f36c", - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import os\n", - "import s3fs" - ] - }, - { - "cell_type": "code", - "execution_count": 275, - "id": "30494c5e-9649-4fff-8708-617544188b20", + "execution_count": 2, + "id": "0c48e17e-3dd5-43ef-be44-a11a3cbeacfe", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "['bdc2324-data/1',\n", - " 'bdc2324-data/10',\n", - " 'bdc2324-data/101',\n", - " 'bdc2324-data/11',\n", - " 'bdc2324-data/12',\n", - " 'bdc2324-data/13',\n", - " 'bdc2324-data/14',\n", - " 'bdc2324-data/2',\n", - " 'bdc2324-data/3',\n", - " 'bdc2324-data/4',\n", - " 'bdc2324-data/5',\n", - " 'bdc2324-data/6',\n", - " 'bdc2324-data/7',\n", - " 'bdc2324-data/8',\n", - " 'bdc2324-data/9']" - ] - }, - "execution_count": 275, - "metadata": {}, - "output_type": "execute_result" + "name": "stdin", + "output_type": "stream", + "text": [ + "Choisissez le type de compagnie : sport ? musique ? musee ? sport\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "File path : projet-bdc2324-team1/0_Input/Company_5/customerplus_cleaned.csv\n" + ] + }, + { + "ename": "PermissionError", + "evalue": "Forbidden", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mClientError\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/s3fs/core.py:529\u001b[0m, in \u001b[0;36mS3FileSystem.info\u001b[0;34m(self, path, version_id, refresh)\u001b[0m\n\u001b[1;32m 528\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 529\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_s3\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43ms3\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhead_object\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mBucket\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbucket\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 530\u001b[0m \u001b[43m \u001b[49m\u001b[43mKey\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkey\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mversion_id_kw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mversion_id\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mreq_kw\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 531\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m {\n\u001b[1;32m 532\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mETag\u001b[39m\u001b[38;5;124m'\u001b[39m: out[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mETag\u001b[39m\u001b[38;5;124m'\u001b[39m],\n\u001b[1;32m 533\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mKey\u001b[39m\u001b[38;5;124m'\u001b[39m: \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m/\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;241m.\u001b[39mjoin([bucket, key]),\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mVersionId\u001b[39m\u001b[38;5;124m'\u001b[39m: out\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mVersionId\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 541\u001b[0m }\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/s3fs/core.py:200\u001b[0m, in \u001b[0;36mS3FileSystem._call_s3\u001b[0;34m(self, method, *akwarglist, **kwargs)\u001b[0m\n\u001b[1;32m 198\u001b[0m additional_kwargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_s3_method_kwargs(method, \u001b[38;5;241m*\u001b[39makwarglist,\n\u001b[1;32m 199\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m--> 200\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmethod\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43madditional_kwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/botocore/client.py:553\u001b[0m, in \u001b[0;36mClientCreator._create_api_method.._api_call\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 552\u001b[0m \u001b[38;5;66;03m# The \"self\" in this scope is referring to the BaseClient.\u001b[39;00m\n\u001b[0;32m--> 553\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_api_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43moperation_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/botocore/client.py:1009\u001b[0m, in \u001b[0;36mBaseClient._make_api_call\u001b[0;34m(self, operation_name, api_params)\u001b[0m\n\u001b[1;32m 1008\u001b[0m error_class \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexceptions\u001b[38;5;241m.\u001b[39mfrom_code(error_code)\n\u001b[0;32m-> 1009\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m error_class(parsed_response, operation_name)\n\u001b[1;32m 1010\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", + "\u001b[0;31mClientError\u001b[0m: An error occurred (403) when calling the HeadObject operation: Forbidden", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[0;31mPermissionError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 28\u001b[0m\n\u001b[1;32m 25\u001b[0m list_of_comp \u001b[38;5;241m=\u001b[39m companies[type_of_activity] \n\u001b[1;32m 27\u001b[0m \u001b[38;5;66;03m# Load files\u001b[39;00m\n\u001b[0;32m---> 28\u001b[0m customer, campaigns_kpi, campaigns_brut, tickets, products \u001b[38;5;241m=\u001b[39m \u001b[43mload_files\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlist_of_comp\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 30\u001b[0m \u001b[38;5;66;03m# Identify anonymous customer for each company and remove them from our datasets\u001b[39;00m\n\u001b[1;32m 31\u001b[0m outlier_list \u001b[38;5;241m=\u001b[39m outlier_detection(tickets, list_of_comp)\n", + "File \u001b[0;32m:22\u001b[0m, in \u001b[0;36mload_files\u001b[0;34m(nb_compagnie)\u001b[0m\n", + "File \u001b[0;32m:12\u001b[0m, in \u001b[0;36mdisplay_input_databases\u001b[0;34m(directory_path, file_name, datetime_col)\u001b[0m\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/fsspec/spec.py:1295\u001b[0m, in \u001b[0;36mAbstractFileSystem.open\u001b[0;34m(self, path, mode, block_size, cache_options, compression, **kwargs)\u001b[0m\n\u001b[1;32m 1293\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1294\u001b[0m ac \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mautocommit\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_intrans)\n\u001b[0;32m-> 1295\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_open\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1296\u001b[0m \u001b[43m \u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1297\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1298\u001b[0m \u001b[43m \u001b[49m\u001b[43mblock_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mblock_size\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1299\u001b[0m \u001b[43m \u001b[49m\u001b[43mautocommit\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mac\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1300\u001b[0m \u001b[43m \u001b[49m\u001b[43mcache_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcache_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1301\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1302\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1303\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m compression \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1304\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mfsspec\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcompression\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m compr\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/s3fs/core.py:375\u001b[0m, in \u001b[0;36mS3FileSystem._open\u001b[0;34m(self, path, mode, block_size, acl, version_id, fill_cache, cache_type, autocommit, requester_pays, **kwargs)\u001b[0m\n\u001b[1;32m 372\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m cache_type \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 373\u001b[0m cache_type \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdefault_cache_type\n\u001b[0;32m--> 375\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mS3File\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mblock_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mblock_size\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43macl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43macl\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 376\u001b[0m \u001b[43m \u001b[49m\u001b[43mversion_id\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mversion_id\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfill_cache\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfill_cache\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 377\u001b[0m \u001b[43m \u001b[49m\u001b[43ms3_additional_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcache_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcache_type\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 378\u001b[0m \u001b[43m \u001b[49m\u001b[43mautocommit\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mautocommit\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrequester_pays\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrequester_pays\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/s3fs/core.py:1096\u001b[0m, in \u001b[0;36mS3File.__init__\u001b[0;34m(self, s3, path, mode, block_size, acl, version_id, fill_cache, s3_additional_kwargs, autocommit, cache_type, requester_pays)\u001b[0m\n\u001b[1;32m 1094\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39ms3_additional_kwargs \u001b[38;5;241m=\u001b[39m s3_additional_kwargs \u001b[38;5;129;01mor\u001b[39;00m {}\n\u001b[1;32m 1095\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mreq_kw \u001b[38;5;241m=\u001b[39m {\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mRequestPayer\u001b[39m\u001b[38;5;124m'\u001b[39m: \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mrequester\u001b[39m\u001b[38;5;124m'\u001b[39m} \u001b[38;5;28;01mif\u001b[39;00m requester_pays \u001b[38;5;28;01melse\u001b[39;00m {}\n\u001b[0;32m-> 1096\u001b[0m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43ms3\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mblock_size\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mautocommit\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mautocommit\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1097\u001b[0m \u001b[43m \u001b[49m\u001b[43mcache_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcache_type\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1098\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39ms3 \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfs \u001b[38;5;66;03m# compatibility\u001b[39;00m\n\u001b[1;32m 1099\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mwritable():\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/fsspec/spec.py:1651\u001b[0m, in \u001b[0;36mAbstractBufferedFile.__init__\u001b[0;34m(self, fs, path, mode, block_size, autocommit, cache_type, cache_options, size, **kwargs)\u001b[0m\n\u001b[1;32m 1649\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msize \u001b[38;5;241m=\u001b[39m size\n\u001b[1;32m 1650\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1651\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msize \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdetails\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msize\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 1652\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcache \u001b[38;5;241m=\u001b[39m caches[cache_type](\n\u001b[1;32m 1653\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mblocksize, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_fetch_range, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msize, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mcache_options\n\u001b[1;32m 1654\u001b[0m )\n\u001b[1;32m 1655\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/fsspec/spec.py:1664\u001b[0m, in \u001b[0;36mAbstractBufferedFile.details\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1661\u001b[0m \u001b[38;5;129m@property\u001b[39m\n\u001b[1;32m 1662\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdetails\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 1663\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_details \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1664\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_details \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minfo\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpath\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1665\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_details\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/s3fs/core.py:548\u001b[0m, in \u001b[0;36mS3FileSystem.info\u001b[0;34m(self, path, version_id, refresh)\u001b[0m\n\u001b[1;32m 546\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28msuper\u001b[39m(S3FileSystem, \u001b[38;5;28mself\u001b[39m)\u001b[38;5;241m.\u001b[39minfo(path)\n\u001b[1;32m 547\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 548\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ee\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m ParamValidationError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 550\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFailed to head path \u001b[39m\u001b[38;5;132;01m%r\u001b[39;00m\u001b[38;5;124m: \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m%\u001b[39m (path, e))\n", + "\u001b[0;31mPermissionError\u001b[0m: Forbidden" + ] } ], "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import os\n", + "import io\n", + "import s3fs\n", + "import re\n", + "import warnings\n", + "\n", + "# Ignore warning\n", + "warnings.filterwarnings('ignore')\n", + "\n", + "exec(open('0_KPI_functions.py').read())\n", + "exec(open('utils_stat_desc.py').read())\n", + "\n", "# Create filesystem object\n", "S3_ENDPOINT_URL = \"https://\" + os.environ[\"AWS_S3_ENDPOINT\"]\n", "fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL})\n", "\n", - "BUCKET = \"bdc2324-data\"\n", - "fs.ls(BUCKET)" - ] - }, - { - "cell_type": "markdown", - "id": "2feffee9-9f23-4caa-8a01-9e4a93abbf5d", - "metadata": {}, - "source": [ - "### I. Analyse fichier 8" - ] - }, - { - "cell_type": "markdown", - "id": "f54ba449-2051-4acd-939d-d30abd5452fe", - "metadata": {}, - "source": [ - "This section describes the databases associated with company 8. " + "companies = {'musee' : ['1', '2', '3', '4'], # , '101'\n", + " 'sport': ['5', '6', '7', '8', '9'],\n", + " 'musique' : ['10', '11', '12', '13', '14']}\n", + "\n", + "\n", + "type_of_activity = input('Choisissez le type de compagnie : sport ? musique ? musee ?')\n", + "list_of_comp = companies[type_of_activity] \n", + "\n", + "# Load files\n", + "customer, campaigns_kpi, campaigns_brut, tickets, products = load_files(list_of_comp)\n", + "\n", + "# Identify anonymous customer for each company and remove them from our datasets\n", + "outlier_list = outlier_detection(tickets, list_of_comp)\n", + "\n", + "# Identify valid customer (customer who bought tickets after starting date or received mails after starting date)\n", + "customer_valid_list = valid_customer_detection(products, campaigns_brut)\n", + "\n", + "databases = [customer, campaigns_kpi, campaigns_brut, tickets, products]\n", + "\n", + "for dataset in databases:\n", + " dataset['customer_id'] = dataset['customer_id'].apply(lambda x: remove_elements(x, outlier_list))# remove outlier\n", + " dataset = dataset[dataset['customer_id'].isin(customer_valid_list)] # keep only valid customer\n", + " #print(f'shape of {dataset} : ', dataset.shape)\n", + "\n", + "# Identify customer who bought during the period of y\n", + "customer_target_period = identify_purchase_during_target_periode(products)\n", + "customer['has_purchased_target_period'] = np.where(customer['customer_id'].isin(customer_target_period), 1, 0)" ] }, { "cell_type": "code", - "execution_count": 276, - "id": "f1cce705-46e1-42de-8e93-2ee15312d288", + "execution_count": null, + "id": "e15380a0-76b8-4914-a927-303ab46a636e", "metadata": {}, "outputs": [], "source": [ - "directory_path = '8'" + "customer.head()" ] }, { "cell_type": "code", - "execution_count": 277, - "id": "82d4db0e-0cd5-49af-a4d3-f17f54b1c03c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "bdc2324-data/8/8campaign_stats.csv\n", - "bdc2324-data/8/8campaigns.csv\n", - "bdc2324-data/8/8categories.csv\n", - "bdc2324-data/8/8countries.csv\n", - "bdc2324-data/8/8currencies.csv\n", - "bdc2324-data/8/8customer_target_mappings.csv\n", - "bdc2324-data/8/8customersplus.csv\n", - "bdc2324-data/8/8event_types.csv\n", - "bdc2324-data/8/8events.csv\n", - "bdc2324-data/8/8facilities.csv\n", - "bdc2324-data/8/8link_stats.csv\n", - "bdc2324-data/8/8pricing_formulas.csv\n", - "bdc2324-data/8/8product_packs.csv\n", - "bdc2324-data/8/8products.csv\n", - "bdc2324-data/8/8products_groups.csv\n", - "bdc2324-data/8/8purchases.csv\n", - "bdc2324-data/8/8representation_category_capacities.csv\n", - "bdc2324-data/8/8representations.csv\n", - "bdc2324-data/8/8seasons.csv\n", - "bdc2324-data/8/8suppliers.csv\n", - "bdc2324-data/8/8target_types.csv\n", - "bdc2324-data/8/8targets.csv\n", - "bdc2324-data/8/8tickets.csv\n", - "bdc2324-data/8/8type_of_categories.csv\n", - "bdc2324-data/8/8type_of_pricing_formulas.csv\n", - "bdc2324-data/8/8type_ofs.csv\n" - ] - } - ], - "source": [ - "# check the files in the directory\n", - "\n", - "objects = fs.ls(f'{BUCKET}/{directory_path}')\n", - "\n", - "for file in objects:\n", - " print(file)" - ] - }, - { - "cell_type": "code", - "execution_count": 278, - "id": "65cb38ad-52ae-4266-85d8-c47d81b00283", + "execution_count": null, + "id": "bf475e2b-fa82-40f0-bcbe-7ef40a13caae", "metadata": {}, "outputs": [], "source": [ - "def display_databases(file_name):\n", - " \"\"\"\n", - " This function returns the file from s3 storage\n", - " \"\"\"\n", - " file_path = BUCKET + \"/\" + directory_path + \"/\" + file_name\n", - " print(\"File path : \", file_path)\n", - " with fs.open(file_path, mode=\"rb\") as file_in:\n", - " df = pd.read_csv(file_in, sep=\",\")\n", - " \n", - " print(\"Shape : \", df.shape)\n", - " return df\n", - " " - ] - }, - { - "cell_type": "markdown", - "id": "ddd545ef-7e9f-4696-962a-115294991641", - "metadata": {}, - "source": [ - "#### Lookt at campaigns files" - ] - }, - { - "cell_type": "code", - "execution_count": 279, - "id": "0214d30d-5f83-498f-867f-e67b5793b731", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8campaigns.csv\n", - "Shape : (1689, 11)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnameservice_idcreated_atupdated_atprocess_idreport_urlcategoryto_be_syncedidentifiersent_at
01#LOUSFP RELANCE P'TITS LOU14362022-02-01 15:22:53.564432+01:002022-02-01 15:22:53.564432+01:00NaNNaN0Falseeaa32c96f620053cf442ad32258076b92022-01-31 00:00:00+01:00
12#LOUSFP BRASSERIE ACHETEURS14352022-02-01 15:22:53.572592+01:002022-02-01 15:22:53.572592+01:00NaNNaN0False1f3202d820180a39f736f20fce790de82022-01-31 00:00:00+01:00
23PRESSE. LOU/SF Paris - RDV et protocole14332022-02-01 15:22:53.578426+01:002022-02-01 15:22:53.578426+01:00NaNNaN0Falseb069b3415151fa7217e870017374de7c2022-01-31 00:00:00+01:00
34#LOUSFP ÉTUDIANTS14322022-02-01 15:22:53.584235+01:002022-02-01 15:22:53.584235+01:00NaNNaN0False56468d5607a5aaf1604ff5e15593b0032022-01-27 00:00:00+01:00
45#LOUSFP P'TITS LOU14312022-02-01 15:22:53.590187+01:002022-02-01 15:22:53.590187+01:00NaNNaN0Falsee11943a6031a0e6114ae69c2576179802022-01-27 00:00:00+01:00
\n", - "
" - ], - "text/plain": [ - " id name service_id \\\n", - "0 1 #LOUSFP RELANCE P'TITS LOU 1436 \n", - "1 2 #LOUSFP BRASSERIE ACHETEURS 1435 \n", - "2 3 PRESSE. LOU/SF Paris - RDV et protocole 1433 \n", - "3 4 #LOUSFP ÉTUDIANTS 1432 \n", - "4 5 #LOUSFP P'TITS LOU 1431 \n", - "\n", - " created_at updated_at \\\n", - "0 2022-02-01 15:22:53.564432+01:00 2022-02-01 15:22:53.564432+01:00 \n", - "1 2022-02-01 15:22:53.572592+01:00 2022-02-01 15:22:53.572592+01:00 \n", - "2 2022-02-01 15:22:53.578426+01:00 2022-02-01 15:22:53.578426+01:00 \n", - "3 2022-02-01 15:22:53.584235+01:00 2022-02-01 15:22:53.584235+01:00 \n", - "4 2022-02-01 15:22:53.590187+01:00 2022-02-01 15:22:53.590187+01:00 \n", - "\n", - " process_id report_url category to_be_synced \\\n", - "0 NaN NaN 0 False \n", - "1 NaN NaN 0 False \n", - "2 NaN NaN 0 False \n", - "3 NaN NaN 0 False \n", - "4 NaN NaN 0 False \n", - "\n", - " identifier sent_at \n", - "0 eaa32c96f620053cf442ad32258076b9 2022-01-31 00:00:00+01:00 \n", - "1 1f3202d820180a39f736f20fce790de8 2022-01-31 00:00:00+01:00 \n", - "2 b069b3415151fa7217e870017374de7c 2022-01-31 00:00:00+01:00 \n", - "3 56468d5607a5aaf1604ff5e15593b003 2022-01-27 00:00:00+01:00 \n", - "4 e11943a6031a0e6114ae69c257617980 2022-01-27 00:00:00+01:00 " - ] - }, - "execution_count": 279, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "campaigns = display_databases(\"8campaigns.csv\")\n", - "campaigns.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 280, - "id": "e7982be4-2c42-4a91-be5a-329a999644cc", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8campaign_stats.csv\n", - "Shape : (2527083, 8)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idcampaign_idcustomer_idopened_atsent_atdelivered_atcreated_atupdated_at
0151614102022-02-02 18:16:07+01:00NaNNaN2022-02-02 17:16:08.616899+01:002022-02-02 17:16:08.623098+01:00
121542282022-02-02 18:18:11+01:00NaNNaN2022-02-02 17:18:12.030260+01:002022-02-02 17:18:12.036606+01:00
2361207942022-02-02 18:18:58+01:00NaNNaN2022-02-02 17:19:00.129697+01:002022-02-02 17:19:00.134704+01:00
3434670252022-02-02 18:19:33+01:00NaNNaN2022-02-02 17:19:34.023492+01:002022-02-02 17:19:34.027570+01:00
4521421062022-02-02 18:19:35+01:00NaNNaN2022-02-02 17:19:36.553321+01:002022-02-02 17:19:36.557473+01:00
\n", - "
" - ], - "text/plain": [ - " id campaign_id customer_id opened_at sent_at \\\n", - "0 1 5 161410 2022-02-02 18:16:07+01:00 NaN \n", - "1 2 1 54228 2022-02-02 18:18:11+01:00 NaN \n", - "2 3 6 120794 2022-02-02 18:18:58+01:00 NaN \n", - "3 4 3 467025 2022-02-02 18:19:33+01:00 NaN \n", - "4 5 2 142106 2022-02-02 18:19:35+01:00 NaN \n", - "\n", - " delivered_at created_at \\\n", - "0 NaN 2022-02-02 17:16:08.616899+01:00 \n", - "1 NaN 2022-02-02 17:18:12.030260+01:00 \n", - "2 NaN 2022-02-02 17:19:00.129697+01:00 \n", - "3 NaN 2022-02-02 17:19:34.023492+01:00 \n", - "4 NaN 2022-02-02 17:19:36.553321+01:00 \n", - "\n", - " updated_at \n", - "0 2022-02-02 17:16:08.623098+01:00 \n", - "1 2022-02-02 17:18:12.036606+01:00 \n", - "2 2022-02-02 17:19:00.134704+01:00 \n", - "3 2022-02-02 17:19:34.027570+01:00 \n", - "4 2022-02-02 17:19:36.557473+01:00 " - ] - }, - "execution_count": 280, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "campaign_stats = display_databases(\"8campaign_stats.csv\")\n", - "campaign_stats.head()" - ] - }, - { - "cell_type": "markdown", - "id": "e6512bc9-91f5-4fe4-a637-a4e84dc497a9", - "metadata": {}, - "source": [ - "#### Look at links files" - ] - }, - { - "cell_type": "markdown", - "id": "28e7c1fe-470f-4d84-87b8-a711a973500b", - "metadata": {}, - "source": [ - "There is no links file for these company. Only the link_stats file" - ] - }, - { - "cell_type": "code", - "execution_count": 281, - "id": "e973575b-4ed6-4b23-8024-f383ac82e87c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8link_stats.csv\n", - "Shape : (108461, 6)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idclicked_atlink_idcustomer_idcreated_atupdated_at
012022-02-02 18:33:17+01:001621372022-02-02 17:33:19.237759+01:002022-02-02 17:33:19.237759+01:00
122022-02-02 18:33:26+01:0015560482022-02-02 17:33:28.101943+01:002022-02-02 17:33:28.101943+01:00
232022-02-02 18:33:49+01:0021944562022-02-02 17:33:50.595125+01:002022-02-02 17:33:50.595125+01:00
342022-02-02 18:34:19+01:0011944562022-02-02 17:34:20.493986+01:002022-02-02 17:34:20.493986+01:00
452022-02-02 18:34:21+01:002215712022-02-02 17:34:22.300427+01:002022-02-02 17:34:22.300427+01:00
\n", - "
" - ], - "text/plain": [ - " id clicked_at link_id customer_id \\\n", - "0 1 2022-02-02 18:33:17+01:00 1 62137 \n", - "1 2 2022-02-02 18:33:26+01:00 1 556048 \n", - "2 3 2022-02-02 18:33:49+01:00 2 194456 \n", - "3 4 2022-02-02 18:34:19+01:00 1 194456 \n", - "4 5 2022-02-02 18:34:21+01:00 2 21571 \n", - "\n", - " created_at updated_at \n", - "0 2022-02-02 17:33:19.237759+01:00 2022-02-02 17:33:19.237759+01:00 \n", - "1 2022-02-02 17:33:28.101943+01:00 2022-02-02 17:33:28.101943+01:00 \n", - "2 2022-02-02 17:33:50.595125+01:00 2022-02-02 17:33:50.595125+01:00 \n", - "3 2022-02-02 17:34:20.493986+01:00 2022-02-02 17:34:20.493986+01:00 \n", - "4 2022-02-02 17:34:22.300427+01:00 2022-02-02 17:34:22.300427+01:00 " - ] - }, - "execution_count": 281, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "links_stats = display_databases(\"8link_stats.csv\")\n", - "links_stats.head()" - ] - }, - { - "cell_type": "markdown", - "id": "8dfcca1f-1323-413f-aa8d-3ee5ce2610a8", - "metadata": {}, - "source": [ - "#### Analyse Customersplus file" - ] - }, - { - "cell_type": "code", - "execution_count": 282, - "id": "3b523575-c779-451c-a12e-a36fb4ad232c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "bdc2324-data/8/8customersplus.csv\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_548/2210053343.py:5: DtypeWarning: Columns (20) have mixed types. Specify dtype option on import or set low_memory=False.\n", - " customersplus = pd.read_csv(file_in, sep=\",\")\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idlastnamefirstnamebirthdateemailstreet_idcreated_atupdated_atcivilityis_partner...preferred_categorypreferred_supplierpreferred_formulapurchase_countfirst_buying_datelast_visiting_datezipcodecountryagetenant_id
01411166NaNNaNNaNemail141116612022-12-19 15:03:39.419371+01:002022-12-19 15:03:39.419371+01:00NaNFalse...NaNNaNNaN0NaNNaNNaNfrNaN1594
1478498lastname478498firstname478498NaNemail4784983391672021-09-17 18:58:30.259053+02:002023-06-28 15:25:24.146689+02:00NaNFalse...NaNNaNNaN0NaNNaNNaNNaNNaN1594
2473678NaNNaNNaNemail4736783391672021-09-17 18:44:04.119713+02:002021-09-17 18:44:04.124204+02:00NaNFalse...NaNNaNNaN0NaNNaNNaNNaNNaN1594
3475026NaNNaNNaNemail4750263391672021-09-17 18:47:28.789618+02:002021-09-17 18:47:28.793958+02:00NaNFalse...NaNNaNNaN0NaNNaNNaNNaNNaN1594
4487146NaNNaNNaNemail4871463391672021-09-17 19:10:24.070460+02:002021-09-17 19:10:24.076033+02:00NaNFalse...NaNNaNNaN0NaNNaNNaNNaNNaN1594
\n", - "

5 rows × 43 columns

\n", - "
" - ], - "text/plain": [ - " id lastname firstname birthdate email \\\n", - "0 1411166 NaN NaN NaN email1411166 \n", - "1 478498 lastname478498 firstname478498 NaN email478498 \n", - "2 473678 NaN NaN NaN email473678 \n", - "3 475026 NaN NaN NaN email475026 \n", - "4 487146 NaN NaN NaN email487146 \n", - "\n", - " street_id created_at \\\n", - "0 1 2022-12-19 15:03:39.419371+01:00 \n", - "1 339167 2021-09-17 18:58:30.259053+02:00 \n", - "2 339167 2021-09-17 18:44:04.119713+02:00 \n", - "3 339167 2021-09-17 18:47:28.789618+02:00 \n", - "4 339167 2021-09-17 19:10:24.070460+02:00 \n", - "\n", - " updated_at civility is_partner ... \\\n", - "0 2022-12-19 15:03:39.419371+01:00 NaN False ... \n", - "1 2023-06-28 15:25:24.146689+02:00 NaN False ... \n", - "2 2021-09-17 18:44:04.124204+02:00 NaN False ... \n", - "3 2021-09-17 18:47:28.793958+02:00 NaN False ... \n", - "4 2021-09-17 19:10:24.076033+02:00 NaN False ... \n", - "\n", - " preferred_category preferred_supplier preferred_formula purchase_count \\\n", - "0 NaN NaN NaN 0 \n", - "1 NaN NaN NaN 0 \n", - "2 NaN NaN NaN 0 \n", - "3 NaN NaN NaN 0 \n", - "4 NaN NaN NaN 0 \n", - "\n", - " first_buying_date last_visiting_date zipcode country age tenant_id \n", - "0 NaN NaN NaN fr NaN 1594 \n", - "1 NaN NaN NaN NaN NaN 1594 \n", - "2 NaN NaN NaN NaN NaN 1594 \n", - "3 NaN NaN NaN NaN NaN 1594 \n", - "4 NaN NaN NaN NaN NaN 1594 \n", - "\n", - "[5 rows x 43 columns]" - ] - }, - "execution_count": 282, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "file_name = \"8customersplus.csv\"\n", - "file_path = BUCKET + \"/\" + directory_path + \"/\" + file_name\n", - "print(file_path)\n", - "with fs.open(file_path, mode=\"rb\") as file_in:\n", - " customersplus = pd.read_csv(file_in, sep=\",\")\n", - "\n", - "customersplus.head()" - ] - }, - { - "cell_type": "markdown", - "id": "fe56785a-ed3c-4322-aafa-a630f97b836f", - "metadata": {}, - "source": [ - "#### Analyse Structures files" - ] - }, - { - "cell_type": "code", - "execution_count": 283, - "id": "87d801fc-d19a-4c45-9b21-9b6d7a8451fd", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "bdc2324-data/8/8structures.csv\n", - "No structures database\n" - ] - } - ], - "source": [ - "file_name = \"8structures.csv\"\n", - "file_path = BUCKET + \"/\" + directory_path + \"/\" + file_name\n", - "print(file_path)\n", - "try:\n", - " with fs.open(file_path, mode=\"rb\") as file_in:\n", - " structures = pd.read_csv(file_in, sep=\",\")\n", - "except:\n", - " print(\"No structures database\")" - ] - }, - { - "cell_type": "markdown", - "id": "b8452558-2d32-459b-91e7-f6042345e465", - "metadata": {}, - "source": [ - "For Stade Français, there is no structures, tags and structure_tag_mapping databases" - ] - }, - { - "cell_type": "markdown", - "id": "285b1422-9ca9-4afd-b752-777a54aaa677", - "metadata": {}, - "source": [ - "#### Analyze Target databases" - ] - }, - { - "cell_type": "code", - "execution_count": 284, - "id": "b6e4c3ea-5ccf-4aec-bd2d-79a5a1194178", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "bdc2324-data/8/8customer_target_mappings.csv\n", - "Shape : (1449147, 7)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idcustomer_idtarget_idcreated_atupdated_atnameextra_field
01460062682021-09-17 20:20:24.562734+02:002021-09-17 20:20:24.562734+02:00NaNNaN
12460056682021-09-17 20:20:24.610139+02:002021-09-17 20:20:24.610139+02:00NaNNaN
23460051652021-09-17 20:20:24.641381+02:002021-09-17 20:20:24.641381+02:00NaNNaN
34460051662021-09-17 20:20:24.672238+02:002021-09-17 20:20:24.672238+02:00NaNNaN
45460049712021-09-17 20:20:24.703110+02:002021-09-17 20:20:24.703110+02:00NaNNaN
\n", - "
" - ], - "text/plain": [ - " id customer_id target_id created_at \\\n", - "0 1 460062 68 2021-09-17 20:20:24.562734+02:00 \n", - "1 2 460056 68 2021-09-17 20:20:24.610139+02:00 \n", - "2 3 460051 65 2021-09-17 20:20:24.641381+02:00 \n", - "3 4 460051 66 2021-09-17 20:20:24.672238+02:00 \n", - "4 5 460049 71 2021-09-17 20:20:24.703110+02:00 \n", - "\n", - " updated_at name extra_field \n", - "0 2021-09-17 20:20:24.562734+02:00 NaN NaN \n", - "1 2021-09-17 20:20:24.610139+02:00 NaN NaN \n", - "2 2021-09-17 20:20:24.641381+02:00 NaN NaN \n", - "3 2021-09-17 20:20:24.672238+02:00 NaN NaN \n", - "4 2021-09-17 20:20:24.703110+02:00 NaN NaN " - ] - }, - "execution_count": 284, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "file_name = \"8customer_target_mappings.csv\"\n", - "file_path = BUCKET + \"/\" + directory_path + \"/\" + file_name\n", - "print(file_path)\n", - "try:\n", - " with fs.open(file_path, mode=\"rb\") as file_in:\n", - " customer_targets = pd.read_csv(file_in, sep=\",\")\n", - " \n", - "except:\n", - " print(\"No such database in s3\")\n", - "\n", - "print(\"Shape : \", customer_targets.shape)\n", - "customer_targets.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 285, - "id": "6e81a35c-3c6f-403d-9ebd-e8399ecd4263", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "bdc2324-data/8/8targets.csv\n", - "Shape : (331, 5)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idtarget_type_idnamecreated_atupdated_at
011ÉTUDIANTS (OPÉ PANIERS) 21-222021-09-17 18:10:40.879995+02:002021-09-17 18:10:40.879995+02:00
121EFFECTIF + STAFF 21-222021-09-17 18:10:40.894758+02:002021-09-17 18:10:40.894758+02:00
231Acheteurs LOU / USAP2021-09-17 18:10:40.911969+02:002021-09-17 18:10:40.911969+02:00
341Liste Compensation 21-222021-09-17 18:10:40.928796+02:002021-09-17 18:10:40.928796+02:00
451Partenaires 21-222021-09-17 18:10:40.945476+02:002021-09-17 18:10:40.945476+02:00
\n", - "
" - ], - "text/plain": [ - " id target_type_id name \\\n", - "0 1 1 ÉTUDIANTS (OPÉ PANIERS) 21-22 \n", - "1 2 1 EFFECTIF + STAFF 21-22 \n", - "2 3 1 Acheteurs LOU / USAP \n", - "3 4 1 Liste Compensation 21-22 \n", - "4 5 1 Partenaires 21-22 \n", - "\n", - " created_at updated_at \n", - "0 2021-09-17 18:10:40.879995+02:00 2021-09-17 18:10:40.879995+02:00 \n", - "1 2021-09-17 18:10:40.894758+02:00 2021-09-17 18:10:40.894758+02:00 \n", - "2 2021-09-17 18:10:40.911969+02:00 2021-09-17 18:10:40.911969+02:00 \n", - "3 2021-09-17 18:10:40.928796+02:00 2021-09-17 18:10:40.928796+02:00 \n", - "4 2021-09-17 18:10:40.945476+02:00 2021-09-17 18:10:40.945476+02:00 " - ] - }, - "execution_count": 285, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "file_name = \"8targets.csv\"\n", - "file_path = BUCKET + \"/\" + directory_path + \"/\" + file_name\n", - "print(file_path)\n", - "try:\n", - " with fs.open(file_path, mode=\"rb\") as file_in:\n", - " targets = pd.read_csv(file_in, sep=\",\")\n", - " \n", - "except:\n", - " print(\"No such database in s3\")\n", - "\n", - "print(\"Shape : \", targets.shape)\n", - "targets.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 286, - "id": "85696d74-3b2f-4368-9045-44db5322b60d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "bdc2324-data/8/8target_types.csv\n", - "Shape : (4, 6)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idis_importnamecreated_atupdated_atidentifier
01NaNmanual_static_filter2021-09-17 18:10:40.864320+02:002021-09-17 18:10:40.864320+02:00e34e3aa838a6eb4c41df6ed4444b796a
12Falsemanual_dynamic_filter2022-03-09 14:41:45.695407+01:002022-03-09 14:41:45.695407+01:00e0f4b8693184850fefd6d2a38f10584e
23Falsemanual_static_filter2022-04-01 17:02:49.588910+02:002022-04-01 17:02:49.588910+02:00fb27e81baa4debc6a4e1a8639c20e808
34Truemanual_import2022-05-06 14:26:01.923160+02:002022-05-06 14:26:01.923160+02:0012213df2ce68a624e4c0070521437bac
\n", - "
" - ], - "text/plain": [ - " id is_import name created_at \\\n", - "0 1 NaN manual_static_filter 2021-09-17 18:10:40.864320+02:00 \n", - "1 2 False manual_dynamic_filter 2022-03-09 14:41:45.695407+01:00 \n", - "2 3 False manual_static_filter 2022-04-01 17:02:49.588910+02:00 \n", - "3 4 True manual_import 2022-05-06 14:26:01.923160+02:00 \n", - "\n", - " updated_at identifier \n", - "0 2021-09-17 18:10:40.864320+02:00 e34e3aa838a6eb4c41df6ed4444b796a \n", - "1 2022-03-09 14:41:45.695407+01:00 e0f4b8693184850fefd6d2a38f10584e \n", - "2 2022-04-01 17:02:49.588910+02:00 fb27e81baa4debc6a4e1a8639c20e808 \n", - "3 2022-05-06 14:26:01.923160+02:00 12213df2ce68a624e4c0070521437bac " - ] - }, - "execution_count": 286, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "file_name = \"8target_types.csv\"\n", - "file_path = BUCKET + \"/\" + directory_path + \"/\" + file_name\n", - "print(file_path)\n", - "try:\n", - " with fs.open(file_path, mode=\"rb\") as file_in:\n", - " target_types = pd.read_csv(file_in, sep=\",\")\n", - " \n", - "except:\n", - " print(\"No such database in s3\")\n", - "\n", - "print(\"Shape : \", target_types.shape)\n", - "target_types.head()" - ] - }, - { - "cell_type": "markdown", - "id": "cdc6416b-3deb-446c-8957-435745b93533", - "metadata": {}, - "source": [ - "#### Analyze consumption files" - ] - }, - { - "cell_type": "markdown", - "id": "f8622bd5-a5ab-403f-ab01-758aec879ee4", - "metadata": {}, - "source": [ - "Meaning consumptions.csv, suppliers.csv, tickets.csv and purchases.csv\n", - "\n", - "However, there is no consumptions.csv file" - ] - }, - { - "cell_type": "code", - "execution_count": 287, - "id": "7c57529b-2ffb-4039-9795-b27c6fbd54a4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8purchases.csv\n", - "Shape : (975703, 7)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idpurchase_datecustomer_idcreated_atupdated_atnumberidentifier
01196092017-09-09 15:39:45.913000+02:0011492021-06-29 21:52:21.816195+02:002021-06-29 21:52:21.816195+02:00193416f2956e2d53321317e7c15c1cb992156c
11196102017-09-09 15:39:46.033000+02:0011492021-06-29 21:52:21.817846+02:002021-06-29 21:52:21.817846+02:00193416faabab441b2668a85bb484490b2166c3
254642017-07-24 19:44:11.923000+02:0012512021-06-29 21:33:45.604224+02:002021-06-29 21:33:45.604224+02:00184354f63c69fa585ce4f91681f0d9ebeb770f
31196132017-09-10 11:25:45.820000+02:00125582021-06-29 21:52:21.822033+02:002021-06-29 21:52:21.822033+02:00193462ffce5fd8d2348eb6885d0ee9c7bd017c
414228602018-10-08 10:30:42.980000+02:00179352021-07-16 04:20:55.347369+02:002021-07-16 04:20:55.347369+02:00247459193e41eae8ee078537107a569c0426ef
\n", - "
" - ], - "text/plain": [ - " id purchase_date customer_id \\\n", - "0 119609 2017-09-09 15:39:45.913000+02:00 1149 \n", - "1 119610 2017-09-09 15:39:46.033000+02:00 1149 \n", - "2 5464 2017-07-24 19:44:11.923000+02:00 1251 \n", - "3 119613 2017-09-10 11:25:45.820000+02:00 12558 \n", - "4 1422860 2018-10-08 10:30:42.980000+02:00 17935 \n", - "\n", - " created_at updated_at number \\\n", - "0 2021-06-29 21:52:21.816195+02:00 2021-06-29 21:52:21.816195+02:00 193416 \n", - "1 2021-06-29 21:52:21.817846+02:00 2021-06-29 21:52:21.817846+02:00 193416 \n", - "2 2021-06-29 21:33:45.604224+02:00 2021-06-29 21:33:45.604224+02:00 184354 \n", - "3 2021-06-29 21:52:21.822033+02:00 2021-06-29 21:52:21.822033+02:00 193462 \n", - "4 2021-07-16 04:20:55.347369+02:00 2021-07-16 04:20:55.347369+02:00 247459 \n", - "\n", - " identifier \n", - "0 f2956e2d53321317e7c15c1cb992156c \n", - "1 faabab441b2668a85bb484490b2166c3 \n", - "2 f63c69fa585ce4f91681f0d9ebeb770f \n", - "3 ffce5fd8d2348eb6885d0ee9c7bd017c \n", - "4 193e41eae8ee078537107a569c0426ef " - ] - }, - "execution_count": 287, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "purchases = display_databases(\"8purchases.csv\")\n", - "purchases.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 288, - "id": "903321fb-99f8-475d-b4a6-c70ec2efe190", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8tickets.csv\n", - "Shape : (2370152, 11)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnumbercreated_atupdated_atpurchase_idproduct_idis_from_subscriptiontype_ofsupplier_idbarcodeidentifier
0254164193416_763837_650_688_3262122021-06-29 21:53:14.951871+02:002021-06-29 21:53:14.951871+02:001196093334False12NaN9ec3b5617fc54512acf131aa5fa26870
1254165193416_763838_650_688_3262362021-06-29 21:53:14.953717+02:002021-06-29 21:53:14.953717+02:001196103334False12NaNb227c664e2574a919672683f5cc4c98e
2254168193462_763921_649_687_3056762021-06-29 21:53:14.958207+02:002021-06-29 21:53:14.958207+02:001196133432False12NaN28ac507ad84a30993bdfc0996fd2476b
3254169193462_763922_649_687_3056532021-06-29 21:53:14.959681+02:002021-06-29 21:53:14.959681+02:001196143268False12NaN131dbaeef23f5ac2271bf0266ce35476
4254170193462_763923_649_687_3056302021-06-29 21:53:14.961157+02:002021-06-29 21:53:14.961157+02:001196153268False12NaN1a6342ad2c213b626aa55e5374cd661a
\n", - "
" - ], - "text/plain": [ - " id number created_at \\\n", - "0 254164 193416_763837_650_688_326212 2021-06-29 21:53:14.951871+02:00 \n", - "1 254165 193416_763838_650_688_326236 2021-06-29 21:53:14.953717+02:00 \n", - "2 254168 193462_763921_649_687_305676 2021-06-29 21:53:14.958207+02:00 \n", - "3 254169 193462_763922_649_687_305653 2021-06-29 21:53:14.959681+02:00 \n", - "4 254170 193462_763923_649_687_305630 2021-06-29 21:53:14.961157+02:00 \n", - "\n", - " updated_at purchase_id product_id \\\n", - "0 2021-06-29 21:53:14.951871+02:00 119609 3334 \n", - "1 2021-06-29 21:53:14.953717+02:00 119610 3334 \n", - "2 2021-06-29 21:53:14.958207+02:00 119613 3432 \n", - "3 2021-06-29 21:53:14.959681+02:00 119614 3268 \n", - "4 2021-06-29 21:53:14.961157+02:00 119615 3268 \n", - "\n", - " is_from_subscription type_of supplier_id barcode \\\n", - "0 False 1 2 NaN \n", - "1 False 1 2 NaN \n", - "2 False 1 2 NaN \n", - "3 False 1 2 NaN \n", - "4 False 1 2 NaN \n", - "\n", - " identifier \n", - "0 9ec3b5617fc54512acf131aa5fa26870 \n", - "1 b227c664e2574a919672683f5cc4c98e \n", - "2 28ac507ad84a30993bdfc0996fd2476b \n", - "3 131dbaeef23f5ac2271bf0266ce35476 \n", - "4 1a6342ad2c213b626aa55e5374cd661a " - ] - }, - "execution_count": 288, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tickets = display_databases(\"8tickets.csv\")\n", "tickets.head()" ] }, { "cell_type": "code", - "execution_count": 289, - "id": "243e6942-0233-4cd5-b32b-e005457131d2", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8suppliers.csv\n", - "Shape : (16, 9)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamemanually_addedlabelitrupdated_atcreated_atcommissionidentifier
0152plateformecewebFalseNaNNaN2021-07-16 00:02:17.805193+02:002021-07-16 00:02:17.805193+02:00NaN0fc934f49bfa9f1f4e6ab7e2593b6839
16accreditation annuelleFalseNaNNaN2021-06-29 21:33:14.138349+02:002021-06-29 21:33:14.138349+02:00NaNfe13238540e0ff293ec8aad29aeae6c3
268abonnement parkingFalseNaNNaN2021-06-29 22:10:31.167367+02:002021-06-29 22:10:31.167367+02:00NaN0f7defc52a97cdca533af74f4e6e5b1e
39accreditation matchFalseNaNNaN2021-06-29 21:33:14.142084+02:002021-06-29 21:33:14.142084+02:00NaN40e19a7c4824eaad298e0107ed7e3691
4154web lnr-louFalseNaNNaN2021-07-16 00:02:17.806521+02:002021-07-16 00:02:17.806521+02:00NaNb144dd617807b02e0d9002fac6c61768
\n", - "
" - ], - "text/plain": [ - " id name manually_added label itr \\\n", - "0 152 plateformeceweb False NaN NaN \n", - "1 6 accreditation annuelle False NaN NaN \n", - "2 68 abonnement parking False NaN NaN \n", - "3 9 accreditation match False NaN NaN \n", - "4 154 web lnr-lou False NaN NaN \n", - "\n", - " updated_at created_at \\\n", - "0 2021-07-16 00:02:17.805193+02:00 2021-07-16 00:02:17.805193+02:00 \n", - "1 2021-06-29 21:33:14.138349+02:00 2021-06-29 21:33:14.138349+02:00 \n", - "2 2021-06-29 22:10:31.167367+02:00 2021-06-29 22:10:31.167367+02:00 \n", - "3 2021-06-29 21:33:14.142084+02:00 2021-06-29 21:33:14.142084+02:00 \n", - "4 2021-07-16 00:02:17.806521+02:00 2021-07-16 00:02:17.806521+02:00 \n", - "\n", - " commission identifier \n", - "0 NaN 0fc934f49bfa9f1f4e6ab7e2593b6839 \n", - "1 NaN fe13238540e0ff293ec8aad29aeae6c3 \n", - "2 NaN 0f7defc52a97cdca533af74f4e6e5b1e \n", - "3 NaN 40e19a7c4824eaad298e0107ed7e3691 \n", - "4 NaN b144dd617807b02e0d9002fac6c61768 " - ] - }, - "execution_count": 289, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "suppliers = display_databases(\"8suppliers.csv\")\n", - "suppliers.head()" - ] - }, - { - "cell_type": "markdown", - "id": "fd8c876a-f0c5-4123-a422-c267af5f29b1", - "metadata": {}, - "source": [ - "#### Analyse product file" - ] - }, - { - "cell_type": "code", - "execution_count": 290, - "id": "6b82efce-1dee-4d89-8585-28c4ad477eef", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8products.csv\n", - "Shape : (45411, 14)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idamountis_full_pricerepresentation_idpricing_formula_idcreated_atupdated_atcategory_idapply_priceproducts_group_idproduct_pack_idextra_fieldamount_consumptionidentifier
0900130.0False19619122021-07-16 04:56:05.797551+02:002021-07-16 04:56:05.797551+02:00340.0879171NaNNaN476e111175b1660688b7c13dade2b57e
16620.0False11292021-06-29 21:33:17.389201+02:002021-06-29 21:33:17.389201+02:00160.06401NaNNaN2c765698e9bedd48e8a3fd27dc8dbc97
26460.0False46102021-06-29 21:33:17.366742+02:002021-06-29 21:33:17.366742+02:00150.06241NaNNaN4e719148651fd7f175e3fb51bdb5d31b
357035.0False71882021-06-29 21:52:09.374365+02:002021-06-29 21:52:09.374365+02:0040.055401NaNNaNe4d7beeb0a631e2e51e61951623ba9b1
46480.0False49102021-06-29 21:33:17.369471+02:002021-06-29 21:33:17.369471+02:00150.06261NaNNaN07a5dd9e125345b9458651ab73605255
\n", - "
" - ], - "text/plain": [ - " id amount is_full_price representation_id pricing_formula_id \\\n", - "0 90013 0.0 False 1961 912 \n", - "1 662 0.0 False 11 29 \n", - "2 646 0.0 False 46 10 \n", - "3 5703 5.0 False 7 188 \n", - "4 648 0.0 False 49 10 \n", - "\n", - " created_at updated_at \\\n", - "0 2021-07-16 04:56:05.797551+02:00 2021-07-16 04:56:05.797551+02:00 \n", - "1 2021-06-29 21:33:17.389201+02:00 2021-06-29 21:33:17.389201+02:00 \n", - "2 2021-06-29 21:33:17.366742+02:00 2021-06-29 21:33:17.366742+02:00 \n", - "3 2021-06-29 21:52:09.374365+02:00 2021-06-29 21:52:09.374365+02:00 \n", - "4 2021-06-29 21:33:17.369471+02:00 2021-06-29 21:33:17.369471+02:00 \n", - "\n", - " category_id apply_price products_group_id product_pack_id extra_field \\\n", - "0 34 0.0 87917 1 NaN \n", - "1 16 0.0 640 1 NaN \n", - "2 15 0.0 624 1 NaN \n", - "3 4 0.0 5540 1 NaN \n", - "4 15 0.0 626 1 NaN \n", - "\n", - " amount_consumption identifier \n", - "0 NaN 476e111175b1660688b7c13dade2b57e \n", - "1 NaN 2c765698e9bedd48e8a3fd27dc8dbc97 \n", - "2 NaN 4e719148651fd7f175e3fb51bdb5d31b \n", - "3 NaN e4d7beeb0a631e2e51e61951623ba9b1 \n", - "4 NaN 07a5dd9e125345b9458651ab73605255 " - ] - }, - "execution_count": 290, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "products = display_databases(\"8products.csv\")\n", - "products.head()" - ] - }, - { - "cell_type": "markdown", - "id": "8ad143b2-2869-4bd2-982e-688498b98727", - "metadata": {}, - "source": [ - "#### Analyze pricing files" - ] - }, - { - "cell_type": "markdown", - "id": "9a54e9a5-801d-4000-9e76-e792edbf7e41", - "metadata": {}, - "source": [ - "Meaning pricing_formulas.csv and type_of_pricing_formulas" - ] - }, - { - "cell_type": "code", - "execution_count": 291, - "id": "daf37bff-a26d-4ff5-ad50-c90f917164bd", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8pricing_formulas.csv\n", - "Shape : (516, 6)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamecreated_atupdated_atextra_fieldidentifier
07visite stade enfant2021-06-29 21:33:14.160728+02:002021-06-29 21:33:14.160728+02:00NaNbbc80e5761a0ea325f6f6a5411752659
13229tarif bloc etudiants2021-07-16 04:20:46.684601+02:002021-09-03 16:44:46.096785+02:00NaN205122cc7e96d559330972b0ec0cf35a
242invitation eiffage2021-06-29 21:33:14.204483+02:002021-06-29 21:33:14.204483+02:00NaNe4e6365c02e2a7b01ebe2ce8ace624f2
34379invitation offre speciale2021-07-16 05:21:44.984893+02:002021-07-16 05:21:44.984893+02:00NaN307817b6205535a35915a64027ee161e
42641prevente reabo enfant2021-07-16 03:47:40.896805+02:002021-09-03 16:08:35.304298+02:00NaN478eb63c71ba35d8d3d64c8637dafdee
\n", - "
" - ], - "text/plain": [ - " id name created_at \\\n", - "0 7 visite stade enfant 2021-06-29 21:33:14.160728+02:00 \n", - "1 3229 tarif bloc etudiants 2021-07-16 04:20:46.684601+02:00 \n", - "2 42 invitation eiffage 2021-06-29 21:33:14.204483+02:00 \n", - "3 4379 invitation offre speciale 2021-07-16 05:21:44.984893+02:00 \n", - "4 2641 prevente reabo enfant 2021-07-16 03:47:40.896805+02:00 \n", - "\n", - " updated_at extra_field \\\n", - "0 2021-06-29 21:33:14.160728+02:00 NaN \n", - "1 2021-09-03 16:44:46.096785+02:00 NaN \n", - "2 2021-06-29 21:33:14.204483+02:00 NaN \n", - "3 2021-07-16 05:21:44.984893+02:00 NaN \n", - "4 2021-09-03 16:08:35.304298+02:00 NaN \n", - "\n", - " identifier \n", - "0 bbc80e5761a0ea325f6f6a5411752659 \n", - "1 205122cc7e96d559330972b0ec0cf35a \n", - "2 e4e6365c02e2a7b01ebe2ce8ace624f2 \n", - "3 307817b6205535a35915a64027ee161e \n", - "4 478eb63c71ba35d8d3d64c8637dafdee " - ] - }, - "execution_count": 291, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pricing_formulas = display_databases(\"8pricing_formulas.csv\")\n", - "pricing_formulas.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 292, - "id": "cdb14488-b093-4b39-84fa-1c2b4576208f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8type_of_pricing_formulas.csv\n", - "Shape : (103, 6)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idtype_of_idpricing_formula_idcreated_atupdated_atidentifier
01710212021-09-03 14:17:19.816110+02:002021-09-03 14:17:19.816110+02:0041047fbeb7cd3e1cb2713c608d2f786d
12743052021-09-03 14:17:19.848088+02:002021-09-03 14:17:19.848088+02:00a62a4dad7d62738129244bbb5ede0747
23743062021-09-03 14:17:19.864067+02:002021-09-03 14:17:19.864067+02:00c3770373e09f55412068c447736d9da3
347292021-09-03 14:17:19.880078+02:002021-09-03 14:17:19.880078+02:007b7b1242ae7a8c9eb66d35d8a4348ccd
458102021-09-03 14:18:03.616081+02:002021-09-03 14:18:03.616081+02:000a2b941c46b31258c03b316aa064e86a
\n", - "
" - ], - "text/plain": [ - " id type_of_id pricing_formula_id created_at \\\n", - "0 1 7 1021 2021-09-03 14:17:19.816110+02:00 \n", - "1 2 7 4305 2021-09-03 14:17:19.848088+02:00 \n", - "2 3 7 4306 2021-09-03 14:17:19.864067+02:00 \n", - "3 4 7 29 2021-09-03 14:17:19.880078+02:00 \n", - "4 5 8 10 2021-09-03 14:18:03.616081+02:00 \n", - "\n", - " updated_at identifier \n", - "0 2021-09-03 14:17:19.816110+02:00 41047fbeb7cd3e1cb2713c608d2f786d \n", - "1 2021-09-03 14:17:19.848088+02:00 a62a4dad7d62738129244bbb5ede0747 \n", - "2 2021-09-03 14:17:19.864067+02:00 c3770373e09f55412068c447736d9da3 \n", - "3 2021-09-03 14:17:19.880078+02:00 7b7b1242ae7a8c9eb66d35d8a4348ccd \n", - "4 2021-09-03 14:18:03.616081+02:00 0a2b941c46b31258c03b316aa064e86a " - ] - }, - "execution_count": 292, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type_pricing_formulas = display_databases(\"8type_of_pricing_formulas.csv\")\n", - "type_pricing_formulas.head()" - ] - }, - { - "cell_type": "markdown", - "id": "a084297a-4fd7-4cda-b513-7704f4244a5c", - "metadata": {}, - "source": [ - "#### Analyze type of products" - ] - }, - { - "cell_type": "markdown", - "id": "76a67ea7-8720-441e-8973-23e5d105370e", - "metadata": {}, - "source": [ - "Meaning categories.csv, type_of_categories.csv" - ] - }, - { - "cell_type": "code", - "execution_count": 293, - "id": "6582694d-5339-4f33-a943-c73033121a90", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8categories.csv\n", - "Shape : (148, 7)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamecreated_atupdated_atextra_fieldquotaidentifier
0653acces village implid2021-07-16 00:04:37.181331+02:002021-07-16 00:04:37.181331+02:00NaNNaNc447d053646a6503d3cd84d4798bf5b7
1805parking organisation2021-07-16 01:54:15.822407+02:002021-07-16 01:54:15.822407+02:00NaNNaN02bf9871964345f505ad305080daec36
2809rose rouge orange2021-07-16 01:54:15.825345+02:002021-07-16 01:54:15.825345+02:00NaNNaN31fb5b57bc1a2bcd5c155fb0d9e7c0dd
321832eme catégorie j.b. centrale2021-07-16 04:37:25.446835+02:002021-07-16 04:37:25.446835+02:00NaNNaNc9eb6651caaed42b809b3f4407a847c9
4621acces brasserie2021-07-16 00:02:17.249701+02:002021-07-16 00:02:17.249701+02:00NaNNaN349e6a59585d78d80d46acbc6a520c50
\n", - "
" - ], - "text/plain": [ - " id name created_at \\\n", - "0 653 acces village implid 2021-07-16 00:04:37.181331+02:00 \n", - "1 805 parking organisation 2021-07-16 01:54:15.822407+02:00 \n", - "2 809 rose rouge orange 2021-07-16 01:54:15.825345+02:00 \n", - "3 2183 2eme catégorie j.b. centrale 2021-07-16 04:37:25.446835+02:00 \n", - "4 621 acces brasserie 2021-07-16 00:02:17.249701+02:00 \n", - "\n", - " updated_at extra_field quota \\\n", - "0 2021-07-16 00:04:37.181331+02:00 NaN NaN \n", - "1 2021-07-16 01:54:15.822407+02:00 NaN NaN \n", - "2 2021-07-16 01:54:15.825345+02:00 NaN NaN \n", - "3 2021-07-16 04:37:25.446835+02:00 NaN NaN \n", - "4 2021-07-16 00:02:17.249701+02:00 NaN NaN \n", - "\n", - " identifier \n", - "0 c447d053646a6503d3cd84d4798bf5b7 \n", - "1 02bf9871964345f505ad305080daec36 \n", - "2 31fb5b57bc1a2bcd5c155fb0d9e7c0dd \n", - "3 c9eb6651caaed42b809b3f4407a847c9 \n", - "4 349e6a59585d78d80d46acbc6a520c50 " - ] - }, - "execution_count": 293, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "categories = display_databases(\"8categories.csv\")\n", - "categories.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 294, - "id": "589076df-1958-42de-9941-1aff9fa8536f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8type_of_categories.csv\n", - "Shape : (6, 6)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idtype_of_idcategory_idcreated_atupdated_atidentifier
01122021-08-20 15:22:05.558209+02:002021-08-20 15:22:05.558209+02:00af8fa6d57f6b19a7600a69e7771c7c3a
12212021-09-02 17:29:32.582002+02:002021-09-02 17:29:32.582002+02:0063718e7ad306912427758ddf988ad34f
23332021-09-02 17:32:38.299733+02:002021-09-02 17:32:38.299733+02:005e147d4d90888df14c4584f5c6887c96
34442021-09-02 17:35:04.748993+02:002021-09-02 17:35:04.748993+02:00a9dfdc3f40b41e3018933c6167fc38a5
455172021-09-02 17:35:37.396740+02:002021-09-02 17:35:37.396740+02:00c05b0061d2a875adbc35d3dfa6a50a12
\n", - "
" - ], - "text/plain": [ - " id type_of_id category_id created_at \\\n", - "0 1 1 2 2021-08-20 15:22:05.558209+02:00 \n", - "1 2 2 1 2021-09-02 17:29:32.582002+02:00 \n", - "2 3 3 3 2021-09-02 17:32:38.299733+02:00 \n", - "3 4 4 4 2021-09-02 17:35:04.748993+02:00 \n", - "4 5 5 17 2021-09-02 17:35:37.396740+02:00 \n", - "\n", - " updated_at identifier \n", - "0 2021-08-20 15:22:05.558209+02:00 af8fa6d57f6b19a7600a69e7771c7c3a \n", - "1 2021-09-02 17:29:32.582002+02:00 63718e7ad306912427758ddf988ad34f \n", - "2 2021-09-02 17:32:38.299733+02:00 5e147d4d90888df14c4584f5c6887c96 \n", - "3 2021-09-02 17:35:04.748993+02:00 a9dfdc3f40b41e3018933c6167fc38a5 \n", - "4 2021-09-02 17:35:37.396740+02:00 c05b0061d2a875adbc35d3dfa6a50a12 " - ] - }, - "execution_count": 294, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type_categories = display_databases(\"8type_of_categories.csv\")\n", - "type_categories.head()" - ] - }, - { - "cell_type": "markdown", - "id": "3427b681-4c05-4e4e-9c2b-867ee789f98c", - "metadata": {}, - "source": [ - "#### Analyze type of representations" - ] - }, - { - "cell_type": "markdown", - "id": "9381e36b-090a-44c5-a29d-3ac4c9a4431e", - "metadata": {}, - "source": [ - "Meaning representation_category_capacities.csv, representations.csv, representations_types.csv\n", - "\n", - "however there is no representation_types database" - ] - }, - { - "cell_type": "code", - "execution_count": 295, - "id": "6f06d72a-5725-4eee-8e4c-e9ef5820f346", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8representation_category_capacities.csv\n", - "Shape : (7378, 7)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idcreated_atupdated_atrepresentation_idcategory_idexpected_fillingmax_filling
05612021-06-29 21:33:14.096827+02:002021-06-29 21:33:14.096827+02:001737NaNNaN
15712021-06-29 21:33:14.110047+02:002021-06-29 21:33:14.110047+02:001439NaNNaN
296652021-07-16 00:02:17.736387+02:002021-07-16 00:02:17.736387+02:0018878NaNNaN
33839062023-03-04 02:55:01.585418+01:002023-03-04 02:55:01.585418+01:0052729476NaNNaN
43932021-06-29 21:33:13.876766+02:002021-06-29 21:33:13.876766+02:00923NaNNaN
\n", - "
" - ], - "text/plain": [ - " id created_at updated_at \\\n", - "0 561 2021-06-29 21:33:14.096827+02:00 2021-06-29 21:33:14.096827+02:00 \n", - "1 571 2021-06-29 21:33:14.110047+02:00 2021-06-29 21:33:14.110047+02:00 \n", - "2 9665 2021-07-16 00:02:17.736387+02:00 2021-07-16 00:02:17.736387+02:00 \n", - "3 383906 2023-03-04 02:55:01.585418+01:00 2023-03-04 02:55:01.585418+01:00 \n", - "4 393 2021-06-29 21:33:13.876766+02:00 2021-06-29 21:33:13.876766+02:00 \n", - "\n", - " representation_id category_id expected_filling max_filling \n", - "0 17 37 NaN NaN \n", - "1 14 39 NaN NaN \n", - "2 1887 8 NaN NaN \n", - "3 52729 476 NaN NaN \n", - "4 9 23 NaN NaN " - ] - }, - "execution_count": 295, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "representation_category_capacities = display_databases(\"8representation_category_capacities.csv\")\n", - "representation_category_capacities.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 296, - "id": "bd405913-033d-4f15-a5b9-103d577baaff", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8representations.csv\n", - "Shape : (1015, 16)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idserialevent_idcreated_atupdated_atstart_date_timeopensatisfactionend_date_timenameis_displayrepresentation_type_idexpected_fillingmax_fillingextra_fieldidentifier
05903NaN58362021-07-16 05:16:57.419565+02:002021-07-16 05:16:57.419565+02:002019-08-24 18:00:00+02:00TrueNaN1901-01-01 00:09:21+00:09NaNTrueNaNNaNNaNNaN8009c34cae4e79e3781f16f3ceeab244
167133NaN656522023-09-27 02:21:36.573001+02:002023-09-27 02:21:36.573001+02:002023-10-04 10:30:00+02:00TrueNaN1901-01-01 00:09:21+00:09NaNTrueNaNNaNNaNNaN4e9d3fc8d1f7bf563dc586548fe6390e
21874NaN18262021-07-16 00:02:17.390274+02:002021-07-16 00:02:17.390274+02:002019-09-14 18:00:00+02:00TrueNaN1901-01-01 00:09:21+00:09NaNTrueNaNNaNNaNNaN19f666370c1fc781dff638c20ae04c8a
35904NaN58372021-07-16 05:16:57.420302+02:002021-07-16 05:16:57.420302+02:002019-09-01 17:05:00+02:00TrueNaN1901-01-01 00:09:21+00:09NaNTrueNaNNaNNaNNaN4221acd3f49179f5d0b292c15d1ab8e4
44165NaN41062021-07-16 03:53:05.929713+02:002021-07-16 03:53:05.929713+02:002018-10-14 14:00:00+02:00TrueNaN1901-01-01 00:09:21+00:09NaNTrueNaNNaNNaNNaN733104286519c0614b2d45470eb180a1
\n", - "
" - ], - "text/plain": [ - " id serial event_id created_at \\\n", - "0 5903 NaN 5836 2021-07-16 05:16:57.419565+02:00 \n", - "1 67133 NaN 65652 2023-09-27 02:21:36.573001+02:00 \n", - "2 1874 NaN 1826 2021-07-16 00:02:17.390274+02:00 \n", - "3 5904 NaN 5837 2021-07-16 05:16:57.420302+02:00 \n", - "4 4165 NaN 4106 2021-07-16 03:53:05.929713+02:00 \n", - "\n", - " updated_at start_date_time open \\\n", - "0 2021-07-16 05:16:57.419565+02:00 2019-08-24 18:00:00+02:00 True \n", - "1 2023-09-27 02:21:36.573001+02:00 2023-10-04 10:30:00+02:00 True \n", - "2 2021-07-16 00:02:17.390274+02:00 2019-09-14 18:00:00+02:00 True \n", - "3 2021-07-16 05:16:57.420302+02:00 2019-09-01 17:05:00+02:00 True \n", - "4 2021-07-16 03:53:05.929713+02:00 2018-10-14 14:00:00+02:00 True \n", - "\n", - " satisfaction end_date_time name is_display \\\n", - "0 NaN 1901-01-01 00:09:21+00:09 NaN True \n", - "1 NaN 1901-01-01 00:09:21+00:09 NaN True \n", - "2 NaN 1901-01-01 00:09:21+00:09 NaN True \n", - "3 NaN 1901-01-01 00:09:21+00:09 NaN True \n", - "4 NaN 1901-01-01 00:09:21+00:09 NaN True \n", - "\n", - " representation_type_id expected_filling max_filling extra_field \\\n", - "0 NaN NaN NaN NaN \n", - "1 NaN NaN NaN NaN \n", - "2 NaN NaN NaN NaN \n", - "3 NaN NaN NaN NaN \n", - "4 NaN NaN NaN NaN \n", - "\n", - " identifier \n", - "0 8009c34cae4e79e3781f16f3ceeab244 \n", - "1 4e9d3fc8d1f7bf563dc586548fe6390e \n", - "2 19f666370c1fc781dff638c20ae04c8a \n", - "3 4221acd3f49179f5d0b292c15d1ab8e4 \n", - "4 733104286519c0614b2d45470eb180a1 " - ] - }, - "execution_count": 296, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "representations = display_databases(\"8representations.csv\")\n", - "representations.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 297, - "id": "0f2c7ea3-6964-48fd-9411-17547b2c3a3f", + "execution_count": null, + "id": "171cf427-18bf-4c0b-9698-3cec5cd61073", "metadata": {}, "outputs": [], "source": [ - "#representation_type = display_databases(\"8representation_types.csv\")" - ] - }, - { - "cell_type": "markdown", - "id": "a9b02406-2a69-4431-8d49-3c6bd6a5e1c7", - "metadata": {}, - "source": [ - "#### Analyze type of events" - ] - }, - { - "cell_type": "markdown", - "id": "1d554266-282c-4f64-9a0f-ddcf591ec912", - "metadata": {}, - "source": [ - "Meaning events.csv, event_types.csv, seasons.csv and facilities.csv" + "tickets.groupby('number_company')['achat_internet'].sum()" ] }, { "cell_type": "code", - "execution_count": 298, - "id": "cba22ee2-338d-4ce1-a1e8-829a11a94bcf", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8events.csv\n", - "Shape : (922, 12)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idcreated_atupdated_atseason_idfacility_idnameevent_type_idmanual_addedis_displayevent_type_key_idfacility_key_ididentifier
0415422022-10-29 02:54:32.756920+02:002022-10-29 02:57:35.511792+02:00521match lou feminin - lons5588FalseTrue5588140cc5a346b1af4ee7108ac28b144fb77
1210682021-12-17 03:43:53.166446+01:002021-12-17 03:46:40.346096+01:00511repas brasserie lou-racing2310FalseTrue23101500b670b79aa592ecb06f4957800a752
2598122023-05-26 01:45:54.321665+02:002023-05-26 01:46:01.571397+02:0015012parking match 210185FalseTrue101852d5f62ed879867b8b51ed7b85f1fc3ab0
334242021-07-16 03:13:06.988358+02:002021-07-16 05:33:31.321933+02:0011rugby + hockey sur glace5FalseTrue51822b47176c355a647aa2dbdf8dfbc594
4213792021-12-23 02:37:22.948114+01:002021-12-23 02:38:20.726329+01:00511bloc des etudiants lou-racing2562FalseTrue2562117b91f19c71ff6287ffc1f44af952576
\n", - "
" - ], - "text/plain": [ - " id created_at updated_at \\\n", - "0 41542 2022-10-29 02:54:32.756920+02:00 2022-10-29 02:57:35.511792+02:00 \n", - "1 21068 2021-12-17 03:43:53.166446+01:00 2021-12-17 03:46:40.346096+01:00 \n", - "2 59812 2023-05-26 01:45:54.321665+02:00 2023-05-26 01:46:01.571397+02:00 \n", - "3 3424 2021-07-16 03:13:06.988358+02:00 2021-07-16 05:33:31.321933+02:00 \n", - "4 21379 2021-12-23 02:37:22.948114+01:00 2021-12-23 02:38:20.726329+01:00 \n", - "\n", - " season_id facility_id name event_type_id \\\n", - "0 52 1 match lou feminin - lons 5588 \n", - "1 51 1 repas brasserie lou-racing 2310 \n", - "2 1501 2 parking match 2 10185 \n", - "3 1 1 rugby + hockey sur glace 5 \n", - "4 51 1 bloc des etudiants lou-racing 2562 \n", - "\n", - " manual_added is_display event_type_key_id facility_key_id \\\n", - "0 False True 5588 1 \n", - "1 False True 2310 1 \n", - "2 False True 10185 2 \n", - "3 False True 5 1 \n", - "4 False True 2562 1 \n", - "\n", - " identifier \n", - "0 40cc5a346b1af4ee7108ac28b144fb77 \n", - "1 500b670b79aa592ecb06f4957800a752 \n", - "2 d5f62ed879867b8b51ed7b85f1fc3ab0 \n", - "3 822b47176c355a647aa2dbdf8dfbc594 \n", - "4 17b91f19c71ff6287ffc1f44af952576 " - ] - }, - "execution_count": 298, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events = display_databases(\"8events.csv\")\n", - "events.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 299, - "id": "3db00b9d-2187-4cb6-980d-8ac6ab9eb460", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8event_types.csv\n", - "Shape : (73, 6)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamecreated_atupdated_atfidelity_delayidentifier
01standard2021-06-29 13:52:10.434850+02:002021-06-29 13:52:10.434850+02:0036c00f0c4675b91fb8b918e4079a0b1bac
111ptit lou2021-06-29 21:33:13.000743+02:002021-06-29 21:33:13.000743+02:0036dedd3579bc13b3ed7a90277247d9944b
2274parking 19-202021-07-16 00:02:17.225410+02:002021-07-16 00:02:17.225410+02:00360d348caeec0b66f9d4987dfbe30e1e8b
3129events 2018-20192021-06-30 01:35:18.110429+02:002021-06-30 01:35:18.110429+02:003665eb39ddf8f79d28d93c2f2c53118f50
410accreditations 2017-20182021-06-29 21:33:12.999510+02:002021-06-29 21:33:12.999510+02:0036732cfdcf2065fa0005faf42793ddd76c
\n", - "
" - ], - "text/plain": [ - " id name created_at \\\n", - "0 1 standard 2021-06-29 13:52:10.434850+02:00 \n", - "1 11 ptit lou 2021-06-29 21:33:13.000743+02:00 \n", - "2 274 parking 19-20 2021-07-16 00:02:17.225410+02:00 \n", - "3 129 events 2018-2019 2021-06-30 01:35:18.110429+02:00 \n", - "4 10 accreditations 2017-2018 2021-06-29 21:33:12.999510+02:00 \n", - "\n", - " updated_at fidelity_delay \\\n", - "0 2021-06-29 13:52:10.434850+02:00 36 \n", - "1 2021-06-29 21:33:13.000743+02:00 36 \n", - "2 2021-07-16 00:02:17.225410+02:00 36 \n", - "3 2021-06-30 01:35:18.110429+02:00 36 \n", - "4 2021-06-29 21:33:12.999510+02:00 36 \n", - "\n", - " identifier \n", - "0 c00f0c4675b91fb8b918e4079a0b1bac \n", - "1 dedd3579bc13b3ed7a90277247d9944b \n", - "2 0d348caeec0b66f9d4987dfbe30e1e8b \n", - "3 65eb39ddf8f79d28d93c2f2c53118f50 \n", - "4 732cfdcf2065fa0005faf42793ddd76c " - ] - }, - "execution_count": 299, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "event_types = display_databases(\"8event_types.csv\")\n", - "event_types.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 300, - "id": "cba0ee58-6280-45fe-99b3-0be09db5922b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8seasons.csv\n", - "Shape : (16, 6)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamecreated_atupdated_atstart_date_timeidentifier
01501saison 2023-20242022-06-25 03:07:31.209270+02:002022-06-25 03:07:31.209270+02:00NaN71f5c069ce45c5e933dcc37c22507fbf
11194saison 2049-20502022-02-17 03:24:23.942691+01:002022-02-17 03:24:23.942691+01:00NaN44e20620bbc5926db2e295d38b606afd
22saison 2016-20172021-06-29 21:33:00.702563+02:002021-06-29 21:33:00.702563+02:00NaNf9cf989d4f49300220df67ef93aa2294
347saison 2018-20192021-06-30 01:35:15.156097+02:002021-06-30 01:35:15.156097+02:00NaNeec50c35fbf8593b364ced287335d90c
4100saison 2010-20112021-07-16 00:23:27.607648+02:002021-07-16 00:23:27.607648+02:00NaN7ccc51049a85e0df9b80662e45b6ddb8
\n", - "
" - ], - "text/plain": [ - " id name created_at \\\n", - "0 1501 saison 2023-2024 2022-06-25 03:07:31.209270+02:00 \n", - "1 1194 saison 2049-2050 2022-02-17 03:24:23.942691+01:00 \n", - "2 2 saison 2016-2017 2021-06-29 21:33:00.702563+02:00 \n", - "3 47 saison 2018-2019 2021-06-30 01:35:15.156097+02:00 \n", - "4 100 saison 2010-2011 2021-07-16 00:23:27.607648+02:00 \n", - "\n", - " updated_at start_date_time \\\n", - "0 2022-06-25 03:07:31.209270+02:00 NaN \n", - "1 2022-02-17 03:24:23.942691+01:00 NaN \n", - "2 2021-06-29 21:33:00.702563+02:00 NaN \n", - "3 2021-06-30 01:35:15.156097+02:00 NaN \n", - "4 2021-07-16 00:23:27.607648+02:00 NaN \n", - "\n", - " identifier \n", - "0 71f5c069ce45c5e933dcc37c22507fbf \n", - "1 44e20620bbc5926db2e295d38b606afd \n", - "2 f9cf989d4f49300220df67ef93aa2294 \n", - "3 eec50c35fbf8593b364ced287335d90c \n", - "4 7ccc51049a85e0df9b80662e45b6ddb8 " - ] - }, - "execution_count": 300, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "seasons = display_databases(\"8seasons.csv\")\n", - "seasons.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 301, - "id": "6fa82fd7-d6d3-4857-af24-ea573b1129d0", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/8/8facilities.csv\n", - "Shape : (5, 7)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamecreated_atupdated_atstreet_idfixed_capacityidentifier
074plan pour campagne d'abo 2011/20122021-07-16 00:23:30.337698+02:002021-07-16 00:23:30.337698+02:001NaN2e1d25d5f7e46e23c734fe0e4951390e
13accreditation2021-06-29 21:33:13.018552+02:002021-06-29 21:33:13.018552+02:001NaNda37a04e592cbd344142730ce05a6887
24organisation match exterieur2021-06-29 21:33:13.019878+02:002021-06-29 21:33:13.019878+02:001NaN8f9ee8c2e954585f7c68096d7f1cf4f1
32parking matmut stadium2021-06-29 21:33:13.017165+02:002021-06-29 21:33:13.017165+02:001NaNaeab282982ea738674dbf5c3763a0be0
41matmut stadium2021-06-29 21:33:13.004560+02:002021-06-29 21:33:13.004560+02:001NaN89feffd283ebdabdc3b81fb62ea4f6f0
\n", - "
" - ], - "text/plain": [ - " id name created_at \\\n", - "0 74 plan pour campagne d'abo 2011/2012 2021-07-16 00:23:30.337698+02:00 \n", - "1 3 accreditation 2021-06-29 21:33:13.018552+02:00 \n", - "2 4 organisation match exterieur 2021-06-29 21:33:13.019878+02:00 \n", - "3 2 parking matmut stadium 2021-06-29 21:33:13.017165+02:00 \n", - "4 1 matmut stadium 2021-06-29 21:33:13.004560+02:00 \n", - "\n", - " updated_at street_id fixed_capacity \\\n", - "0 2021-07-16 00:23:30.337698+02:00 1 NaN \n", - "1 2021-06-29 21:33:13.018552+02:00 1 NaN \n", - "2 2021-06-29 21:33:13.019878+02:00 1 NaN \n", - "3 2021-06-29 21:33:13.017165+02:00 1 NaN \n", - "4 2021-06-29 21:33:13.004560+02:00 1 NaN \n", - "\n", - " identifier \n", - "0 2e1d25d5f7e46e23c734fe0e4951390e \n", - "1 da37a04e592cbd344142730ce05a6887 \n", - "2 8f9ee8c2e954585f7c68096d7f1cf4f1 \n", - "3 aeab282982ea738674dbf5c3763a0be0 \n", - "4 89feffd283ebdabdc3b81fb62ea4f6f0 " - ] - }, - "execution_count": 301, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "facilities = display_databases(\"8facilities.csv\")\n", - "facilities.head()" - ] - }, - { - "cell_type": "markdown", - "id": "c7467d41-0ded-465d-bb08-15be914a166b", - "metadata": {}, - "source": [ - "#### Analyze annexe databases" - ] - }, - { - "cell_type": "markdown", - "id": "17e9e334-0ae4-48d8-bed5-b50b4af49d5b", - "metadata": {}, - "source": [ - "Meaning contributions.csv, contribution_sites.csv, currencies.csv, countries.csv and type_ofs.csc" - ] - }, - { - "cell_type": "markdown", - "id": "d3ec1040-48b2-40bb-8947-920ddb4589f3", - "metadata": {}, - "source": [ - "## II. Identify Commons Datasets" - ] - }, - { - "cell_type": "markdown", - "id": "ec528a8a-df38-48e2-a1be-4a1459a80a1e", - "metadata": {}, - "source": [ - "From the analyze of the 8th company, we notice that some databases does not exist. Therefore, in order to construct a uniform database for all companies, we should first identify the common databases between all companies" - ] - }, - { - "cell_type": "code", - "execution_count": 302, - "id": "c240b811-48a6-4501-9e70-bc51d69e3ac4", + "execution_count": null, + "id": "c430185e-7995-4287-8621-95c6410be9df", "metadata": {}, "outputs": [], "source": [ - "## We first construct a dictionary reporting all the datasets for each companies\n", - "\n", - "companies = fs.ls(BUCKET)\n", - "companies_database = {}\n", - "\n", - "for company in companies:\n", - " companies_database[company.split('/')[-1]] = [file.split('/')[-1].replace(company.split('/')[-1], '') for file in fs.ls(company)] \n" + "tickets.columns" ] }, { "cell_type": "code", - "execution_count": 303, - "id": "54057367-9df9-42f4-aa07-bf524bb76462", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of databases : 30\n" - ] - } - ], - "source": [ - "# Then we create a list of all database\n", - "\n", - "all_database = companies_database[max(companies_database, key=lambda x: len(companies_database[x]))]\n", - "print(\"Number of databases : \",len(all_database))" - ] - }, - { - "cell_type": "code", - "execution_count": 304, - "id": "63914e20-9efc-4088-877b-edab5f225d00", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "30\n", - "23\n" - ] - } - ], - "source": [ - "## We then create a set of database in common for all companies\n", - "\n", - "data_in_common = set(all_database)\n", - "\n", - "print(len(data_in_common))\n", - "\n", - "for key in companies_database:\n", - " diff_database = data_in_common.symmetric_difference(companies_database[key])\n", - " data_in_common = data_in_common - diff_database\n", - "\n", - "print(len(data_in_common))\n", - " " - ] - }, - { - "cell_type": "markdown", - "id": "676d8536-7d8c-4075-a357-b8d06e501ca8", - "metadata": {}, - "source": [ - "## Create Universal database" - ] - }, - { - "cell_type": "markdown", - "id": "7e460fbe-5067-4998-a1a8-9e3d07401750", - "metadata": {}, - "source": [ - "We will first create a procedure to clean the datasets of a company and then merge them. Hence, we will be able to replicate this procedure for all companies and create a universal database.\n", - "\n", - "Let's first create our procedure for the company 1 and the datasets belongings to the theme producst" - ] - }, - { - "cell_type": "code", - "execution_count": 305, - "id": "590a132a-4f57-4ea3-a282-2ef913e4b753", + "execution_count": null, + "id": "b299c7a4-aa07-4349-bebd-b4f24bda1c8f", "metadata": {}, "outputs": [], "source": [ - "directory_path = '1'" + "customer" ] }, { "cell_type": "code", - "execution_count": 306, - "id": "0fbebfb7-a827-46b1-890b-86c9def7cdbb", + "execution_count": null, + "id": "f6630f7a-96f5-488d-9797-caacb6d6067a", "metadata": {}, "outputs": [], "source": [ - "theme_products = [\"products.csv\" ,\"categories.csv\", \"type_of_categories.csv\"]" + "print(len(tickets['customer_id']))\n", + "print(len(tickets['customer_id'].unique()))" ] }, { "cell_type": "code", - "execution_count": 307, - "id": "b8aa5f8f-845e-4ee5-b80d-38b7061a94a2", + "execution_count": null, + "id": "f4caa95a-7854-4a21-b291-28d779c4c4db", "metadata": {}, "outputs": [], "source": [ - "def remove_horodates(df):\n", - " \"\"\"\n", - " this function remove horodate columns like created_at and updated_at\n", - " \"\"\"\n", - " df = df.drop(columns = [\"created_at\", \"updated_at\"])\n", - " return df" + "has_purchased = customer.groupby('number_company').agg({\n", + " 'has_purchased_target_period' : 'sum',\n", + " 'customer_id' : 'nunique'})\n", + "has_purchased" ] }, { "cell_type": "code", - "execution_count": 308, - "id": "2c478213-09ae-44ef-8c7c-125bcb571642", - "metadata": {}, - "outputs": [], - "source": [ - "def order_columns_id(df):\n", - " \"\"\"\n", - " this function puts all id columns at the beginning in order to read the dataset easier\n", - " \"\"\"\n", - " substring = 'id'\n", - " id_columns = [col for col in df.columns if substring in col]\n", - " remaining_col = [col for col in df.columns if substring not in col]\n", - " new_order = id_columns + remaining_col\n", - " return df[new_order]" - ] - }, - { - "cell_type": "code", - "execution_count": 309, - "id": "327e44b0-eb99-4022-b4ca-79548072f0f0", - "metadata": {}, - "outputs": [], - "source": [ - "def percent_na(df):\n", - " \"\"\"\n", - " this function returns the percentage of na for each column\n", - " \"\"\"\n", - " percent_missing = df.isna().sum() * 100 / len(df)\n", - " return percent_missing" - ] - }, - { - "cell_type": "code", - "execution_count": 310, - "id": "10926def-267f-4e86-b2c9-72e27ff9a9df", - "metadata": {}, - "outputs": [], - "source": [ - "def process_df(df):\n", - " df = remove_horodates(df)\n", - " print(\"Number of columns : \", len(df.columns))\n", - " df = order_columns_id(df)\n", - " print(\"Columns : \", df.columns)\n", - " print(\"Percent of NA for each column : \", percent_na(df))\n", - " return df" - ] - }, - { - "cell_type": "markdown", - "id": "98ac02cb-5295-47ca-99c6-99e622c5f388", - "metadata": {}, - "source": [ - "#### Deep analysis of products.csv" - ] - }, - { - "cell_type": "code", - "execution_count": 311, - "id": "862a7658-0602-4d94-bb58-d23774c00d32", + "execution_count": 35, + "id": "24fda291-764a-4a6f-9cdf-86da49b978e2", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1products.csv\n", - "Shape : (94803, 14)\n", - "Number of columns : 14\n" - ] + "data": { + "image/png": "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goIC+Pj4QK1WIzY2VppXWFiIw4cPIyQkBADQrVs3WFtb67VJTU3FmTNnpDbBwcHQaDQ4fvy41ObYsWPQaDRSm4oolUrpdgClDyJqOMr2DpViLxGRPFmZcuVvvfUWBg4cCE9PT+Tk5CA6OhqHDh1CTEwMFAoFIiIisGTJErRp0wZt2rTBkiVLYG9vj+HDhwMAVCoVxowZgxkzZsDFxQXOzs6YOXMm/P390adPHwBA+/btMWDAAIwdOxZr164FAIwbNw5hYWHw9fU12bYTkemU9g4poIBA+Z4gBRRYeXolQjxCHnmKnogaBpMGovT0dISHhyM1NRUqlQqdOnVCTEwM+vbtCwCYPXs28vPzMXHiRGRlZSEwMBD79u2Do6OjtIyPP/4YVlZWGDp0KPLz89G7d29s2LABlpaWUputW7di6tSp0tVogwcPxqpVq+p2Y4nIbBTpipCWl1ZhGAIAAYG0vDQU6YpgY2lTx9URkSkoBE+UV4lWq4VKpYJGo+HpM6IGIC0vDXfv3610vrOtM9QO6jqsiIhqQ1WP3ybtISIiMhW1g5qBh4gkZjeomoiIiKiuMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7Jk0EEVFReHxxx+Ho6MjXF1d8eyzz+LixYt6bUaNGgWFQqH3CAoK0mtTUFCAKVOmoGnTpnBwcMDgwYNx8+ZNvTZZWVkIDw+HSqWCSqVCeHg4srOza3sTiYiIqB4waSA6fPgwJk2ahMTERMTGxqK4uBj9+vVDXl6eXrsBAwYgNTVVeuzevVtvfkREBLZv347o6GjExcUhNzcXYWFhKCkpkdoMHz4cSUlJiImJQUxMDJKSkhAeHl4n20lERETmTSGEEKYuotSdO3fg6uqKw4cP46mnngLwdw9RdnY2duzYUeFrNBoNmjVrhs2bN2PYsGEAgNu3b8PT0xO7d+9G//79cf78eXTo0AGJiYkIDAwEACQmJiI4OBgXLlyAr6/vI2vTarVQqVTQaDRwcnIyzgYTERFRrarq8dusxhBpNBoAgLOzs970Q4cOwdXVFW3btsXYsWORkZEhzTt58iSKiorQr18/aZqHhwf8/PwQHx8PAEhISIBKpZLCEAAEBQVBpVJJbYiIiEi+rExdQCkhBKZPn44nn3wSfn5+0vSBAwfixRdfhLe3N65du4YFCxagV69eOHnyJJRKJdLS0mBjY4MmTZroLc/NzQ1paWkAgLS0NLi6upZbp6urq9SmrIKCAhQUFEjPtVqtMTaTiIiIzJDZBKLJkyfj999/R1xcnN700tNgAODn54eAgAB4e3vjp59+wpAhQypdnhACCoVCev7g/ytr86CoqCgsXLiwuptBRERE9ZBZnDKbMmUKdu7ciYMHD6JFixYPbevu7g5vb29cvnwZAKBWq1FYWIisrCy9dhkZGXBzc5PapKenl1vWnTt3pDZlzZs3DxqNRnqkpKQYsmlERERUD5g0EAkhMHnyZGzbtg0///wzfHx8HvmazMxMpKSkwN3dHQDQrVs3WFtbIzY2VmqTmpqKM2fOICQkBAAQHBwMjUaD48ePS22OHTsGjUYjtSlLqVTCyclJ70FEREQNk0mvMps4cSK+/vpr/PDDD3pXeqlUKtjZ2SE3NxeRkZF4/vnn4e7ujuvXr+Ott95CcnIyzp8/D0dHRwDAhAkT8OOPP2LDhg1wdnbGzJkzkZmZiZMnT8LS0hLA32ORbt++jbVr1wIAxo0bB29vb+zatatKtfIqMyIiovqnqsdvkwaiysbvrF+/HqNGjUJ+fj6effZZnD59GtnZ2XB3d0fPnj3x3nvvwdPTU2p///59zJo1C19//TXy8/PRu3dvrF69Wq/N3bt3MXXqVOzcuRMAMHjwYKxatQqNGzeuUq0MRERERPVPvQhE9QkDERERUf1TL+9DRERERGQKDEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsmDURRUVF4/PHH4ejoCFdXVzz77LO4ePGiXhshBCIjI+Hh4QE7Ozv06NEDZ8+e1WtTUFCAKVOmoGnTpnBwcMDgwYNx8+ZNvTZZWVkIDw+HSqWCSqVCeHg4srOza3sTiYiIqB4waSA6fPgwJk2ahMTERMTGxqK4uBj9+vVDXl6e1GbZsmVYvnw5Vq1ahRMnTkCtVqNv377IycmR2kRERGD79u2Ijo5GXFwccnNzERYWhpKSEqnN8OHDkZSUhJiYGMTExCApKQnh4eF1ur1ERERkpoQZycjIEADE4cOHhRBC6HQ6oVarxdKlS6U29+/fFyqVSqxZs0YIIUR2drawtrYW0dHRUptbt24JCwsLERMTI4QQ4ty5cwKASExMlNokJCQIAOLChQtVqk2j0QgAQqPR1Hg7iYiIqG5U9fhtVmOINBoNAMDZ2RkAcO3aNaSlpaFfv35SG6VSidDQUMTHxwMATp48iaKiIr02Hh4e8PPzk9okJCRApVIhMDBQahMUFASVSiW1ISIiIvmyMnUBpYQQmD59Op588kn4+fkBANLS0gAAbm5uem3d3Nxw48YNqY2NjQ2aNGlSrk3p69PS0uDq6lpuna6urlKbsgoKClBQUCA912q1Bm4ZERERmTuz6SGaPHkyfv/9d3zzzTfl5ikUCr3nQohy08oq26ai9g9bTlRUlDQAW6VSwdPTsyqbQURERPWQWQSiKVOmYOfOnTh48CBatGghTVer1QBQrhcnIyND6jVSq9UoLCxEVlbWQ9ukp6eXW++dO3fK9T6VmjdvHjQajfRISUkxfAOJiIjIrJk0EAkhMHnyZGzbtg0///wzfHx89Ob7+PhArVYjNjZWmlZYWIjDhw8jJCQEANCtWzdYW1vrtUlNTcWZM2ekNsHB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RL3BzYmJidL7evToUXh7e2P+/PnS/KoMEK/I66+/jo8//hi3bt1Cnz599Hq8iIiBiIiqyc7ODkFBQVi6dClatmyJv/76C2+//bbRlp+SkoLp06fjjTfewKlTp7By5UqpR6Rt27Z45ZVXMGLECHz00Ufo2rUr/vrrL/z888/w9/fH008/bdA6IyMjMX78eLi6umLgwIHIycnB0aNHMWXKFPTp0wedOnXCK6+8ghUrVqC4uBgTJ05EaGgoAgICary9//nPfxAQEIAnn3wSW7duxfHjx/Hll18CAB577DEkJycjOjoajz/+OH766Sds377doPW88sormDlzJj7//HNs2rSpxnUTNTS87J6Iqu2rr75CUVERAgIC8Oabb2LRokVGW/aIESOQn5+PJ554ApMmTcKUKVMwbtw4af769esxYsQIzJgxA76+vhg8eDCOHTtWox6PkSNHYsWKFVi9ejU6duyIsLAwXL58GcDfp5927NiBJk2a4KmnnkKfPn3QqlUrfPvttzXeVgBYuHAhoqOj0alTJ2zcuBFbt25Fhw4dAADPPPMMpk2bhsmTJ6NLly6Ij4/HggULDFqPk5MTnn/+eTRq1AjPPvusUWonakgU4sGBAEREVGcUCgW2b99eZwGlb9++aN++PT799NM6WR9RfcJTZkREDdzdu3exb98+/Pzzz1i1apWpyyEySwxERNTgPXgFWll79uwx2gBtc/WPf/wDWVlZeP/99+Hr62vqcojMEk+ZEVGD9+eff1Y6r3nz5o+89J6IGj4GIiIiIpI9XmVGREREssdARERERLLHQERERESyx0BEREREssdARERERLLHQERERESyx0BEREREssdARERERLL3/wE/bFzBgYBosAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" }, { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idamountis_full_pricerepresentation_idpricing_formula_idcreated_atupdated_atcategory_idapply_priceproducts_group_idproduct_pack_idextra_fieldamount_consumptionidentifier
0106829.0False9141142020-09-03 14:09:43.119798+02:002020-09-03 14:09:43.119798+02:00410.0106551NaNNaN35c88f2db8a63d7474e46eb8ca9260e7
14789.5False2731312020-09-03 13:21:22.711773+02:002020-09-03 13:21:22.711773+02:0010.04711NaNNaN8a179671ab198e570e6a104c4451379f
22087311.5False2751372020-09-03 14:46:33.589030+02:002020-09-03 14:46:33.589030+02:0010.0208251NaNNaNee83779ce29e67ad251e40234b426d6a
31571428.0False8251992022-01-28 19:29:23.525722+01:002022-01-28 19:29:23.525722+01:0050.01567731NaNNaNd865383579314b791aa4bcf3fb418f17
413418.5False9932020-09-03 13:29:30.773089+02:002020-09-03 13:29:30.773089+02:0010.011751NaNNaNf1c4689bc47dee6f60b56d74b593dd46
\n", - "
" - ], - "text/plain": [ - " id amount is_full_price representation_id pricing_formula_id \\\n", - "0 10682 9.0 False 914 114 \n", - "1 478 9.5 False 273 131 \n", - "2 20873 11.5 False 275 137 \n", - "3 157142 8.0 False 82519 9 \n", - "4 1341 8.5 False 9 93 \n", - "\n", - " created_at updated_at \\\n", - "0 2020-09-03 14:09:43.119798+02:00 2020-09-03 14:09:43.119798+02:00 \n", - "1 2020-09-03 13:21:22.711773+02:00 2020-09-03 13:21:22.711773+02:00 \n", - "2 2020-09-03 14:46:33.589030+02:00 2020-09-03 14:46:33.589030+02:00 \n", - "3 2022-01-28 19:29:23.525722+01:00 2022-01-28 19:29:23.525722+01:00 \n", - "4 2020-09-03 13:29:30.773089+02:00 2020-09-03 13:29:30.773089+02:00 \n", - "\n", - " category_id apply_price products_group_id product_pack_id extra_field \\\n", - "0 41 0.0 10655 1 NaN \n", - "1 1 0.0 471 1 NaN \n", - "2 1 0.0 20825 1 NaN \n", - "3 5 0.0 156773 1 NaN \n", - "4 1 0.0 1175 1 NaN \n", - "\n", - " amount_consumption identifier \n", - "0 NaN 35c88f2db8a63d7474e46eb8ca9260e7 \n", - "1 NaN 8a179671ab198e570e6a104c4451379f \n", - "2 NaN ee83779ce29e67ad251e40234b426d6a \n", - "3 NaN d865383579314b791aa4bcf3fb418f17 \n", - "4 NaN f1c4689bc47dee6f60b56d74b593dd46 " - ] - }, - "execution_count": 311, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "products = display_databases(\"1products.csv\")\n", - "print(\"Number of columns : \", len(products.columns))\n", - "products.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 312, - "id": "f0db8c51-2792-4d49-9b1a-d98ce0d9ea28", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of columns : 12\n", - "Columns : Index(['id', 'representation_id', 'pricing_formula_id', 'category_id',\n", - " 'products_group_id', 'product_pack_id', 'identifier', 'amount',\n", - " 'is_full_price', 'apply_price', 'extra_field', 'amount_consumption'],\n", - " dtype='object')\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idrepresentation_idpricing_formula_idcategory_idproducts_group_idproduct_pack_ididentifieramountis_full_priceapply_priceextra_fieldamount_consumption
0106829141144110655135c88f2db8a63d7474e46eb8ca9260e79.0False0.0NaNNaN
1478273131147118a179671ab198e570e6a104c4451379f9.5False0.0NaNNaN
2208732751371208251ee83779ce29e67ad251e40234b426d6a11.5False0.0NaNNaN
315714282519951567731d865383579314b791aa4bcf3fb418f178.0False0.0NaNNaN
41341993111751f1c4689bc47dee6f60b56d74b593dd468.5False0.0NaNNaN
\n", - "
" - ], - "text/plain": [ - " id representation_id pricing_formula_id category_id \\\n", - "0 10682 914 114 41 \n", - "1 478 273 131 1 \n", - "2 20873 275 137 1 \n", - "3 157142 82519 9 5 \n", - "4 1341 9 93 1 \n", - "\n", - " products_group_id product_pack_id identifier \\\n", - "0 10655 1 35c88f2db8a63d7474e46eb8ca9260e7 \n", - "1 471 1 8a179671ab198e570e6a104c4451379f \n", - "2 20825 1 ee83779ce29e67ad251e40234b426d6a \n", - "3 156773 1 d865383579314b791aa4bcf3fb418f17 \n", - "4 1175 1 f1c4689bc47dee6f60b56d74b593dd46 \n", - "\n", - " amount is_full_price apply_price extra_field amount_consumption \n", - "0 9.0 False 0.0 NaN NaN \n", - "1 9.5 False 0.0 NaN NaN \n", - "2 11.5 False 0.0 NaN NaN \n", - "3 8.0 False 0.0 NaN NaN \n", - "4 8.5 False 0.0 NaN NaN " - ] - }, - "execution_count": 312, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "products = remove_horodates(products)\n", - "print(\"Number of columns : \", len(products.columns))\n", - "products = order_columns_id(products)\n", - "print(\"Columns : \", products.columns)\n", - "products.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 313, - "id": "a383474f-7da9-422c-bb69-3f0cc0b7053f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "id int64\n", - "representation_id int64\n", - "pricing_formula_id int64\n", - "category_id int64\n", - "products_group_id int64\n", - "product_pack_id int64\n", - "identifier object\n", - "amount float64\n", - "is_full_price bool\n", - "apply_price float64\n", - "extra_field float64\n", - "amount_consumption float64\n", - "dtype: object\n" - ] - } - ], - "source": [ - "print(products.dtypes)" - ] - }, - { - "cell_type": "code", - "execution_count": 314, - "id": "460749ac-aa26-4216-8667-518546f72f72", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "id 0.0\n", - "representation_id 0.0\n", - "pricing_formula_id 0.0\n", - "category_id 0.0\n", - "products_group_id 0.0\n", - "product_pack_id 0.0\n", - "identifier 0.0\n", - "amount 0.0\n", - "is_full_price 0.0\n", - "apply_price 0.0\n", - "extra_field 100.0\n", - "amount_consumption 100.0\n", - "dtype: float64\n" - ] - } - ], - "source": [ - "percent_missing = products.isna().sum() * 100 / len(products)\n", - "print(percent_missing)" - ] - }, - { - "cell_type": "markdown", - "id": "ebcb48ab-adad-42e5-b5d7-7275771cd200", - "metadata": {}, - "source": [ - "#### Deep analysis of categories.csv" - ] - }, - { - "cell_type": "code", - "execution_count": 315, - "id": "3efce2b6-2d2f-4da9-98ed-1aae17da624c", - "metadata": {}, - "outputs": [], - "source": [ - "name_dataset = '1categories.csv'" - ] - }, - { - "cell_type": "code", - "execution_count": 316, - "id": "38aa39fd-58af-4fb8-98f2-4269dbaf35de", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1categories.csv\n", - "Shape : (27, 7)\n", - "Number of columns : 7\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamecreated_atupdated_atextra_fieldquotaidentifier
030en nb entrées gr2020-09-03 13:21:20.019202+02:002020-09-03 13:21:20.019202+02:00NaNNaN849ab2791a14f5fc2bb4d87ab2b78bf6
116indiv activité enfant2020-09-03 13:11:23.306968+02:002020-09-03 13:11:23.306968+02:00NaNNaN425fd2f01984cc4ba030c1be98f42c33
239indiv activité gr2020-09-03 13:21:20.029901+02:002020-09-03 13:21:20.029901+02:00NaNNaN9244dd3738788db0d22a5d0afe687b69
31108groupe forfait adulte2020-09-19 02:06:43.145697+02:002020-09-19 02:06:43.145697+02:00NaNNaN3edda20c877a93b5ff883827238eb711
46groupe forfait entrées tr2020-09-03 13:11:23.264997+02:002020-09-03 13:11:23.264997+02:00NaNNaNff48df4b2dd5a14116bf4d280b31621e
\n", - "
" - ], - "text/plain": [ - " id name created_at \\\n", - "0 30 en nb entrées gr 2020-09-03 13:21:20.019202+02:00 \n", - "1 16 indiv activité enfant 2020-09-03 13:11:23.306968+02:00 \n", - "2 39 indiv activité gr 2020-09-03 13:21:20.029901+02:00 \n", - "3 1108 groupe forfait adulte 2020-09-19 02:06:43.145697+02:00 \n", - "4 6 groupe forfait entrées tr 2020-09-03 13:11:23.264997+02:00 \n", - "\n", - " updated_at extra_field quota \\\n", - "0 2020-09-03 13:21:20.019202+02:00 NaN NaN \n", - "1 2020-09-03 13:11:23.306968+02:00 NaN NaN \n", - "2 2020-09-03 13:21:20.029901+02:00 NaN NaN \n", - "3 2020-09-19 02:06:43.145697+02:00 NaN NaN \n", - "4 2020-09-03 13:11:23.264997+02:00 NaN NaN \n", - "\n", - " identifier \n", - "0 849ab2791a14f5fc2bb4d87ab2b78bf6 \n", - "1 425fd2f01984cc4ba030c1be98f42c33 \n", - "2 9244dd3738788db0d22a5d0afe687b69 \n", - "3 3edda20c877a93b5ff883827238eb711 \n", - "4 ff48df4b2dd5a14116bf4d280b31621e " - ] - }, - "execution_count": 316, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = display_databases(name_dataset)\n", - "print(\"Number of columns : \", len(df.columns))\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 317, - "id": "99eb6d14-8b4b-4d55-8fc7-ddf2726096f4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of columns : 5\n", - "Columns : Index(['id', 'identifier', 'name', 'extra_field', 'quota'], dtype='object')\n", - "Percent of NA for each column : id 0.000000\n", - "identifier 0.000000\n", - "name 3.703704\n", - "extra_field 100.000000\n", - "quota 100.000000\n", - "dtype: float64\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ididentifiernameextra_fieldquota
030849ab2791a14f5fc2bb4d87ab2b78bf6en nb entrées grNaNNaN
116425fd2f01984cc4ba030c1be98f42c33indiv activité enfantNaNNaN
2399244dd3738788db0d22a5d0afe687b69indiv activité grNaNNaN
311083edda20c877a93b5ff883827238eb711groupe forfait adulteNaNNaN
46ff48df4b2dd5a14116bf4d280b31621egroupe forfait entrées trNaNNaN
\n", - "
" - ], - "text/plain": [ - " id identifier name \\\n", - "0 30 849ab2791a14f5fc2bb4d87ab2b78bf6 en nb entrées gr \n", - "1 16 425fd2f01984cc4ba030c1be98f42c33 indiv activité enfant \n", - "2 39 9244dd3738788db0d22a5d0afe687b69 indiv activité gr \n", - "3 1108 3edda20c877a93b5ff883827238eb711 groupe forfait adulte \n", - "4 6 ff48df4b2dd5a14116bf4d280b31621e groupe forfait entrées tr \n", - "\n", - " extra_field quota \n", - "0 NaN NaN \n", - "1 NaN NaN \n", - "2 NaN NaN \n", - "3 NaN NaN \n", - "4 NaN NaN " - ] - }, - "execution_count": 317, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = process_df(df)\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 318, - "id": "c5f39cc9-dff8-452c-9a3e-9f7df81a8a19", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "id int64\n", - "identifier object\n", - "name object\n", - "extra_field float64\n", - "quota float64\n", - "dtype: object" - ] - }, - "execution_count": 318, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.dtypes" - ] - }, - { - "cell_type": "markdown", - "id": "c4cb0b37-2262-45c0-97be-b12c503016e3", - "metadata": {}, - "source": [ - "#### Deep analysis of type_of_categories.csv" - ] - }, - { - "cell_type": "markdown", - "id": "3b4a3af9-ed12-43ec-b17e-fd425b238265", - "metadata": {}, - "source": [ - "#### Deep analysis of representation_category_capacities.csv" - ] - }, - { - "cell_type": "markdown", - "id": "135966fb-aab1-48d7-bb4c-39a53ee643ca", - "metadata": {}, - "source": [ - "#### Deep analysis of representations.csv" - ] - }, - { - "cell_type": "markdown", - "id": "b480f39f-d5c7-4ded-8f64-ea8ac31f5db5", - "metadata": {}, - "source": [ - "#### Deep analysis of events.csv" - ] - }, - { - "cell_type": "code", - "execution_count": 319, - "id": "2d52d6da-cca5-4abd-be05-2f00fd3eca8e", - "metadata": {}, - "outputs": [], - "source": [ - "name_dataset = '1events.csv'" - ] - }, - { - "cell_type": "code", - "execution_count": 320, - "id": "6cab507d-8b11-404d-9286-5cc205228af9", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1events.csv\n", - "Shape : (1232, 12)\n", - "Number of columns : 12\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idcreated_atupdated_atseason_idfacility_idnameevent_type_idmanual_addedis_displayevent_type_key_idfacility_key_ididentifier
01922020-09-03 13:36:42.216991+02:002021-11-02 15:06:40.663219+01:00161frontières4FalseTrue41c1cecd093146068fd57896e254e98170
1303292023-11-04 02:50:34.602462+01:002023-11-04 02:52:26.138154+01:0027671visite guidée une autre histoire du monde (1h00)5FalseTrue51f510a6710878d7aca36e71c54abab525
21612020-09-03 13:29:27.944002+02:002021-11-02 15:06:40.652026+01:00161visite contée les chercheurs d'or indiv2FalseTrue2121177fa9acad1ae2b1f595690fb853d3
359572021-07-31 11:16:42.575583+02:002021-11-02 15:06:40.663219+01:005821we dreamt of utopia and we woke up screaming.4FalseTrue41962601f1eb153d45d49437f8fe839f7f
483372021-08-17 13:40:34.111923+02:002021-11-02 15:06:40.663219+01:005821jeff koons épisodes 44FalseTrue41bfa22f5a2364a2dacfc45cca1c8d3215
\n", - "
" - ], - "text/plain": [ - " id created_at updated_at \\\n", - "0 192 2020-09-03 13:36:42.216991+02:00 2021-11-02 15:06:40.663219+01:00 \n", - "1 30329 2023-11-04 02:50:34.602462+01:00 2023-11-04 02:52:26.138154+01:00 \n", - "2 161 2020-09-03 13:29:27.944002+02:00 2021-11-02 15:06:40.652026+01:00 \n", - "3 5957 2021-07-31 11:16:42.575583+02:00 2021-11-02 15:06:40.663219+01:00 \n", - "4 8337 2021-08-17 13:40:34.111923+02:00 2021-11-02 15:06:40.663219+01:00 \n", - "\n", - " season_id facility_id name \\\n", - "0 16 1 frontières \n", - "1 2767 1 visite guidée une autre histoire du monde (1h00) \n", - "2 16 1 visite contée les chercheurs d'or indiv \n", - "3 582 1 we dreamt of utopia and we woke up screaming. \n", - "4 582 1 jeff koons épisodes 4 \n", - "\n", - " event_type_id manual_added is_display event_type_key_id \\\n", - "0 4 False True 4 \n", - "1 5 False True 5 \n", - "2 2 False True 2 \n", - "3 4 False True 4 \n", - "4 4 False True 4 \n", - "\n", - " facility_key_id identifier \n", - "0 1 c1cecd093146068fd57896e254e98170 \n", - "1 1 f510a6710878d7aca36e71c54abab525 \n", - "2 1 21177fa9acad1ae2b1f595690fb853d3 \n", - "3 1 962601f1eb153d45d49437f8fe839f7f \n", - "4 1 bfa22f5a2364a2dacfc45cca1c8d3215 " - ] - }, - "execution_count": 320, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = display_databases(name_dataset)\n", - "print(\"Number of columns : \", len(df.columns))\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 321, - "id": "9fe57873-8108-44c9-b8a5-f58d3cbb6d17", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of columns : 10\n", - "Columns : Index(['id', 'season_id', 'facility_id', 'event_type_id', 'event_type_key_id',\n", - " 'facility_key_id', 'identifier', 'name', 'manual_added', 'is_display'],\n", - " dtype='object')\n", - "Percent of NA for each column : id 0.000000\n", - "season_id 0.000000\n", - "facility_id 0.000000\n", - "event_type_id 0.000000\n", - "event_type_key_id 0.000000\n", - "facility_key_id 0.000000\n", - "identifier 0.000000\n", - "name 0.974026\n", - "manual_added 0.000000\n", - "is_display 0.000000\n", - "dtype: float64\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idseason_idfacility_idevent_type_idevent_type_key_idfacility_key_ididentifiernamemanual_addedis_display
0192161441c1cecd093146068fd57896e254e98170frontièresFalseTrue
13032927671551f510a6710878d7aca36e71c54abab525visite guidée une autre histoire du monde (1h00)FalseTrue
216116122121177fa9acad1ae2b1f595690fb853d3visite contée les chercheurs d'or indivFalseTrue
359575821441962601f1eb153d45d49437f8fe839f7fwe dreamt of utopia and we woke up screaming.FalseTrue
483375821441bfa22f5a2364a2dacfc45cca1c8d3215jeff koons épisodes 4FalseTrue
\n", - "
" - ], - "text/plain": [ - " id season_id facility_id event_type_id event_type_key_id \\\n", - "0 192 16 1 4 4 \n", - "1 30329 2767 1 5 5 \n", - "2 161 16 1 2 2 \n", - "3 5957 582 1 4 4 \n", - "4 8337 582 1 4 4 \n", - "\n", - " facility_key_id identifier \\\n", - "0 1 c1cecd093146068fd57896e254e98170 \n", - "1 1 f510a6710878d7aca36e71c54abab525 \n", - "2 1 21177fa9acad1ae2b1f595690fb853d3 \n", - "3 1 962601f1eb153d45d49437f8fe839f7f \n", - "4 1 bfa22f5a2364a2dacfc45cca1c8d3215 \n", - "\n", - " name manual_added is_display \n", - "0 frontières False True \n", - "1 visite guidée une autre histoire du monde (1h00) False True \n", - "2 visite contée les chercheurs d'or indiv False True \n", - "3 we dreamt of utopia and we woke up screaming. False True \n", - "4 jeff koons épisodes 4 False True " - ] - }, - "execution_count": 321, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = process_df(df)\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 322, - "id": "7fd9e5bd-baac-4b3b-9ffb-5a9baa18399b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "id int64\n", - "season_id int64\n", - "facility_id int64\n", - "event_type_id int64\n", - "event_type_key_id int64\n", - "facility_key_id int64\n", - "identifier object\n", - "name object\n", - "manual_added bool\n", - "is_display bool\n", - "dtype: object" - ] - }, - "execution_count": 322, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.dtypes" - ] - }, - { - "cell_type": "markdown", - "id": "24186efa-5908-4b03-bf52-96415fc8bd54", - "metadata": {}, - "source": [ - "#### Deep analysis of event_types.csv" - ] - }, - { - "cell_type": "code", - "execution_count": 323, - "id": "90ab62d4-a086-4469-961c-67eefb375388", - "metadata": {}, - "outputs": [], - "source": [ - "name_dataset = '1event_types.csv'" - ] - }, - { - "cell_type": "code", - "execution_count": 324, - "id": "58db1751-fd56-4c28-b49e-bc8235bb0dc8", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1event_types.csv\n", - "Shape : (9, 6)\n", - "Number of columns : 6\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamecreated_atupdated_atfidelity_delayidentifier
01standard2020-09-03 12:24:22.574262+02:002020-09-03 12:24:22.574262+02:0036c00f0c4675b91fb8b918e4079a0b1bac
166package2020-09-03 14:05:04.648137+02:002020-09-03 14:05:04.648137+02:0036efe90a8e604a7c840e88d03a67f6b7d8
283guide multimédias2020-09-03 14:15:17.252539+02:002020-09-03 14:15:17.252539+02:0036ee14c62b3b9f6c7dd5401685a18e4460
33non défini2020-09-03 13:11:23.117024+02:002020-09-03 13:11:23.117024+02:003652ff3466787b4d538407372e5f7afe0f
42723NaN2021-12-22 09:45:47.715105+01:002021-12-22 09:45:47.715105+01:0036d41d8cd98f00b204e9800998ecf8427e
\n", - "
" - ], - "text/plain": [ - " id name created_at \\\n", - "0 1 standard 2020-09-03 12:24:22.574262+02:00 \n", - "1 66 package 2020-09-03 14:05:04.648137+02:00 \n", - "2 83 guide multimédias 2020-09-03 14:15:17.252539+02:00 \n", - "3 3 non défini 2020-09-03 13:11:23.117024+02:00 \n", - "4 2723 NaN 2021-12-22 09:45:47.715105+01:00 \n", - "\n", - " updated_at fidelity_delay \\\n", - "0 2020-09-03 12:24:22.574262+02:00 36 \n", - "1 2020-09-03 14:05:04.648137+02:00 36 \n", - "2 2020-09-03 14:15:17.252539+02:00 36 \n", - "3 2020-09-03 13:11:23.117024+02:00 36 \n", - "4 2021-12-22 09:45:47.715105+01:00 36 \n", - "\n", - " identifier \n", - "0 c00f0c4675b91fb8b918e4079a0b1bac \n", - "1 efe90a8e604a7c840e88d03a67f6b7d8 \n", - "2 ee14c62b3b9f6c7dd5401685a18e4460 \n", - "3 52ff3466787b4d538407372e5f7afe0f \n", - "4 d41d8cd98f00b204e9800998ecf8427e " - ] - }, - "execution_count": 324, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = display_databases(name_dataset)\n", - "print(\"Number of columns : \", len(df.columns))\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 325, - "id": "ac93382c-0b5f-462d-8021-0dd1e7201b8c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of columns : 4\n", - "Columns : Index(['id', 'fidelity_delay', 'identifier', 'name'], dtype='object')\n", - "Percent of NA for each column : id 0.000000\n", - "fidelity_delay 0.000000\n", - "identifier 0.000000\n", - "name 11.111111\n", - "dtype: float64\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idfidelity_delayidentifiername
0136c00f0c4675b91fb8b918e4079a0b1bacstandard
16636efe90a8e604a7c840e88d03a67f6b7d8package
28336ee14c62b3b9f6c7dd5401685a18e4460guide multimédias
333652ff3466787b4d538407372e5f7afe0fnon défini
4272336d41d8cd98f00b204e9800998ecf8427eNaN
\n", - "
" - ], - "text/plain": [ - " id fidelity_delay identifier name\n", - "0 1 36 c00f0c4675b91fb8b918e4079a0b1bac standard\n", - "1 66 36 efe90a8e604a7c840e88d03a67f6b7d8 package\n", - "2 83 36 ee14c62b3b9f6c7dd5401685a18e4460 guide multimédias\n", - "3 3 36 52ff3466787b4d538407372e5f7afe0f non défini\n", - "4 2723 36 d41d8cd98f00b204e9800998ecf8427e NaN" - ] - }, - "execution_count": 325, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = process_df(df)\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 326, - "id": "18cbd630-3c7d-49e1-932b-9460badf3758", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "id int64\n", - "fidelity_delay int64\n", - "identifier object\n", - "name object\n", - "dtype: object" - ] - }, - "execution_count": 326, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.dtypes" - ] - }, - { - "cell_type": "markdown", - "id": "5847a441-31b9-4802-a5ae-90d8c6d6e153", - "metadata": {}, - "source": [ - "#### Deep analysis of seasons.csv" - ] - }, - { - "cell_type": "code", - "execution_count": 327, - "id": "ae544dcc-f23d-4216-bb5b-597cc1b3765e", - "metadata": {}, - "outputs": [], - "source": [ - "name_dataset = '1seasons.csv'" - ] - }, - { - "cell_type": "code", - "execution_count": 328, - "id": "1ac97963-9208-4329-be41-d71a5797487f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1seasons.csv\n", - "Shape : (13, 6)\n", - "Number of columns : 6\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamecreated_atupdated_atstart_date_timeidentifier
094320132021-07-29 08:55:33.282607+02:002021-07-29 08:55:33.282607+02:00NaN8038da89e49ac5eabb489cfc6cea9fc1
112920142020-09-03 15:13:08.105567+02:002020-09-03 15:13:08.105567+02:00NaNcee8d6b7ce52554fd70354e37bbf44a2
2320152020-09-03 13:11:19.405037+02:002020-09-03 13:11:19.405037+02:00NaN65d2ea03425887a717c435081cfc5dbb
3220162020-09-03 13:11:19.401001+02:002020-09-03 13:11:19.401001+02:00NaN95192c98732387165bf8e396c0f2dad2
4420172020-09-03 13:11:19.409005+02:002020-09-03 13:11:19.409005+02:00NaN8d8818c8e140c64c743113f563cf750f
\n", - "
" - ], - "text/plain": [ - " id name created_at \\\n", - "0 943 2013 2021-07-29 08:55:33.282607+02:00 \n", - "1 129 2014 2020-09-03 15:13:08.105567+02:00 \n", - "2 3 2015 2020-09-03 13:11:19.405037+02:00 \n", - "3 2 2016 2020-09-03 13:11:19.401001+02:00 \n", - "4 4 2017 2020-09-03 13:11:19.409005+02:00 \n", - "\n", - " updated_at start_date_time \\\n", - "0 2021-07-29 08:55:33.282607+02:00 NaN \n", - "1 2020-09-03 15:13:08.105567+02:00 NaN \n", - "2 2020-09-03 13:11:19.405037+02:00 NaN \n", - "3 2020-09-03 13:11:19.401001+02:00 NaN \n", - "4 2020-09-03 13:11:19.409005+02:00 NaN \n", - "\n", - " identifier \n", - "0 8038da89e49ac5eabb489cfc6cea9fc1 \n", - "1 cee8d6b7ce52554fd70354e37bbf44a2 \n", - "2 65d2ea03425887a717c435081cfc5dbb \n", - "3 95192c98732387165bf8e396c0f2dad2 \n", - "4 8d8818c8e140c64c743113f563cf750f " - ] - }, - "execution_count": 328, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = display_databases(name_dataset)\n", - "print(\"Number of columns : \", len(df.columns))\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 329, - "id": "b4593d46-105c-47dd-aa71-babd8e63e65b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of columns : 4\n", - "Columns : Index(['id', 'identifier', 'name', 'start_date_time'], dtype='object')\n", - "Percent of NA for each column : id 0.000000\n", - "identifier 0.000000\n", - "name 7.692308\n", - "start_date_time 100.000000\n", - "dtype: float64\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ididentifiernamestart_date_time
09438038da89e49ac5eabb489cfc6cea9fc12013NaN
1129cee8d6b7ce52554fd70354e37bbf44a22014NaN
2365d2ea03425887a717c435081cfc5dbb2015NaN
3295192c98732387165bf8e396c0f2dad22016NaN
448d8818c8e140c64c743113f563cf750f2017NaN
\n", - "
" - ], - "text/plain": [ - " id identifier name start_date_time\n", - "0 943 8038da89e49ac5eabb489cfc6cea9fc1 2013 NaN\n", - "1 129 cee8d6b7ce52554fd70354e37bbf44a2 2014 NaN\n", - "2 3 65d2ea03425887a717c435081cfc5dbb 2015 NaN\n", - "3 2 95192c98732387165bf8e396c0f2dad2 2016 NaN\n", - "4 4 8d8818c8e140c64c743113f563cf750f 2017 NaN" - ] - }, - "execution_count": 329, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = process_df(df)\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 330, - "id": "5d3b096d-8e73-4514-94e5-f2dcd4d0a89c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "id int64\n", - "identifier object\n", - "name object\n", - "start_date_time float64\n", - "dtype: object" - ] - }, - "execution_count": 330, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.dtypes" - ] - }, - { - "cell_type": "markdown", - "id": "a7b00bc7-eae6-457c-ac68-a4a55a6d1c8c", - "metadata": {}, - "source": [ - "#### Deep Analysis of facilities.csv" - ] - }, - { - "cell_type": "code", - "execution_count": 331, - "id": "d95ef015-d44c-4353-8761-771b910d21c9", - "metadata": {}, - "outputs": [], - "source": [ - "name_dataset = '1facilities.csv'" - ] - }, - { - "cell_type": "code", - "execution_count": 332, - "id": "ef5fe794-8df7-4f27-8554-ecdc4074ac0b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1facilities.csv\n", - "Shape : (2, 7)\n", - "Number of columns : 7\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnamecreated_atupdated_atstreet_idfixed_capacityidentifier
02non défini2020-09-03 13:16:35.293111+02:002020-09-03 13:16:35.293111+02:002NaN52ff3466787b4d538407372e5f7afe0f
11mucem2020-09-03 13:11:23.133059+02:002020-09-03 13:11:23.133059+02:001NaN702bd76fe3dd5dbcf118a6965a946f54
\n", - "
" - ], - "text/plain": [ - " id name created_at \\\n", - "0 2 non défini 2020-09-03 13:16:35.293111+02:00 \n", - "1 1 mucem 2020-09-03 13:11:23.133059+02:00 \n", - "\n", - " updated_at street_id fixed_capacity \\\n", - "0 2020-09-03 13:16:35.293111+02:00 2 NaN \n", - "1 2020-09-03 13:11:23.133059+02:00 1 NaN \n", - "\n", - " identifier \n", - "0 52ff3466787b4d538407372e5f7afe0f \n", - "1 702bd76fe3dd5dbcf118a6965a946f54 " - ] - }, - "execution_count": 332, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = display_databases(name_dataset)\n", - "print(\"Number of columns : \", len(df.columns))\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 333, - "id": "e3621201-fab9-49fd-95c1-0b9d5da76e50", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of columns : 5\n", - "Columns : Index(['id', 'street_id', 'identifier', 'name', 'fixed_capacity'], dtype='object')\n", - "Percent of NA for each column : id 0.0\n", - "street_id 0.0\n", - "identifier 0.0\n", - "name 0.0\n", - "fixed_capacity 100.0\n", - "dtype: float64\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idstreet_ididentifiernamefixed_capacity
02252ff3466787b4d538407372e5f7afe0fnon définiNaN
111702bd76fe3dd5dbcf118a6965a946f54mucemNaN
\n", - "
" - ], - "text/plain": [ - " id street_id identifier name fixed_capacity\n", - "0 2 2 52ff3466787b4d538407372e5f7afe0f non défini NaN\n", - "1 1 1 702bd76fe3dd5dbcf118a6965a946f54 mucem NaN" - ] - }, - "execution_count": 333, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = process_df(df)\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 334, - "id": "1b198b92-8654-4531-a0dd-8f2e01c2e6c1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "id int64\n", - "street_id int64\n", - "identifier object\n", - "name object\n", - "fixed_capacity float64\n", - "dtype: object" - ] - }, - "execution_count": 334, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.dtypes" - ] - }, - { - "cell_type": "markdown", - "id": "ab5c4c2d-3e04-457d-a183-e173df89b650", - "metadata": {}, - "source": [ - "## Merge" - ] - }, - { - "cell_type": "code", - "execution_count": 335, - "id": "43576244-c8cf-4ca0-b056-7aea1fbf0bc7", - "metadata": {}, - "outputs": [], - "source": [ - "def process_df_2(df):\n", - " df = remove_horodates(df)\n", - " print(\"Number of columns : \", len(df.columns))\n", - " df = order_columns_id(df)\n", - " print(\"Columns : \", df.columns)\n", - " return df" - ] - }, - { - "cell_type": "code", - "execution_count": 336, - "id": "0fad097e-474c-4af7-b1e1-7d8dda3f09ea", - "metadata": {}, - "outputs": [], - "source": [ - "def load_dataset(name):\n", - " df = display_databases(name)\n", - " df = process_df_2(df)\n", - " # drop na :\n", - " #df = df.dropna(axis=1, thresh=len(df))\n", - " # if identifier in table : delete it\n", - " if 'identifier' in df.columns:\n", - " df = df.drop(columns = 'identifier')\n", - " return df" - ] - }, - { - "cell_type": "markdown", - "id": "b60034ef-fdd6-4640-a012-cf74c17b333f", - "metadata": {}, - "source": [ - "### Products Table" - ] - }, - { - "cell_type": "code", - "execution_count": 337, - "id": "6213b1eb-c5f8-49dd-ab69-366542380e80", - "metadata": {}, - "outputs": [], - "source": [ - "def create_products_table():\n", - " # first merge products and categories\n", - " print(\"first merge products and categories\")\n", - " products = load_dataset(\"1products.csv\")\n", - " categories = load_dataset(\"1categories.csv\")\n", - " # Drop useless columns\n", - " products = products.drop(columns = ['apply_price', 'extra_field', 'amount_consumption'])\n", - " categories = categories.drop(columns = ['extra_field', 'quota'])\n", - "\n", - " #Merge\n", - " products_theme = products.merge(categories, how = 'left', left_on = 'category_id',\n", - " right_on = 'id', suffixes=('_products', '_categories'))\n", - " products_theme = products_theme.rename(columns = {\"name\" : \"name_categories\"})\n", - " \n", - " # Second merge products_theme and type of categories\n", - " print(\"Second merge products_theme and type of categories\")\n", - " type_of_categories = load_dataset(\"1type_of_categories.csv\")\n", - " type_of_categories = type_of_categories.drop(columns = 'id')\n", - " products_theme = products_theme.merge(type_of_categories, how = 'left', left_on = 'category_id',\n", - " right_on = 'category_id' )\n", - "\n", - " # Index cleaning\n", - " products_theme = products_theme.drop(columns = ['id_categories'])\n", - " products_theme = order_columns_id(products_theme)\n", - "\n", - " \n", - "\n", - " return products_theme" - ] - }, - { - "cell_type": "code", - "execution_count": 338, - "id": "b853e020-f73d-44e8-b086-e5548ce21011", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "first merge products and categories\n", - "File path : bdc2324-data/1/1products.csv\n", - "Shape : (94803, 14)\n", - "Number of columns : 12\n", - "Columns : Index(['id', 'representation_id', 'pricing_formula_id', 'category_id',\n", - " 'products_group_id', 'product_pack_id', 'identifier', 'amount',\n", - " 'is_full_price', 'apply_price', 'extra_field', 'amount_consumption'],\n", - " dtype='object')\n", - "File path : bdc2324-data/1/1categories.csv\n", - "Shape : (27, 7)\n", - "Number of columns : 5\n", - "Columns : Index(['id', 'identifier', 'name', 'extra_field', 'quota'], dtype='object')\n", - "Second merge products_theme and type of categories\n", - "File path : bdc2324-data/1/1type_of_categories.csv\n", - "Shape : (5, 6)\n", - "Number of columns : 4\n", - "Columns : Index(['id', 'type_of_id', 'category_id', 'identifier'], dtype='object')\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
id_productsrepresentation_idpricing_formula_idcategory_idproducts_group_idproduct_pack_idtype_of_idamountis_full_pricename_categories
01068291411441106551NaN9.0Falseindiv activité tr
14782731311471112.09.5Falseindiv entrées tp
220873275137120825112.011.5Falseindiv entrées tp
315714282519951567731NaN8.0Falseindiv entrées tr
4134199311175112.08.5Falseindiv entrées tp
\n", - "
" - ], - "text/plain": [ - " id_products representation_id pricing_formula_id category_id \\\n", - "0 10682 914 114 41 \n", - "1 478 273 131 1 \n", - "2 20873 275 137 1 \n", - "3 157142 82519 9 5 \n", - "4 1341 9 93 1 \n", - "\n", - " products_group_id product_pack_id type_of_id amount is_full_price \\\n", - "0 10655 1 NaN 9.0 False \n", - "1 471 1 12.0 9.5 False \n", - "2 20825 1 12.0 11.5 False \n", - "3 156773 1 NaN 8.0 False \n", - "4 1175 1 12.0 8.5 False \n", - "\n", - " name_categories \n", - "0 indiv activité tr \n", - "1 indiv entrées tp \n", - "2 indiv entrées tp \n", - "3 indiv entrées tr \n", - "4 indiv entrées tp " - ] - }, - "execution_count": 338, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "products_theme = create_products_table()\n", - "products_theme.head()" - ] - }, - { - "cell_type": "markdown", - "id": "8bd7b7ab-fd04-48d2-898b-48c5815457f3", - "metadata": {}, - "source": [ - "### Events Table" - ] - }, - { - "cell_type": "code", - "execution_count": 339, - "id": "6ed0ad20-8315-4112-9a85-10e5f04ef852", - "metadata": {}, - "outputs": [], - "source": [ - "def create_events_table():\n", - " # first merge events and seasons : \n", - " print(\"first merge events and seasons : \")\n", - " events = load_dataset(\"1events.csv\")\n", - " seasons = load_dataset(\"1seasons.csv\")\n", - "\n", - " # Drop useless columns\n", - " events = events.drop(columns = ['manual_added', 'is_display'])\n", - " seasons = seasons.drop(columns = ['start_date_time'])\n", - " \n", - " events_theme = events.merge(seasons, how = 'left', left_on = 'season_id', right_on = 'id', suffixes=('_events', '_seasons'))\n", - "\n", - " # Secondly merge events_theme and event_types\n", - " print(\"Secondly merge events_theme and event_types : \")\n", - " event_types = load_dataset(\"1event_types.csv\")\n", - " event_types = event_types.drop(columns = ['fidelity_delay'])\n", - " \n", - " events_theme = events_theme.merge(event_types, how = 'left', left_on = 'event_type_id', right_on = 'id', suffixes=('_events', '_event_type'))\n", - " events_theme = events_theme.rename(columns = {\"name\" : \"name_event_types\"})\n", - " events_theme = events_theme.drop(columns = 'id')\n", - "\n", - " # thirdly merge events_theme and facilities\n", - " print(\"thirdly merge events_theme and facilities : \")\n", - " facilities = load_dataset(\"1facilities.csv\")\n", - " facilities = facilities.drop(columns = ['fixed_capacity'])\n", - " \n", - " events_theme = events_theme.merge(facilities, how = 'left', left_on = 'facility_id', right_on = 'id', suffixes=('_events', '_facility'))\n", - " events_theme = events_theme.rename(columns = {\"name\" : \"name_facilities\", \"id_events\" : \"event_id\"})\n", - " events_theme = events_theme.drop(columns = 'id')\n", - "\n", - " # Index cleaning\n", - " events_theme = events_theme.drop(columns = ['id_seasons'])\n", - " events_theme = order_columns_id(events_theme)\n", - " return events_theme" - ] - }, - { - "cell_type": "code", - "execution_count": 340, - "id": "98ef0636-8c45-4a23-a62a-1fbe1544f8ce", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "first merge events and seasons : \n", - "File path : bdc2324-data/1/1events.csv\n", - "Shape : (1232, 12)\n", - "Number of columns : 10\n", - "Columns : Index(['id', 'season_id', 'facility_id', 'event_type_id', 'event_type_key_id',\n", - " 'facility_key_id', 'identifier', 'name', 'manual_added', 'is_display'],\n", - " dtype='object')\n", - "File path : bdc2324-data/1/1seasons.csv\n", - "Shape : (13, 6)\n", - "Number of columns : 4\n", - "Columns : Index(['id', 'identifier', 'name', 'start_date_time'], dtype='object')\n", - "Secondly merge events_theme and event_types : \n", - "File path : bdc2324-data/1/1event_types.csv\n", - "Shape : (9, 6)\n", - "Number of columns : 4\n", - "Columns : Index(['id', 'fidelity_delay', 'identifier', 'name'], dtype='object')\n", - "thirdly merge events_theme and facilities : \n", - "File path : bdc2324-data/1/1facilities.csv\n", - "Shape : (2, 7)\n", - "Number of columns : 5\n", - "Columns : Index(['id', 'street_id', 'identifier', 'name', 'fixed_capacity'], dtype='object')\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
event_idseason_idfacility_idevent_type_idevent_type_key_idfacility_key_idstreet_idname_eventsname_seasonsname_event_typesname_facilities
01921614411frontières2018spectacle vivantmucem
130329276715511visite guidée une autre histoire du monde (1h00)2023offre muséale groupemucem
21611612211visite contée les chercheurs d'or indiv2018offre muséale individuelmucem
3595758214411we dreamt of utopia and we woke up screaming.2021spectacle vivantmucem
4833758214411jeff koons épisodes 42021spectacle vivantmucem
\n", - "
" - ], - "text/plain": [ - " event_id season_id facility_id event_type_id event_type_key_id \\\n", - "0 192 16 1 4 4 \n", - "1 30329 2767 1 5 5 \n", - "2 161 16 1 2 2 \n", - "3 5957 582 1 4 4 \n", - "4 8337 582 1 4 4 \n", - "\n", - " facility_key_id street_id \\\n", - "0 1 1 \n", - "1 1 1 \n", - "2 1 1 \n", - "3 1 1 \n", - "4 1 1 \n", - "\n", - " name_events name_seasons \\\n", - "0 frontières 2018 \n", - "1 visite guidée une autre histoire du monde (1h00) 2023 \n", - "2 visite contée les chercheurs d'or indiv 2018 \n", - "3 we dreamt of utopia and we woke up screaming. 2021 \n", - "4 jeff koons épisodes 4 2021 \n", - "\n", - " name_event_types name_facilities \n", - "0 spectacle vivant mucem \n", - "1 offre muséale groupe mucem \n", - "2 offre muséale individuel mucem \n", - "3 spectacle vivant mucem \n", - "4 spectacle vivant mucem " - ] - }, - "execution_count": 340, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events_theme= create_events_table()\n", - "events_theme.head()" - ] - }, - { - "cell_type": "markdown", - "id": "4ad5b680-bb27-4f86-a5f3-7ff4fd1be96a", - "metadata": {}, - "source": [ - "## Representations_Table" - ] - }, - { - "cell_type": "code", - "execution_count": 341, - "id": "481dddd6-80a8-4b9e-a05e-ed06fa3ed7a6", - "metadata": {}, - "outputs": [], - "source": [ - "def create_representations_table():\n", - " representations = load_dataset(\"1representations.csv\")\n", - " representations = representations.drop(columns = ['serial', 'open', 'satisfaction', 'is_display', 'expected_filling',\n", - " 'max_filling', 'extra_field', 'start_date_time', 'end_date_time', 'name',\n", - " 'representation_type_id'])\n", - " \n", - " representations_capacity = load_dataset(\"1representation_category_capacities.csv\")\n", - " representations_capacity = representations_capacity.drop(columns = ['expected_filling', 'max_filling'])\n", - "\n", - " representations_theme = representations.merge(representations_capacity, how='left',\n", - " left_on='id', right_on='representation_id',\n", - " suffixes=('_representation', '_representation_cap'))\n", - " # index cleaning\n", - " representations_theme = representations_theme.drop(columns = [\"id_representation\"])\n", - " representations_theme = order_columns_id(representations_theme)\n", - " return representations_theme" - ] - }, - { - "cell_type": "code", - "execution_count": 342, - "id": "677f4ed8-ef58-45f2-9056-ede0898c6a64", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1representations.csv\n", - "Shape : (36095, 16)\n", - "Number of columns : 14\n", - "Columns : Index(['id', 'event_id', 'representation_type_id', 'identifier', 'serial',\n", - " 'start_date_time', 'open', 'satisfaction', 'end_date_time', 'name',\n", - " 'is_display', 'expected_filling', 'max_filling', 'extra_field'],\n", - " dtype='object')\n", - "File path : bdc2324-data/1/1representation_category_capacities.csv\n", - "Shape : (65241, 7)\n", - "Number of columns : 5\n", - "Columns : Index(['id', 'representation_id', 'category_id', 'expected_filling',\n", - " 'max_filling'],\n", - " dtype='object')\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
event_idid_representation_caprepresentation_idcategory_id
012384123058848202
13725142692
2373842695
337251526910
4373832691
\n", - "
" - ], - "text/plain": [ - " event_id id_representation_cap representation_id category_id\n", - "0 12384 123058 84820 2\n", - "1 37 2514 269 2\n", - "2 37 384 269 5\n", - "3 37 2515 269 10\n", - "4 37 383 269 1" - ] - }, - "execution_count": 342, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "representation_theme = create_representations_table()\n", - "representation_theme.head()" - ] - }, - { - "cell_type": "markdown", - "id": "e274e3cc-1b41-43e0-8412-1563166060cb", - "metadata": {}, - "source": [ - "## Price Table" - ] - }, - { - "cell_type": "code", - "execution_count": 343, - "id": "c52621e7-01de-48dc-b572-2974542a8be5", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1product_packs.csv\n", - "Shape : (1, 6)\n", - "Number of columns : 4\n", - "Columns : Index(['id', 'identifier', 'name', 'type_of'], dtype='object')\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnametype_of
01NaN0
\n", - "
" - ], - "text/plain": [ - " id name type_of\n", - "0 1 NaN 0" - ] - }, - "execution_count": 343, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "product_packs = load_dataset(\"1product_packs.csv\")\n", - "product_packs.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 344, - "id": "9e4f60ab-9a2c-4090-b0c4-f9a1530b2d39", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1pricing_formulas.csv\n", - "Shape : (556, 6)\n", - "Number of columns : 4\n", - "Columns : Index(['id', 'identifier', 'name', 'extra_field'], dtype='object')\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idnameextra_field
041909visite mécènes 1h30NaN
1502entree mucem tp( expo picasso)NaN
2504nombre de personnes cinemaNaN
3117spectacle tarif e famille trNaN
41496billet nb famille mecene 1aNaN
\n", - "
" - ], - "text/plain": [ - " id name extra_field\n", - "0 41909 visite mécènes 1h30 NaN\n", - "1 502 entree mucem tp( expo picasso) NaN\n", - "2 504 nombre de personnes cinema NaN\n", - "3 117 spectacle tarif e famille tr NaN\n", - "4 1496 billet nb famille mecene 1a NaN" - ] - }, - "execution_count": 344, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pricing_formula = load_dataset(\"1pricing_formulas.csv\")\n", - "pricing_formula.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 345, - "id": "247b5c45-a18a-4cfd-86b4-d3453e157bcd", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1type_of_pricing_formulas.csv\n", - "Shape : (568, 6)\n", - "Number of columns : 4\n", - "Columns : Index(['id', 'type_of_id', 'pricing_formula_id', 'identifier'], dtype='object')\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idtype_of_idpricing_formula_id
011127
1212425
2312937
34148
4517
\n", - "
" - ], - "text/plain": [ - " id type_of_id pricing_formula_id\n", - "0 1 1 127\n", - "1 2 1 2425\n", - "2 3 1 2937\n", - "3 4 1 48\n", - "4 5 1 7" - ] - }, - "execution_count": 345, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type_pricing_formula = load_dataset(\"1type_of_pricing_formulas.csv\")\n", - "type_pricing_formula.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 346, - "id": "4b48f7b3-0f06-4ef6-9355-5016af82f49c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1products_groups.csv\n", - "Shape : (92973, 9)\n", - "Number of columns : 7\n", - "Columns : Index(['id', 'category_id', 'pricing_formula_id', 'representation_id',\n", - " 'percent_price', 'max_price', 'min_price'],\n", - " dtype='object')\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idcategory_idpricing_formula_idrepresentation_idpercent_pricemax_pricemin_price
027358971534100.00.00.0
11567735982519100.00.00.0
21438716798046100.00.00.0
327702371563100.00.00.0
4271791311914192100.00.00.0
\n", - "
" - ], - "text/plain": [ - " id category_id pricing_formula_id representation_id percent_price \\\n", - "0 2735 8 97 1534 100.0 \n", - "1 156773 5 9 82519 100.0 \n", - "2 14387 16 79 8046 100.0 \n", - "3 2770 2 37 1563 100.0 \n", - "4 27179 13 119 14192 100.0 \n", - "\n", - " max_price min_price \n", - "0 0.0 0.0 \n", - "1 0.0 0.0 \n", - "2 0.0 0.0 \n", - "3 0.0 0.0 \n", - "4 0.0 0.0 " - ] - }, - "execution_count": 346, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "product_groups = load_dataset(\"1products_groups.csv\")\n", - "product_groups.head()" - ] - }, - { - "cell_type": "markdown", - "id": "71c26a38-6818-42df-8aee-0135681a5563", - "metadata": {}, - "source": [ - "## Uniform Products theme database" - ] - }, - { - "cell_type": "code", - "execution_count": 347, - "id": "b26f4e7e-134d-4e32-a615-4b0e6bb80b25", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Products theme columns : Index(['id_products', 'representation_id', 'pricing_formula_id', 'category_id',\n", - " 'products_group_id', 'product_pack_id', 'type_of_id', 'amount',\n", - " 'is_full_price', 'name_categories'],\n", - " dtype='object')\n", - "\n", - " Representation theme columns : Index(['event_id', 'id_representation_cap', 'representation_id',\n", - " 'category_id'],\n", - " dtype='object')\n", - "\n", - " Events theme columns : Index(['event_id', 'season_id', 'facility_id', 'event_type_id',\n", - " 'event_type_key_id', 'facility_key_id', 'street_id', 'name_events',\n", - " 'name_seasons', 'name_event_types', 'name_facilities'],\n", - " dtype='object')\n" - ] - } - ], - "source": [ - "print(\"Products theme columns : \", products_theme.columns)\n", - "print(\"\\n Representation theme columns : \", representation_theme.columns)\n", - "print(\"\\n Events theme columns : \", events_theme.columns)" - ] - }, - { - "cell_type": "code", - "execution_count": 348, - "id": "d40b1e3b-b1f3-4915-8ebc-6bb7856da42a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
id_productsrepresentation_idpricing_formula_idcategory_idproducts_group_idproduct_pack_idtype_of_idamountis_full_pricename_categoriesevent_idid_representation_cap
01068291411441106551NaN9.0Falseindiv activité tr1328789
14782731311471112.09.5Falseindiv entrées tp37390
220873275137120825112.011.5Falseindiv entrées tp37395
315714282519951567731NaN8.0Falseindiv entrées tr12365120199
4134199311175112.08.5Falseindiv entrées tp821
\n", - "
" - ], - "text/plain": [ - " id_products representation_id pricing_formula_id category_id \\\n", - "0 10682 914 114 41 \n", - "1 478 273 131 1 \n", - "2 20873 275 137 1 \n", - "3 157142 82519 9 5 \n", - "4 1341 9 93 1 \n", - "\n", - " products_group_id product_pack_id type_of_id amount is_full_price \\\n", - "0 10655 1 NaN 9.0 False \n", - "1 471 1 12.0 9.5 False \n", - "2 20825 1 12.0 11.5 False \n", - "3 156773 1 NaN 8.0 False \n", - "4 1175 1 12.0 8.5 False \n", - "\n", - " name_categories event_id id_representation_cap \n", - "0 indiv activité tr 132 8789 \n", - "1 indiv entrées tp 37 390 \n", - "2 indiv entrées tp 37 395 \n", - "3 indiv entrées tr 12365 120199 \n", - "4 indiv entrées tp 8 21 " - ] - }, - "execution_count": 348, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "products_global = products_theme.merge(representation_theme, how='left',\n", - " on= [\"representation_id\", \"category_id\"])\n", - "\n", - "\n", - "products_global.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 349, - "id": "78d75a08-e959-429c-847a-7d70a2804806", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
id_productsrepresentation_idpricing_formula_idcategory_idproducts_group_idproduct_pack_idtype_of_idevent_idid_representation_capseason_id...event_type_key_idfacility_key_idstreet_idamountis_full_pricename_categoriesname_eventsname_seasonsname_event_typesname_facilities
01068291411441106551NaN13287894...5119.0Falseindiv activité trvisite-jeu \"le classico des minots\" (1h30)2017offre muséale individuelmucem
14782731311471112.0373902...2119.5Falseindiv entrées tpbillet mucem picasso2016offre muséale individuelmucem
220873275137120825112.0373952...21111.5Falseindiv entrées tpbillet mucem picasso2016offre muséale individuelmucem
315714282519951567731NaN123651201991754...4118.0Falseindiv entrées trNaNNaNoffre muséale individuelmucem
4134199311175112.08214...6118.5Falseindiv entrées tpnon défini2017non définimucem
\n", - "

5 rows × 22 columns

\n", - "
" - ], - "text/plain": [ - " id_products representation_id pricing_formula_id category_id \\\n", - "0 10682 914 114 41 \n", - "1 478 273 131 1 \n", - "2 20873 275 137 1 \n", - "3 157142 82519 9 5 \n", - "4 1341 9 93 1 \n", - "\n", - " products_group_id product_pack_id type_of_id event_id \\\n", - "0 10655 1 NaN 132 \n", - "1 471 1 12.0 37 \n", - "2 20825 1 12.0 37 \n", - "3 156773 1 NaN 12365 \n", - "4 1175 1 12.0 8 \n", - "\n", - " id_representation_cap season_id ... event_type_key_id facility_key_id \\\n", - "0 8789 4 ... 5 1 \n", - "1 390 2 ... 2 1 \n", - "2 395 2 ... 2 1 \n", - "3 120199 1754 ... 4 1 \n", - "4 21 4 ... 6 1 \n", - "\n", - " street_id amount is_full_price name_categories \\\n", - "0 1 9.0 False indiv activité tr \n", - "1 1 9.5 False indiv entrées tp \n", - "2 1 11.5 False indiv entrées tp \n", - "3 1 8.0 False indiv entrées tr \n", - "4 1 8.5 False indiv entrées tp \n", - "\n", - " name_events name_seasons \\\n", - "0 visite-jeu \"le classico des minots\" (1h30) 2017 \n", - "1 billet mucem picasso 2016 \n", - "2 billet mucem picasso 2016 \n", - "3 NaN NaN \n", - "4 non défini 2017 \n", - "\n", - " name_event_types name_facilities \n", - "0 offre muséale individuel mucem \n", - "1 offre muséale individuel mucem \n", - "2 offre muséale individuel mucem \n", - "3 offre muséale individuel mucem \n", - "4 non défini mucem \n", - "\n", - "[5 rows x 22 columns]" - ] - }, - "execution_count": 349, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "products_global = products_global.merge(events_theme, how='left', on='event_id',\n", - " suffixes = (\"_representation\", \"_event\"))\n", - "products_global = order_columns_id(products_global)\n", - "products_global.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 350, - "id": "4a6950e8-4818-4df2-afa9-562e0921698c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['id_products', 'representation_id', 'pricing_formula_id', 'category_id',\n", - " 'products_group_id', 'product_pack_id', 'type_of_id', 'event_id',\n", - " 'id_representation_cap', 'season_id', 'facility_id', 'event_type_id',\n", - " 'event_type_key_id', 'facility_key_id', 'street_id', 'amount',\n", - " 'is_full_price', 'name_categories', 'name_events', 'name_seasons',\n", - " 'name_event_types', 'name_facilities'],\n", - " dtype='object')" - ] - }, - "execution_count": 350, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "products_global.columns" - ] - }, - { - "cell_type": "code", - "execution_count": 351, - "id": "b18f6428-90e0-4b1b-9b8d-bad995fb6c98", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(94803, 22)" - ] - }, - "execution_count": 351, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "products_global.shape" - ] - }, - { - "cell_type": "markdown", - "id": "c3caf2fd-178e-48e9-b95f-5798bd576f5d", - "metadata": {}, - "source": [ - "## Analysis of Products_global" - ] - }, - { - "cell_type": "code", - "execution_count": 352, - "id": "33ee07a2-d871-4436-9860-9be389bc4902", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "id_products 0\n", - "representation_id 0\n", - "pricing_formula_id 0\n", - "category_id 0\n", - "products_group_id 0\n", - "product_pack_id 0\n", - "type_of_id 67589\n", - "event_id 0\n", - "id_representation_cap 0\n", - "season_id 0\n", - "facility_id 0\n", - "event_type_id 0\n", - "event_type_key_id 0\n", - "facility_key_id 0\n", - "street_id 0\n", - "amount 0\n", - "is_full_price 0\n", - "name_categories 3991\n", - "name_events 46657\n", - "name_seasons 30663\n", - "name_event_types 0\n", - "name_facilities 0\n", - "dtype: int64" - ] - }, - "execution_count": 352, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "products_global.isna().sum()" - ] - }, - { - "cell_type": "code", - "execution_count": 353, - "id": "557fc475-4417-4d9f-8d4e-8c49bc42367f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['offre muséale individuel', 'non défini', 'spectacle vivant',\n", - " 'offre muséale groupe', 'formule adhésion'], dtype=object)" - ] - }, - "execution_count": 353, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# how many event types ?\n", - "\n", - "products_global['name_event_types'].unique()" - ] - }, - { - "cell_type": "code", - "execution_count": 354, - "id": "a9b9a23c-b0de-4685-97e5-d52dd78349f5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "644" - ] - }, - "execution_count": 354, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# how many events ?\n", - "\n", - "len(products_global['name_events'].unique())" - ] - }, - { - "cell_type": "code", - "execution_count": 355, - "id": "fb374c72-58ca-404d-a86b-e834a2fc4a34", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['indiv activité tr', 'indiv entrées tp', 'indiv entrées tr',\n", - " 'indiv prog enfant', 'indiv activité gr', 'indiv prog gr',\n", - " 'indiv activité tp', 'indiv activité enfant', 'indiv entrées gr',\n", - " 'groupe forfait entrées tr', 'groupe autonome adulte',\n", - " 'indiv prog tp', 'indiv prog tr', 'indiv entrées fa',\n", - " 'groupe forfait scolaire', 'en nb entrées tr', 'non défini', nan,\n", - " 'en nb entrées gr', 'groupe autonome entrées gr',\n", - " 'groupe forfait entrées gr', 'groupe autonome entrées tr',\n", - " 'en nb entrées tp', 'groupe autonome gr',\n", - " 'groupe autonome entrées tp', 'groupe forfait adulte',\n", - " 'groupe forfait etudiant'], dtype=object)" - ] - }, - "execution_count": 355, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# how many categories ?\n", - "products_global['name_categories'].unique()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 356, - "id": "11f89771-8d50-4ef4-b34e-53e4f6b419bb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "27" - ] - }, - "execution_count": 356, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(products_global['category_id'].unique())" - ] - }, - { - "cell_type": "code", - "execution_count": 357, - "id": "8add1ff2-b7e8-4381-90d8-d18d8660ed39", - "metadata": {}, - "outputs": [], - "source": [ - "def uniform_product_df():\n", - " \"\"\"\n", - " This function returns the uniform product dataset\n", - " \"\"\"\n", - " print(\"Products theme columns : \", products_theme.columns)\n", - " print(\"\\n Representation theme columns : \", representation_theme.columns)\n", - " print(\"\\n Events theme columns : \", events_theme.columns)\n", - "\n", - " products_global = products_theme.merge(representation_theme, how='left',\n", - " on= [\"representation_id\", \"category_id\"])\n", - " \n", - " products_global = products_global.merge(events_theme, how='left', on='event_id',\n", - " suffixes = (\"_representation\", \"_event\"))\n", - " \n", - " products_global = order_columns_id(products_global)\n", - "\n", - " # remove useless columns \n", - " products_global = products_global.drop(columns = ['type_of_id', 'name_events', 'name_seasons', 'name_categories'])\n", - " return products_global\n", - " " - ] - }, - { - "cell_type": "markdown", - "id": "b9303d35-4449-4cb6-887b-73a75f3cb868", - "metadata": {}, - "source": [ - "# Investigate Customer Plus" - ] - }, - { - "cell_type": "code", - "execution_count": 358, - "id": "1fd9dcb0-164a-4fd0-90c3-2fd9e7b44016", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "File path : bdc2324-data/1/1customersplus.csv\n", - "Shape : (151866, 43)\n", - "Number of columns : 41\n", - "Columns : Index(['id', 'street_id', 'identifier', 'structure_id', 'mcp_contact_id',\n", - " 'fidelity', 'tenant_id', 'lastname', 'firstname', 'birthdate', 'email',\n", - " 'civility', 'is_partner', 'extra', 'deleted_at', 'reference', 'gender',\n", - " 'is_email_true', 'extra_field', 'opt_in', 'note', 'profession',\n", - " 'language', 'need_reload', 'last_buying_date', 'max_price',\n", - " 'ticket_sum', 'average_price', 'average_purchase_delay',\n", - " 'average_price_basket', 'average_ticket_basket', 'total_price',\n", - " 'preferred_category', 'preferred_supplier', 'preferred_formula',\n", - " 'purchase_count', 'first_buying_date', 'last_visiting_date', 'zipcode',\n", - " 'country', 'age'],\n", - " dtype='object')\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idstreet_idstructure_idmcp_contact_idfidelitytenant_idlastnamefirstnamebirthdateemail...total_pricepreferred_categorypreferred_supplierpreferred_formulapurchase_countfirst_buying_datelast_visiting_datezipcodecountryage
0127512NaNNaN01311lastname12751firstname12751NaNNaN...NaNNaNNaNNaN0NaNNaNNaNfrNaN
1128252NaNNaN01311lastname12825firstname12825NaNNaN...NaNNaNNaNNaN0NaNNaNNaNfrNaN
2112612NaNNaN01311lastname11261firstname11261NaNNaN...NaNNaNNaNNaN0NaNNaNNaNfrNaN
3130712NaNNaN01311lastname13071NaNNaNNaN...NaNNaNNaNNaN0NaNNaNNaNfrNaN
465306110NaNNaN01311NaNNaNNaNemail653061...NaNNaNNaNNaN0NaNNaNNaNNaNNaN
\n", - "

5 rows × 40 columns

\n", - "
" - ], - "text/plain": [ - " id street_id structure_id mcp_contact_id fidelity tenant_id \\\n", - "0 12751 2 NaN NaN 0 1311 \n", - "1 12825 2 NaN NaN 0 1311 \n", - "2 11261 2 NaN NaN 0 1311 \n", - "3 13071 2 NaN NaN 0 1311 \n", - "4 653061 10 NaN NaN 0 1311 \n", - "\n", - " lastname firstname birthdate email ... total_price \\\n", - "0 lastname12751 firstname12751 NaN NaN ... NaN \n", - "1 lastname12825 firstname12825 NaN NaN ... NaN \n", - "2 lastname11261 firstname11261 NaN NaN ... NaN \n", - "3 lastname13071 NaN NaN NaN ... NaN \n", - "4 NaN NaN NaN email653061 ... NaN \n", - "\n", - " preferred_category preferred_supplier preferred_formula purchase_count \\\n", - "0 NaN NaN NaN 0 \n", - "1 NaN NaN NaN 0 \n", - "2 NaN NaN NaN 0 \n", - "3 NaN NaN NaN 0 \n", - "4 NaN NaN NaN 0 \n", - "\n", - " first_buying_date last_visiting_date zipcode country age \n", - "0 NaN NaN NaN fr NaN \n", - "1 NaN NaN NaN fr NaN \n", - "2 NaN NaN NaN fr NaN \n", - "3 NaN NaN NaN fr NaN \n", - "4 NaN NaN NaN NaN NaN \n", - "\n", - "[5 rows x 40 columns]" - ] - }, - "execution_count": 358, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "customer_plus = load_dataset(\"1customersplus.csv\")\n", - "customer_plus.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 359, - "id": "e4a5f890-d5aa-40d7-a70c-8d8a254a5c9a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "id 0\n", - "street_id 0\n", - "structure_id 133752\n", - "mcp_contact_id 52965\n", - "fidelity 0\n", - "tenant_id 0\n", - "lastname 66003\n", - "firstname 68333\n", - "birthdate 146429\n", - "email 13094\n", - "civility 151866\n", - "is_partner 0\n", - "extra 151866\n", - "deleted_at 151866\n", - "reference 151866\n", - "gender 0\n", - "is_email_true 0\n", - "extra_field 151866\n", - "opt_in 0\n", - "note 150960\n", - "profession 145660\n", - "language 150774\n", - "need_reload 0\n", - "last_buying_date 78444\n", - "max_price 78444\n", - "ticket_sum 0\n", - "average_price 13120\n", - "average_purchase_delay 78444\n", - "average_price_basket 78444\n", - "average_ticket_basket 78444\n", - "total_price 65324\n", - "preferred_category 151866\n", - "preferred_supplier 151866\n", - "preferred_formula 151866\n", - "purchase_count 0\n", - "first_buying_date 78444\n", - "last_visiting_date 151866\n", - "zipcode 108093\n", - "country 8291\n", - "age 146429\n", - "dtype: int64" - ] - }, - "execution_count": 359, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "customer_plus.isna().sum()" - ] - }, - { - "cell_type": "markdown", - "id": "55ac8ec6-baa2-4199-b29a-d931260a6970", - "metadata": {}, - "source": [ - "# Analysis of Customer Products" - ] - }, - { - "cell_type": "code", - "execution_count": 360, - "id": "de370d66-852e-46a1-8fb4-5c1e5756f5cd", - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 361, - "id": "088a1f50-cf5d-4d1a-891d-4e9df7e1c35b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
customer_idbirthdatestreet_idis_partnergenderis_email_trueopt_instructure_idprofessionlanguage...first_buying_datecountryagetenant_idnb_campaignsnb_campaigns_openedtime_to_openevent_type_idnb_ticketsavg_amount
012751NaN2False1TrueTrueNaNNaNNaN...NaNfrNaN1311NaNNaNNaNNaNNaNNaN
112825NaN2False2TrueTrueNaNNaNNaN...NaNfrNaN1311NaNNaNNaNNaNNaNNaN
211261NaN2False1TrueTrueNaNNaNNaN...NaNfrNaN1311NaNNaNNaNNaNNaNNaN
313071NaN2False2TrueTrueNaNNaNNaN...NaNfrNaN1311NaNNaNNaNNaNNaNNaN
4653061NaN10False2TrueFalseNaNNaNNaN...NaNNaNNaN131180.02.00 days 19:53:02.500000NaNNaNNaN
\n", - "

5 rows × 31 columns

\n", - "
" - ], - "text/plain": [ - " customer_id birthdate street_id is_partner gender is_email_true \\\n", - "0 12751 NaN 2 False 1 True \n", - "1 12825 NaN 2 False 2 True \n", - "2 11261 NaN 2 False 1 True \n", - "3 13071 NaN 2 False 2 True \n", - "4 653061 NaN 10 False 2 True \n", - "\n", - " opt_in structure_id profession language ... first_buying_date country \\\n", - "0 True NaN NaN NaN ... NaN fr \n", - "1 True NaN NaN NaN ... NaN fr \n", - "2 True NaN NaN NaN ... NaN fr \n", - "3 True NaN NaN NaN ... NaN fr \n", - "4 False NaN NaN NaN ... NaN NaN \n", - "\n", - " age tenant_id nb_campaigns nb_campaigns_opened time_to_open \\\n", - "0 NaN 1311 NaN NaN NaN \n", - "1 NaN 1311 NaN NaN NaN \n", - "2 NaN 1311 NaN NaN NaN \n", - "3 NaN 1311 NaN NaN NaN \n", - "4 NaN 1311 80.0 2.0 0 days 19:53:02.500000 \n", - "\n", - " event_type_id nb_tickets avg_amount \n", - "0 NaN NaN NaN \n", - "1 NaN NaN NaN \n", - "2 NaN NaN NaN \n", - "3 NaN NaN NaN \n", - "4 NaN NaN NaN \n", - "\n", - "[5 rows x 31 columns]" - ] - }, - "execution_count": 361, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "customer_product = pd.read_csv(\"customer_product.csv\")\n", - "customer_product.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 362, - "id": "bdd582af-0cf1-4e04-90ad-7165b8a36ac8", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(156289, 31)\n", - "Index(['customer_id', 'birthdate', 'street_id', 'is_partner', 'gender',\n", - " 'is_email_true', 'opt_in', 'structure_id', 'profession', 'language',\n", - " 'mcp_contact_id', 'last_buying_date', 'max_price', 'ticket_sum',\n", - " 'average_price', 'fidelity', 'average_purchase_delay',\n", - " 'average_price_basket', 'average_ticket_basket', 'total_price',\n", - " 'purchase_count', 'first_buying_date', 'country', 'age', 'tenant_id',\n", - " 'nb_campaigns', 'nb_campaigns_opened', 'time_to_open', 'event_type_id',\n", - " 'nb_tickets', 'avg_amount'],\n", - " dtype='object')\n" - ] - } - ], - "source": [ - "# Shape :\n", - "print(customer_product.shape)\n", - "# columns : \n", - "print(customer_product.columns)" - ] - }, - { - "cell_type": "code", - "execution_count": 363, - "id": "55fa2361-ebde-4472-b8d2-521a20be766d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "customer_id 0\n", - "birthdate 149375\n", - "street_id 0\n", - "is_partner 0\n", - "gender 0\n", - "is_email_true 0\n", - "opt_in 0\n", - "structure_id 136867\n", - "profession 150004\n", - "language 155184\n", - "mcp_contact_id 53519\n", - "last_buying_date 78445\n", - "max_price 78445\n", - "ticket_sum 0\n", - "average_price 13120\n", - "fidelity 0\n", - "average_purchase_delay 78445\n", - "average_price_basket 78445\n", - "average_ticket_basket 78445\n", - "total_price 65325\n", - "purchase_count 0\n", - "first_buying_date 78445\n", - "country 8304\n", - "age 149375\n", - "tenant_id 0\n", - "nb_campaigns 21623\n", - "nb_campaigns_opened 21623\n", - "time_to_open 69017\n", - "event_type_id 78355\n", - "nb_tickets 78355\n", - "avg_amount 78355\n", - "dtype: int64" - ] - }, - "execution_count": 363, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# check NA\n", - "\n", - "customer_product.isna().sum()" - ] - }, - { - "cell_type": "code", - "execution_count": 364, - "id": "2e228eb6-8cc7-4fd7-8e17-2b818095cb96", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
customer_idgenderis_partneris_email_truenb_campaignsnb_campaigns_openedfidelitynb_ticketsticket_sumaverage_priceavg_amountevent_type_id
0127511FalseTrueNaNNaN0NaN00.0NaNNaN
1128252FalseTrueNaNNaN0NaN00.0NaNNaN
2112611FalseTrueNaNNaN0NaN00.0NaNNaN
3130712FalseTrueNaNNaN0NaN00.0NaNNaN
46530612FalseTrue80.02.00NaN00.0NaNNaN
\n", - "
" - ], - "text/plain": [ - " customer_id gender is_partner is_email_true nb_campaigns \\\n", - "0 12751 1 False True NaN \n", - "1 12825 2 False True NaN \n", - "2 11261 1 False True NaN \n", - "3 13071 2 False True NaN \n", - "4 653061 2 False True 80.0 \n", - "\n", - " nb_campaigns_opened fidelity nb_tickets ticket_sum average_price \\\n", - "0 NaN 0 NaN 0 0.0 \n", - "1 NaN 0 NaN 0 0.0 \n", - "2 NaN 0 NaN 0 0.0 \n", - "3 NaN 0 NaN 0 0.0 \n", - "4 2.0 0 NaN 0 0.0 \n", - "\n", - " avg_amount event_type_id \n", - "0 NaN NaN \n", - "1 NaN NaN \n", - "2 NaN NaN \n", - "3 NaN NaN \n", - "4 NaN NaN " - ] - }, - "execution_count": 364, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "## Investigate a subset of variables\n", - "\n", - "df = customer_product[[\"customer_id\", \"gender\", \"is_partner\", \"is_email_true\",\"nb_campaigns\", \"nb_campaigns_opened\", \"fidelity\",\n", - " \"nb_tickets\", \"ticket_sum\", \"average_price\", \"avg_amount\", \"event_type_id\"]]\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 368, - "id": "80120f51-f91e-4d4d-9578-1dc88cd94754", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "shape : (156289, 12)\n", - "Nombre de customer unique : 151866\n", - "Nombre de ligne où nb_tickets est non nul : 77934\n" - ] - } - ], - "source": [ - "print(\"shape : \", df.shape)\n", - "print(\"Nombre de customer unique : \", len(df[\"customer_id\"].unique()))\n", - "print(\"Nombre de ligne où nb_tickets est non nul : \", df[\"nb_tickets\"].count())" - ] - }, - { - "cell_type": "code", - "execution_count": 370, - "id": "0d56bfa9-c93c-42ee-bec2-96f0598fce2c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nombre de consommateur unique : 73511\n", - "Nombre de type d'évènement : 4\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
customer_idgenderis_partneris_email_truenb_campaignsnb_campaigns_openedfidelitynb_ticketsticket_sumaverage_priceavg_amountevent_type_id
1623092552FalseTrue2.02.002.000.0000007.7624744.0
19577720FalseTrue133.019.005.052.8000007.7624744.0
1972800090FalseTrue116.032.011.0111.0000007.7624744.0
19915560FalseTrue9.08.012.0323.3333336.1506592.0
20015560FalseTrue9.08.011.0323.3333336.4394636.0
.......................................
1562452937532FalseTrue94.034.011.0111.0000007.7624744.0
1562462937982FalseTrue7.00.022.0212.0000007.7624744.0
1562812952242FalseTrue10.00.0198.0980.0000006.1506592.0
1562872953662FalseTrue5.00.013.0311.0000007.7624744.0
1562882953682FalseTrue5.00.012.0211.0000007.7624744.0
\n", - "

77934 rows × 12 columns

\n", - "
" - ], - "text/plain": [ - " customer_id gender is_partner is_email_true nb_campaigns \\\n", - "162 309255 2 False True 2.0 \n", - "195 7772 0 False True 133.0 \n", - "197 280009 0 False True 116.0 \n", - "199 1556 0 False True 9.0 \n", - "200 1556 0 False True 9.0 \n", - "... ... ... ... ... ... \n", - "156245 293753 2 False True 94.0 \n", - "156246 293798 2 False True 7.0 \n", - "156281 295224 2 False True 10.0 \n", - "156287 295366 2 False True 5.0 \n", - "156288 295368 2 False True 5.0 \n", - "\n", - " nb_campaigns_opened fidelity nb_tickets ticket_sum average_price \\\n", - "162 2.0 0 2.0 0 0.000000 \n", - "195 19.0 0 5.0 5 2.800000 \n", - "197 32.0 1 1.0 1 11.000000 \n", - "199 8.0 1 2.0 3 23.333333 \n", - "200 8.0 1 1.0 3 23.333333 \n", - "... ... ... ... ... ... \n", - "156245 34.0 1 1.0 1 11.000000 \n", - "156246 0.0 2 2.0 2 12.000000 \n", - "156281 0.0 1 98.0 98 0.000000 \n", - "156287 0.0 1 3.0 3 11.000000 \n", - "156288 0.0 1 2.0 2 11.000000 \n", - "\n", - " avg_amount event_type_id \n", - "162 7.762474 4.0 \n", - "195 7.762474 4.0 \n", - "197 7.762474 4.0 \n", - "199 6.150659 2.0 \n", - "200 6.439463 6.0 \n", - "... ... ... \n", - "156245 7.762474 4.0 \n", - "156246 7.762474 4.0 \n", - "156281 6.150659 2.0 \n", - "156287 7.762474 4.0 \n", - "156288 7.762474 4.0 \n", - "\n", - "[77934 rows x 12 columns]" - ] - }, - "execution_count": 370, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Filter only customer that buy tickets\n", - "\n", - "df_purchase = df.dropna(subset= [\"nb_tickets\"])\n", - "print(\"Nombre de consommateur unique : \", len(df_purchase[\"customer_id\"].unique()))\n", - "print(\"Nombre de type d'évènement : \", len(df_purchase[\"event_type_id\"].unique()))\n", - "#print(\"Nombre de type d'évènement (nom) : \", len(df_purchase[\"name_event_types\"].unique()))\n", - "df_purchase" - ] - }, - { - "cell_type": "code", - "execution_count": 371, - "id": "0cc96c4e-f3f3-43d2-94b5-a11719f09607", - "metadata": {}, - "outputs": [ - { - "ename": "KeyError", - "evalue": "'name_event_types'", + "ename": "ClientError", + "evalue": "An error occurred (InvalidAccessKeyId) when calling the PutObject operation: The Access Key Id you provided does not exist in our records.", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[371], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m event_counts \u001b[38;5;241m=\u001b[39m \u001b[43mdf_purchase\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroupby\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mname_event_types\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcustomer_id\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mnunique()\n\u001b[1;32m 3\u001b[0m event_counts\u001b[38;5;241m.\u001b[39mplot(kind\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mbar\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 4\u001b[0m plt\u001b[38;5;241m.\u001b[39mxlabel(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mType d\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mévènement\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[0;32m/opt/mamba/lib/python3.10/site-packages/pandas/core/frame.py:8869\u001b[0m, in \u001b[0;36mDataFrame.groupby\u001b[0;34m(self, by, axis, level, as_index, sort, group_keys, observed, dropna)\u001b[0m\n\u001b[1;32m 8866\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m level \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m by \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 8867\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mYou have to supply one of \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mby\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 8869\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mDataFrameGroupBy\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 8870\u001b[0m \u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8871\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mby\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8872\u001b[0m \u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8873\u001b[0m \u001b[43m \u001b[49m\u001b[43mlevel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlevel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8874\u001b[0m \u001b[43m \u001b[49m\u001b[43mas_index\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mas_index\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8875\u001b[0m \u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8876\u001b[0m \u001b[43m \u001b[49m\u001b[43mgroup_keys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup_keys\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8877\u001b[0m \u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mobserved\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8878\u001b[0m \u001b[43m \u001b[49m\u001b[43mdropna\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdropna\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8879\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m/opt/mamba/lib/python3.10/site-packages/pandas/core/groupby/groupby.py:1278\u001b[0m, in \u001b[0;36mGroupBy.__init__\u001b[0;34m(self, obj, keys, axis, level, grouper, exclusions, selection, as_index, sort, group_keys, observed, dropna)\u001b[0m\n\u001b[1;32m 1275\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdropna \u001b[38;5;241m=\u001b[39m dropna\n\u001b[1;32m 1277\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m grouper \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1278\u001b[0m grouper, exclusions, obj \u001b[38;5;241m=\u001b[39m \u001b[43mget_grouper\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1279\u001b[0m \u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1280\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeys\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1281\u001b[0m \u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1282\u001b[0m \u001b[43m \u001b[49m\u001b[43mlevel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlevel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1283\u001b[0m \u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1284\u001b[0m \u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mlib\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mno_default\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1285\u001b[0m \u001b[43m \u001b[49m\u001b[43mdropna\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdropna\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1286\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1288\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m observed \u001b[38;5;129;01mis\u001b[39;00m lib\u001b[38;5;241m.\u001b[39mno_default:\n\u001b[1;32m 1289\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28many\u001b[39m(ping\u001b[38;5;241m.\u001b[39m_passed_categorical \u001b[38;5;28;01mfor\u001b[39;00m ping \u001b[38;5;129;01min\u001b[39;00m grouper\u001b[38;5;241m.\u001b[39mgroupings):\n", - "File \u001b[0;32m/opt/mamba/lib/python3.10/site-packages/pandas/core/groupby/grouper.py:1009\u001b[0m, in \u001b[0;36mget_grouper\u001b[0;34m(obj, key, axis, level, sort, observed, validate, dropna)\u001b[0m\n\u001b[1;32m 1007\u001b[0m in_axis, level, gpr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m, gpr, \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1008\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1009\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(gpr)\n\u001b[1;32m 1010\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(gpr, Grouper) \u001b[38;5;129;01mand\u001b[39;00m gpr\u001b[38;5;241m.\u001b[39mkey \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1011\u001b[0m \u001b[38;5;66;03m# Add key to exclusions\u001b[39;00m\n\u001b[1;32m 1012\u001b[0m exclusions\u001b[38;5;241m.\u001b[39madd(gpr\u001b[38;5;241m.\u001b[39mkey)\n", - "\u001b[0;31mKeyError\u001b[0m: 'name_event_types'" - ] - } - ], - "source": [ - "event_counts = df_purchase.groupby('name_event_types')['customer_id'].nunique()\n", - "\n", - "event_counts.plot(kind='bar')\n", - "plt.xlabel(\"Type d'évènement\")\n", - "plt.ylabel('Nombre de consommateurs uniques')\n", - "plt.title(\"Nombre de consommateurs uniques par type d'évènement\")\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e37ad847-7ea5-4afe-9c6d-e07a668d2a27", - "metadata": {}, - "outputs": [], - "source": [ - "average_tickets_by_event = df_purchase.groupby('name_event_types')['nb_tickets'].mean()\n", - "\n", - "average_tickets_by_event.plot(kind='bar', figsize=(8, 5))\n", - "plt.xlabel(\"Type d'évènements\")\n", - "plt.ylabel('Nombre moyen de tickets achetés')\n", - "plt.title(\"Nombre moyen de tickets achetés par Type d'évènements\")\n", - "plt.xticks(rotation=45)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e02b260a-fcb7-418b-87a8-de2bb4e6eb0a", - "metadata": {}, - "outputs": [], - "source": [ - "df_purchase.isna().sum()" - ] - }, - { - "cell_type": "markdown", - "id": "26fa888d-dd33-4990-89bd-6a9c1391098b", - "metadata": {}, - "source": [ - "## Modelisation K-means" - ] - }, - { - "cell_type": "code", - "execution_count": 242, - "id": "daef46cd-f6a5-4282-ac0a-83fde277edec", - "metadata": {}, - "outputs": [], - "source": [ - "df_purchase = df_purchase.fillna(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 243, - "id": "e34437e6-a57d-4d10-ac62-5c43cdda6892", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/mamba/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/opt/mamba/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/opt/mamba/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/opt/mamba/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/opt/mamba/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/opt/mamba/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/opt/mamba/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/opt/mamba/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/opt/mamba/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n", - "/opt/mamba/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n" + "\u001b[0;31mClientError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[35], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m exec(\u001b[38;5;28mopen\u001b[39m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mutils_stat_desc.py\u001b[39m\u001b[38;5;124m'\u001b[39m)\u001b[38;5;241m.\u001b[39mread())\n\u001b[0;32m----> 2\u001b[0m \u001b[43mbox_plot_price_tickets\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtickets\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtype_of_activity\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m:357\u001b[0m, in \u001b[0;36mbox_plot_price_tickets\u001b[0;34m(tickets, type_of_activity)\u001b[0m\n", + "File \u001b[0;32m:62\u001b[0m, in \u001b[0;36msave_file_s3\u001b[0;34m(File_name, type_of_activity)\u001b[0m\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/fsspec/spec.py:1963\u001b[0m, in \u001b[0;36mAbstractBufferedFile.__exit__\u001b[0;34m(self, *args)\u001b[0m\n\u001b[1;32m 1962\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__exit__\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs):\n\u001b[0;32m-> 1963\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mclose\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/fsspec/spec.py:1930\u001b[0m, in \u001b[0;36mAbstractBufferedFile.close\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1928\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1929\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mforced:\n\u001b[0;32m-> 1930\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mflush\u001b[49m\u001b[43m(\u001b[49m\u001b[43mforce\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 1932\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfs \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1933\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfs\u001b[38;5;241m.\u001b[39minvalidate_cache(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpath)\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/fsspec/spec.py:1801\u001b[0m, in \u001b[0;36mAbstractBufferedFile.flush\u001b[0;34m(self, force)\u001b[0m\n\u001b[1;32m 1798\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mclosed \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 1799\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m\n\u001b[0;32m-> 1801\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_upload_chunk\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfinal\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mforce\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mFalse\u001b[39;00m:\n\u001b[1;32m 1802\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moffset \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbuffer\u001b[38;5;241m.\u001b[39mseek(\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m2\u001b[39m)\n\u001b[1;32m 1803\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbuffer \u001b[38;5;241m=\u001b[39m io\u001b[38;5;241m.\u001b[39mBytesIO()\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/s3fs/core.py:1252\u001b[0m, in \u001b[0;36mS3File._upload_chunk\u001b[0;34m(self, final)\u001b[0m\n\u001b[1;32m 1249\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mparts\u001b[38;5;241m.\u001b[39mappend({\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mPartNumber\u001b[39m\u001b[38;5;124m'\u001b[39m: part, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mETag\u001b[39m\u001b[38;5;124m'\u001b[39m: out[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mETag\u001b[39m\u001b[38;5;124m'\u001b[39m]})\n\u001b[1;32m 1251\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mautocommit \u001b[38;5;129;01mand\u001b[39;00m final:\n\u001b[0;32m-> 1252\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcommit\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1253\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m final\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/s3fs/core.py:1267\u001b[0m, in \u001b[0;36mS3File.commit\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1265\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbuffer\u001b[38;5;241m.\u001b[39mseek(\u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 1266\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbuffer\u001b[38;5;241m.\u001b[39mread()\n\u001b[0;32m-> 1267\u001b[0m write_result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_s3\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1268\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43ms3\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mput_object\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1269\u001b[0m \u001b[43m \u001b[49m\u001b[43mKey\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkey\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mBucket\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbucket\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mBody\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkwargs\u001b[49m\n\u001b[1;32m 1270\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1271\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfs\u001b[38;5;241m.\u001b[39mversion_aware:\n\u001b[1;32m 1272\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mversion_id \u001b[38;5;241m=\u001b[39m write_result\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mVersionId\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/s3fs/core.py:1130\u001b[0m, in \u001b[0;36mS3File._call_s3\u001b[0;34m(self, method, *kwarglist, **kwargs)\u001b[0m\n\u001b[1;32m 1129\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_call_s3\u001b[39m(\u001b[38;5;28mself\u001b[39m, method, \u001b[38;5;241m*\u001b[39mkwarglist, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 1130\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_s3\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmethod\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43ms3_additional_kwargs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwarglist\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1131\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/s3fs/core.py:200\u001b[0m, in \u001b[0;36mS3FileSystem._call_s3\u001b[0;34m(self, method, *akwarglist, **kwargs)\u001b[0m\n\u001b[1;32m 197\u001b[0m logger\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCALL: \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m - \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m - \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m (method\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m, akwarglist, kw2))\n\u001b[1;32m 198\u001b[0m additional_kwargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_s3_method_kwargs(method, \u001b[38;5;241m*\u001b[39makwarglist,\n\u001b[1;32m 199\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m--> 200\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmethod\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43madditional_kwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/botocore/client.py:553\u001b[0m, in \u001b[0;36mClientCreator._create_api_method.._api_call\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 549\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 550\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mpy_operation_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m() only accepts keyword arguments.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 551\u001b[0m )\n\u001b[1;32m 552\u001b[0m \u001b[38;5;66;03m# The \"self\" in this scope is referring to the BaseClient.\u001b[39;00m\n\u001b[0;32m--> 553\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_api_call\u001b[49m\u001b[43m(\u001b[49m\u001b[43moperation_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/mamba/lib/python3.11/site-packages/botocore/client.py:1009\u001b[0m, in \u001b[0;36mBaseClient._make_api_call\u001b[0;34m(self, operation_name, api_params)\u001b[0m\n\u001b[1;32m 1005\u001b[0m error_code \u001b[38;5;241m=\u001b[39m error_info\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mQueryErrorCode\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m error_info\u001b[38;5;241m.\u001b[39mget(\n\u001b[1;32m 1006\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCode\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 1007\u001b[0m )\n\u001b[1;32m 1008\u001b[0m error_class \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexceptions\u001b[38;5;241m.\u001b[39mfrom_code(error_code)\n\u001b[0;32m-> 1009\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m error_class(parsed_response, operation_name)\n\u001b[1;32m 1010\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1011\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parsed_response\n", + "\u001b[0;31mClientError\u001b[0m: An error occurred (InvalidAccessKeyId) when calling the PutObject operation: The Access Key Id you provided does not exist in our records." ] }, { "data": { - "image/png": "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8R1fREREJEFzc4M33jBvffrAo0dmG7Cwlcl++cXsnztzpnkDyJvXLGq9vc3ld//bKuDSJXNFtKgWjLCC5ReAtW/fnvbt20f53H8L1M2bN8d9IBEREZFEysPD7FMbEACDB8Pdu+ZobVhxe+AAHD9u3qJjGOYIcJcu8M47vPTFZS/L8uVsRURERMQayZJBtWowejTs2wfXr5tTC95999mvMwy4cAG2bYuXmM+kYlZEREREAPDxgTp1oEGDmO0fFBS3eWJCxayIiIiIRPD0RWCxsV9cUjErIiIiIhGUKWN2LYiuH63NBlmzmvtZTcWsiIiIiETg6mq234LIBW3Y4/Hjrb/4C1TMioiIiEgU6tY1229lzhxxe5YsCactFySA1lwiIiIikjDVrWu239q06QmrVx+ievUilC/vliBGZMOomBURERGRaLm6QkCAwb17lwgIKJygClnQNAMRERERcWAqZkVERETEYamYFRERERGHpWJWRERERByWilkRERERcVgqZkVERETEYamYFRERERGHpWJWRERERByWilkRERERcVgqZkVERETEYamYFRERERGHpWJWRERERByWilkRERERcVhuVgeIb4ZhAHD79m2LkyR+wcHB3L9/n9u3b+Pu7m51HIkHOufOSefd+eicO5/4PudhdVpY3fYsTlfM3rlzB4CsWbNanEREREREnuXOnTukTJnymfvYjJiUvIlIaGgoly9fJnny5NhsNqvjJGq3b98ma9asXLhwgRQpUlgdR+KBzrlz0nl3Pjrnzie+z7lhGNy5c4dMmTLh4vLsWbFONzLr4uJClixZrI7hVFKkSKG/7JyMzrlz0nl3Pjrnzic+z/nzRmTD6AIwEREREXFYKmZFRERExGGpmJU44+HhwcCBA/Hw8LA6isQTnXPnpPPufHTOnU9CPudOdwGYiIiIiCQeGpkVEREREYelYlZEREREHJaKWRERERFxWCpmRURERMRhqZiVWDdixAjeeOMNkidPTvr06Xn33Xc5ceKE1bEkHo0YMQKbzUaXLl2sjiJx6NKlSzRt2pQ0adLg7e1NkSJF2L9/v9WxJA49efKEzz77jBw5cuDl5UXOnDkZMmQIoaGhVkeTWLJ161Zq1apFpkyZsNlsLF++PMLzhmEwaNAgMmXKhJeXF+XKlePo0aPWhP1/KmYl1m3ZsoUOHTrwyy+/EBgY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y1K1alU+/fTTSM+5uLhgGEaEbcHBwZH2c3d3j/DYZrNFuS0mFyKF/eo7NDSUWrVqcejQoQi3P/74g7Jly4bvnzRp0uce8+njhjEMw67ODV5eXjHeF2L23Q0aNIijR49Ss2ZNNm7cSL58+Vi2bFm0xwwNDcXV1ZX9+/dH+E6OHz/OhAkTImT972ebNWsWu3btwt/fn8WLF5MnTx5++eWXKN8nTZo02Gy2KC8OzJUrF6+99hozZ86M9oK7v//+m3Tp0kX7OUTEcaiYFRGHMHLkSH766Sd27twZYXu6dOm4cuVKhKIsNvuoPl1MPXnyhP379/Paa68B8Prrr3P06FH8/Px45ZVXItxiWsACpEiRgkyZMkVqF7Vz507y5s0b4+Pkzp0bLy+vGLftSpcuHXfu3OHevXvh26L67vLkyUPXrl1Zt24ddevWZdasWYA5uhoSEhJh36JFixISEsLVq1cjfScZM2Z8bqaiRYvSt29fdu7cSYECBViwYEGU+yVJkoR8+fJx7NixSM+lTZuWjRs3curUKRo2bBipQD916hQPHz6kaNGiz80jIgmfilkRcQgFCxakSZMmkVoqlStXjmvXrjF69GhOnTrFpEmTWL16day976RJk1i2bBm///47HTp04ObNm7Rq1QqADh068Pfff9OoUSP27NnD6dOnWbduHa1atYpU5D1Pz549GTVqFIsXL+bEiRP06dOHQ4cO0blz5xgfw9PTk969e9OrVy/mzp3LqVOn+OWXX5gxY0aU+5coUQJvb28+/fRT/vzzTxYsWMDs2bPDn3/w4AEdO3Zk8+bNnDt3jh07drB3797wAtvPz4+7d++yYcMGrl+/zv3798mTJw9NmjShWbNmLF26lDNnzrB3715GjRrFqlWros1+5swZ+vbty65duzh37hzr1q3j5MmTzyzmq1atGm2/2PTp07Nx40Z+//13GjVqxJMnT8Kf27ZtGzlz5nzmdAkRcRwqZkXEYQwdOjTSr8Xz5s3L5MmTmTRpEoULF2bPnj3RXun/IkaOHMmoUaMoXLgw27Zt43//+x9p06YFIFOmTOzYsYOQkBCqVq1KgQIF6Ny5MylTpowwPzcmOnXqRPfu3enevTsFCxZkzZo1rFixgty5c9t1nP79+9O9e3cGDBhA3rx5adiwYaR5wGF8fHz47rvvWLVqFQULFmThwoURWn65urpy48YNmjVrRp48eWjQoAHVq1dn8ODBAPj7+9OuXTsaNmxIunTpGD16NGBOF2jWrBndu3fn1VdfpXbt2uzevZusWbNGm9vb25vff/+devXqkSdPHj788EM6duzIRx99FO1r2rZty6pVq7h161aUz2fMmJGNGzfy22+/0aRJk/B/YCxcuJC2bds+83sUEcdhM/77fwYREREH0aBBg/CpCTFx5MgRKlasyMmTJ0mZMmUcpxOR+KCRWRERcVhjxoyJsptEdC5fvszcuXNVyIokIhqZFRERERGHpZFZEREREXFYKmZFRERExGGpmBURERERh6ViVkREREQclopZEREREXFYKmZFRERExGGpmBURERERh6ViVkREREQclopZEREREXFY/wfr19eniXWGAwAAAABJRU5ErkJggg==", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -8363,106 +218,8 @@ } ], "source": [ - "from sklearn.cluster import KMeans\n", - "from sklearn.preprocessing import StandardScaler\n", - "\n", - "columns_for_clustering = ['gender', 'is_partner', 'is_email_true', 'nb_campaigns', 'nb_campaigns_opened', 'fidelity', 'nb_tickets', 'ticket_sum', 'average_price', 'amount']\n", - "\n", - "scaler = StandardScaler()\n", - "X = scaler.fit_transform(df_purchase[columns_for_clustering])\n", - "\n", - "inertia = []\n", - "for i in range(1, 11):\n", - " kmeans = KMeans(n_clusters=i, random_state=42)\n", - " kmeans.fit(X)\n", - " inertia.append(kmeans.inertia_)\n", - "\n", - "# Plot the elbow curve to find the optimal k\n", - "plt.figure(figsize=(8, 6))\n", - "plt.plot(range(1, 11), inertia, marker='o', linestyle='-', color='b')\n", - "plt.xlabel('Number of clusters (k)')\n", - "plt.ylabel('Inertia (Within-cluster sum of squares)')\n", - "plt.title('Elbow Method for Optimal k')\n", - "plt.grid()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 246, - "id": "4da7d97e-9128-4e4a-a454-1451d2dfee40", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/mamba/lib/python3.10/site-packages/sklearn/cluster/_kmeans.py:1416: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n", - " super()._check_params_vs_input(X, default_n_init=10)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Cluster 1:\n", - "gender 0.893962\n", - "is_partner 0.000000\n", - "is_email_true 1.000000\n", - "nb_campaigns 231.270802\n", - "nb_campaigns_opened 99.261042\n", - "fidelity 30.193383\n", - "nb_tickets 10.965757\n", - "ticket_sum 2604.072622\n", - "average_price 9.781489\n", - "amount 16.114144\n", - "Name: 0, dtype: float64\n", - "Size: 6045\n", - "\n", - "Cluster 2:\n", - "gender 1.999420e+00\n", - "is_partner 0.000000e+00\n", - "is_email_true 9.998067e-01\n", - "nb_campaigns 1.048816e-02\n", - "nb_campaigns_opened 1.159981e-03\n", - "fidelity 3.305112e+05\n", - "nb_tickets 6.141087e+01\n", - "ticket_sum 1.253568e+06\n", - "average_price 7.031328e+00\n", - "amount 6.880643e+00\n", - "Name: 1, dtype: float64\n", - "Size: 20690\n", - "\n", - "Cluster 3:\n", - "gender 1.311996\n", - "is_partner 0.000000\n", - "is_email_true 0.982297\n", - "nb_campaigns 11.520089\n", - "nb_campaigns_opened 2.922872\n", - "fidelity 4.664367\n", - "nb_tickets 4.819549\n", - "ticket_sum 184.855712\n", - "average_price 9.696602\n", - "amount 11.980846\n", - "Name: 2, dtype: float64\n", - "Size: 101623\n", - "\n" - ] - } - ], - "source": [ - "k = 3 \n", - "\n", - "kmeans = KMeans(n_clusters=k, random_state=42)\n", - "df_purchase['cluster'] = kmeans.fit_predict(X)\n", - "\n", - "cluster_means = df_purchase.groupby('cluster')[columns_for_clustering].mean()\n", - "cluster_sizes = df_purchase['cluster'].value_counts()\n", - "\n", - "for cluster in range(k):\n", - " print(f\"Cluster {cluster + 1}:\")\n", - " print(cluster_means.loc[cluster])\n", - " print(f\"Size: {cluster_sizes[cluster]}\\n\")" + "exec(open('utils_stat_desc.py').read())\n", + "box_plot_price_tickets(tickets, type_of_activity)" ] } ], @@ -8482,7 +239,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.13" + "version": "3.11.6" } }, "nbformat": 4, diff --git a/README.md b/README.md new file mode 100644 index 0000000..391b849 --- /dev/null +++ b/README.md @@ -0,0 +1,33 @@ +# Business data challenge 2023-2024 | ENSAE Paris +# Arenametrix : customer segmentation + +## Team 1 : + +* Antoine JOUBREL +* Alexis REVELLE +* Fanta RODRIGUE +* Thomas PIQUÉ + + +## Coaches : + +* Elia LAPENTA +* Michael VISSER + + +### Description of the problematic +The goal of this project is to create segments of customers from 15 companies belonging to 3 different types of activities (sports companies, museum, and music companies). + +### Our approach +We opted for a sector-based approach, which means that 3 segmentations have been performed (one for each type of activity). +As the segments have to be linked to a probability of future purchase, we directly used the probability of purchase during the incoming year to make segments. The first step of the modelization is a pipeline that fits 3 ML models (naive bayes, random forest, and logistic regression) on the data to predict whether the customer will purchase during the year. We then use the probability of purchase estimated to split the customers into 4 segments. For each segment, we can estimate the potential number of tickets and revenue for the incoming year. + +### How run the code +- run 0_1_Input_cleaning.py to clean the raw data and generate dataframes that will be used to build datasets with insightful variables. +- run 0_2_Dataset_construction.py. +- run 0_3_General_modelization_dataset.py to generate test and train sets for the 3 types of activities. +- run the script 0_4_Generate_stat_desc.py to generate graphics describing the data +- run 0_5_Machine_Learning.py. 3 ML models will be fitted on the data, and results will be exported for all 3 types of activities +- run 0_6_Segmentation.py. The test set will be fitted with the optimal parameters computed previously. That will allow to compute a propensity score (probability of a future purchase). Segmentation is performed according to the scores provided. This scripts exports graphics describing the marketing personae associated to the segments as well as their business value. +- run 0_7_CA_segment.py. The scores will be adjusted to better fit the overall probability of a purchase. This score adjusted is used to estimate the number of tickets sold and the revenue generated during the incoming year. + diff --git a/Spectacle/2_bis_logit_baseline_statsmodels.ipynb b/Spectacle/2_bis_logit_baseline_statsmodels.ipynb index 93776c0..b7d337e 100644 --- a/Spectacle/2_bis_logit_baseline_statsmodels.ipynb +++ b/Spectacle/2_bis_logit_baseline_statsmodels.ipynb @@ -65,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 3, "id": "2f0d08c9-5b26-4eff-9c89-4a46f427dbf7", "metadata": {}, "outputs": [], @@ -115,9 +115,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_570/3642896088.py:7: DtypeWarning: Columns (38) have mixed types. Specify dtype option on import or set low_memory=False.\n", + "/tmp/ipykernel_426/3642896088.py:7: DtypeWarning: Columns (38) have mixed types. Specify dtype option on import or set low_memory=False.\n", " dataset_train = pd.read_csv(file_in, sep=\",\")\n", - "/tmp/ipykernel_570/3642896088.py:11: DtypeWarning: Columns (38) have mixed types. Specify dtype option on import or set low_memory=False.\n", + "/tmp/ipykernel_426/3642896088.py:11: DtypeWarning: Columns (38) have mixed types. Specify dtype option on import or set low_memory=False.\n", " dataset_test = pd.read_csv(file_in, sep=\",\")\n" ] } @@ -228,7 +228,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "6224fd31-c190-4168-b395-e0bf5806d79d", "metadata": {}, "outputs": [ @@ -238,7 +238,7 @@ "{0.0: 0.5481283836040216, 1.0: 5.694439980716696}" ] }, - "execution_count": 10, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -254,7 +254,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 10, "id": "4680f202-979e-483f-89b8-9df877203bcf", "metadata": {}, "outputs": [ @@ -265,7 +265,7 @@ " 0.54812838])" ] }, - "execution_count": 58, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -282,7 +282,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 11, "id": "5f747be4-e70b-491c-8f0a-46cb278a2dee", "metadata": {}, "outputs": [ @@ -311,7 +311,7 @@ }, { "cell_type": "code", - "execution_count": 258, + "execution_count": 12, "id": "ab25a901-28da-4504-a7d1-bf41fa5068bc", "metadata": {}, "outputs": [ @@ -650,7 +650,7 @@ "[354365 rows x 17 columns]" ] }, - "execution_count": 258, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -662,7 +662,7 @@ }, { "cell_type": "code", - "execution_count": 259, + "execution_count": 13, "id": "648fb542-0186-493d-b274-be2c26a11967", "metadata": {}, "outputs": [], @@ -677,7 +677,7 @@ }, { "cell_type": "code", - "execution_count": 260, + "execution_count": 14, "id": "978b9ebc-aa97-41d7-a48f-d1f79c1ed482", "metadata": {}, "outputs": [ @@ -1016,7 +1016,7 @@ "[354365 rows x 17 columns]" ] }, - "execution_count": 260, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -1510,12 +1510,14 @@ "\n", "- variables à retirer : fidelity (valeurs trop grandes dont l'exp -> +inf, autre problème : st basé sur des infos qu'on a pas sur la période étudiée mais slt sur période d'évaluation), time between purchase (revoir sa construction), gender_other (colinéarité avec les autres var de genre)\n", "- ajouter un intercept\n", - "- pas besoin de standardiser pour le moment, mais à faire quand on passera au modèle LASSO " + "- pas besoin de standardiser pour le moment, mais à faire quand on passera au modèle LASSO\n", + "\n", + "#### A recopier dans la pipeline -> section 2 bis" ] }, { "cell_type": "code", - "execution_count": 266, + "execution_count": 15, "id": "e6c8ccc7-6ab8-4e3c-af28-e71d17c07bcb", "metadata": {}, "outputs": [ @@ -1817,7 +1819,7 @@ "[354365 rows x 15 columns]" ] }, - "execution_count": 266, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -1831,7 +1833,7 @@ }, { "cell_type": "code", - "execution_count": 267, + "execution_count": 16, "id": "0e968aa1-fbec-47db-b570-4730ef7eebf2", "metadata": {}, "outputs": [ @@ -1847,8 +1849,8 @@ "Dep. Variable: y No. Observations: 354365\n", "Model: Logit Df Residuals: 354350\n", "Method: MLE Df Model: 14\n", - "Date: Fri, 15 Mar 2024 Pseudo R-squ.: 0.2112\n", - "Time: 10:07:29 Log-Likelihood: -83135.\n", + "Date: Thu, 21 Mar 2024 Pseudo R-squ.: 0.2112\n", + "Time: 07:57:46 Log-Likelihood: -83135.\n", "converged: True LL-Null: -1.0540e+05\n", "Covariance Type: nonrobust LLR p-value: 0.000\n", "=======================================================================================\n", @@ -1887,7 +1889,7 @@ }, { "cell_type": "code", - "execution_count": 268, + "execution_count": 17, "id": "2475f2fe-3d1f-4845-9ede-0416dac83271", "metadata": {}, "outputs": [], @@ -1908,7 +1910,7 @@ }, { "cell_type": "code", - "execution_count": 269, + "execution_count": 18, "id": "696fcc04-e5df-45dc-a1b9-57c30d4d671d", "metadata": {}, "outputs": [ @@ -2210,7 +2212,7 @@ "[354365 rows x 15 columns]" ] }, - "execution_count": 269, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -2221,7 +2223,7 @@ }, { "cell_type": "code", - "execution_count": 289, + "execution_count": 19, "id": "54421677-640f-4f37-9a0d-d9a2cc3572b0", "metadata": {}, "outputs": [ @@ -2237,8 +2239,8 @@ "Dep. Variable: y No. Observations: 354365\n", "Model: Logit Df Residuals: 354350\n", "Method: MLE Df Model: 14\n", - "Date: Fri, 15 Mar 2024 Pseudo R-squ.: 0.2112\n", - "Time: 10:26:14 Log-Likelihood: -83135.\n", + "Date: Thu, 21 Mar 2024 Pseudo R-squ.: 0.2112\n", + "Time: 07:58:13 Log-Likelihood: -83135.\n", "converged: True LL-Null: -1.0540e+05\n", "Covariance Type: nonrobust LLR p-value: 0.000\n", "=======================================================================================\n", @@ -2276,12 +2278,226 @@ "print(result.summary())" ] }, + { + "cell_type": "code", + "execution_count": 48, + "id": "13cc3362-7bb2-46fa-8bd8-e5a8e53260b8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimization terminated successfully (Exit mode 0)\n", + " Current function value: 0.23562928627877766\n", + " Iterations: 240\n", + " Function evaluations: 243\n", + " Gradient evaluations: 240\n", + "const 0.000000e+00\n", + "nb_tickets 2.477006e-01\n", + "nb_purchases 1.636902e-03\n", + "total_amount 8.839088e-04\n", + "nb_suppliers 1.906550e-65\n", + "vente_internet_max 0.000000e+00\n", + "purchase_date_min 0.000000e+00\n", + "purchase_date_max 0.000000e+00\n", + "nb_tickets_internet 7.232680e-112\n", + "is_email_true 8.202187e-08\n", + "opt_in 0.000000e+00\n", + "gender_female 1.624424e-170\n", + "gender_male 4.961315e-220\n", + "nb_campaigns 6.276733e-205\n", + "nb_campaigns_opened 2.228531e-176\n", + "dtype: float64\n", + " Logit Regression Results \n", + "==============================================================================\n", + "Dep. Variable: y No. Observations: 354365\n", + "Model: Logit Df Residuals: 354350\n", + "Method: MLE Df Model: 14\n", + "Date: Thu, 21 Mar 2024 Pseudo R-squ.: 0.2111\n", + "Time: 10:45:37 Log-Likelihood: -83152.\n", + "converged: True LL-Null: -1.0540e+05\n", + "Covariance Type: nonrobust LLR p-value: 0.000\n", + "=======================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "---------------------------------------------------------------------------------------\n", + "const -3.1162 0.081 -38.383 0.000 -3.275 -2.957\n", + "nb_tickets -0.0136 0.012 -1.156 0.248 -0.037 0.009\n", + "nb_purchases -0.0385 0.012 -3.149 0.002 -0.063 -0.015\n", + "total_amount 0.0588 0.018 3.325 0.001 0.024 0.094\n", + "nb_suppliers 0.1638 0.010 17.085 0.000 0.145 0.183\n", + "vente_internet_max -0.8651 0.011 -82.182 0.000 -0.886 -0.844\n", + "purchase_date_min 0.5790 0.015 39.391 0.000 0.550 0.608\n", + "purchase_date_max -1.4088 0.016 -89.101 0.000 -1.440 -1.378\n", + "nb_tickets_internet 0.2857 0.013 22.475 0.000 0.261 0.311\n", + "is_email_true 0.4224 0.079 5.363 0.000 0.268 0.577\n", + "opt_in -1.9818 0.019 -106.856 0.000 -2.018 -1.945\n", + "gender_female 0.6553 0.024 27.835 0.000 0.609 0.701\n", + "gender_male 0.7578 0.024 31.663 0.000 0.711 0.805\n", + "nb_campaigns 0.2835 0.009 30.547 0.000 0.265 0.302\n", + "nb_campaigns_opened 0.2061 0.007 28.315 0.000 0.192 0.220\n", + "=======================================================================================\n" + ] + } + ], + "source": [ + "# 2.bis on fait de même pour un modèle logit avec pénalité \n", + "# pas besoin de redefinir le modèle, il faut faire un fit_regularized\n", + "\n", + "# sans spécification, le alpha optimal est déterminé par cross validation\n", + "# remplacer alpha=32 par la valeur optimale trouvée par cross validation dans la pipeline avec .best_params\n", + "# attention, dans scikit learn, l'hyperparamètre est C = 1/alpha, pas oublier de prendre l'inverse de ce C optimal\n", + "\n", + "result = model_logit.fit_regularized(method='l1', alpha = 32)\n", + "\n", + "print(result.pvalues)\n", + "print(result.summary())" + ] + }, + { + "cell_type": "markdown", + "id": "8c3dec50-7b9d-40f6-83b6-6cae26962cf8", + "metadata": {}, + "source": [ + "### Other method : take into account the weigths ! Pb : with this method, no penalty allowed" + ] + }, + { + "cell_type": "code", + "execution_count": 247, + "id": "2e3ca381-54e3-445b-bb37-d7ce953cb856", + "metadata": {}, + "outputs": [], + "source": [ + "# define a function to generate summaries of logit model\n", + "\n", + "def model_logit(X, y, weight_dict, add_constant=False) :\n", + " # Generate sample weights based on class weights computed earlier\n", + " sample_weights = np.array([weight_dict[class_] for class_ in y])\n", + "\n", + " if add_constant :\n", + " X_const = sm.add_constant(X)\n", + " else :\n", + " X_const = X\n", + " \n", + " # Use GLM from statsmodels with Binomial family for logistic regression\n", + " model = sm.GLM(y, X_const, family=sm.families.Binomial(), freq_weights=sample_weights)\n", + " \n", + " # fit without penalty\n", + " result = model.fit()\n", + "\n", + " result_summary = result.summary()\n", + " \n", + " return result_summary" + ] + }, + { + "cell_type": "code", + "execution_count": 248, + "id": "4cd424a0-7c55-47ff-840e-1354e8dcf863", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "==============================================================================\n", + "Dep. Variable: y No. Observations: 354365\n", + "Model: GLM Df Residuals: 354350\n", + "Model Family: Binomial Df Model: 14\n", + "Link Function: Logit Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -1.8693e+05\n", + "Date: Thu, 21 Mar 2024 Deviance: 3.7387e+05\n", + "Time: 13:19:33 Pearson chi2: 1.97e+16\n", + "No. Iterations: 100 Pseudo R-squ. (CS): 0.2820\n", + "Covariance Type: nonrobust \n", + "=======================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "---------------------------------------------------------------------------------------\n", + "const -1.3943 0.062 -22.456 0.000 -1.516 -1.273\n", + "nb_tickets -0.3312 0.016 -20.967 0.000 -0.362 -0.300\n", + "nb_purchases 0.9258 0.098 9.491 0.000 0.735 1.117\n", + "total_amount 0.8922 0.042 21.393 0.000 0.810 0.974\n", + "nb_suppliers 0.2238 0.007 32.137 0.000 0.210 0.237\n", + "vente_internet_max -0.7453 0.007 -100.473 0.000 -0.760 -0.731\n", + "purchase_date_min 0.7123 0.015 46.063 0.000 0.682 0.743\n", + "purchase_date_max -1.3328 0.017 -79.297 0.000 -1.366 -1.300\n", + "nb_tickets_internet 0.1784 0.011 16.366 0.000 0.157 0.200\n", + "is_email_true 0.8635 0.061 14.086 0.000 0.743 0.984\n", + "opt_in -1.7487 0.010 -174.737 0.000 -1.768 -1.729\n", + "gender_female 0.8084 0.013 60.803 0.000 0.782 0.835\n", + "gender_male 0.8731 0.014 64.332 0.000 0.846 0.900\n", + "nb_campaigns 0.1751 0.006 31.101 0.000 0.164 0.186\n", + "nb_campaigns_opened 0.2962 0.005 54.145 0.000 0.285 0.307\n", + "=======================================================================================\n" + ] + } + ], + "source": [ + "# with the function\n", + "\n", + "# 1. logit with weights\n", + "results_logit_weight = model_logit(X,y,weight_dict=weight_dict)\n", + "print(results_logit_weight)" + ] + }, + { + "cell_type": "code", + "execution_count": 252, + "id": "84dd6242-a9c3-4dee-a58b-abc5f1c6f8fa", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Generalized Linear Model Regression Results \n", + "==============================================================================\n", + "Dep. Variable: y No. Observations: 354365\n", + "Model: GLM Df Residuals: 354350\n", + "Model Family: Binomial Df Model: 14\n", + "Link Function: Logit Scale: 1.0000\n", + "Method: IRLS Log-Likelihood: -83141.\n", + "Date: Thu, 21 Mar 2024 Deviance: 1.6628e+05\n", + "Time: 13:20:06 Pearson chi2: 4.52e+15\n", + "No. Iterations: 8 Pseudo R-squ. (CS): 0.1180\n", + "Covariance Type: nonrobust \n", + "=======================================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "---------------------------------------------------------------------------------------\n", + "const -3.6025 0.091 -39.755 0.000 -3.780 -3.425\n", + "nb_tickets -0.0230 0.010 -2.191 0.028 -0.044 -0.002\n", + "nb_purchases -0.0519 0.014 -3.609 0.000 -0.080 -0.024\n", + "total_amount 0.0799 0.021 3.841 0.000 0.039 0.121\n", + "nb_suppliers 0.1694 0.010 17.662 0.000 0.151 0.188\n", + "vente_internet_max -0.8764 0.011 -82.965 0.000 -0.897 -0.856\n", + "purchase_date_min 0.5881 0.015 39.936 0.000 0.559 0.617\n", + "purchase_date_max -1.4197 0.016 -89.592 0.000 -1.451 -1.389\n", + "nb_tickets_internet 0.2895 0.013 22.652 0.000 0.264 0.315\n", + "is_email_true 0.8651 0.088 9.797 0.000 0.692 1.038\n", + "opt_in -1.9976 0.019 -107.305 0.000 -2.034 -1.961\n", + "gender_female 0.7032 0.024 29.395 0.000 0.656 0.750\n", + "gender_male 0.8071 0.024 33.201 0.000 0.759 0.855\n", + "nb_campaigns 0.2850 0.009 30.633 0.000 0.267 0.303\n", + "nb_campaigns_opened 0.2061 0.007 28.245 0.000 0.192 0.220\n", + "=======================================================================================\n" + ] + } + ], + "source": [ + "# 2. logit without weights\n", + "\n", + "results_logit = model_logit(X.drop(\"const\", axis=1),y,weight_dict={0:1, 1:1}, add_constant=True)\n", + "print(results_logit)" + ] + }, { "cell_type": "markdown", "id": "36c5e770-72b3-4482-ad61-45b511a11f06", "metadata": {}, "source": [ - "## graphique LASSO - quelles variables sont impotantes dans le modèle ? " + "## graphique LASSO - quelles variables sont importantes dans le modèle ? " ] }, { diff --git a/utils_ml.py b/utils_ml.py new file mode 100644 index 0000000..3222188 --- /dev/null +++ b/utils_ml.py @@ -0,0 +1,410 @@ +import pandas as pd +import numpy as np +import os +import s3fs +import re +import io +from sklearn.linear_model import LogisticRegression +from sklearn.ensemble import RandomForestClassifier +from sklearn.metrics import accuracy_score, confusion_matrix, classification_report, recall_score +from sklearn.utils import class_weight +from sklearn.neighbors import KNeighborsClassifier +from sklearn.naive_bayes import GaussianNB +from sklearn.pipeline import Pipeline +from sklearn.compose import ColumnTransformer +from sklearn.calibration import calibration_curve +from sklearn.preprocessing import OneHotEncoder +from sklearn.impute import SimpleImputer +from sklearn.model_selection import GridSearchCV +from sklearn.preprocessing import StandardScaler, MaxAbsScaler, MinMaxScaler +from sklearn.metrics import make_scorer, f1_score, balanced_accuracy_score +import seaborn as sns +import matplotlib.pyplot as plt +from sklearn.metrics import roc_curve, auc, precision_recall_curve, average_precision_score +from sklearn.exceptions import ConvergenceWarning, DataConversionWarning + +import pickle +import warnings + + +def load_train_test(type_of_activity, type_of_model): + BUCKET = f"projet-bdc2324-team1/Generalization_v2/{type_of_activity}" + File_path_train = BUCKET + "/Train_set.csv" + File_path_test = BUCKET + "/Test_set.csv" + + with fs.open( File_path_train, mode="rb") as file_in: + dataset_train = pd.read_csv(file_in, sep=",") + # dataset_train['y_has_purchased'] = dataset_train['y_has_purchased'].fillna(0) + + with fs.open(File_path_test, mode="rb") as file_in: + dataset_test = pd.read_csv(file_in, sep=",") + # dataset_test['y_has_purchased'] = dataset_test['y_has_purchased'].fillna(0) + + if type_of_model=='premium': + dataset_train['company'] = dataset_train['customer_id'].apply(lambda x: x.split('_')[0]) + dataset_test['company'] = dataset_test['customer_id'].apply(lambda x: x.split('_')[0]) + dataset_train = dataset_train[dataset_train['company'].isin(['1', '3', '4', '5', '6', '7', '8', '10', '11', '13'])] + dataset_test = dataset_test[dataset_test['company'].isin(['1', '3', '4', '5', '6', '7', '8', '10', '11', '13'])] + return dataset_train, dataset_test + + +def save_file_s3(File_name, type_of_activity, type_of_model, model): + image_buffer = io.BytesIO() + plt.savefig(image_buffer, format='png') + image_buffer.seek(0) + FILE_PATH = f"projet-bdc2324-team1/{type_of_model}/{type_of_activity}/{model}/" + FILE_PATH_OUT_S3 = FILE_PATH + File_name + type_of_activity + '_' + model + '.png' + with fs.open(FILE_PATH_OUT_S3, 'wb') as s3_file: + s3_file.write(image_buffer.read()) + plt.close() + + +def save_result_set_s3(result_set, File_name, type_of_activity, type_of_model, model=None, model_path=False): + if model_path: + FILE_PATH_OUT_S3 = f"projet-bdc2324-team1/{type_of_model}/{type_of_activity}/{model}/" + File_name + '.csv' + else: + FILE_PATH_OUT_S3 = f"projet-bdc2324-team1/{type_of_model}/{type_of_activity}/" + File_name + '.csv' + with fs.open(FILE_PATH_OUT_S3, 'w') as file_out: + result_set.to_csv(file_out, index = False) + + +def save_model_s3(File_name, type_of_activity, type_of_model, model, classifier): + model_bytes = pickle.dumps(classifier) + FILE_PATH_OUT_S3 = f"projet-bdc2324-team1/{type_of_model}/{type_of_activity}/{model}/" + File_name + '.pkl' + with fs.open(FILE_PATH_OUT_S3, 'wb') as f: + f.write(model_bytes) + + +def compute_recall(group): + return recall_score(group['y_has_purchased'], group['prediction']) + + +def compute_recall_companies(dataset_test, y_pred, type_of_activity, model): + test = dataset_test.copy() + test['prediction'] = y_pred + test['company'] = dataset_test['customer_id'].str.split('_', expand=True)[0] + recall_scores_by_company = test.groupby('company').apply(compute_recall).reset_index(name='recall_score') + save_result_set_s3(recall_scores_by_company, 'recall_scores_by_company', type_of_activity, type_of_model, model=model, model_path=True) + + +def features_target_split(dataset_train, dataset_test): + features_l = ['nb_campaigns', 'taux_ouverture_mail', 'prop_purchases_internet', 'nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers', 'time_to_open', + 'purchases_10_2021','purchases_10_2022', 'purchases_11_2021', 'purchases_12_2021','purchases_1_2022', 'purchases_2_2022', 'purchases_3_2022', + 'purchases_4_2022', 'purchases_5_2021', 'purchases_5_2022', 'purchases_6_2021', 'purchases_6_2022', 'purchases_7_2021', 'purchases_7_2022', 'purchases_8_2021', + 'purchases_8_2022','purchases_9_2021', 'purchases_9_2022', 'purchase_date_min', 'purchase_date_max', 'nb_targets', 'gender_female', 'gender_male', + 'achat_internet', 'categorie_age_0_10', 'categorie_age_10_20', 'categorie_age_20_30','categorie_age_30_40', + 'categorie_age_40_50', 'categorie_age_50_60', 'categorie_age_60_70', 'categorie_age_70_80', 'categorie_age_plus_80','categorie_age_inconnue', + 'country_fr', 'is_profession_known', 'is_zipcode_known', 'opt_in', 'target_optin', 'target_newsletter', 'target_scolaire', 'target_entreprise', 'target_famille', + 'target_jeune', 'target_abonne'] + X_train = dataset_train[features_l] + y_train = dataset_train[['y_has_purchased']] + + X_test = dataset_test[features_l] + y_test = dataset_test[['y_has_purchased']] + return X_train, X_test, y_train, y_test + + +def preprocess(type_of_model, type_of_activity): + + numeric_features = ['nb_campaigns', 'taux_ouverture_mail', 'prop_purchases_internet', 'nb_tickets', 'nb_purchases', 'total_amount', 'nb_suppliers', + 'purchases_10_2021','purchases_10_2022', 'purchases_11_2021', 'purchases_12_2021','purchases_1_2022', 'purchases_2_2022', 'purchases_3_2022', + 'purchases_4_2022', 'purchases_5_2021', 'purchases_5_2022', 'purchases_6_2021', 'purchases_6_2022', 'purchases_7_2021', 'purchases_7_2022', 'purchases_8_2021', + 'purchases_8_2022','purchases_9_2021', 'purchases_9_2022', 'purchase_date_min', 'purchase_date_max', 'nb_targets', 'time_to_open'] + + binary_features = ['gender_female', 'gender_male', 'achat_internet', 'categorie_age_0_10', 'categorie_age_10_20', 'categorie_age_20_30','categorie_age_30_40', + 'categorie_age_40_50', 'categorie_age_50_60', 'categorie_age_60_70', 'categorie_age_70_80', 'categorie_age_plus_80','categorie_age_inconnue', + 'country_fr', 'is_profession_known', 'is_zipcode_known', 'opt_in'] + + if type_of_activity=='musee': + numeric_features.remove('time_to_open') + + if type_of_model=='premium': + if type_of_activity=='musique': + binary_features.extend(['target_optin', 'target_newsletter']) + elif type_of_activity=='sport': + binary_features.extend(['target_jeune', 'target_entreprise', 'target_abonne']) + else: + binary_features.extend([ 'target_scolaire', 'target_entreprise', 'target_famille', 'target_newsletter']) + + + numeric_transformer = Pipeline(steps=[ + ("imputer", SimpleImputer(strategy="constant", fill_value=0)), + ("scaler", StandardScaler()) + ]) + + binary_transformer = Pipeline(steps=[ + ("imputer", SimpleImputer(strategy="most_frequent")), + ]) + preproc = ColumnTransformer( + transformers=[ + ("num", numeric_transformer, numeric_features), + ("bin", binary_transformer, binary_features) + ] + ) + return preproc + + +def draw_confusion_matrix(y_test, y_pred, model): + conf_matrix = confusion_matrix(y_test, y_pred) + sns.heatmap(conf_matrix, annot=True, fmt='d', cmap='Blues', xticklabels=['Class 0', 'Class 1'], yticklabels=['Class 0', 'Class 1']) + plt.xlabel('Predicted') + plt.ylabel('Actual') + plt.title('Confusion Matrix') + plt.show() + save_file_s3("Confusion_matrix_", type_of_activity, type_of_model, model) + + +def draw_roc_curve(X_test, y_pred_prob, model): + # Calcul des taux de faux positifs (FPR) et de vrais positifs (TPR) + fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob, pos_label=1) + + # Calcul de l'aire sous la courbe ROC (AUC) + roc_auc = auc(fpr, tpr) + + plt.figure(figsize = (14, 8)) + plt.plot(fpr, tpr, label="ROC curve(area = %0.3f)" % roc_auc) + plt.plot([0, 1], [0, 1], color="red",label="Random Baseline", linestyle="--") + plt.grid(color='gray', linestyle='--', linewidth=0.5) + plt.xlabel("False Positive Rate") + plt.ylabel("True Positive Rate") + plt.title("ROC Curve", size=18) + plt.legend(loc="lower right") + plt.show() + save_file_s3("Roc_curve_", type_of_activity, type_of_model, model) + + +def draw_calibration_curve(X_test, y_pred_prob, model): + frac_pos, mean_pred = calibration_curve(y_test, y_pred_prob, n_bins=10) + + # Plot the calibration curve + plt.plot(mean_pred, frac_pos, 's-', label=model) + plt.plot([0, 1], [0, 1], 'k--', label='Perfectly calibrated') + plt.xlabel('Mean predicted value') + plt.ylabel('Fraction of positive predictions') + plt.title("Calibration Curve") + plt.legend() + plt.show() + save_file_s3("Calib_curve_", type_of_activity, type_of_model, model) + + +def draw_features_importance(pipeline, model, randomF = False): + if randomF: + coefficients = pipeline.named_steps[model].feature_importances_ + else: + coefficients = pipeline.named_steps[model].coef_[0] + + feature_names = pipeline.named_steps['preprocessor'].get_feature_names_out() + # Tracer l'importance des caractéristiques + plt.figure(figsize=(12, 8)) + plt.barh(feature_names, coefficients, color='skyblue') + plt.xlabel("Features' Importance") + plt.ylabel('Caractéristiques') + plt.title("Features' Importance") + plt.grid(True) + plt.show() + save_file_s3("Features_", type_of_activity, type_of_model, model) + + +def draw_prob_distribution(y_pred_prob, model): + plt.figure(figsize=(10, 8)) + plt.hist(y_pred_prob, bins=10, range=(0, 1), color='blue', alpha=0.7) + + plt.xlim(0, 1) + plt.ylim(0, None) + + plt.title('Histogramme des probabilités pour la classe 1') + plt.xlabel('Probability') + plt.ylabel('Frequency') + plt.grid(True) + plt.show() + save_file_s3("prob_dist_", type_of_activity, type_of_model, model) + + +def draw_prob_distribution_companies(y_pred_prob, model): + test = dataset_test.copy() + test['probability to buy'] = y_pred_prob + test['company'] = test['customer_id'].str.split('_', expand=True)[0] + sns.histplot(data=test, x='probability to buy', hue='company', element='step', + stat='count', common_norm=False, bins=10, palette='Set1', alpha=1) + plt.xlim(0, 1) + plt.ylim(0, None) + plt.title('Histogram of probabilities for class 1 by company') + plt.xlabel('Probability') + plt.ylabel('Frequency') + plt.grid(True) + plt.show() + save_file_s3("prob_dist_companies_", type_of_activity, type_of_model, model) + + + +def pipeline_logreg_benchmark(X_train, y_train, X_test, y_test, model_result): + pipeline = Pipeline(steps=[ + ('preprocessor', preproc), + ('LogisticRegression_Benchmark', LogisticRegression(solver='saga', class_weight = weight_dict, + max_iter=5000, n_jobs=-1)) +]) + pipeline.fit(X_train, y_train) + + y_pred = pipeline.predict(X_test) + y_pred_prob = pipeline.predict_proba(X_test)[:, 1] + + fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob, pos_label = 1) + model = "LogisticRegression_Benchmark" + result = pd.DataFrame({"Model" : [model], + "Accuracy" : [accuracy_score(y_test, y_pred)], + "Recall" : [recall_score(y_test, y_pred)], + "F1_score" : [f1_score(y_test, y_pred, average="macro")], + "AUC" : [auc(fpr, tpr)]} + ) + model_result = pd.concat([model_result, result]) + compute_recall_companies(dataset_test, y_pred, type_of_activity, model) + + draw_confusion_matrix(y_test, y_pred, model) + draw_roc_curve(X_test, y_pred_prob, model) + draw_features_importance(pipeline, 'LogisticRegression_Benchmark') + draw_prob_distribution(y_pred_prob, model) + draw_prob_distribution_companies(y_pred_prob, model) + draw_calibration_curve(X_test, y_pred_prob, model) + save_model_s3('LogisticRegression_Benchmark', type_of_activity, type_of_model, model, pipeline) + return model_result + + +def pipeline_logreg_cv(X_train, y_train, X_test, y_test, model_result): + y_train = y_train['y_has_purchased'] + param_grid = {'LogisticRegression_cv__C': np.logspace(-10, 6, 17, base=2), + 'LogisticRegression_cv__penalty': ['l1', 'l2'], + 'LogisticRegression_cv__class_weight': ['balanced', weight_dict]} + pipeline = Pipeline(steps=[ + ('preprocessor', preproc), + ('LogisticRegression_cv', LogisticRegression(solver='saga', max_iter=5000)) +]) + grid_search = GridSearchCV(pipeline, param_grid, cv=3, scoring=make_scorer(recall_score), error_score='raise', + n_jobs=-1) + + grid_search.fit(X_train, y_train) + y_pred = grid_search.predict(X_test) + y_pred_prob = grid_search.predict_proba(X_test)[:, 1] + best_pipeline = grid_search.best_estimator_ + fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob, pos_label = 1) + model = "LogisticRegression_cv" + result = pd.DataFrame({"Model" : [model], + "Accuracy" : [accuracy_score(y_test, y_pred)], + "Recall" : [recall_score(y_test, y_pred)], + "F1_score" : [f1_score(y_test, y_pred, average="macro")], + "AUC" : [auc(fpr, tpr)]} + ) + model_result = pd.concat([model_result, result]) + compute_recall_companies(dataset_test, y_pred, type_of_activity, model) + + draw_confusion_matrix(y_test, y_pred, model) + draw_roc_curve(X_test, y_pred_prob, model) + draw_features_importance(best_pipeline, 'LogisticRegression_cv') + draw_prob_distribution(y_pred_prob, model) + draw_prob_distribution_companies(y_pred_prob, model) + draw_calibration_curve(X_test, y_pred_prob, model) + save_model_s3('LogisticRegression_cv', type_of_activity, type_of_model, model, grid_search) + return model_result + + +def pipeline_randomF_benchmark(X_train, y_train, X_test, y_test, model_result): + pipeline = Pipeline(steps=[ + ('preprocessor', preproc), + ('randomF', RandomForestClassifier(class_weight = weight_dict, + n_jobs=-1)) +]) + pipeline.fit(X_train, y_train) + + y_pred = pipeline.predict(X_test) + y_pred_prob = pipeline.predict_proba(X_test)[:, 1] + + fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob, pos_label = 1) + model = "randomF" + result = pd.DataFrame({"Model" : [model], + "Accuracy" : [accuracy_score(y_test, y_pred)], + "Recall" : [recall_score(y_test, y_pred)], + "F1_score" : [f1_score(y_test, y_pred, average="macro")], + "AUC" : [auc(fpr, tpr)]} + ) + model_result = pd.concat([model_result, result]) + compute_recall_companies(dataset_test, y_pred, type_of_activity, model) + + draw_confusion_matrix(y_test, y_pred, model) + draw_roc_curve(X_test, y_pred_prob, model) + draw_features_importance(pipeline, 'randomF', randomF=True) + draw_prob_distribution(y_pred_prob, model) + draw_prob_distribution_companies(y_pred_prob, model) + draw_calibration_curve(X_test, y_pred_prob, model) + save_model_s3('randomF_Benchmark', type_of_activity, type_of_model, model, pipeline) + return model_result + + +def pipeline_randomF_cv(X_train, y_train, X_test, y_test, model_result): + y_train = y_train['y_has_purchased'] + param_grid = { + 'randomF_cv__n_estimators': [100, 300], + 'randomF_cv__max_features': ['sqrt', 'log2'], + 'randomF_cv__min_samples_split': [2, 10], + 'randomF_cv__min_samples_leaf': [1, 4], + 'randomF_cv__class_weight': [weight_dict] +} + pipeline = Pipeline(steps=[ + ('preprocessor', preproc), + ('randomF_cv', RandomForestClassifier(n_jobs=-1)) +]) + grid_search = GridSearchCV(pipeline, param_grid, cv=3, scoring=make_scorer(recall_score), error_score='raise', + n_jobs=-1) + + grid_search.fit(X_train, y_train) + y_pred = grid_search.predict(X_test) + y_pred_prob = grid_search.predict_proba(X_test)[:, 1] + best_pipeline = grid_search.best_estimator_ + fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob, pos_label = 1) + model = "randomF_cv" + result = pd.DataFrame({"Model" : [model], + "Accuracy" : [accuracy_score(y_test, y_pred)], + "Recall" : [recall_score(y_test, y_pred)], + "F1_score" : [f1_score(y_test, y_pred, average="macro")], + "AUC" : [auc(fpr, tpr)]} + ) + model_result = pd.concat([model_result, result]) + compute_recall_companies(dataset_test, y_pred, type_of_activity, model) + + draw_confusion_matrix(y_test, y_pred, model) + draw_roc_curve(X_test, y_pred_prob, model) + draw_features_importance(best_pipeline, 'randomF_cv', randomF=True) + draw_prob_distribution(y_pred_prob, model) + draw_prob_distribution_companies(y_pred_prob, model) + draw_calibration_curve(X_test, y_pred_prob, model) + save_model_s3('randomF_cv', type_of_activity, type_of_model, model, grid_search) + return model_result + + +def pipeline_naiveBayes_benchmark(X_train, y_train, X_test, y_test, model_result): + unique_classes, counts = np.unique(y_train, return_counts=True) + class_priors = counts / counts.sum() + pipeline = Pipeline(steps=[ + ('preprocessor', preproc), + ('Naive_Bayes', GaussianNB(priors=class_priors)) +]) + pipeline.fit(X_train, y_train) + + y_pred = pipeline.predict(X_test) + y_pred_prob = pipeline.predict_proba(X_test)[:, 1] + + fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob, pos_label = 1) + model = "Naive_Bayes" + result = pd.DataFrame({"Model" : [model], + "Accuracy" : [accuracy_score(y_test, y_pred)], + "Recall" : [recall_score(y_test, y_pred)], + "F1_score" : [f1_score(y_test, y_pred, average="macro")], + "AUC" : [auc(fpr, tpr)]} + ) + model_result = pd.concat([model_result, result]) + compute_recall_companies(dataset_test, y_pred, type_of_activity, model) + + draw_confusion_matrix(y_test, y_pred, model) + draw_roc_curve(X_test, y_pred_prob, model) + draw_prob_distribution(y_pred_prob, model) + draw_calibration_curve(X_test, y_pred_prob, model) + save_model_s3('Naive_Bayes_Benchmark', type_of_activity, type_of_model, model, pipeline) + return model_result \ No newline at end of file diff --git a/utils_segmentation.py b/utils_segmentation.py new file mode 100644 index 0000000..42f3afb --- /dev/null +++ b/utils_segmentation.py @@ -0,0 +1,27 @@ +import pandas as pd +import numpy as np +import os +import io +import s3fs +import re +import pickle +import warnings + + +def load_model(type_of_activity, model): + BUCKET = f"projet-bdc2324-team1/Output_model/{type_of_activity}/{model}/" + filename = model + '.pkl' + file_path = BUCKET + filename + with fs.open(file_path, mode="rb") as f: + model_bytes = f.read() + + model = pickle.loads(model_bytes) + return model + + +def load_test_file(type_of_activity): + file_path_test = f"projet-bdc2324-team1/Generalization/{type_of_activity}/Test_set.csv" + with fs.open(file_path_test, mode="rb") as file_in: + dataset_test = pd.read_csv(file_in, sep=",") + return dataset_test + diff --git a/utils_stat_desc.py b/utils_stat_desc.py new file mode 100644 index 0000000..681e623 --- /dev/null +++ b/utils_stat_desc.py @@ -0,0 +1,438 @@ +import pandas as pd +import os +import s3fs +import io +import warnings +from datetime import date, timedelta, datetime +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.dates as mdates +import seaborn as sns + + +def load_files(nb_compagnie): + customer = pd.DataFrame() + campaigns_brut = pd.DataFrame() + campaigns_kpi = pd.DataFrame() + products = pd.DataFrame() + tickets = pd.DataFrame() + targets = pd.DataFrame() + + # début de la boucle permettant de générer des datasets agrégés pour les 5 compagnies de spectacle + for directory_path in nb_compagnie: + df_customerplus_clean_0 = display_input_databases(directory_path, file_name = "customerplus_cleaned") + df_campaigns_brut = display_input_databases(directory_path, file_name = "campaigns_information", datetime_col = ['opened_at', 'sent_at', 'campaign_sent_at']) + df_products_purchased_reduced = display_input_databases(directory_path, file_name = "products_purchased_reduced", datetime_col = ['purchase_date']) + df_target_information = display_input_databases(directory_path, file_name = "target_information") + + df_campaigns_kpi = campaigns_kpi_function(campaigns_information = df_campaigns_brut, max_date=pd.Timestamp.now(tz='UTC')) + df_tickets_kpi = tickets_kpi_function(tickets_information = df_products_purchased_reduced) + df_customerplus_clean = customerplus_kpi_function(customerplus_clean = df_customerplus_clean_0) + df_target_KPI = targets_KPI(df_target = df_target_information) + + # Merge and + df_target_KPI = pd.merge(df_customerplus_clean_0[['customer_id']], df_target_KPI, how = 'left', on = 'customer_id') + targets_columns = list(df_target_KPI.columns) + targets_columns.remove('customer_id') + df_target_KPI[targets_columns] = df_target_KPI[targets_columns].fillna(0) + + # creation de la colonne Number compagnie, qui permettra d'agréger les résultats + df_tickets_kpi["number_company"]=int(directory_path) + df_campaigns_brut["number_company"]=int(directory_path) + df_campaigns_kpi["number_company"]=int(directory_path) + df_customerplus_clean["number_company"]=int(directory_path) + df_target_information["number_company"]=int(directory_path) + df_target_KPI["number_company"]=int(directory_path) + + # Traitement des index + df_tickets_kpi["customer_id"]= directory_path + '_' + df_tickets_kpi['customer_id'].astype('str') + df_campaigns_brut["customer_id"]= directory_path + '_' + df_campaigns_brut['customer_id'].astype('str') + df_campaigns_kpi["customer_id"]= directory_path + '_' + df_campaigns_kpi['customer_id'].astype('str') + df_customerplus_clean["customer_id"]= directory_path + '_' + df_customerplus_clean['customer_id'].astype('str') + df_products_purchased_reduced["customer_id"]= directory_path + '_' + df_products_purchased_reduced['customer_id'].astype('str') +<<<<<<< HEAD + + # Remove companies' outliers + df_tickets_kpi = remove_outlier_total_amount(df_tickets_kpi) + # harmonize set of customers across databases + customer_id = df_tickets_kpi['customer_id'].to_list() + for dataset in [df_campaigns_brut, df_campaigns_kpi, df_customerplus_clean, df_target_information]: + dataset = dataset[dataset['customer_id'].isin(customer_id)] + +======= + df_target_KPI["customer_id"]= directory_path + '_' + df_target_KPI['customer_id'].astype('str') + + +>>>>>>> main + # Concaténation + customer = pd.concat([customer, df_customerplus_clean], ignore_index=True) + campaigns_kpi = pd.concat([campaigns_kpi, df_campaigns_kpi], ignore_index=True) + campaigns_brut = pd.concat([campaigns_brut, df_campaigns_brut], ignore_index=True) + tickets = pd.concat([tickets, df_tickets_kpi], ignore_index=True) + products = pd.concat([products, df_products_purchased_reduced], ignore_index=True) + targets = pd.concat([targets, df_target_KPI], ignore_index=True) + + return customer, campaigns_kpi, campaigns_brut, tickets, products, targets + + +def remove_outlier_total_amount(tickets): + Q1 = tickets['total_amount'].quantile(0.25) + Q3 = tickets['total_amount'].quantile(0.75) + IQR = Q3 - Q1 + upper = Q3 +1.5*IQR + outliers = tickets[tickets['total_amount'] > upper]['customer_id'].to_list() + tickets = tickets[~tickets['customer_id'].isin(outliers)] + return tickets + + +def save_file_s3(File_name, type_of_activity): + image_buffer = io.BytesIO() + plt.savefig(image_buffer, format='png') + image_buffer.seek(0) + FILE_PATH = f"projet-bdc2324-team1/stat_desc/{type_of_activity}/" + FILE_PATH_OUT_S3 = FILE_PATH + File_name + type_of_activity + '.png' + with fs.open(FILE_PATH_OUT_S3, 'wb') as s3_file: + s3_file.write(image_buffer.read()) + plt.close() + + +def outlier_detection(tickets, company_list, show_diagram=False): + + outlier_list = list() + + for company in company_list: + total_amount_share = tickets[tickets['number_company']==int(company)].groupby('customer_id')['total_amount'].sum().reset_index() + total_amount_share['CA'] = total_amount_share['total_amount'].sum() + total_amount_share['share_total_amount'] = total_amount_share['total_amount']/total_amount_share['CA'] + + total_amount_share_index = total_amount_share.set_index('customer_id') + df_circulaire = total_amount_share_index['total_amount'].sort_values(axis = 0, ascending = False) + #print('df circulaire : ', df_circulaire.head()) + top = df_circulaire[:1] + #print('top : ', top) + outlier_list.append(top.index[0]) + rest = df_circulaire[1:] + + rest_sum = rest.sum() + + new_series = pd.concat([top, pd.Series([rest_sum], index=['Autre'])]) + + if show_diagram: + plt.figure(figsize=(3, 3)) + plt.pie(new_series, labels=new_series.index, autopct='%1.1f%%', startangle=140, pctdistance=0.5) + plt.axis('equal') + plt.title(f'Répartition des montants totaux pour la compagnie {company}') + plt.show() + return outlier_list + + +def valid_customer_detection(products, campaigns_brut): + products_valid = products[products['purchase_date']>="2021-05-01"] + consumer_valid_product = products_valid['customer_id'].to_list() + + campaigns_valid = campaigns_brut[campaigns_brut["sent_at"]>="2021-05-01"] + consumer_valid_campaigns = campaigns_valid['customer_id'].to_list() + + consumer_valid = consumer_valid_product + consumer_valid_campaigns + return consumer_valid + + +def identify_purchase_during_target_periode(products): + products_target_period = products[(products['purchase_date']>="2022-11-01") + & (products['purchase_date']<="2023-11-01")] + customer_target_period = products_target_period['customer_id'].to_list() + return customer_target_period + + +def remove_elements(lst, elements_to_remove): + return ''.join([x for x in lst if x not in elements_to_remove]) + + +def compute_nb_clients(customer, type_of_activity): + company_nb_clients = customer[customer["purchase_count"]>0].groupby("number_company")["customer_id"].count().reset_index() + plt.bar(company_nb_clients["number_company"], company_nb_clients["customer_id"]/1000) + + plt.xlabel('Company') + plt.ylabel("Number of clients (thousands)") + plt.title(f"Number of clients Across {type_of_activity} Companies") + plt.xticks(company_nb_clients["number_company"], ["{}".format(i) for i in company_nb_clients["number_company"]]) + plt.show() + save_file_s3("nb_clients_", type_of_activity) + + +def maximum_price_paid(customer, type_of_activity): + company_max_price = customer.groupby("number_company")["max_price"].max().reset_index() + plt.bar(company_max_price["number_company"], company_max_price["max_price"]) + + plt.xlabel('Company Number') + plt.ylabel("Maximal price of a ticket Prix") + plt.title(f"Maximal price of a ticket Across {type_of_activity} Companies") + plt.xticks(company_max_price["number_company"], ["{}".format(i) for i in company_max_price["number_company"]]) + plt.show() + save_file_s3("Maximal_price_", type_of_activity) + + +def target_proportion(customer, type_of_activity): + df_y = customer.groupby(["number_company"]).agg({"has_purchased_target_period" : 'sum', + 'customer_id' : 'nunique'}).reset_index() + df_y['prop_has_purchased_target_period'] = (df_y["has_purchased_target_period"]/df_y['customer_id'])*100 + plt.bar(df_y["number_company"], df_y["prop_has_purchased_target_period"]) + plt.xlabel('Company Number') + plt.ylabel('Share (%)') + plt.title(f'Share of Customers who Bought during the Target Period Across {type_of_activity} Companies') + plt.xticks(df_y["number_company"], ["{}".format(i) for i in df_y["number_company"]]) + plt.show() + save_file_s3("share_target_", type_of_activity) + + +def mailing_consent(customer, type_of_activity): + mailing_consent = customer.groupby("number_company")["opt_in"].mean().reset_index() + mailing_consent["opt_in"] *= 100 + plt.bar(mailing_consent["number_company"], mailing_consent["opt_in"]) + + plt.xlabel('Company Number') + plt.ylabel('Mailing Consent (%)') + plt.title(f'Consent of mailing Across {type_of_activity} Companies') + plt.xticks(mailing_consent["number_company"], ["{}".format(i) for i in mailing_consent["number_company"]]) + plt.show() + save_file_s3("mailing_consent_", type_of_activity) + + +def mailing_consent_by_target(customer): + df_graph = customer.groupby(["number_company", "has_purchased_target_period"])["opt_in"].mean().reset_index() + # Création du barplot groupé + fig, ax = plt.subplots(figsize=(10, 6)) + + categories = df_graph["number_company"].unique() + bar_width = 0.35 + bar_positions = np.arange(len(categories)) + + # Grouper les données par label et créer les barres groupées + for label in df_graph["has_purchased_target_period"].unique(): + label_data = df_graph[df_graph['has_purchased_target_period'] == label] + values = [label_data[label_data['number_company'] == category]['opt_in'].values[0]*100 for category in categories] + + label_printed = "Purchase" if label else "No purchase" + ax.bar(bar_positions, values, bar_width, label=label_printed) + + # Mise à jour des positions des barres pour le prochain groupe + bar_positions = [pos + bar_width for pos in bar_positions] + + # Ajout des étiquettes, de la légende, etc. + ax.set_xlabel('Company Number') + ax.set_ylabel('Mailing Consent (%)') + ax.set_title(f'Consent of mailing according to target Across {type_of_activity} Companies') + ax.set_xticks([pos + bar_width / 2 for pos in np.arange(len(categories))]) + ax.set_xticklabels(categories) + ax.legend() + + # Affichage du plot + plt.show() + save_file_s3("mailing_consent_target_", type_of_activity) + + +def gender_bar(customer, type_of_activity): + company_genders = customer.groupby("number_company")[["gender_male", "gender_female", "gender_other"]].mean().reset_index() + + company_genders["gender_male"] *= 100 + company_genders["gender_female"] *= 100 + company_genders["gender_other"] *= 100 + + # Création du barplot + plt.bar(company_genders["number_company"], company_genders["gender_male"], label = "Male") + plt.bar(company_genders["number_company"], company_genders["gender_female"], + bottom = company_genders["gender_male"], label = "Female") + plt.bar(company_genders["number_company"], company_genders["gender_other"], + bottom = company_genders["gender_male"] + company_genders["gender_female"], label = "Unknown") + + plt.xlabel('Company Number') + plt.ylabel("Frequency (%)") + plt.title(f"Gender Distribution of Customers Across {type_of_activity} Companies") + plt.legend() + plt.xticks(company_genders["number_company"], ["{}".format(i) for i in company_genders["number_company"]]) + plt.show() + save_file_s3("gender_bar_", type_of_activity) + + +def country_bar(customer, type_of_activity): + company_country_fr = customer.groupby("number_company")["country_fr"].mean().reset_index() + company_country_fr["country_fr"] *= 100 + plt.bar(company_country_fr["number_company"], company_country_fr["country_fr"]) + + plt.xlabel('Company Number') + plt.ylabel("Share of French Customer (%)") + plt.title(f"Share of French Customer Across {type_of_activity} Companies") + plt.xticks(company_country_fr["number_company"], ["{}".format(i) for i in company_country_fr["number_company"]]) + plt.show() + save_file_s3("country_bar_", type_of_activity) + + +def lazy_customer_plot(campaigns_kpi, type_of_activity): + company_lazy_customers = campaigns_kpi.groupby("number_company")["nb_campaigns_opened"].mean().reset_index() + plt.bar(company_lazy_customers["number_company"], company_lazy_customers["nb_campaigns_opened"]) + + plt.xlabel('Company Number') + plt.title(f"Share of Customers who did not Open Mail Across {type_of_activity} Companies") + plt.xticks(company_lazy_customers["number_company"], ["{}".format(i) for i in company_lazy_customers["number_company"]]) + plt.show() + save_file_s3("lazy_customer_", type_of_activity) + + +def campaigns_effectiveness(customer, type_of_activity): + + campaigns_effectiveness = customer.groupby(["number_company", "has_purchased_target_period"])["opt_in"].mean().reset_index() + + fig, ax = plt.subplots(figsize=(10, 6)) + + categories = campaigns_effectiveness["number_company"].unique() + bar_width = 0.35 + bar_positions = np.arange(len(categories)) + + # Grouper les données par label et créer les barres groupées + for label in campaigns_effectiveness["has_purchased_target_period"].unique(): + label_data = campaigns_effectiveness[campaigns_effectiveness['has_purchased_target_period'] == label] + values = [label_data[label_data['number_company'] == category]['opt_in'].values[0]*100 for category in categories] + + label_printed = "Purchase" if label else "No purchase" + ax.bar(bar_positions, values, bar_width, label=label_printed) + + # Mise à jour des positions des barres pour le prochain groupe + bar_positions = [pos + bar_width for pos in bar_positions] + + # Ajout des étiquettes, de la légende, etc. + ax.set_xlabel('Company Number') + ax.set_ylabel('Share of Consent (%)') + ax.set_title(f"Proportion of customers who have given their consent to receive emails, by customer class ({type_of_activity} companies)") + ax.set_xticks([pos + bar_width / 2 for pos in np.arange(len(categories))]) + ax.set_xticklabels(categories) + ax.legend() + plt.show() + save_file_s3("campaigns_effectiveness_", type_of_activity) + + +def sale_dynamics(products, campaigns_brut, type_of_activity): + purchase_min = products.groupby(['customer_id'])['purchase_date'].min().reset_index() + purchase_min.rename(columns = {'purchase_date' : 'first_purchase_event'}, inplace = True) + purchase_min['first_purchase_event'] = pd.to_datetime(purchase_min['first_purchase_event']) + purchase_min['first_purchase_month'] = pd.to_datetime(purchase_min['first_purchase_event'].dt.strftime('%Y-%m')) + + # Mois du premier mails + first_mail_received = campaigns_brut.groupby('customer_id')['sent_at'].min().reset_index() + first_mail_received.rename(columns = {'sent_at' : 'first_email_reception'}, inplace = True) + first_mail_received['first_email_reception'] = pd.to_datetime(first_mail_received['first_email_reception']) + first_mail_received['first_email_month'] = pd.to_datetime(first_mail_received['first_email_reception'].dt.strftime('%Y-%m')) + + # Fusion + known_customer = pd.merge(purchase_min[['customer_id', 'first_purchase_month']], + first_mail_received[['customer_id', 'first_email_month']], on = 'customer_id', how = 'outer') + + # Mois à partir duquel le client est considere comme connu + + known_customer['known_date'] = pd.to_datetime(known_customer[['first_email_month', 'first_purchase_month']].min(axis = 1), utc = True, format = 'ISO8601') + + # Nombre de commande par mois + purchases_count = pd.merge(products[['customer_id', 'purchase_id', 'purchase_date']].drop_duplicates(), known_customer[['customer_id', 'known_date']], on = ['customer_id'], how = 'inner') + purchases_count['is_customer_known'] = purchases_count['purchase_date'] > purchases_count['known_date'] + pd.DateOffset(months=1) + purchases_count['purchase_date_month'] = pd.to_datetime(purchases_count['purchase_date'].dt.strftime('%Y-%m')) + purchases_count = purchases_count[purchases_count['customer_id'] != 1] + + # Nombre de commande par mois par type de client + nb_purchases_graph = purchases_count.groupby(['purchase_date_month', 'is_customer_known'])['purchase_id'].count().reset_index() + nb_purchases_graph.rename(columns = {'purchase_id' : 'nb_purchases'}, inplace = True) + + nb_purchases_graph_2 = purchases_count.groupby(['purchase_date_month', 'is_customer_known'])['customer_id'].nunique().reset_index() + nb_purchases_graph_2.rename(columns = {'customer_id' : 'nb_new_customer'}, inplace = True) + + # Graphique en nombre de commande + purchases_graph = nb_purchases_graph + + purchases_graph_used = purchases_graph[purchases_graph["purchase_date_month"] >= datetime(2021,3,1)] + purchases_graph_used_0 = purchases_graph_used[purchases_graph_used["is_customer_known"]==False] + purchases_graph_used_1 = purchases_graph_used[purchases_graph_used["is_customer_known"]==True] + + + merged_data = pd.merge(purchases_graph_used_0, purchases_graph_used_1, on="purchase_date_month", suffixes=("_new", "_old")) + + plt.bar(merged_data["purchase_date_month"], merged_data["nb_purchases_new"], width=12, label="New Customers") + plt.bar(merged_data["purchase_date_month"], merged_data["nb_purchases_old"], + bottom=merged_data["nb_purchases_new"], width=12, label="Existing Customers") + + + # commande pr afficher slt + plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%b%y')) + + plt.xlabel('Month') + plt.ylabel("Number of Sales") + plt.title(f"Number of Sales Across {type_of_activity} Companies") + plt.legend() + plt.show() + save_file_s3("sale_dynamics_", type_of_activity) + + +def tickets_internet(tickets, type_of_activity): + nb_tickets_internet = tickets.groupby("number_company")['prop_purchases_internet'].mean().reset_index() + nb_tickets_internet['prop_purchases_internet'] *=100 + plt.bar(nb_tickets_internet["number_company"], nb_tickets_internet["prop_purchases_internet"]) + + plt.xlabel('Company Number') + plt.ylabel("Share of Purchases Bought Online (%)") + plt.title(f"Share of Online Purchases Across {type_of_activity} Companies") + plt.xticks(nb_tickets_internet["number_company"], ["{}".format(i) for i in nb_tickets_internet["number_company"]]) + plt.show() + save_file_s3("tickets_internet_", type_of_activity) + + +def already_bought_online(tickets, type_of_activity): + nb_consumers_online = (tickets.groupby("number_company").agg({'achat_internet' : 'sum', + 'customer_id' : 'nunique'} + ).reset_index()) + nb_consumers_online["Share_consumers_internet"] = (nb_consumers_online["achat_internet"]/ nb_consumers_online["customer_id"])*100 + + plt.bar(nb_consumers_online["number_company"], nb_consumers_online["Share_consumers_internet"]) + + plt.xlabel('Company Number') + plt.ylabel("Share of Customer who Bought Online at least once (%)") + plt.title(f"Share of Customer who Bought Online at least once Across {type_of_activity} Companies") + plt.xticks(nb_consumers_online["number_company"], ["{}".format(i) for i in nb_consumers_online["number_company"]]) + plt.show() + save_file_s3("First_buy_internet_", type_of_activity) + + +def box_plot_price_tickets(tickets, type_of_activity): + price_tickets = tickets[(tickets['total_amount'] > 0)] + sns.boxplot(data=price_tickets, y="total_amount", x="number_company", showfliers=False, showmeans=True) + plt.title(f"Box plot of price tickets Across {type_of_activity} Companies") + plt.show() + save_file_s3("box_plot_price_tickets_", type_of_activity) + +def target_description(targets, type_of_activity): + + describe_target = targets.groupby('number_company').agg( + prop_target_jeune=('target_jeune', lambda x: (x.sum() / x.count())*100), + prop_target_scolaire=('target_scolaire', lambda x: (x.sum() / x.count())*100), + prop_target_entreprise=('target_entreprise', lambda x: (x.sum() / x.count())*100), + prop_target_famille=('target_famille', lambda x: (x.sum() / x.count())*100), + prop_target_optin=('target_optin', lambda x: (x.sum() / x.count())*100), + prop_target_optout=('target_optout', lambda x: (x.sum() / x.count())*100), + prop_target_newsletter=('target_newsletter', lambda x: (x.sum() / x.count())*100), + prop_target_abonne=('target_abonne', lambda x: (x.sum() / x.count())*100)) + + plot = describe_target.plot.bar() + + # Adding a title + plot.set_title(f"Distribution of Targets by Category for {type_of_activity} companies") + + # Adding labels for x and y axes + plot.set_xlabel("Company Number") + plot.set_ylabel("Target Proportion") + + plot.set_xticklabels(plot.get_xticklabels(), rotation=0, horizontalalignment='center') + + + # Adding a legend + plot.legend(["Youth", "School", "Enterprise", "Family", "Optin", "Optout", "Newsletter", "Subscriber"], title="Target Category") + + save_file_s3("target_category_proportion_", type_of_activity) + + +