7025 lines
805 KiB
Plaintext
7025 lines
805 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "be628bfc-0bca-48b0-97c9-29063289127e",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Statistiques descriptives : compagnies offrant des spectacles"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "0bf5450b-f44d-430a-aed7-d875dc365048",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Importations et chargement des données"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "aa915888-cede-4eb0-8a26-7df573d29a3e",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import pandas as pd\n",
|
||
"import os\n",
|
||
"import s3fs\n",
|
||
"import warnings\n",
|
||
"from datetime import date, timedelta, datetime\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import re"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"id": "17949e81-c30b-4fdf-9872-d7dc2b22ba9e",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Import KPI construction functions\n",
|
||
"#exec(open('0_KPI_functions.py').read())\n",
|
||
"exec(open('../0_KPI_functions.py').read())\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"id": "9c1737a2-bad8-4266-8dec-452085d8cfe7",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"['projet-bdc2324-team1/0_Input/Company_10/campaigns_information.csv',\n",
|
||
" 'projet-bdc2324-team1/0_Input/Company_10/customerplus_cleaned.csv',\n",
|
||
" 'projet-bdc2324-team1/0_Input/Company_10/products_purchased_reduced.csv',\n",
|
||
" 'projet-bdc2324-team1/0_Input/Company_10/target_information.csv']"
|
||
]
|
||
},
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"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",
|
||
"BUCKET = \"projet-bdc2324-team1/0_Input/Company_10\"\n",
|
||
"fs.ls(BUCKET)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"id": "a35dc2f6-2017-4b21-abd2-2c4c112c96b2",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# test avec company 10\n",
|
||
"\n",
|
||
"dic_base=['campaigns_information','customerplus_cleaned','products_purchased_reduced','target_information']\n",
|
||
"for nom_base in dic_base:\n",
|
||
" FILE_PATH_S3_fanta = 'projet-bdc2324-team1/0_Input/Company_10/' + nom_base + '.csv'\n",
|
||
" with fs.open(FILE_PATH_S3_fanta, mode=\"rb\") as file_in:\n",
|
||
" globals()[nom_base] = pd.read_csv(file_in, sep=\",\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "40b705eb-fd18-436b-b150-61611a3c6a84",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# fonction permettant d'extraire une table à partir du numéro de la compagnie (directory_path)\n",
|
||
"\n",
|
||
"def display_databases(directory_path, file_name, datetime_col = None):\n",
|
||
" \"\"\"\n",
|
||
" This function returns the file from s3 storage \n",
|
||
" \"\"\"\n",
|
||
" file_path = \"projet-bdc2324-team1\" + \"/0_Input/Company_\" + directory_path + \"/\" + file_name + \".csv\"\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=\",\", parse_dates = datetime_col, date_parser=custom_date_parser) \n",
|
||
" return df \n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"id": "c56decc3-de19-4786-82a4-1386c72a6bfb",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>id</th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>target_name</th>\n",
|
||
" <th>target_type_is_import</th>\n",
|
||
" <th>target_type_name</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>1165098</td>\n",
|
||
" <td>618562</td>\n",
|
||
" <td>Newsletter mensuelle</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>manual_static_filter</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>1165100</td>\n",
|
||
" <td>618559</td>\n",
|
||
" <td>Newsletter mensuelle</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>manual_static_filter</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>1165101</td>\n",
|
||
" <td>618561</td>\n",
|
||
" <td>Newsletter mensuelle</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>manual_static_filter</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>1165102</td>\n",
|
||
" <td>618560</td>\n",
|
||
" <td>Newsletter mensuelle</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>manual_static_filter</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>1165103</td>\n",
|
||
" <td>618558</td>\n",
|
||
" <td>Newsletter mensuelle</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>manual_static_filter</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>69253</th>\n",
|
||
" <td>1698158</td>\n",
|
||
" <td>18580</td>\n",
|
||
" <td>Newsletter mensuelle</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>manual_static_filter</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>69254</th>\n",
|
||
" <td>1698159</td>\n",
|
||
" <td>18569</td>\n",
|
||
" <td>Newsletter mensuelle</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>manual_static_filter</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>69255</th>\n",
|
||
" <td>1698160</td>\n",
|
||
" <td>2962</td>\n",
|
||
" <td>Newsletter mensuelle</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>manual_static_filter</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>69256</th>\n",
|
||
" <td>1698161</td>\n",
|
||
" <td>3825</td>\n",
|
||
" <td>Newsletter mensuelle</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>manual_static_filter</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>69257</th>\n",
|
||
" <td>1698162</td>\n",
|
||
" <td>5731</td>\n",
|
||
" <td>Newsletter mensuelle</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>manual_static_filter</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>69258 rows × 5 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" id customer_id target_name target_type_is_import \\\n",
|
||
"0 1165098 618562 Newsletter mensuelle False \n",
|
||
"1 1165100 618559 Newsletter mensuelle False \n",
|
||
"2 1165101 618561 Newsletter mensuelle False \n",
|
||
"3 1165102 618560 Newsletter mensuelle False \n",
|
||
"4 1165103 618558 Newsletter mensuelle False \n",
|
||
"... ... ... ... ... \n",
|
||
"69253 1698158 18580 Newsletter mensuelle False \n",
|
||
"69254 1698159 18569 Newsletter mensuelle False \n",
|
||
"69255 1698160 2962 Newsletter mensuelle False \n",
|
||
"69256 1698161 3825 Newsletter mensuelle False \n",
|
||
"69257 1698162 5731 Newsletter mensuelle 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 \n",
|
||
"... ... \n",
|
||
"69253 manual_static_filter \n",
|
||
"69254 manual_static_filter \n",
|
||
"69255 manual_static_filter \n",
|
||
"69256 manual_static_filter \n",
|
||
"69257 manual_static_filter \n",
|
||
"\n",
|
||
"[69258 rows x 5 columns]"
|
||
]
|
||
},
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"target_information"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"id": "c825d64b-356c-4b71-aa3c-90e0dd7ca092",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>ticket_id</th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>purchase_id</th>\n",
|
||
" <th>event_type_id</th>\n",
|
||
" <th>supplier_name</th>\n",
|
||
" <th>purchase_date</th>\n",
|
||
" <th>amount</th>\n",
|
||
" <th>is_full_price</th>\n",
|
||
" <th>name_event_types</th>\n",
|
||
" <th>name_facilities</th>\n",
|
||
" <th>name_categories</th>\n",
|
||
" <th>name_events</th>\n",
|
||
" <th>name_seasons</th>\n",
|
||
" <th>start_date_time</th>\n",
|
||
" <th>end_date_time</th>\n",
|
||
" <th>open</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>1799177</td>\n",
|
||
" <td>36984</td>\n",
|
||
" <td>409613</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>guichet</td>\n",
|
||
" <td>2016-04-28 17:58:26+02:00</td>\n",
|
||
" <td>9.0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>danse</td>\n",
|
||
" <td>le grand t</td>\n",
|
||
" <td>abo t gourmand jeune</td>\n",
|
||
" <td>aringa rossa</td>\n",
|
||
" <td>test 2016/2017</td>\n",
|
||
" <td>2016-09-27 00:00:00+02:00</td>\n",
|
||
" <td>1901-01-01 00:09:21+00:09</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>1799178</td>\n",
|
||
" <td>36984</td>\n",
|
||
" <td>409613</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>guichet</td>\n",
|
||
" <td>2016-04-28 17:58:26+02:00</td>\n",
|
||
" <td>9.0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>cirque</td>\n",
|
||
" <td>le grand t</td>\n",
|
||
" <td>abo t gourmand jeune</td>\n",
|
||
" <td>5èmes hurlants</td>\n",
|
||
" <td>test 2016/2017</td>\n",
|
||
" <td>2016-11-18 00:00:00+01:00</td>\n",
|
||
" <td>1901-01-01 00:09:21+00:09</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>1799179</td>\n",
|
||
" <td>36984</td>\n",
|
||
" <td>409613</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>guichet</td>\n",
|
||
" <td>2016-04-28 17:58:26+02:00</td>\n",
|
||
" <td>9.0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>théâtre</td>\n",
|
||
" <td>le grand t</td>\n",
|
||
" <td>abo t gourmand jeune</td>\n",
|
||
" <td>dom juan</td>\n",
|
||
" <td>test 2016/2017</td>\n",
|
||
" <td>2016-12-07 00:00:00+01:00</td>\n",
|
||
" <td>1901-01-01 00:09:21+00:09</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>1799180</td>\n",
|
||
" <td>36984</td>\n",
|
||
" <td>409613</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>guichet</td>\n",
|
||
" <td>2016-04-28 17:58:26+02:00</td>\n",
|
||
" <td>9.0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>théâtre</td>\n",
|
||
" <td>le grand t</td>\n",
|
||
" <td>abo t gourmand jeune</td>\n",
|
||
" <td>vanishing point</td>\n",
|
||
" <td>test 2016/2017</td>\n",
|
||
" <td>2017-01-04 00:00:00+01:00</td>\n",
|
||
" <td>1901-01-01 00:09:21+00:09</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>1799181</td>\n",
|
||
" <td>36984</td>\n",
|
||
" <td>409613</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>guichet</td>\n",
|
||
" <td>2016-04-28 17:58:26+02:00</td>\n",
|
||
" <td>12.0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>cirque</td>\n",
|
||
" <td>la cite des congres</td>\n",
|
||
" <td>abo t gourmand jeune</td>\n",
|
||
" <td>a o lang pho</td>\n",
|
||
" <td>test 2016/2017</td>\n",
|
||
" <td>2017-01-03 00:00:00+01:00</td>\n",
|
||
" <td>1901-01-01 00:09:21+00:09</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>492309</th>\n",
|
||
" <td>3252232</td>\n",
|
||
" <td>621716</td>\n",
|
||
" <td>710062</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>guichet</td>\n",
|
||
" <td>2023-03-09 12:08:45+01:00</td>\n",
|
||
" <td>7.0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>théâtre</td>\n",
|
||
" <td>cap nort</td>\n",
|
||
" <td>tarif sco co 1 seance scolaire</td>\n",
|
||
" <td>sur moi, le temps</td>\n",
|
||
" <td>2022/2023</td>\n",
|
||
" <td>2023-03-13 14:00:00+01:00</td>\n",
|
||
" <td>1901-01-01 00:09:21+00:09</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>492310</th>\n",
|
||
" <td>3252233</td>\n",
|
||
" <td>621716</td>\n",
|
||
" <td>710062</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>guichet</td>\n",
|
||
" <td>2023-03-09 12:08:45+01:00</td>\n",
|
||
" <td>7.0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>théâtre</td>\n",
|
||
" <td>cap nort</td>\n",
|
||
" <td>tarif sco co 1 seance scolaire</td>\n",
|
||
" <td>sur moi, le temps</td>\n",
|
||
" <td>2022/2023</td>\n",
|
||
" <td>2023-03-13 14:00:00+01:00</td>\n",
|
||
" <td>1901-01-01 00:09:21+00:09</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>492311</th>\n",
|
||
" <td>3252234</td>\n",
|
||
" <td>621716</td>\n",
|
||
" <td>710062</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>guichet</td>\n",
|
||
" <td>2023-03-09 12:08:45+01:00</td>\n",
|
||
" <td>7.0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>théâtre</td>\n",
|
||
" <td>cap nort</td>\n",
|
||
" <td>tarif sco co 1 seance scolaire</td>\n",
|
||
" <td>sur moi, le temps</td>\n",
|
||
" <td>2022/2023</td>\n",
|
||
" <td>2023-03-13 14:00:00+01:00</td>\n",
|
||
" <td>1901-01-01 00:09:21+00:09</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>492312</th>\n",
|
||
" <td>3252235</td>\n",
|
||
" <td>621716</td>\n",
|
||
" <td>710062</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>guichet</td>\n",
|
||
" <td>2023-03-09 12:08:45+01:00</td>\n",
|
||
" <td>7.0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>théâtre</td>\n",
|
||
" <td>cap nort</td>\n",
|
||
" <td>tarif sco co 1 seance scolaire</td>\n",
|
||
" <td>sur moi, le temps</td>\n",
|
||
" <td>2022/2023</td>\n",
|
||
" <td>2023-03-13 14:00:00+01:00</td>\n",
|
||
" <td>1901-01-01 00:09:21+00:09</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>492313</th>\n",
|
||
" <td>3252236</td>\n",
|
||
" <td>621716</td>\n",
|
||
" <td>710062</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>guichet</td>\n",
|
||
" <td>2023-03-09 12:08:45+01:00</td>\n",
|
||
" <td>7.0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>théâtre</td>\n",
|
||
" <td>cap nort</td>\n",
|
||
" <td>tarif sco co 1 seance scolaire</td>\n",
|
||
" <td>sur moi, le temps</td>\n",
|
||
" <td>2022/2023</td>\n",
|
||
" <td>2023-03-13 14:00:00+01:00</td>\n",
|
||
" <td>1901-01-01 00:09:21+00:09</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>492314 rows × 16 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" ticket_id customer_id purchase_id event_type_id supplier_name \\\n",
|
||
"0 1799177 36984 409613 2 guichet \n",
|
||
"1 1799178 36984 409613 3 guichet \n",
|
||
"2 1799179 36984 409613 1 guichet \n",
|
||
"3 1799180 36984 409613 1 guichet \n",
|
||
"4 1799181 36984 409613 3 guichet \n",
|
||
"... ... ... ... ... ... \n",
|
||
"492309 3252232 621716 710062 1 guichet \n",
|
||
"492310 3252233 621716 710062 1 guichet \n",
|
||
"492311 3252234 621716 710062 1 guichet \n",
|
||
"492312 3252235 621716 710062 1 guichet \n",
|
||
"492313 3252236 621716 710062 1 guichet \n",
|
||
"\n",
|
||
" purchase_date amount is_full_price name_event_types \\\n",
|
||
"0 2016-04-28 17:58:26+02:00 9.0 False danse \n",
|
||
"1 2016-04-28 17:58:26+02:00 9.0 False cirque \n",
|
||
"2 2016-04-28 17:58:26+02:00 9.0 False théâtre \n",
|
||
"3 2016-04-28 17:58:26+02:00 9.0 False théâtre \n",
|
||
"4 2016-04-28 17:58:26+02:00 12.0 False cirque \n",
|
||
"... ... ... ... ... \n",
|
||
"492309 2023-03-09 12:08:45+01:00 7.0 False théâtre \n",
|
||
"492310 2023-03-09 12:08:45+01:00 7.0 False théâtre \n",
|
||
"492311 2023-03-09 12:08:45+01:00 7.0 False théâtre \n",
|
||
"492312 2023-03-09 12:08:45+01:00 7.0 False théâtre \n",
|
||
"492313 2023-03-09 12:08:45+01:00 7.0 False théâtre \n",
|
||
"\n",
|
||
" name_facilities name_categories \\\n",
|
||
"0 le grand t abo t gourmand jeune \n",
|
||
"1 le grand t abo t gourmand jeune \n",
|
||
"2 le grand t abo t gourmand jeune \n",
|
||
"3 le grand t abo t gourmand jeune \n",
|
||
"4 la cite des congres abo t gourmand jeune \n",
|
||
"... ... ... \n",
|
||
"492309 cap nort tarif sco co 1 seance scolaire \n",
|
||
"492310 cap nort tarif sco co 1 seance scolaire \n",
|
||
"492311 cap nort tarif sco co 1 seance scolaire \n",
|
||
"492312 cap nort tarif sco co 1 seance scolaire \n",
|
||
"492313 cap nort tarif sco co 1 seance scolaire \n",
|
||
"\n",
|
||
" name_events name_seasons start_date_time \\\n",
|
||
"0 aringa rossa test 2016/2017 2016-09-27 00:00:00+02:00 \n",
|
||
"1 5èmes hurlants test 2016/2017 2016-11-18 00:00:00+01:00 \n",
|
||
"2 dom juan test 2016/2017 2016-12-07 00:00:00+01:00 \n",
|
||
"3 vanishing point test 2016/2017 2017-01-04 00:00:00+01:00 \n",
|
||
"4 a o lang pho test 2016/2017 2017-01-03 00:00:00+01:00 \n",
|
||
"... ... ... ... \n",
|
||
"492309 sur moi, le temps 2022/2023 2023-03-13 14:00:00+01:00 \n",
|
||
"492310 sur moi, le temps 2022/2023 2023-03-13 14:00:00+01:00 \n",
|
||
"492311 sur moi, le temps 2022/2023 2023-03-13 14:00:00+01:00 \n",
|
||
"492312 sur moi, le temps 2022/2023 2023-03-13 14:00:00+01:00 \n",
|
||
"492313 sur moi, le temps 2022/2023 2023-03-13 14:00:00+01:00 \n",
|
||
"\n",
|
||
" end_date_time open \n",
|
||
"0 1901-01-01 00:09:21+00:09 True \n",
|
||
"1 1901-01-01 00:09:21+00:09 True \n",
|
||
"2 1901-01-01 00:09:21+00:09 True \n",
|
||
"3 1901-01-01 00:09:21+00:09 True \n",
|
||
"4 1901-01-01 00:09:21+00:09 True \n",
|
||
"... ... ... \n",
|
||
"492309 1901-01-01 00:09:21+00:09 True \n",
|
||
"492310 1901-01-01 00:09:21+00:09 True \n",
|
||
"492311 1901-01-01 00:09:21+00:09 True \n",
|
||
"492312 1901-01-01 00:09:21+00:09 True \n",
|
||
"492313 1901-01-01 00:09:21+00:09 True \n",
|
||
"\n",
|
||
"[492314 rows x 16 columns]"
|
||
]
|
||
},
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"products_purchased_reduced"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"id": "afd044b8-ac83-4a35-b959-700cae0b3b41",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_10/customerplus_cleaned.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_10/campaigns_information.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_10/products_purchased_reduced.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_10/target_information.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n",
|
||
"<string>: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": [
|
||
"Tables imported for tenant 10\n",
|
||
"File path : projet-bdc2324-team1/0_Input/Company_11/customerplus_cleaned.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_11/campaigns_information.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_11/products_purchased_reduced.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_11/target_information.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n",
|
||
"<string>: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": [
|
||
"Tables imported for tenant 11\n",
|
||
"File path : projet-bdc2324-team1/0_Input/Company_12/customerplus_cleaned.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_12/campaigns_information.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_12/products_purchased_reduced.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n",
|
||
"/tmp/ipykernel_427/3170175140.py:10: DtypeWarning: Columns (4,8,10) have mixed types. Specify dtype option on import or set low_memory=False.\n",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_12/target_information.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n",
|
||
"<string>: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": [
|
||
"Tables imported for tenant 12\n",
|
||
"File path : projet-bdc2324-team1/0_Input/Company_13/customerplus_cleaned.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_13/campaigns_information.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_13/products_purchased_reduced.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_13/target_information.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n",
|
||
"<string>: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": [
|
||
"Tables imported for tenant 13\n",
|
||
"File path : projet-bdc2324-team1/0_Input/Company_14/customerplus_cleaned.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_14/campaigns_information.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_14/products_purchased_reduced.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n",
|
||
"/tmp/ipykernel_427/3170175140.py:10: DtypeWarning: Columns (8,9) have mixed types. Specify dtype option on import or set low_memory=False.\n",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_14/target_information.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3170175140.py:10: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n",
|
||
"<string>: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": [
|
||
"Tables imported for tenant 14\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=['10','11','12','13','14']\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_information = 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_information) \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_compagny\"]=int(directory_path)\n",
|
||
" df_campaigns_kpi[\"number_compagny\"]=int(directory_path)\n",
|
||
" df_customerplus_clean[\"number_compagny\"]=int(directory_path)\n",
|
||
" df_target_information[\"number_compagny\"]=int(directory_path)\n",
|
||
"\n",
|
||
" if nb_compagnie.index(directory_path)>=1:\n",
|
||
" customerplus_clean_spectacle=pd.concat([customerplus_clean_spectacle,df_customerplus_clean],axis=0)\n",
|
||
" campaigns_information_spectacle=pd.concat([campaigns_information_spectacle,df_campaigns_kpi],axis=0)\n",
|
||
" products_purchased_reduced_spectacle=pd.concat([products_purchased_reduced_spectacle,df_tickets_kpi],axis=0)\n",
|
||
" target_information_spectacle=pd.concat([target_information_spectacle,df_target_information],axis=0)\n",
|
||
" else:\n",
|
||
" customerplus_clean_spectacle=df_customerplus_clean\n",
|
||
" campaigns_information_spectacle=df_campaigns_kpi\n",
|
||
" products_purchased_reduced_spectacle=df_tickets_kpi\n",
|
||
" target_information_spectacle=df_target_information\n",
|
||
"\n",
|
||
" print(f\"Tables imported for tenant {directory_path}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 37,
|
||
"id": "b5a4a031-9533-4a50-8569-5f4246691a7a",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>street_id</th>\n",
|
||
" <th>structure_id</th>\n",
|
||
" <th>mcp_contact_id</th>\n",
|
||
" <th>fidelity</th>\n",
|
||
" <th>tenant_id</th>\n",
|
||
" <th>is_partner</th>\n",
|
||
" <th>deleted_at</th>\n",
|
||
" <th>gender</th>\n",
|
||
" <th>is_email_true</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>purchase_count</th>\n",
|
||
" <th>first_buying_date</th>\n",
|
||
" <th>country</th>\n",
|
||
" <th>gender_label</th>\n",
|
||
" <th>gender_female</th>\n",
|
||
" <th>gender_male</th>\n",
|
||
" <th>gender_other</th>\n",
|
||
" <th>country_fr</th>\n",
|
||
" <th>has_tags</th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>17</th>\n",
|
||
" <td>2</td>\n",
|
||
" <td>139</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>18031</th>\n",
|
||
" <td>2</td>\n",
|
||
" <td>319517</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1556</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>2020-01-01 14:06:52+00:00</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>11</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>291642</th>\n",
|
||
" <td>2</td>\n",
|
||
" <td>757541</td>\n",
|
||
" <td>303.0</td>\n",
|
||
" <td>5.0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>862</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>2016-09-08 14:50:00+00:00</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>male</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>14</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>3 rows × 29 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" customer_id street_id structure_id mcp_contact_id fidelity \\\n",
|
||
"17 2 139 NaN NaN 0 \n",
|
||
"18031 2 319517 NaN NaN 0 \n",
|
||
"291642 2 757541 303.0 5.0 1 \n",
|
||
"\n",
|
||
" tenant_id is_partner deleted_at gender is_email_true ... \\\n",
|
||
"17 875 False NaN 2 False ... \n",
|
||
"18031 1556 False NaN 0 True ... \n",
|
||
"291642 862 False NaN 1 True ... \n",
|
||
"\n",
|
||
" purchase_count first_buying_date country gender_label \\\n",
|
||
"17 3 NaN NaN other \n",
|
||
"18031 2 2020-01-01 14:06:52+00:00 fr female \n",
|
||
"291642 3 2016-09-08 14:50:00+00:00 fr male \n",
|
||
"\n",
|
||
" gender_female gender_male gender_other country_fr has_tags \\\n",
|
||
"17 0 0 1 NaN 0 \n",
|
||
"18031 1 0 0 1.0 0 \n",
|
||
"291642 0 1 0 1.0 1 \n",
|
||
"\n",
|
||
" number_compagny \n",
|
||
"17 10 \n",
|
||
"18031 11 \n",
|
||
"291642 14 \n",
|
||
"\n",
|
||
"[3 rows x 29 columns]"
|
||
]
|
||
},
|
||
"execution_count": 37,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"customerplus_clean_spectacle[customerplus_clean_spectacle[\"customer_id\"]==2]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "b9b6ec1f-36fb-4ee9-a1ed-09ff41878005",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"ename": "NameError",
|
||
"evalue": "name 'customerplus_clean_spectacle' is not defined",
|
||
"output_type": "error",
|
||
"traceback": [
|
||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
|
||
"Cell \u001b[0;32mIn[1], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mcustomerplus_clean_spectacle\u001b[49m[customerplus_clean_spectacle[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcustomer_id\u001b[39m\u001b[38;5;124m\"\u001b[39m]\u001b[38;5;241m==\u001b[39m\u001b[38;5;241m1\u001b[39m]\n",
|
||
"\u001b[0;31mNameError\u001b[0m: name 'customerplus_clean_spectacle' is not defined"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"customerplus_clean_spectacle[customerplus_clean_spectacle[\"customer_id\"]==1]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 39,
|
||
"id": "a12c1b7d-6f6f-483e-b215-6336d7a51057",
|
||
"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",
|
||
" 'has_tags', 'number_compagny'],\n",
|
||
" dtype='object')"
|
||
]
|
||
},
|
||
"execution_count": 39,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"customerplus_clean_spectacle.columns"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 38,
|
||
"id": "05b9a396-dcd7-4d3d-8b39-5ca48beba4b0",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"#customerplus_clean_spectacle.isna().sum()\n",
|
||
"#campaigns_information_spectacle.isna().sum()\n",
|
||
"#products_purchased_reduced_spectacle.isna().sum()\n",
|
||
"#target_information_spectacle.isna().sum()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "81e15508-32ca-46f1-a03d-1febddbbf5b4",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Ajout : importation de la table train_set pour faire les stats desc dessus"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"id": "3a1fdd6b-ac43-4e90-9a31-4f522bcc44bb",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_427/3450421856.py:9: DtypeWarning: Columns (38) have mixed types. Specify dtype option on import or set low_memory=False.\n",
|
||
" train_set_spectacle = pd.read_csv(file_in, sep=\",\")\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# importation de la table train_set pour les compagnies de spectacle (ou musique)\n",
|
||
"\n",
|
||
"S3_ENDPOINT_URL = \"https://\" + os.environ[\"AWS_S3_ENDPOINT\"]\n",
|
||
"fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL})\n",
|
||
"\n",
|
||
"path_train_set_spectacle = \"projet-bdc2324-team1/Generalization/musique/Train_set.csv\"\n",
|
||
"\n",
|
||
"with fs.open(path_train_set_spectacle, mode=\"rb\") as file_in:\n",
|
||
" train_set_spectacle = pd.read_csv(file_in, sep=\",\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"id": "3a4c1ff4-2861-4e86-99df-26eea0370dc3",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>nb_tickets</th>\n",
|
||
" <th>nb_purchases</th>\n",
|
||
" <th>total_amount</th>\n",
|
||
" <th>nb_suppliers</th>\n",
|
||
" <th>vente_internet_max</th>\n",
|
||
" <th>purchase_date_min</th>\n",
|
||
" <th>purchase_date_max</th>\n",
|
||
" <th>time_between_purchase</th>\n",
|
||
" <th>nb_tickets_internet</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>country</th>\n",
|
||
" <th>gender_label</th>\n",
|
||
" <th>gender_female</th>\n",
|
||
" <th>gender_male</th>\n",
|
||
" <th>gender_other</th>\n",
|
||
" <th>country_fr</th>\n",
|
||
" <th>nb_campaigns</th>\n",
|
||
" <th>nb_campaigns_opened</th>\n",
|
||
" <th>time_to_open</th>\n",
|
||
" <th>y_has_purchased</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10_299341</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>male</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>12.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>0 days 05:47:26.333333333</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>10_63788</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>62.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>393.205891</td>\n",
|
||
" <td>281.017639</td>\n",
|
||
" <td>112.188252</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0 days 05:13:51</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>10_759946</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>10_20653</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>male</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>11.0</td>\n",
|
||
" <td>10.0</td>\n",
|
||
" <td>1 days 00:45:54</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>10_824705</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>5 rows × 40 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" customer_id nb_tickets nb_purchases total_amount nb_suppliers \\\n",
|
||
"0 10_299341 0.0 0.0 0.0 0.0 \n",
|
||
"1 10_63788 3.0 2.0 62.0 1.0 \n",
|
||
"2 10_759946 0.0 0.0 0.0 0.0 \n",
|
||
"3 10_20653 0.0 0.0 0.0 0.0 \n",
|
||
"4 10_824705 0.0 0.0 0.0 0.0 \n",
|
||
"\n",
|
||
" vente_internet_max purchase_date_min purchase_date_max \\\n",
|
||
"0 0.0 NaN NaN \n",
|
||
"1 1.0 393.205891 281.017639 \n",
|
||
"2 0.0 NaN NaN \n",
|
||
"3 0.0 NaN NaN \n",
|
||
"4 0.0 NaN NaN \n",
|
||
"\n",
|
||
" time_between_purchase nb_tickets_internet ... country gender_label \\\n",
|
||
"0 NaN 0.0 ... fr male \n",
|
||
"1 112.188252 3.0 ... fr female \n",
|
||
"2 NaN 0.0 ... NaN other \n",
|
||
"3 NaN 0.0 ... fr male \n",
|
||
"4 NaN 0.0 ... NaN other \n",
|
||
"\n",
|
||
" gender_female gender_male gender_other country_fr nb_campaigns \\\n",
|
||
"0 0 1 0 1.0 12.0 \n",
|
||
"1 1 0 0 1.0 3.0 \n",
|
||
"2 0 0 1 NaN 0.0 \n",
|
||
"3 0 1 0 1.0 11.0 \n",
|
||
"4 0 0 1 NaN 0.0 \n",
|
||
"\n",
|
||
" nb_campaigns_opened time_to_open y_has_purchased \n",
|
||
"0 3.0 0 days 05:47:26.333333333 0.0 \n",
|
||
"1 1.0 0 days 05:13:51 1.0 \n",
|
||
"2 0.0 NaN 0.0 \n",
|
||
"3 10.0 1 days 00:45:54 0.0 \n",
|
||
"4 0.0 NaN 0.0 \n",
|
||
"\n",
|
||
"[5 rows x 40 columns]"
|
||
]
|
||
},
|
||
"execution_count": 12,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"train_set_spectacle.head()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"id": "4632384d-2a06-445d-9fdb-b0c91b37ebaf",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([0., 1.])"
|
||
]
|
||
},
|
||
"execution_count": 11,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# on remplace les valeurs has purchased = NaN par des 0\n",
|
||
"train_set_spectacle[\"y_has_purchased\"] = train_set_spectacle[\"y_has_purchased\"].fillna(0)\n",
|
||
"train_set_spectacle[\"y_has_purchased\"].unique()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"id": "5fd56696-b479-46c7-8a59-fb8137db5fb5",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([10, 11, 12, 13, 14])"
|
||
]
|
||
},
|
||
"execution_count": 13,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# on reproduit une colonne avec le numéro de la compagnie \n",
|
||
"\n",
|
||
"train_set_spectacle[\"number_company\"] = train_set_spectacle[\"customer_id\"].apply(lambda x : int(re.split(\"_\", str(x))[0]))\n",
|
||
"train_set_spectacle[\"number_company\"].unique()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"id": "91c6e047-43d2-456c-81f1-087026eef4f0",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>nb_tickets</th>\n",
|
||
" <th>nb_purchases</th>\n",
|
||
" <th>total_amount</th>\n",
|
||
" <th>nb_suppliers</th>\n",
|
||
" <th>vente_internet_max</th>\n",
|
||
" <th>purchase_date_min</th>\n",
|
||
" <th>purchase_date_max</th>\n",
|
||
" <th>time_between_purchase</th>\n",
|
||
" <th>nb_tickets_internet</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>gender_label</th>\n",
|
||
" <th>gender_female</th>\n",
|
||
" <th>gender_male</th>\n",
|
||
" <th>gender_other</th>\n",
|
||
" <th>country_fr</th>\n",
|
||
" <th>nb_campaigns</th>\n",
|
||
" <th>nb_campaigns_opened</th>\n",
|
||
" <th>time_to_open</th>\n",
|
||
" <th>y_has_purchased</th>\n",
|
||
" <th>number_company</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10_299341</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>male</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>12.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>0 days 05:47:26.333333333</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>10_63788</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>62.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>393.205891</td>\n",
|
||
" <td>281.017639</td>\n",
|
||
" <td>112.188252</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0 days 05:13:51</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>10_759946</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>10_20653</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>male</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>11.0</td>\n",
|
||
" <td>10.0</td>\n",
|
||
" <td>1 days 00:45:54</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>10_824705</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>5 rows × 41 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" customer_id nb_tickets nb_purchases total_amount nb_suppliers \\\n",
|
||
"0 10_299341 0.0 0.0 0.0 0.0 \n",
|
||
"1 10_63788 3.0 2.0 62.0 1.0 \n",
|
||
"2 10_759946 0.0 0.0 0.0 0.0 \n",
|
||
"3 10_20653 0.0 0.0 0.0 0.0 \n",
|
||
"4 10_824705 0.0 0.0 0.0 0.0 \n",
|
||
"\n",
|
||
" vente_internet_max purchase_date_min purchase_date_max \\\n",
|
||
"0 0.0 NaN NaN \n",
|
||
"1 1.0 393.205891 281.017639 \n",
|
||
"2 0.0 NaN NaN \n",
|
||
"3 0.0 NaN NaN \n",
|
||
"4 0.0 NaN NaN \n",
|
||
"\n",
|
||
" time_between_purchase nb_tickets_internet ... gender_label \\\n",
|
||
"0 NaN 0.0 ... male \n",
|
||
"1 112.188252 3.0 ... female \n",
|
||
"2 NaN 0.0 ... other \n",
|
||
"3 NaN 0.0 ... male \n",
|
||
"4 NaN 0.0 ... other \n",
|
||
"\n",
|
||
" gender_female gender_male gender_other country_fr nb_campaigns \\\n",
|
||
"0 0 1 0 1.0 12.0 \n",
|
||
"1 1 0 0 1.0 3.0 \n",
|
||
"2 0 0 1 NaN 0.0 \n",
|
||
"3 0 1 0 1.0 11.0 \n",
|
||
"4 0 0 1 NaN 0.0 \n",
|
||
"\n",
|
||
" nb_campaigns_opened time_to_open y_has_purchased \\\n",
|
||
"0 3.0 0 days 05:47:26.333333333 0.0 \n",
|
||
"1 1.0 0 days 05:13:51 1.0 \n",
|
||
"2 0.0 NaN 0.0 \n",
|
||
"3 10.0 1 days 00:45:54 0.0 \n",
|
||
"4 0.0 NaN 0.0 \n",
|
||
"\n",
|
||
" number_company \n",
|
||
"0 10 \n",
|
||
"1 10 \n",
|
||
"2 10 \n",
|
||
"3 10 \n",
|
||
"4 10 \n",
|
||
"\n",
|
||
"[5 rows x 41 columns]"
|
||
]
|
||
},
|
||
"execution_count": 14,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"train_set_spectacle.head()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "21e562d4-035d-4112-9f94-527b7fd935cf",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "fff306c2-1d41-4ef6-867b-ba9a7cf4ee68",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Statistiques descriptives"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "0549bdc4-edd7-4511-916e-26e94b5a30f5",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 0. Détection du client anonyme (outlier) - utile pour la section 3"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 45,
|
||
"id": "5b460061-f8b5-4a6b-ba59-539446d8487f",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def outlier_detection(directory_path = \"1\", coupure = 1):\n",
|
||
" df_tickets = display_databases(directory_path, file_name = 'products_purchased_reduced' , datetime_col = ['purchase_date'])\n",
|
||
" df_tickets_kpi = tickets_kpi_function(df_tickets)\n",
|
||
"\n",
|
||
" if directory_path == \"101\" :\n",
|
||
" df_tickets_1 = display_databases(directory_path, file_name = 'products_purchased_reduced_1' , datetime_col = ['purchase_date'])\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": 69,
|
||
"id": "cccee90c-67d1-4e14-8410-1210a5ef97d9",
|
||
"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": 48,
|
||
"id": "b6417f09-a6c7-4319-95b3-98c95ec5a3b7",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"File path : projet-bdc2324-team1/0_Input/Company_10/products_purchased_reduced.csv\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_1173/2987234667.py:8: 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",
|
||
" df = pd.read_csv(file_in, sep=\",\", parse_dates = datetime_col, date_parser=custom_date_parser)\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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xs3Nrcjzr/78kpOTKSws5J133inyO+jbty9w+Xfw7LPP8vrrr7N582b69OlDUFAQt99+O9u2bSvlXVsFBgba3fbw8Ljm/bm5uXbvJSQkxG46nU5n97u/5Ho/M7i+5efq1zMajSVOe7W3336bZ555hsWLF9OtWzcCAwMZNGjQNYffXUtZl6/inDhxgk6dOnHq1CneeustNmzYwNatW3n33XcBx95XSfr160etWrXIzc1l8uTJGAyG657XjXDKo+SNGze2HSXv1q0bZrOZTz75hG+//ZahQ4cSHBwMWP8QBw8eXOw8YmNj7W4nJSUVmSYpKYn69esDsHv3bnbs2MH8+fMZPXq0bZr4+PgSc1bmOMlLf1yJiYlFjp6fPn3a9pmUx+sUFhaSnJxs9wd99ecXEBCAwWBg5MiRTJo0qdh51alTBwA3NzcmT57M5MmTSUtLY9WqVTz33HP06tWLhISEUkcX3Oh7OXfunF1pKqVISkri5ptvLrfXup7l50Z4e3sza9YsZs2axZkzZ2xrmwMGDGD//v1lnt+Vy9fVHF2+Fi9eTFZWFt9//71tzRoodpyxyWQiLy+vyP3nz58v9rUeeughMjIyaNq0KY899hidOnUiICCg1EzlzSnXMK/22muvERAQwPTp07FYLMTGxtKgQQN27NhB27Zti/3x9fW1m8fChQvtbv/xxx8cP36crl27ApfL79K/8pd8+OGHZcpalrWEskzbvXt3AL744gu7+7du3cq+ffu4/fbby5SzJN26dQOKfl5ffvml3W0vLy+6devG33//TYsWLYr9HRS3xubv78/QoUOZNGkSKSkpFToA/NJncvVn9t1335GVlXVdn1lJv7PyWn6Ke73Slo9atWoxZswYhg8fzoEDB8jOzr7m/KBo/vbt2+Pp6Vnkszp58iRr1qyx+6zK8hkopfj444+L5IiJiWHnzp129x08eLDIrjSATz75hC+++IK5c+fy448/kpaWVuzwwsrglGuYVwsICODZZ59lypQpfPnll4wYMYIPP/yQPn360KtXL8aMGUN4eDgpKSns27eP7du3880339jNY9u2bYwfP55hw4aRkJDAv/71L8LDw22b8I0aNaJevXpMnToVpRSBgYEsXbqUlStXlilr8+bNAXj11Vfp06cPBoOBFi1a2DYXr1SvXj08PT1ZuHAhjRs3xsfHh9q1a1O7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",
|
||
"text/plain": [
|
||
"<Figure size 300x300 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# outlier à enlever (dépend des stats desc !)\n",
|
||
"outlier_detection(directory_path=\"10\") # mettre 2 si on veut le 1er client non anonyme"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "f08c082e-f76f-41f3-9530-3e6700eb74d9",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# boucle pour identifier les outliers de chaque compagnie (et le client principal non anonyme)\n",
|
||
"\n",
|
||
"# nb_compagnie=['10','11','12','13','14']\n",
|
||
"for company_number in nb_compagnie :\n",
|
||
" print(f\"outlier for tenant {company_number}\")\n",
|
||
" outlier_detection(directory_path=company_number, coupure = 2)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "dbe1af6a-79e9-45c7-a810-c6df3bf647f7",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# print(products_purchased_reduced_spectacle.loc[products_purchased_reduced_spectacle[\"number_compagny\"]==10][\"total_amount\"].describe())\n",
|
||
"\n",
|
||
"products_purchased_reduced_spectacle.loc[(products_purchased_reduced_spectacle[\"number_compagny\"]==10) & \n",
|
||
"(products_purchased_reduced_spectacle[\"customer_id\"]==19521)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "20e2b8a2-f31c-42a4-8ea5-7ad67ab66915",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# company 11 \n",
|
||
"# etrange, pas de vente sur internet, et un seul supplier. Plus de 9k achats\n",
|
||
"products_purchased_reduced_spectacle.loc[(products_purchased_reduced_spectacle[\"number_compagny\"]==11) & \n",
|
||
"(products_purchased_reduced_spectacle[\"customer_id\"]==36)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "5dbce57c-d091-4ce2-92f9-1201deb2462e",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# company 12\n",
|
||
"products_purchased_reduced_spectacle.loc[(products_purchased_reduced_spectacle[\"number_compagny\"]==12) & \n",
|
||
"(products_purchased_reduced_spectacle[\"customer_id\"]==1706757)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "0a243b57-19da-4e29-a53d-bb8d03e2ab77",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# company 13\n",
|
||
"products_purchased_reduced_spectacle.loc[(products_purchased_reduced_spectacle[\"number_compagny\"]==13) & \n",
|
||
"(products_purchased_reduced_spectacle[\"customer_id\"]==8422)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "3d9b01bc-9584-4882-bd06-7de8acb8a88f",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# company 14\n",
|
||
"# a-t-on vrmt un outlier ? A acheté quasi 3k tickets, pr 96 achats\n",
|
||
"products_purchased_reduced_spectacle.loc[(products_purchased_reduced_spectacle[\"number_compagny\"]==14) & \n",
|
||
"(products_purchased_reduced_spectacle[\"customer_id\"]==6354)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "033c1e00-52bd-4651-b893-57bda531760e",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# verifs dans les tables customerplus (outlier incertain pr 11 et 14)\n",
|
||
"\n",
|
||
"customerplus_clean_spectacle.loc[(customerplus_clean_spectacle[\"customer_id\"]==36) &\n",
|
||
"(customerplus_clean_spectacle[\"number_compagny\"]==11)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "28ac8cda-32fa-4fb7-a75b-e1cc24871c39",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"customerplus_clean_spectacle.loc[(customerplus_clean_spectacle[\"customer_id\"]==6354) &\n",
|
||
"(customerplus_clean_spectacle[\"number_compagny\"]==14)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "3faea297-2cc5-4704-af85-77d95f600cc1",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"customerplus_clean_spectacle.loc[(customerplus_clean_spectacle[\"customer_id\"]==8422) &\n",
|
||
"(customerplus_clean_spectacle[\"number_compagny\"]==13)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "b165ea79-347b-46fb-8217-635d9e888c65",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"customerplus_clean_spectacle.loc[(customerplus_clean_spectacle[\"customer_id\"]==19521) &\n",
|
||
"(customerplus_clean_spectacle[\"number_compagny\"]==10)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "282b0a96-5e78-48aa-9c2c-7d00d3907add",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"customerplus_clean_spectacle.columns"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "4918db6e-249b-412e-b646-9a6686989b79",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "e866edce-f4bc-4627-89d3-3ec7d9ef26e3",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "42f8171c-e80d-4faa-b278-21fcbe3b242c",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 1. customerplus_clean"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 44,
|
||
"id": "47f98721-53dd-4f8f-85ac-88043ee8d967",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>street_id</th>\n",
|
||
" <th>structure_id</th>\n",
|
||
" <th>mcp_contact_id</th>\n",
|
||
" <th>fidelity</th>\n",
|
||
" <th>tenant_id</th>\n",
|
||
" <th>is_partner</th>\n",
|
||
" <th>deleted_at</th>\n",
|
||
" <th>gender</th>\n",
|
||
" <th>is_email_true</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>purchase_count</th>\n",
|
||
" <th>first_buying_date</th>\n",
|
||
" <th>country</th>\n",
|
||
" <th>gender_label</th>\n",
|
||
" <th>gender_female</th>\n",
|
||
" <th>gender_male</th>\n",
|
||
" <th>gender_other</th>\n",
|
||
" <th>country_fr</th>\n",
|
||
" <th>has_tags</th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>821538</td>\n",
|
||
" <td>139</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>809126</td>\n",
|
||
" <td>1063</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>11005</td>\n",
|
||
" <td>1063</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>17663</td>\n",
|
||
" <td>12731</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>38100</td>\n",
|
||
" <td>12395</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>307036</td>\n",
|
||
" <td>139</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>2946</td>\n",
|
||
" <td>1063</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>8</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>18441</td>\n",
|
||
" <td>11139</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>9231</td>\n",
|
||
" <td>139</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>9870</td>\n",
|
||
" <td>139</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>10 rows × 29 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" customer_id street_id structure_id mcp_contact_id fidelity tenant_id \\\n",
|
||
"0 821538 139 NaN NaN 0 875 \n",
|
||
"1 809126 1063 NaN NaN 0 875 \n",
|
||
"2 11005 1063 NaN NaN 0 875 \n",
|
||
"3 17663 12731 NaN NaN 0 875 \n",
|
||
"4 38100 12395 NaN NaN 0 875 \n",
|
||
"5 307036 139 NaN NaN 0 875 \n",
|
||
"6 2946 1063 NaN NaN 0 875 \n",
|
||
"7 18441 11139 NaN NaN 0 875 \n",
|
||
"8 9231 139 NaN NaN 0 875 \n",
|
||
"9 9870 139 NaN NaN 0 875 \n",
|
||
"\n",
|
||
" is_partner deleted_at gender is_email_true ... purchase_count \\\n",
|
||
"0 False NaN 2 True ... 0 \n",
|
||
"1 False NaN 2 True ... 0 \n",
|
||
"2 False NaN 2 False ... 14 \n",
|
||
"3 False NaN 0 False ... 1 \n",
|
||
"4 False NaN 0 True ... 1 \n",
|
||
"5 False NaN 2 True ... 1 \n",
|
||
"6 False NaN 2 False ... 8 \n",
|
||
"7 False NaN 2 False ... 3 \n",
|
||
"8 False NaN 0 True ... 1 \n",
|
||
"9 False NaN 2 True ... 1 \n",
|
||
"\n",
|
||
" first_buying_date country gender_label gender_female gender_male \\\n",
|
||
"0 NaN NaN other 0 0 \n",
|
||
"1 NaN fr other 0 0 \n",
|
||
"2 NaN fr other 0 0 \n",
|
||
"3 NaN fr female 1 0 \n",
|
||
"4 NaN fr female 1 0 \n",
|
||
"5 NaN NaN other 0 0 \n",
|
||
"6 NaN fr other 0 0 \n",
|
||
"7 NaN fr other 0 0 \n",
|
||
"8 NaN NaN female 1 0 \n",
|
||
"9 NaN NaN other 0 0 \n",
|
||
"\n",
|
||
" gender_other country_fr has_tags number_compagny \n",
|
||
"0 1 NaN 0 10 \n",
|
||
"1 1 1.0 0 10 \n",
|
||
"2 1 1.0 0 10 \n",
|
||
"3 0 1.0 0 10 \n",
|
||
"4 0 1.0 0 10 \n",
|
||
"5 1 NaN 0 10 \n",
|
||
"6 1 1.0 0 10 \n",
|
||
"7 1 1.0 0 10 \n",
|
||
"8 0 NaN 0 10 \n",
|
||
"9 1 NaN 0 10 \n",
|
||
"\n",
|
||
"[10 rows x 29 columns]"
|
||
]
|
||
},
|
||
"execution_count": 44,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# visu de la table\n",
|
||
"customerplus_clean_spectacle.head(10)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 43,
|
||
"id": "738e063b-f84e-4a00-b35d-6d1d657e3c09",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Nombre de lignes de la table : 1523688\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"customer_id 0\n",
|
||
"street_id 0\n",
|
||
"structure_id 1460624\n",
|
||
"mcp_contact_id 729167\n",
|
||
"fidelity 0\n",
|
||
"tenant_id 0\n",
|
||
"is_partner 0\n",
|
||
"deleted_at 1523688\n",
|
||
"gender 0\n",
|
||
"is_email_true 0\n",
|
||
"opt_in 0\n",
|
||
"last_buying_date 762879\n",
|
||
"max_price 762879\n",
|
||
"ticket_sum 0\n",
|
||
"average_price 667328\n",
|
||
"average_purchase_delay 762915\n",
|
||
"average_price_basket 762915\n",
|
||
"average_ticket_basket 762915\n",
|
||
"total_price 95551\n",
|
||
"purchase_count 0\n",
|
||
"first_buying_date 762879\n",
|
||
"country 429486\n",
|
||
"gender_label 0\n",
|
||
"gender_female 0\n",
|
||
"gender_male 0\n",
|
||
"gender_other 0\n",
|
||
"country_fr 429486\n",
|
||
"has_tags 0\n",
|
||
"number_compagny 0\n",
|
||
"dtype: int64"
|
||
]
|
||
},
|
||
"execution_count": 43,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# nombre de NaN\n",
|
||
"print(\"Nombre de lignes de la table : \",customerplus_clean_spectacle.shape[0])\n",
|
||
"customerplus_clean_spectacle.isna().sum()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 148,
|
||
"id": "296e51c5-30ae-4ade-ba3d-4ba4981a8758",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>45264</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>35313</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>216105</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>388731</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>101642</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_compagny customer_id\n",
|
||
"0 10 45264\n",
|
||
"1 11 35313\n",
|
||
"2 12 216105\n",
|
||
"3 13 388731\n",
|
||
"4 14 101642"
|
||
]
|
||
},
|
||
"execution_count": 148,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# nombre de clients de la compagnie (pas les clients visés par une campagne mais ceux ayant acheté)\n",
|
||
"# on rq le nbre de clients est très variable : de 35k à 389k\n",
|
||
"company_nb_clients = customerplus_clean_spectacle[customerplus_clean_spectacle[\"purchase_count\"]>0].groupby(\"number_compagny\")[\"customer_id\"].count().reset_index()\n",
|
||
"company_nb_clients"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 151,
|
||
"id": "5845aedf-78ca-4d3d-ad61-3561d4fc1886",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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pKamYs2aNfj666/h5+eHZs2aYdOmTbhw4QIOHjxoqJdERERE5YjBw864cePQrVs3+Pn5abXHx8cjMTERnTt3lttUKhV8fHwQHR0NAIiNjUV2drZWHycnJ3h4eMh9iIiI6M1m0BOUw8PDcfbsWcTExBRYl5iYCABwcHDQandwcMDNmzflPqamplozQvl98p9fGI1GA41GIy+npaWV+DUQERFR+WawmZ3bt2/jn//8JzZt2gQzM7Mi+714hrUQ4pVnXb+qz9y5c2FjYyM/eI8dIiIi5TJY2ImNjUVSUhJatGgBY2NjGBsbIyoqCsuWLYOxsbE8o/PiDE1SUpK8Tq1WIysrCykpKUX2Kcy0adOQmpoqP27fvq3nV0dERETlhcHCTqdOnXDhwgXExcXJDy8vL3zwwQeIi4tD7dq1oVarERkZKT8nKysLUVFR8Pb2BgC0aNECJiYmWn0SEhJw8eJFuU9hVCqVfE8d3luHiIhI2Qx2zo6VlRU8PDy02iwtLWFnZye3BwUFISwsDO7u7nB3d0dYWBgsLCwwaNAgAICNjQ1GjBiBkJAQ2NnZwdbWFpMmTULjxo0LnPBMREREb6ZyfQflyZMnIzMzE2PHjkVKSgpatWqFAwcOaN0WevHixTA2NkZgYCAyMzPRqVMnrFu3DkZGRgasnIiIiMoLSQghDF2EoaWlpcHGxgapqak8pEVERFRBFPfvt8Hvs0NERERUlhh2iIiISNEYdoiIiEjRGHaIiIhI0cr11VhERPRqrlN3G7qECuPGvG6GLoEMgDM7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAYNO6tWrYKnpyesra1hbW2NNm3aYO/evfL6YcOGQZIkrUfr1q21tqHRaDBhwgTY29vD0tISPXv2xJ07d173SyEiIqJyyqBhp2bNmpg3bx7OnDmDM2fOoGPHjujVqxcuXbok9+natSsSEhLkx549e7S2ERQUhIiICISHh+P48eNIT09H9+7dkZub+7pfDhEREZVDxobceY8ePbSW58yZg1WrVuHkyZN46623AAAqlQpqtbrQ56empmLNmjXYuHEj/Pz8AACbNm2Cs7MzDh48iC5dupTtCyAiIqJyr9ycs5Obm4vw8HBkZGSgTZs2cvvRo0dRvXp11KtXD6NGjUJSUpK8LjY2FtnZ2ejcubPc5uTkBA8PD0RHRxe5L41Gg7S0NK0HERERKZPBw86FCxdQuXJlqFQqfPzxx4iIiECjRo0AAAEBAfjxxx9x+PBhfP3114iJiUHHjh2h0WgAAImJiTA1NUXVqlW1tung4IDExMQi9zl37lzY2NjID2dn57J7gURERGRQBj2MBQD169dHXFwcHj16hG3btmHo0KGIiopCo0aNMGDAALmfh4cHvLy84OLigt27d6Nv375FblMIAUmSilw/bdo0BAcHy8tpaWkMPERERApl8LBjamqKunXrAgC8vLwQExODpUuX4ptvvinQ19HRES4uLrh27RoAQK1WIysrCykpKVqzO0lJSfD29i5ynyqVCiqVSs+vhIiIiMojgx/GepEQQj5M9aLk5GTcvn0bjo6OAIAWLVrAxMQEkZGRcp+EhARcvHjxpWGHiIiI3hwGndn57LPPEBAQAGdnZzx+/Bjh4eE4evQo9u3bh/T0dISGhqJfv35wdHTEjRs38Nlnn8He3h59+vQBANjY2GDEiBEICQmBnZ0dbG1tMWnSJDRu3Fi+OouIiIjebAYNO3///TcGDx6MhIQE2NjYwNPTE/v27YO/vz8yMzNx4cIFbNiwAY8ePYKjoyN8fX2xdetWWFlZydtYvHgxjI2NERgYiMzMTHTq1Anr1q2DkZGRAV8ZERERlReSEEIYughDS0tLg42NDVJTU2FtbW3ocoiIdOI6dbehS6gwbszrZugSSI+K+/e73J2zQ0RERKRPDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRoDDtERESkaAw7REREpGgMO0RERKRo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vh2HDx+Gm5vbK5+TnJyM27dvw9HREQDQokULmJiYIDIyUu6TkJCAixcvFhl2iIiI6M1RrLDTsmVLjBo1CqdPny6yT2pqKr777jt4eHhg+/btxdr5uHHjsGnTJmzevBlWVlZITExEYmKifLVXeno6Jk2ahBMnTuDGjRs4evQoevToAXt7e/Tp0wcAYGNjgxEjRiAkJASHDh3CuXPn8I9//AONGzeWr84iIiKiN1exDmNduXIFYWFh6Nq1K0xMTODl5QUnJyeYmZkhJSUFly9fxqVLl+Dl5YWFCxciICCgWDtftWoVAKBDhw5a7WvXrsWwYcNgZGSECxcuYMOGDXj06BEcHR3h6+uLrVu3an0/1+LFi2FsbIzAwED5poLr1q3jPXaIiIgIkhBCFLfz06dPsWfPHvz666+4ceMGMjMzYW9vj2bNmqFLly5aV1FVJGlpabCxsUFqaiqsra0NXQ4RkU5cp+42dAkVxo153QxdAulRcf9+63SCspmZGfr27fvSq6CIiIiIyhOdbypIREREVJEw7BAREZGiMewQERGRojHsEBERkaIx7BAREZGi6Rx21q9fj927/+8yx8mTJ6NKlSrw9vbGzZs39VocERERUWnpHHbCwsJgbm4OADhx4gRWrFiBBQsWwN7eHp988oneCyQiIiIqDZ2/CPT27duoW7cuAGDHjh1477338NFHH6Ft27YF7oRMREREZGg6z+xUrlwZycnJAIADBw7I3z9lZmYmf6cVERERUXmh88yOv78/Ro4ciWbNmuHPP/9Et27Pbr196dIluLq66rs+IiIiolLReWbn3//+N9q0aYP79+9j27ZtsLOzAwDExsbi/fff13uBRERERKWh88xOWloali1bhkqVtHNSaGgobt++rbfCiIiIiPRB55kdNzc3PHjwoED7w4cP4ebmppeiiIiIiPRF57AjhCi0PT09HWZmZqUuiIiIiEifin0YKzg4GAAgSRK++OILWFhYyOtyc3Nx6tQpNG3aVO8FEhEREZVGscPOuXPnADyb2blw4QJMTU3ldaampmjSpAkmTZqk/wqJiIiISqHYYefIkSMAgA8//BBLly6FtbV1mRVFREREpC86X421du3asqiDiIiIqEzoHHYyMjIwb948HDp0CElJScjLy9Na/7///U9vxRERERGVls5hZ+TIkYiKisLgwYPh6OgISZLK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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Création du barplot\n",
|
||
"plt.bar(company_nb_clients[\"number_compagny\"], 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 spectacle\")\n",
|
||
"\n",
|
||
"# Affichage du barplot\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 37,
|
||
"id": "884a33d0-c275-4ab4-ab1f-8b53e563fb95",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" number_compagny already_purchased customer_id\n",
|
||
"0 10 True 45264\n",
|
||
"1 11 True 35313\n",
|
||
"2 12 True 216105\n",
|
||
"3 13 True 388731\n",
|
||
"4 14 True 101642\n",
|
||
" number_compagny already_purchased customer_id\n",
|
||
"0 10 False 53530\n",
|
||
"1 11 False 35994\n",
|
||
"2 12 False 26620\n",
|
||
"3 13 False 379005\n",
|
||
"4 14 False 241484\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# nouveau barplot pr les clients : on regarde la taille totale de la base et on distingue clients ayant acheté / pas acheté\n",
|
||
"\n",
|
||
"# variable relative à l'achat\n",
|
||
"customerplus_clean_spectacle[\"already_purchased\"] = customerplus_clean_spectacle[\"purchase_count\"]>0\n",
|
||
"\n",
|
||
"nb_customers_purchasing_spectacle = customerplus_clean_spectacle[customerplus_clean_spectacle[\"already_purchased\"]].groupby([\"number_compagny\",\"already_purchased\"])[\"customer_id\"].count().reset_index()\n",
|
||
"nb_customers_no_purchase_spectacle = customerplus_clean_spectacle[~customerplus_clean_spectacle[\"already_purchased\"]].groupby([\"number_compagny\",\"already_purchased\"])[\"customer_id\"].count().reset_index()\n",
|
||
"\n",
|
||
"print(nb_customers_purchasing_spectacle)\n",
|
||
"print(nb_customers_no_purchase_spectacle)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 38,
|
||
"id": "41c9fb5a-708b-4f85-9918-00337151f155",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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pKSiaAKVsKNHj8odAhEREX0g2GPyAVm+fDlatWoFBwcHtflvPpshv+dgaFpmxowZMDc3l15OTk7vHjgRERERlXpMTD4QcXFxOHjwIAYOHCjNU6lUAJCj5yMhIUHqRVGpVEhLS8OTJ0/yLJObCRMmIDExUXrdvXu3wBg5DgO973gMExERvTsmJh+IlStXomzZsmjTpo00z8XFBSqVChEREdK8tLQ0REZGomHDhgCAunXrQk9PT63M/fv3ceXKFalMbpRKJczMzNReecl+5kVBD+Uj0nbZx7Amz3EhIiIidbzH5AOQlZWFlStXom/fvtDV/b9drlAo4O/vj9DQULi6usLV1RWhoaEwMjJCz549AQDm5uYYMGAAAgICYG1tDSsrK4wbNw4eHh5o1qxZkcSno6MDCwsLJCQkAHj1/ImCLiUj0iZCCLx48QIJCQmwsLDQeBhtIiIi+j9MTD4ABw8exJ07d9C/f/8cywIDA5GSkoLhw4fjyZMnqF+/Pg4cOCA9wwQA5syZA11dXXTt2hUpKSlo2rQpVq1aVaQ/vrIvK8tOTojeRxYWFtKxTERERG+HD1ikEqHpA5oyMzORnp5egpERFQ09PT32lJR2fMCi5viAxVKDD1ikksQeE9IqOjo6/HFHRERE9AHize9ERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ7XbkDoJyEEIiMjMSxY8dw+/ZtvHjxAra2tqhduzaaNWsGJycnuUMkIiIiIipS7DHRIikpKQgNDYWTkxNatWqF3377DU+fPoWOjg5u3bqFoKAguLi4oHXr1jh16pTc4RIRERERFRn2mGgRNzc31K9fH0uWLEGLFi2gp6eXo0xcXBw2bNiAbt264bvvvsOgQYNkiJSIiIiIqGgphBBC7iDolStXrsDd3V2jsmlpaYiLi4Orq2sxR1U0kpKSYG5ujsTERJiZ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Nj82Nhbx8fFo3ry5NE+pVMLHxwdRUVEAgPPnzyM9PV2tjIODA9zd3aUyb0pNTUVSUpLai4iIiIgoL7zHREt17NixyOratGkToqOjcfbs2RzL4uPjAQB2dnZq8+3s7BAXFyeV0dfXV+tpyS6T/f43zZgxAyEhIUURPhERERF9AJiYaKmgoKAiqefu3bv46quvcODAARgYGORZ7s1Rv4QQBY4Ell+ZCRMmYOzYsdJ0UlISnJyc3iJyIiIiIvqQ8FIuLfb06VP89NNPmDBhAh4/fgwAiI6Oxj///KNxHefPn0dCQgLq1q0LXV1d6OrqIjIyEvPnz4eurq7UU/Jmz0dCQoK0TKVSIS0tDU+ePMmzzJuUSiXMzMzUXkREREREeWFioqUuXboENzc3hIWFYebMmXj69CkAYMeOHZgwYYLG9TRt2hSXL19GTEyM9PLy8kKvXr0QExODihUrQqVSISIiQnpPWloaIiMj0bBhQwBA3bp1oaenp1bm/v37uHLlilSGiIiIiKgweCmXlho7diz69euH8PBwmJqaSvNbtWqFnj17alyPqakp3N3d1eYZGxvD2tpamu/v74/Q0FC4urrC1dUVoaGhMDIyktZjbm6OAQMGICAgANbW1rCyssK4cePg4eGR42Z6IiIiIqJ3wcRES509exb/+9//csx3dHTM84bzdxUYGIiUlBQMHz5cesDigQMH1BKiOXPmQFdXF127dpUesLhq1Sro6OgUaSxERNrK+eUGuUN4b9yWOwAiei8xMdFSBgYGuQ6xe+PGDdja2haq7qNHj6pNKxQKBAcHIzg4ON94FixYgAULFhRq3UREREREueE9JlqqQ4cOmDJlCtLT0wG8Sh7u3LmDb775Bp07d5Y5OiIiIiKiosXEREvNnDkTDx48QNmyZZGSkgIfHx9UrlwZpqammD59utzhEREREREVKV7KpaXMzMxw/PhxHD58GNHR0cjKykKdOnV4szkRERERlUpMTLRckyZN0KRJE7nDICIiIiIqVkxMtMj8+fMxePBgGBgYYP78+fmWHT16dAlFRURERERU/JiYaJE5c+agV69eMDAwwJw5c/Isp1AomJgQERERUanCxESLxMbG5vp/IiIiIqLSjqNyERERERGR7NhjokXGjh2rcdnZs2cXYyRERERERCWLiYkWuXDhgkblFApFMUdCRERERFSymJhokSNHjsgdAhERERGRLHiPiZZKTEzE48ePc8x//PgxkpKSZIiIiIiIiKj4MDHRUt27d8emTZtyzN+yZQu6d+8uQ0RERERERMWHiYmWOn36NBo3bpxjvq+vL06fPi1DRERERERExYeJiZZKTU1FRkZGjvnp6elISUmRISIiIiIiouLDxERLffTRR1i6dGmO+UuWLEHdunVliIiIiIiIqPhwVC4tNX36dDRr1gwXL15E06ZNAQCHDh3C2bNnceDAAZmjIyIiIiIqWuwx0VLe3t44efIknJycsGXLFuzatQuVK1fGpUuX8Omnn8odHhERERFRkWKPiRarVasW1q9fL3cYRERERETFjokJERERaa9gc7kjeH8EJ8odAVGh8FIuIiIiIiKSHRMTIiIiIiKSHRMTIiIiIiKSHRMTLXfr1i3s379feqiiEELmiIiIiIiIih4TEy316NEjNGvWDG5ubmjdujXu378PABg4cCACAgJkjo6IiIiIqGgxMdFSY8aMga6uLu7cuQMjIyNpfrdu3bBv3z4ZIyMiIiIiKnocLlhLHThwAPv370e5cuXU5ru6uiIuLk6mqIiIiIiIigd7TLRUcnKyWk9JtocPH0KpVMoQERERERFR8WFioqUaNWqENWvWSNMKhQJZWVn44Ycf0LhxYxkjIyIiIiIqeryUS0v98MMP8PX1xblz55CWlobAwEBcvXoVjx8/xokTJ+QOj4iIiIioSLHHREtVr14dly5dQr169eDn54fk5GR06tQJFy5cQKVKleQOj4iIiIioSLHHRIupVCqEhITIHQYRERERUbFjYqJFLl26pHFZT0/PYoyEiIiIiKhkMTHRIrVq1YJCoYAQAgqFQpqf/bT31+dlZmaWeHxERERERMWF95hokdjYWPz999+IjY3Ftm3b4OLigkWLFiEmJgYxMTFYtGgRKlWqhG3btskdKhERERFRkWJiokUqVKggvUJDQzF//nwMGTIEnp6e8PT0xJAhQzB37lxMnTpV4zoXL14MT09PmJmZwczMDA0aNMDevXul5UIIBAcHw8HBAYaGhvD19cXVq1fV6khNTcWoUaNgY2MDY2NjtG/fHvfu3SuydhMRERERMTHRUpcvX4aLi0uO+S4uLrh27ZrG9ZQrVw7ff/89zp07h3PnzqFJkybo0KGDlHyEh4dj9uzZWLhwIc6ePQuVSgU/Pz88e/ZMqsPf3x87duzApk2bcPz4cTx//hxt27bl5WREREREVGSYmGipatWqYdq0aXj58qU0LzU1FdOmTUO1atU0rqddu3Zo3bo13Nzc4ObmhunTp8PExASnTp2CEAJz587FxIkT0alTJ7i7u2P16tV48eIFNmzYAABITEzE8uXLMWvWLDRr1gy1a9fGunXrcPnyZRw8eLDI201EREREHybe/K6llixZgnbt2sHJyQk1a9YEAFy8eBEKhQK7d+9+pzozMzOxdetWJCcno0GDBoiNjUV8fDyaN28ulVEqlfDx8UFUVBSGDBmC8+fPIz09Xa2Mg4MD3N3dERUVhRYtWuS6rtTUVKSmpkrTSUlJ7xQzEREREX0YmJhoqXr16iE2Nhbr1q3DH3/8ASEEunXrhp49e8LY2Pit6rp8+TIaNGiAly9fwsTEBDt27ED16tURFRUFALCzs1Mrb2dnh7i4OABAfHw89PX1YWlpmaNMfHx8nuucMWMGn8FCRERERBpjYqLFjIyMMHjw4ELXU6VKFcTExODp06fYtm0b+vbti8jISGn568MQA8gxXHFuCiozYcIEjB07VppOSkqCk5PTO7aAiIiIiEo73mPyAdDX10flypXh5eWFGTNmoGbNmpg3bx5UKhUA5Oj5SEhIkHpRVCoV0tLS8OTJkzzL5EapVEojgWW/iIiIiIjywsTkAySEQGpqKlxcXKBSqRARESEtS0tLQ2RkJBo2bAgAqFu3LvT09NTK3L9/H1euXJHKEBEREREVFi/lKuW+/fZbtGrVCk5OTnj27Bk2bdqEo0ePYt++fVAoFPD390doaChcXV3h6uqK0NBQGBkZoWfPngAAc3NzDBgwAAEBAbC2toaVlRXGjRsHDw8PNGvWTObWEREREVFpwcSklPvvv//Qu3dv3L9/H+bm5vD09MS+ffvg5+cHAAgMDERKSgqGDx+OJ0+eoH79+jhw4ABMTU2lOubMmQNdXV107doVKSkpaNq0KVatWgUdHR25mkVEREREpYxCCCHkDoJy9/TpU/z888/466+/8PXXX8PKygrR0dGws7ODo6Oj3OG9laSkJJibmyMxMZH3mxDRe8n5m9/kDuG9cfv7NkVXWbB50dVV2gUnFnmV/P6mksQeEy116dIlNGvWDObm5rh9+zYGDRoEKysr7NixA3FxcVizZo3cIRIRERERFRne/K6lxo4di379+uHmzZswMDCQ5rdq1Qq///67jJERERERERU9JiZa6uzZsxgyZEiO+Y6Ojvk+2JCIiIiI6H3ExERLGRgYICkpKcf8GzduwNbWVoaIiIiIiIiKDxMTLdWhQwdMmTIF6enpAF49nf3OnTv45ptv0LlzZ5mjIyIiIiIqWkxMtNTMmTPx4MEDlC1bFikpKfDx8UHlypVhamqK6dOnyx0eEREREVGR4qhcWsrMzAzHjx/H4cOHER0djaysLNSpU4cPNSQiIiKiUomJiRbKyMiAgYEBYmJi0KRJEzRp0kTukIiIiIiIihUv5dJCurq6qFChAjIzM+UOhYiIiIioRDAx0VLfffcdJkyYgMePH8sdChERERFRseOlXFpq/vz5uHXrFhwcHFChQgUYGxurLY+OjpYpMiIiIiKiosfEREt17NhR7hCIiIiIiEoMExMtFRQUJHcIREREREQlhomJljt37hyuX78OhUKBatWqoW7dunKHRERERERU5JiYaKl79+6hR48eOHHiBCwsLAAAT58+RcOGDbFx40Y4OTnJGyARERERURHiqFxaqn///khPT8f169fx+PFjPH78GNevX4cQAgMGDJA7PCIiIiKiIsUeEy117NgxREVFoUqVKtK8KlWqYMGCBfD29pYxMiIiIiKiosceEy1Vvnx5pKen55ifkZEBR0dHGSIiIiIiIio+TEy0VHh4OEaNGoVz585BCAHg1Y3wX331FWbOnClzdERERERERYuXcmkRS0tLKBQKaTo5ORn169eHru6r3ZSRkQFdXV3079+fzzkh+pAFm8sdwfsjOFHuCIiISENMTLTI3Llz5Q6BiIiIiEgWTEy0SN++feUOgYiIiIhIFkxMtFxCQgISEhKQlZWlNt/T01OmiIiIiIiIih4TEy11/vx59O3bV3p2yesUCgUyMzNlioyIiIiIqOgxMdFSX375Jdzc3LB8+XLY2dmp3RRPRERERFTaMDHRUrGxsdi+fTsqV64sdyhERERERMWOzzHRUk2bNsXFixflDoOIiIiIqESwx0RL/fTTT+jbty+uXLkCd3d36OnpqS1v3769TJERERERERU9JiZaKioqCsePH8fevXtzLOPN70RERERU2vBSLi01evRo9O7dG/fv30dWVpbai0kJEREREZU2TEy01KNHjzBmzBjY2dnJHQoRERERUbFjYqKl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sGHDBgwZMgSJiYlYvnw51q5di2bNmgEA1q1bBycnJxw8eBAtWrQosbYQERERUenFxOQDFhsbi/j4eDRv3lyap1Qq4ePjg6ioKAwZMgTnz59Henq6WhkHBwe4u7sjKioqz8QkNTUVqamp0nRSUlLxNYSIiEot55cb5A7hvXFb7gCIComJyQcsPj4eAGBnZ6c2387ODnFxcVIZfX19WFpa5iiT/f7czJgxAyEhIUUccT6CzUtuXe+74ES5IyAiIiLKgfeYEBQKhdq0ECLHvDcVVGbChAlITEyUXnfv3i2SWImIiIiodGJi8gFTqVQAkKPnIyEhQepFUalUSEtLw5MnT/IskxulUgkzMzO1FxERERFRXpiYfMBcXFygUqkQEREhzUtLS0NkZCQaNmwIAKhbty709PTUyty/fx9XrlyRyhARERERFRbvMSnlnj9/jlu3bknTsbGxiImJgZWVFcqXLw9/f3+EhobC1dUVrq6uCA0NhZGREXr27AkAMDc3x4ABAxAQEABra2tYWVlh3Lhx8PDwkEbpIiIiIiIqLCYmpdy5c+fQuHFjaXrs2LEAgL59+2LVqlUIDAxESkoKhg8fjidPnqB+/fo4cOAATE1NpffMmTMHurq66Nq1K1JSUtC0aVOsWrUKOjo6Jd4eIiIiIiqdmJiUcr6+vhBC5LlcoVAgODgYwcHBeZYxMDDAggULsGDBgmKIkIiIiIiI95gQEREREZEWYGJCRERERESyY2JCRERERESyY2JCRERERESyY2JCRERERESyY2JCRERERESy43DBRPTugs3ljuD9EZwodwRERERajT0mREREREQkOyYmREREREQkOyYmREREREQkOyYmREREREQkOyYmREREREQkOyYmREREREQkOyYmREREREQkOyYmREREREQkOyYmREREREQkOyYmREREREQkOyYmREREREQkO125AyAqCs4vN8gdwnvjttwBEBEREeWCPSZERERERCQ7JiZERERERCQ7JiZERERERCQ7JiZERERERCQ73vxORO+Mgw5o7rbcARAREWk59pgQEREREZHsmJgQEREREZHsmJgQEREREZHsmJgQEREREZHsmJgQEREREZHsmJgQEREREZHsmJgQEREREZHsmJgQEREREZHsmJgQEREREZHsmJgQEREREZHsmJjQW1m0aBFcXFxgYGCAunXr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EcmOiQkREREREcmOiQkREREREcmOiQkRUSkSHx+PUaNGoWLFilAqlXByckK7du1w6NAhuUMjIiLKl67cARARUdG4ffs2vL29YWFhgfDwcHh6eiI9PR379+/HiBEj8Mcff8gdIhERUZ7YY0JEVEoMHz4cCoUCZ86cQZcuXeDm5oYaNWpg7NixOHXqFADgzp076NChA0xMTGBmZoauXbviv//+k+oIDg5GrVq1sGLFCpQvXx4mJiYYNmwYMjMzER4eDpVKhbJly2L69Olq61YoFFi8eDFatWoFQ0NDuLi4YOvWrWplxo8fDzc3NxgZGaFixYqYNGkS0tPTc6x77dq1cHZ2hrm5Obp3745nz54BANasWQNra2ukpqaq1du5c2f06dOnSLclERGVPCYmRESlwOPHj7Fv3z6MGDECxsbGOZZbWFhACIGOHTvi8ePHiIyMREREBP766y9069ZNrexff/2FvXv3Yt++fdi4cSNWrFiBNm3a4N69e4iMjERYWBi+++47KdnJNmnSJHTu3BkXL17EF198gR49euD69evSclNTU6xatQrXrl3DvHnzsGzZMsyZMyfHunfu3Indu3dj9+7diIyMxPfffw8A+Pzzz5GZmYlff/1VKv/w4UPs3r0bX375ZaG3IRERyUwQEdF77/Tp0wKA2L59e55lDhw4IHR0dMSdO3ekeVevXhUAxJkzZ4QQQgQFBQkjIyORlJQklWnRooVwdnYWmZmZ0rwqVaqIGTNmSNMAxNChQ9XWV79+fTFs2LA84wkPDxd169aVpnNb99dffy3q168vTQ8bNky0atVKmp47d66oWLGiyMrKynM9RET0fuA9JkREpYAQAsCrS6rycv36dTg5OcHJyUmaV716dVhYWOD69ev46KOPAADOzs4wNTWVytjZ2UFHRwdlypRRm5eQkKBWf4MGDXJMx8TESNM///wz5s6di1u3buH58+fIyMiAmZmZ2nveXLe9vb3aegYNGoSPPvoI//zzDxwdHbFy5Ur069cv33YTEdH7gZdyERGVAq6urlAoFGqXTr1JCJHrD/g35+vp6aktVygUuc7LysoqMK7sek+dOoXu3bujVatW2L17Ny5cuICJEyciLS1NrXxB66lduzZq1qyJNWvWIDo6GpcvX0a/fv0KjIOIiLQfExMiolLAysoKLVq0wI8//ojk5OQcy58+fYrq1avjzp07uHv3rjT/2rVrSExMRLVq1Qodw5v3nJw6dQpVq1YFAJw4cQIVKlTAxIkT4eXlBVdXV8TFxb3TegYOHIiVK1dixYoVaNasmVoPEBERvb+YmBARlRKLFi1CZmYm6tWrh23btuHmzZu4fv065s+fjwYNGqBZs2bw9PREr169EB0djTNnzqBPnz7w8fGBl5dXode/detWrFixAn/++SeCgoJw5swZjBw5EgBQuXJl3LlzB5s2bcJff/2F+fPnY8eOHe+0nl69euGff/7BsmXL0L9//0LHTURE2oGJCRFRKeHi4oLo6Gg0btwYAQEBcHd3h5+fHw4dOoTFixdDoVBg586dsLS0RKNGjdCsWTNUrFgRmzdvLpL1h4SEYNOmTfD09MTq1auxfv16VK9eHQDQoUMHjBkzBiNHjkStWrUQFRWFSZMmvdN6zMzM0LlzZ5iYmKBjx45FEjsREclPIbLvmCQiInpHCoUCO3bsKLFEwc/PD9WqVcP8+fNLZH1ERFT8OCoXERG9Nx4/fowDBw7g8OHDWLhwodzhEBFREWJiQkRE7406dergyZMnCAsLQ5UqVeQOh4iIihAv5SIiIiIiItnx5nciIiIiIpIdExMiIiIiIpIdExMiIiIiIpIdExMiIiIiIpIdExMiIiIiIpIdExMiIiIiIpIdExMiIiIiIpIdExMiIiIiIpIdExMiIiIiIpLd/wPAKkBbBtKw7gAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Création du barplot\n",
|
||
"plt.bar(nb_customers_purchasing_spectacle[\"number_compagny\"], nb_customers_purchasing_spectacle[\"customer_id\"]/1000, label = \"has purchased\")\n",
|
||
"plt.bar(nb_customers_no_purchase_spectacle[\"number_compagny\"], nb_customers_no_purchase_spectacle[\"customer_id\"]/1000, \n",
|
||
" bottom = nb_customers_purchasing_spectacle[\"customer_id\"]/1000, label = \"has not purchased\")\n",
|
||
"\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 spectacle\")\n",
|
||
"plt.legend()\n",
|
||
"\n",
|
||
"# Affichage du barplot\n",
|
||
"plt.show()\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 152,
|
||
"id": "fd11c547-7128-4ef6-ad7b-4b7c2a30cd9e",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>max_price</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>13823.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>108.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>5000.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>3180.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>456.0</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_compagny max_price\n",
|
||
"0 10 13823.0\n",
|
||
"1 11 108.0\n",
|
||
"2 12 5000.0\n",
|
||
"3 13 3180.0\n",
|
||
"4 14 456.0"
|
||
]
|
||
},
|
||
"execution_count": 152,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# prix maximal payé par un client pour chaque compagnie - très variable : de 108 à 13823\n",
|
||
"\n",
|
||
"company_max_price = customerplus_clean_spectacle.groupby(\"number_compagny\")[\"max_price\"].max().reset_index()\n",
|
||
"company_max_price"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 153,
|
||
"id": "b8f8f162-4153-4cfe-bfaa-d981d414510d",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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eHIoreCKtdf5y4SJiIjo9SA7QKWkpJRGHURERETlhuwA5eLiUhp1EBEREZUbsgPUunXrip0+YMCAFy6GiIiIqDyQHaA+/vhjred5eXl48OABTE1NYWFhwQBFREREFZ7sG2k+fePMzMxMZGdn4+LFi3jrrbewadOm0qiRiIiIyKDIDlCFqVevHubOnaszOkVERERUEeklQAFPvmIlNTVVX4sjIiIiMliyz4Hatm2b1nMhBG7evImIiAi0bdtWb4URERERGSrZAapbt25azxUKBapVq4Z33nkHX3/9tb7qIiIiIjJYsgNUfn5+adRBREREVG7o7RwoIiIiotdFiUegZs2apfX8888/13sxREREROVBiQPU09+Bp1AoSqUYIiIiovKgxAFqzZo1pVkHERERUbnBc6CIiIiIZCrRCNQHH3xQ4gVGRUW9cDFERERE5UGJRqCUSqX0sLa2xr59+3DixAlpemJiIvbt2welUllqhRIREREZihKNQD19/tPkyZPRq1cvLF++HEZGRgAAjUaDUaNGwdraunSqJCIiIjIgss+BWr16NSZMmCCFJ+DJ9+CNHz8eq1ev1mtxRERERIZIdoB6/PgxkpOTddqTk5N5l3IiIiJ6Lcj+KpdBgwZh8ODBuHTpEtq0aQMASEhIwNy5czFo0CC9F0hERERkaGQHqIULF8LJyQnh4eG4efMmAKB69eqYNGkSwsLC9F4gERERkaGRHaAqVaqESZMmYdKkScjKygIAnjxORERErxXZAeppDE5ERET0OuKdyImIiIhkYoAiIiIikokBioiIiEgmBigiIiIimUp0EvmSJUtKvMBx48a9cDFERERE5UGJAlR4eHiJFqZQKBigiIiIqMIrUYBKSUkp7TqIiIiIyg2eA0VEREQk0wvdSPP69evYtm0brl69itzcXK1pixYt0kthRERERIZKdoDat28fAgMD4ebmhosXL8Ld3R2XL1+GEAItWrQojRqJiIiIDIrsQ3hTp05FWFgYzp49i8qVK+OXX37BtWvX4OPjgw8//LA0aiQiIiIyKLIDVHJyMkJCQgAAxsbGePjwIapUqYJZs2Zh3rx5ei+QiIiIyNDIDlCWlpbIyckBAKhUKvz999/StH///Vd/lREREREZKNnnQLVp0wa///47GjVqBD8/P4SFheHMmTOIiopCmzZtSqNGIiIiIoMiO0AtWrQI2dnZAIAZM2YgOzsbmzdvRt26dUt8w00iIiKi8kz2IbzatWujSZMmAAALCwssW7YMp0+fRlRUFFxcXPRe4I0bN9C/f3/Y2dnBwsICzZo1Q2JiojRdCIEZM2ZApVLB3Nwc7du3x7lz57SWkZOTg7Fjx8Le3h6WlpYIDAzE9evXtfpkZmYiODgYSqUSSqUSwcHBuHv3rt63h4iIiMq/l7qRZnZ2NrKysrQe+pSZmYm2bdvCxMQEu3btwvnz5/H111+jatWqUp/58+dj0aJFiIiIwPHjx+Hk5ARfX1/cu3dP6hMaGoro6GhERkbi8OHDyM7Ohr+/PzQajdQnKCgISUlJiImJQUxMDJKSkhAcHKzX7SEiIqKKQSGEEHJmSElJwZgxY3Dw4EE8evRIahdCQKFQaIWSlzVlyhT8/vvvOHToUKHThRBQqVQIDQ3F5MmTATwZbXJ0dMS8efMwfPhwqNVqVKtWDevXr0fv3r0BAKmpqXB2dsbOnTvRpUsXJCcno1GjRkhISICnpycAICEhAV5eXrhw4QLq169fonqzsrKgVCqhVqthbW2thz3w/7lO2aHX5VVkl+f6lXUJRERUjrzI72/Z50D169cPALB69Wo4OjpCoVDIXUSJbdu2DV26dMGHH36IuLg41KhRA6NGjcLQoUMBPAlzaWlp6Ny5szSPmZkZfHx8cOTIEQwfPhyJiYnIy8vT6qNSqeDu7o4jR46gS5cuiI+Ph1KplMIT8ORkeaVSiSNHjhQZoHJycqQrEgHofQSOiIiIDJPsAHX69GkkJiaWeFTmZfzzzz/49ttvMX78ePznP//BsWPHMG7cOJiZmWHAgAFIS0sDADg6OmrN5+joiCtXrgAA0tLSYGpqChsbG50+BfOnpaXBwcFBZ/0ODg5Sn8LMmTMHM2fOfKltJCIiovJH9jlQb775Jq5du1YatejIz89HixYtMHv2bDRv3hzDhw/H0KFD8e2332r1e3YUrOBwYnGe7VNY/+ctZ+rUqVCr1dLjVe0XIiIiKluyR6C+//57jBgxAjdu3IC7uztMTEy0phdcoacP1atXR6NGjbTaGjZsiF9++QUA4OTkBODJCFL16tWlPunp6dKolJOTE3Jzc5GZmak1CpWeng5vb2+pz61bt3TWf/v2bZ3RraeZmZnBzMzsBbeOiIiIyivZI1C3b9/G33//jUGDBuHNN99Es2bN0Lx5c+lffWrbti0uXryo1fbnn39Kt0twc3ODk5MTYmNjpem5ubmIi4uTwlHLli1hYmKi1efmzZs4e/as1MfLywtqtRrHjh2T+hw9ehRqtVrqQ0RERFRA9gjU4MGD0bx5c2zatKnUTyL/5JNP4O3tjdmzZ6NXr144duwYVq5ciZUrVwJ4ctgtNDQUs2fPRr169VCvXj3Mnj0bFhYWCAoKAgAolUoMGTIEYWFhsLOzg62tLSZMmAAPDw906tQJwJNRra5du2Lo0KFYsWIFAGDYsGHw9/d/Jed6ERERUfkiO0BduXIF27ZtQ926dUujHi1vvvkmoqOjMXXqVMyaNQtubm5YvHixdCUgAEyaNAkPHz7EqFGjkJmZCU9PT+zZswdWVlZSn/DwcBgbG6NXr154+PAhOnbsiLVr18LIyEjqs3HjRowbN066Wi8wMBARERGlvo1ERERU/si+D1RAQAAGDhyIHj16lFZN5RbvA2UYeB8oIiKS45XcByogIACffPIJzpw5Aw8PD52TyAMDA+UukoiIiKhckR2gRowYAQCYNWuWzjR934mciIiIyBDJDlD5+fmlUQcRERFRufFSXyZMRERE9Doq0QjUkiVLMGzYMFSuXBlLliwptu+4ceP0UhgRERGRoSpRgAoPD0e/fv1QuXJlhIeHF9lPoVAwQBEREVGFV6IAlZKSUuj/iYiIiF5Hss+BevjwYZHTbt68+VLFEBEREZUHsgNU8+bNcfLkSZ32n3/+Wa9fJExERERkqGQHKF9fX3h7e2Pu3LkQQiA7OxsDBw5ESEgIPv/889KokYiIiMigyL4P1NKlS+Hn54dBgwZhx44dSE1NhbW1NY4fP45GjRqVRo1EREREBkV2gAKAzp0744MPPsC3334LY2Nj/PrrrwxPRERE9NqQfQjv77//hpeXF7Zv347du3dj0qRJeP/99zFp0iTk5eWVRo1EREREBkV2gGrWrBnc3Nzwxx9/wNfXF19++SX279+PqKgotG7dujRqJCIiIjIosgPUsmXLEBkZiapVq0pt3t7eOHXqFFq0aKHP2oiIiIgMkuwAFRwcXGi7lZUVVq1a9dIFERERERm6FzqJHADOnz+Pq1evIjc3V2pTKBQICAjQS2FEREREhkp2gPrnn3/QvXt3nDlzBgqFAkIIAE/CEwBoNBr9VkhERERkYGQHqI8//hhubm7Yu3cvateujWPHjuHOnTsICwvDwoULS6NGInrNuE7ZUdYllBuX5/qVdQlEryXZASo+Ph779+9HtWrVUKlSJVSqVAlvvfUW5syZg3HjxuHUqVOlUScRERGRwZB9ErlGo0GVKlUAAPb29khNTQUAuLi44OLFi/qtjoiIiMgAyR6Bcnd3x+nTp1G7dm14enpi/vz5MDU1xcqVK1G7du3SqJGIiIjIoMgOUJ999hnu378PAPjyyy/h7++Pdu3awc7ODps3b9Z7gURERESGRnaA6tKli/T/2rVr4/z588jIyICNjY10JR4RERFRRfbC94F6mq2trT4WQ0RERFQuyA5Qjx49wtKlS3HgwAGkp6cjPz9fa/rJkyf1VhwRERGRIZIdoAYPHozY2Fj07NkTrVu35mE7IiIieu3IDlA7duzAzp070bZt29Koh4iIiMjgyb4PVI0aNWBlZVUatRARERGVC7ID1Ndff43JkyfjypUrpVEPERERkcGTfQivVatWePToEWrXrg0LCwuYmJhoTc/IyNBbcURERESGSHaA6tu3L27cuIHZs2fD0dGRJ5ETERHRa0d2gDpy5Aji4+PRtGnT0qiHiIiIyODJPgeqQYMGePjwYWnUQkRERFQuyA5Qc+fORVhYGA4ePIg7d+4gKytL60FERERU0ck+hNe1a1cAQMeOHbXahRBQKBTQaDT6qYyIiIjIQMkOUAcOHCiNOoiIiIjKDdkBysfHpzTqICIiIio3ZJ8DRURERPS6Y4AiIiIikqlcBag5c+ZAoVAgNDRUahNCYMaMGVCpVDA3N0f79u1x7tw5rflycnIwduxY2Nvbw9LSEoGBgbh+/bpWn8zMTAQHB0OpVEKpVCI4OBh37959BVtFRERE5U25CVDHjx/HypUr0aRJE632+fPnY9GiRYiIiMDx48fh5OQEX19f3Lt3T+oTGhqK6OhoREZG4vDhw8jOzoa/v7/WFYNBQUFISkpCTEwMYmJikJSUhODg4Fe2fURERFR+yA5Qz47uPC0mJualiilKdnY2+vXrh++++w42NjZSuxACixcvxqeffooPPvgA7u7u+OGHH/DgwQP8+OOPAAC1Wo1Vq1bh66+/RqdOndC8eXNs2LABZ86cwd69ewEAycnJiImJwffffw8vLy94eXnhu+++w/bt23Hx4sVS2SYiIiIqv2QHqFatWmHp0qVabTk5ORgzZgy6d++ut8KeNnr0aPj5+aFTp05a7SkpKUhLS0Pnzp2lNjMzM/j4+ODIkSMAgMTEROTl5Wn1UalUcHd3l/rEx8dDqVTC09NT6tOmTRsolUqpT2FycnJ4I1EiIqLXkOzbGGzcuBHDhg3Dzp07sWbNGqSlpSEoKAgA8Pvvv+u9wMjISJw8eRLHjx/XmZaWlgYAcHR01Gp3dHTElStXpD6mpqZaI1cFfQrmT0tLg4ODg87yHRwcpD6FmTNnDmbOnClvg4iIiKjckz0C9cEHH+D06dN4/Pgx3N3d4eXlhfbt2yMxMREtWrTQa3HXrl3Dxx9/jA0bNqBy5cpF9lMoFFrPC+6KXpxn+xTW/3nLmTp1KtRqtfS4du1aseskIiKiiuGFTiLXaDTIzc2FRqOBRqOBk5MTzMzM9F0bEhMTkZ6ejpYtW8LY2BjGxsaIi4vDkiVLYGxsLI08PTtKlJ6eLk1zcnJCbm4uMjMzi+1z69YtnfXfvn1bZ3TraWZmZrC2ttZ6EBERUcUnO0BFRkaiSZMmUCqV+PPPP7Fjxw6sXLkS7dq1wz///KPX4jp27IgzZ84gKSlJerRq1Qr9+vVDUlISateuDScnJ8TGxkrz5ObmIi4uDt7e3gCAli1bwsTERKvPzZs3cfbsWamPl5cX1Go1jh07JvU5evQo1Gq11IeIiIiogOxzoIYMGYKFCxdi5MiRAABfX1+cOXMGw4cPR7NmzfR6IrWVlRXc3d212iwtLWFnZye1h4aGYvbs2ahXrx7q1auH2bNnw8LCQjovS6lUYsiQIQgLC4OdnR1sbW0xYcIEeHh4SCelN2zYEF27dsXQoUOxYsUKAMCwYcPg7++P+vXr6217iIiIqGKQHaBOnjypEypsbGzw008/Yf369XorrKQmTZqEhw8fYtSoUcjMzISnpyf27NkDKysrqU94eDiMjY3Rq1cvPHz4EB07dsTatWthZGQk9dm4cSPGjRsnXa0XGBiIiIiIV749REREZPgUQghR1kVUFFlZWVAqlVCr1Xo/H8p1yg69Lq8iuzzXr6xLoJfE13vJ8fVO9PJe5Pd3iUagxo8fjy+++AKWlpYYP358sX0XLVpUohUTERERlVclClCnTp1CXl4egCeH8Iq6tP95tw4gIiIiqghKFKAOHDgg/f/gwYOlVQsRERFRuSDrNgaPHz+GsbExzp49W1r1EBERERk8WQHK2NgYLi4u0Gg0pVUPERERkcGTfSPNzz77DFOnTkVGRkZp1ENERERk8GTfB2rJkiW4dOkSVCoVXFxcYGlpqTX95MmTeiuOiIiIyBDJDlDvv/8+r7YjIiKi15rsADVjxoxSKIOIiIio/CjxOVAPHjzA6NGjUaNGDTg4OCAoKAj//vtvadZGREREZJBKHKCmT5+OtWvXws/PD3369EFsbKz0hcJEREREr5MSH8KLiorCqlWr0KdPHwBA//790bZtW2g0Gq0v5SUiIiKq6Eo8AnXt2jW0a9dOet66dWsYGxsjNTW1VAojIiIiMlQlDlAajQampqZabcbGxnj8+LHeiyIiIiIyZCU+hCeEwMCBA2FmZia1PXr0CCNGjNC6F1RUVJR+KyQiolfCdcqOsi6h3Lg816+sS6AyVuIAFRISotPWv39/vRZDREREVB6UOECtWbOmNOsgIiIiKjdkfxceERER0euOAYqIiIhIJgYoIiIiIpkYoIiIiIhkYoAiIiIikokBioiIiEgmBigiIiIimRigiIiIiGRigCIiIiKSiQGKiIiISCYGKCIiIiKZGKCIiIiIZGKAIiIiIpKJAYqIiIhIJgYoIiIiIpkYoIiIiIhkYoAiIiIikokBioiIiEgmBigiIiIimRigiIiIiGRigCIiIiKSiQGKiIiISCYGKCIiIiKZDDpAzZkzB2+++SasrKzg4OCAbt264eLFi1p9hBCYMWMGVCoVzM3N0b59e5w7d06rT05ODsaOHQt7e3tYWloiMDAQ169f1+qTmZmJ4OBgKJVKKJVKBAcH4+7du6W9iURERFQOGXSAiouLw+jRo5GQkIDY2Fg8fvwYnTt3xv3796U+8+fPx6JFixAREYHjx4/DyckJvr6+uHfvntQnNDQU0dHRiIyMxOHDh5GdnQ1/f39oNBqpT1BQEJKSkhATE4OYmBgkJSUhODj4lW4vERERlQ/GZV1AcWJiYrSer1mzBg4ODkhMTMTbb78NIQQWL16MTz/9FB988AEA4IcffoCjoyN+/PFHDB8+HGq1GqtWrcL69evRqVMnAMCGDRvg7OyMvXv3okuXLkhOTkZMTAwSEhLg6ekJAPjuu+/g5eWFixcvon79+q92w4mIiMigGfQI1LPUajUAwNbWFgCQkpKCtLQ0dO7cWepjZmYGHx8fHDlyBACQmJiIvLw8rT4qlQru7u5Sn/j4eCiVSik8AUCbNm2gVCqlPoXJyclBVlaW1oOIiIgqvnIToIQQGD9+PN566y24u7sDANLS0gAAjo6OWn0dHR2laWlpaTA1NYWNjU2xfRwcHHTW6eDgIPUpzJw5c6RzppRKJZydnV98A4mIiKjcKDcBasyYMTh9+jQ2bdqkM02hUGg9F0LotD3r2T6F9X/ecqZOnQq1Wi09rl279rzNICIiogqgXASosWPHYtu2bThw4ABq1qwptTs5OQGAzihRenq6NCrl5OSE3NxcZGZmFtvn1q1bOuu9ffu2zujW08zMzGBtba31ICIioorPoAOUEAJjxoxBVFQU9u/fDzc3N63pbm5ucHJyQmxsrNSWm5uLuLg4eHt7AwBatmwJExMTrT43b97E2bNnpT5eXl5Qq9U4duyY1Ofo0aNQq9VSHyIiIqICBn0V3ujRo/Hjjz/if//7H6ysrKSRJqVSCXNzcygUCoSGhmL27NmoV68e6tWrh9mzZ8PCwgJBQUFS3yFDhiAsLAx2dnawtbXFhAkT4OHhIV2V17BhQ3Tt2hVDhw7FihUrAADDhg2Dv78/r8AjIiIiHQYdoL799lsAQPv27bXa16xZg4EDBwIAJk2ahIcPH2LUqFHIzMyEp6cn9uzZAysrK6l/eHg4jI2N0atXLzx8+BAdO3bE2rVrYWRkJPXZuHEjxo0bJ12tFxgYiIiIiNLdQCIiIiqXFEIIUdZFVBRZWVlQKpVQq9V6Px/KdcoOvS6vIrs816+sS6CXxNd7yenz9c79XnL8nKlYXuT3t0GfA0VERERkiBigiIiIiGRigCIiIiKSiQGKiIiISCYGKCIiIiKZGKCIiIiIZGKAIiIiIpKJAYqIiIhIJgYoIiIiIpkYoIiIiIhkYoAiIiIikokBioiIiEgmBigiIiIimRigiIiIiGRigCIiIiKSiQGKiIiISCYGKCIiIiKZGKCIiIiIZGKAIiIiIpKJAYqIiIhIJgYoIiIiIpkYoIiIiIhkYoAiIiIikokBioiIiEgmBigiIiIimRigiIiIiGRigCIiIiKSiQGKiIiISCYGKCIiIiKZGKCIiIiIZGKAIiIiIpKJAYqIiIhIJuOyLoCIiOh15jplR1mXUG5cnutX1iVIOAJFREREJBMDFBEREZFMDFBEREREMjFAEREREcnEAEVEREQkEwMUERERkUwMUM9YtmwZ3NzcULlyZbRs2RKHDh0q65KIiIjIwDBAPWXz5s0IDQ3Fp59+ilOnTqFdu3Z49913cfXq1bIujYiIiAwIb6T5lEWLFmHIkCH46KOPAACLFy/G7t278e2332LOnDllXB2VBd7gruQM6QZ3RESljSNQ/yc3NxeJiYno3LmzVnvnzp1x5MiRMqqKiIiIDBFHoP7Pv//+C41GA0dHR612R0dHpKWlFTpPTk4OcnJypOdqtRoAkJWVpff68nMe6H2ZFZU+9z/3e8lxv5cN7veywf1eNkrj9+vTyxVClHgeBqhnKBQKredCCJ22AnPmzMHMmTN12p2dnUulNioZ5eKyruD1xP1eNrjfywb3e9ko7f1+7949KJXKEvVlgPo/9vb2MDIy0hltSk9P1xmVKjB16lSMHz9eep6fn4+MjAzY2dkVGboqkqysLDg7O+PatWuwtrYu63JeG9zvZYP7vWxwv5eN122/CyFw7949qFSqEs/DAPV/TE1N0bJlS8TGxqJ79+5Se2xsLN5///1C5zEzM4OZmZlWW9WqVUuzTINkbW39WrzBDA33e9ngfi8b3O9l43Xa7yUdeSrAAPWU8ePHIzg4GK1atYKXlxdWrlyJq1evYsSIEWVdGhERERkQBqin9O7dG3fu3MGsWbNw8+ZNuLu7Y+fOnXBxcSnr0oiIiMiAMEA9Y9SoURg1alRZl1EumJmZYfr06TqHMal0cb+XDe73ssH9Xja4359PIeRcs0dEREREvJEmERERkVwMUEREREQyMUARERERycQARURERCQTAxQV67fffkNAQABUKhUUCgW2bt2qNV0IgRkzZkClUsHc3Bzt27fHuXPnyqbYCuR5+z0qKgpdunSBvb09FAoFkpKSyqTOiqa4/Z6Xl4fJkyfDw8MDlpaWUKlUGDBgAFJTU8uu4Ariea/3GTNmoEGDBrC0tISNjQ06deqEo0ePlk2xFcjz9vvThg8fDoVCgcWLF7+y+gwdAxQV6/79+2jatCkiIiIKnT5//nwsWrQIEREROH78OJycnODr64t79+694korluft9/v376Nt27aYO3fuK66sYituvz948AAnT57EtGnTcPLkSURFReHPP/9EYGBgGVRasTzv9f7GG28gIiICZ86cweHDh+Hq6orOnTvj9u3br7jSiuV5+73A1q1bcfToUVlf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Z8+JSkhIQIMGDQAAv//+O1xcXPDpp5+iVatWqFevHq5cufJC6/noo4+wZs0arF69Gp06ddIaUSMiw8AARUTlxrJly6DRaNC6dWv88ssv+Ouvv5CcnIwlS5bAy8sLnTp1QpMmTdCvXz+cPHkSx44dw4ABA+Dj44NWrVq99Pq3bNmC1atX488//8T06dNx7NgxjBkzBgBQt25dXL16FZGRkfj777+xZMkSREdHv9B6+vXrhxs3buC7777D4MGDX7puItI/BigiKjfc3Nxw8uRJdOjQAWFhYXB3d4evry/27duHb7/9FgqFAlu3boWNjQ3efvttdOrUCbVr18bmzZv1sv6ZM2ciMjISTZo0wQ8//ICNGzeiUaNGAID3338fn3zyCcaMGYNmzZrhyJEjmDZt2gutx9raGj169ECVKlXQrVs3vdRORPqlEAVnZhIRUZEUCgWio6NfWaDx9fVFw4YNsWTJkleyPiKSh1fhEREZkIyMDOzZswf79+9HREREWZdDREVggCIiMiAtWrRAZmYm5s2bh/r165d1OURUBB7CIyIiIpKJJ5ETERERycQARURERCQTAxQRERGRTAxQRERERDIxQBERERHJxABFREREJBMDFBEREZFMDFBEREREMjFAEREREcn0/wD+PdVJx8K92QAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Création du barplot\n",
|
||
"plt.bar(company_max_price[\"number_compagny\"], company_max_price[\"max_price\"])\n",
|
||
"\n",
|
||
"# Ajout de titres et d'étiquettes\n",
|
||
"plt.xlabel('Company')\n",
|
||
"plt.ylabel(\"Prix maximal d'un billet vendu\")\n",
|
||
"plt.title(\"Prix maximal de vente observé par compagnie de spectacle\")\n",
|
||
"\n",
|
||
"# Affichage du barplot\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 71,
|
||
"id": "bff23e5d-d7ed-4092-ae3c-5df503e54a6d",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"count 762879.000000\n",
|
||
"mean 0.079068\n",
|
||
"std 3.969729\n",
|
||
"min 0.000000\n",
|
||
"25% 0.000000\n",
|
||
"50% 0.000000\n",
|
||
"75% 0.000000\n",
|
||
"max 3334.000000\n",
|
||
"Name: purchase_count, dtype: float64"
|
||
]
|
||
},
|
||
"execution_count": 71,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"customerplus_clean_spectacle[customerplus_clean_spectacle[\"first_buying_date\"].isna()][\"purchase_count\"].describe()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 72,
|
||
"id": "89466dbd-14d2-4ede-9ca0-b9c32b764e25",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"count 7.608090e+05\n",
|
||
"mean 3.863940e+00\n",
|
||
"std 1.685825e+03\n",
|
||
"min 1.000000e+00\n",
|
||
"25% 1.000000e+00\n",
|
||
"50% 1.000000e+00\n",
|
||
"75% 2.000000e+00\n",
|
||
"max 1.469325e+06\n",
|
||
"Name: purchase_count, dtype: float64"
|
||
]
|
||
},
|
||
"execution_count": 72,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"customerplus_clean_spectacle[~customerplus_clean_spectacle[\"first_buying_date\"].isna()][\"purchase_count\"].describe()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 77,
|
||
"id": "5f9feae4-35f4-43b6-adeb-f75773900a2d",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>street_id</th>\n",
|
||
" <th>structure_id</th>\n",
|
||
" <th>mcp_contact_id</th>\n",
|
||
" <th>fidelity</th>\n",
|
||
" <th>tenant_id</th>\n",
|
||
" <th>is_partner</th>\n",
|
||
" <th>deleted_at</th>\n",
|
||
" <th>gender</th>\n",
|
||
" <th>is_email_true</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>first_buying_date</th>\n",
|
||
" <th>country</th>\n",
|
||
" <th>gender_label</th>\n",
|
||
" <th>gender_female</th>\n",
|
||
" <th>gender_male</th>\n",
|
||
" <th>gender_other</th>\n",
|
||
" <th>country_fr</th>\n",
|
||
" <th>has_tags</th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>already_purchased</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>821538</td>\n",
|
||
" <td>139</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>809126</td>\n",
|
||
" <td>1063</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>11005</td>\n",
|
||
" <td>1063</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>17663</td>\n",
|
||
" <td>12731</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>38100</td>\n",
|
||
" <td>12395</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>343121</th>\n",
|
||
" <td>4667645</td>\n",
|
||
" <td>122</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1534181.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>862</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>343122</th>\n",
|
||
" <td>4667649</td>\n",
|
||
" <td>122</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1534177.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>862</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>343123</th>\n",
|
||
" <td>4667660</td>\n",
|
||
" <td>122</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1534165.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>862</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>343124</th>\n",
|
||
" <td>4667679</td>\n",
|
||
" <td>122</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1534132.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>862</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>343125</th>\n",
|
||
" <td>4667686</td>\n",
|
||
" <td>122</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1567949.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>862</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>1523688 rows × 30 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" customer_id street_id structure_id mcp_contact_id fidelity \\\n",
|
||
"0 821538 139 NaN NaN 0 \n",
|
||
"1 809126 1063 NaN NaN 0 \n",
|
||
"2 11005 1063 NaN NaN 0 \n",
|
||
"3 17663 12731 NaN NaN 0 \n",
|
||
"4 38100 12395 NaN NaN 0 \n",
|
||
"... ... ... ... ... ... \n",
|
||
"343121 4667645 122 NaN 1534181.0 0 \n",
|
||
"343122 4667649 122 NaN 1534177.0 0 \n",
|
||
"343123 4667660 122 NaN 1534165.0 0 \n",
|
||
"343124 4667679 122 NaN 1534132.0 0 \n",
|
||
"343125 4667686 122 NaN 1567949.0 0 \n",
|
||
"\n",
|
||
" tenant_id is_partner deleted_at gender is_email_true ... \\\n",
|
||
"0 875 False NaN 2 True ... \n",
|
||
"1 875 False NaN 2 True ... \n",
|
||
"2 875 False NaN 2 False ... \n",
|
||
"3 875 False NaN 0 False ... \n",
|
||
"4 875 False NaN 0 True ... \n",
|
||
"... ... ... ... ... ... ... \n",
|
||
"343121 862 False NaN 2 True ... \n",
|
||
"343122 862 False NaN 2 True ... \n",
|
||
"343123 862 False NaN 0 True ... \n",
|
||
"343124 862 False NaN 2 True ... \n",
|
||
"343125 862 False NaN 0 True ... \n",
|
||
"\n",
|
||
" first_buying_date country gender_label gender_female gender_male \\\n",
|
||
"0 NaN NaN other 0 0 \n",
|
||
"1 NaN fr other 0 0 \n",
|
||
"2 NaN fr other 0 0 \n",
|
||
"3 NaN fr female 1 0 \n",
|
||
"4 NaN fr female 1 0 \n",
|
||
"... ... ... ... ... ... \n",
|
||
"343121 NaN NaN other 0 0 \n",
|
||
"343122 NaN NaN other 0 0 \n",
|
||
"343123 NaN NaN female 1 0 \n",
|
||
"343124 NaN NaN other 0 0 \n",
|
||
"343125 NaN NaN female 1 0 \n",
|
||
"\n",
|
||
" gender_other country_fr has_tags number_compagny already_purchased \n",
|
||
"0 1 NaN 0 10 False \n",
|
||
"1 1 1.0 0 10 False \n",
|
||
"2 1 1.0 0 10 False \n",
|
||
"3 0 1.0 0 10 False \n",
|
||
"4 0 1.0 0 10 False \n",
|
||
"... ... ... ... ... ... \n",
|
||
"343121 1 NaN 0 14 False \n",
|
||
"343122 1 NaN 0 14 False \n",
|
||
"343123 0 NaN 0 14 False \n",
|
||
"343124 1 NaN 0 14 False \n",
|
||
"343125 0 NaN 0 14 False \n",
|
||
"\n",
|
||
"[1523688 rows x 30 columns]"
|
||
]
|
||
},
|
||
"execution_count": 77,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"customerplus_clean_spectacle[\"already_purchased\"] = customerplus_clean_spectacle[\"first_buying_date\"].isna()==False\n",
|
||
"customerplus_clean_spectacle"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 83,
|
||
"id": "cec4f1eb-cec8-409d-8b2c-1e01f1bf81ff",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>street_id</th>\n",
|
||
" <th>structure_id</th>\n",
|
||
" <th>mcp_contact_id</th>\n",
|
||
" <th>fidelity</th>\n",
|
||
" <th>tenant_id</th>\n",
|
||
" <th>is_partner</th>\n",
|
||
" <th>deleted_at</th>\n",
|
||
" <th>gender</th>\n",
|
||
" <th>is_email_true</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>first_buying_date</th>\n",
|
||
" <th>country</th>\n",
|
||
" <th>gender_label</th>\n",
|
||
" <th>gender_female</th>\n",
|
||
" <th>gender_male</th>\n",
|
||
" <th>gender_other</th>\n",
|
||
" <th>country_fr</th>\n",
|
||
" <th>has_tags</th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>already_purchased</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>11005</td>\n",
|
||
" <td>1063</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>17663</td>\n",
|
||
" <td>12731</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>38100</td>\n",
|
||
" <td>12395</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>307036</td>\n",
|
||
" <td>139</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>2946</td>\n",
|
||
" <td>1063</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>875</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>338933</th>\n",
|
||
" <td>3625705</td>\n",
|
||
" <td>648752</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1253864.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>862</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>338954</th>\n",
|
||
" <td>3627626</td>\n",
|
||
" <td>636890</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1253887.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>862</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>338959</th>\n",
|
||
" <td>3628124</td>\n",
|
||
" <td>653042</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1253899.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>862</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>338986</th>\n",
|
||
" <td>3631189</td>\n",
|
||
" <td>648423</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1253928.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>862</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>339039</th>\n",
|
||
" <td>3635380</td>\n",
|
||
" <td>659417</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1253975.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>862</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>fr</td>\n",
|
||
" <td>male</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>26246 rows × 30 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" customer_id street_id structure_id mcp_contact_id fidelity \\\n",
|
||
"2 11005 1063 NaN NaN 0 \n",
|
||
"3 17663 12731 NaN NaN 0 \n",
|
||
"4 38100 12395 NaN NaN 0 \n",
|
||
"5 307036 139 NaN NaN 0 \n",
|
||
"6 2946 1063 NaN NaN 0 \n",
|
||
"... ... ... ... ... ... \n",
|
||
"338933 3625705 648752 NaN 1253864.0 0 \n",
|
||
"338954 3627626 636890 NaN 1253887.0 0 \n",
|
||
"338959 3628124 653042 NaN 1253899.0 0 \n",
|
||
"338986 3631189 648423 NaN 1253928.0 0 \n",
|
||
"339039 3635380 659417 NaN 1253975.0 0 \n",
|
||
"\n",
|
||
" tenant_id is_partner deleted_at gender is_email_true ... \\\n",
|
||
"2 875 False NaN 2 False ... \n",
|
||
"3 875 False NaN 0 False ... \n",
|
||
"4 875 False NaN 0 True ... \n",
|
||
"5 875 False NaN 2 True ... \n",
|
||
"6 875 False NaN 2 False ... \n",
|
||
"... ... ... ... ... ... ... \n",
|
||
"338933 862 False NaN 0 True ... \n",
|
||
"338954 862 False NaN 0 True ... \n",
|
||
"338959 862 False NaN 0 True ... \n",
|
||
"338986 862 False NaN 0 True ... \n",
|
||
"339039 862 False NaN 1 True ... \n",
|
||
"\n",
|
||
" first_buying_date country gender_label gender_female gender_male \\\n",
|
||
"2 NaN fr other 0 0 \n",
|
||
"3 NaN fr female 1 0 \n",
|
||
"4 NaN fr female 1 0 \n",
|
||
"5 NaN NaN other 0 0 \n",
|
||
"6 NaN fr other 0 0 \n",
|
||
"... ... ... ... ... ... \n",
|
||
"338933 NaN fr female 1 0 \n",
|
||
"338954 NaN fr female 1 0 \n",
|
||
"338959 NaN fr female 1 0 \n",
|
||
"338986 NaN fr female 1 0 \n",
|
||
"339039 NaN fr male 0 1 \n",
|
||
"\n",
|
||
" gender_other country_fr has_tags number_compagny already_purchased \n",
|
||
"2 1 1.0 0 10 False \n",
|
||
"3 0 1.0 0 10 False \n",
|
||
"4 0 1.0 0 10 False \n",
|
||
"5 1 NaN 0 10 False \n",
|
||
"6 1 1.0 0 10 False \n",
|
||
"... ... ... ... ... ... \n",
|
||
"338933 0 1.0 0 14 False \n",
|
||
"338954 0 1.0 0 14 False \n",
|
||
"338959 0 1.0 0 14 False \n",
|
||
"338986 0 1.0 0 14 False \n",
|
||
"339039 0 1.0 0 14 False \n",
|
||
"\n",
|
||
"[26246 rows x 30 columns]"
|
||
]
|
||
},
|
||
"execution_count": 83,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# attention, on a des cas où le client a pas de première date d'achat alors qu'il compte plusieurs achats\n",
|
||
"# on peut donc avoir une date de première achat valant NaN non pas parce que l'individu n'a jamais acheté \n",
|
||
"# mais simplement car elle n'est pas renseignée\n",
|
||
"\n",
|
||
"customerplus_clean_spectacle[(customerplus_clean_spectacle[\"already_purchased\"]==False) &\n",
|
||
"(customerplus_clean_spectacle[\"purchase_count\"]>0)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 80,
|
||
"id": "b5904039-a967-47d5-ba13-1b805bcd76ca",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>street_id</th>\n",
|
||
" <th>structure_id</th>\n",
|
||
" <th>mcp_contact_id</th>\n",
|
||
" <th>fidelity</th>\n",
|
||
" <th>tenant_id</th>\n",
|
||
" <th>is_partner</th>\n",
|
||
" <th>deleted_at</th>\n",
|
||
" <th>gender</th>\n",
|
||
" <th>is_email_true</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>first_buying_date</th>\n",
|
||
" <th>country</th>\n",
|
||
" <th>gender_label</th>\n",
|
||
" <th>gender_female</th>\n",
|
||
" <th>gender_male</th>\n",
|
||
" <th>gender_other</th>\n",
|
||
" <th>country_fr</th>\n",
|
||
" <th>has_tags</th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>already_purchased</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>0 rows × 30 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"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, has_tags, number_compagny, already_purchased]\n",
|
||
"Index: []\n",
|
||
"\n",
|
||
"[0 rows x 30 columns]"
|
||
]
|
||
},
|
||
"execution_count": 80,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# cpdt, si un client a un nombre d'achats nul, il a bien une date de premier achat valant NaN, OK\n",
|
||
"customerplus_clean_spectacle[(customerplus_clean_spectacle[\"already_purchased\"]) &\n",
|
||
"(customerplus_clean_spectacle[\"purchase_count\"]==0)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 89,
|
||
"id": "e940bfcf-29cc-4d4c-ae5e-e2a8cecf28af",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"number_compagny already_purchased\n",
|
||
"10 False 0.234840\n",
|
||
" True 0.236236\n",
|
||
"11 False 0.141746\n",
|
||
" True 0.002804\n",
|
||
"12 False 0.485950\n",
|
||
" True 0.244779\n",
|
||
"13 False 0.084057\n",
|
||
" True 0.177213\n",
|
||
"14 False 0.885553\n",
|
||
" True 0.308859\n",
|
||
"Name: opt_in, dtype: float64"
|
||
]
|
||
},
|
||
"execution_count": 89,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# différence de consentement aux campagnes de mails (opt in)\n",
|
||
"\n",
|
||
"# en se restreignant au personnes n'ayant pas acheté, on a quand même des individus acceptant d'être ciblés\n",
|
||
"customerplus_clean_spectacle[customerplus_clean_spectacle[\"first_buying_date\"].isna()][\"opt_in\"].unique()\n",
|
||
"\n",
|
||
"# taux de consentement variés\n",
|
||
"customerplus_clean_spectacle[\"already_purchased\"] = customerplus_clean_spectacle[\"purchase_count\"] > 0\n",
|
||
"customerplus_clean_spectacle.groupby([\"number_compagny\", \"already_purchased\"])[\"opt_in\"].mean()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 94,
|
||
"id": "a5e79beb-9ba0-4c89-b084-e27ff0d65dcc",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>already_purchased</th>\n",
|
||
" <th>opt_in</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>0.234840</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>0.236236</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>0.141746</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>0.002804</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>0.485950</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>0.244779</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>0.084057</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>0.177213</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" <td>0.885553</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>True</td>\n",
|
||
" <td>0.308859</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_compagny already_purchased opt_in\n",
|
||
"0 10 False 0.234840\n",
|
||
"1 10 True 0.236236\n",
|
||
"2 11 False 0.141746\n",
|
||
"3 11 True 0.002804\n",
|
||
"4 12 False 0.485950\n",
|
||
"5 12 True 0.244779\n",
|
||
"6 13 False 0.084057\n",
|
||
"7 13 True 0.177213\n",
|
||
"8 14 False 0.885553\n",
|
||
"9 14 True 0.308859"
|
||
]
|
||
},
|
||
"execution_count": 94,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"df_graph = customerplus_clean_spectacle.groupby([\"number_compagny\", \"already_purchased\"])[\"opt_in\"].mean().reset_index()\n",
|
||
"df_graph"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 127,
|
||
"id": "5be56c41-7697-481a-84ea-f77a2041484b",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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0aJFWrp0qc1tMvPmzbNZr2zZsoqMjNSePXsUExNjVz3SX7eKzZ8/X7Nnz77l7XeNGzfWxIkT9fnnn+v111+3tn/11Ve6evVqlskH7BUYGKju3btrz549mjJlipKTk+/6vG7lVl+DNm3aKCYmRv7+/oqIiMix45nVrVtXRYoU0YEDB9SvX78c2689fcue/hweHq69e/fatK1duzbLrUi5IfM/HP4+UYgkzZgxI9ePbZY5CcnChQtVvXp1a/t///vfbM1I93deXl5q2bKlUlNT1a5dO+3fv19hYWFq06aNli9frgcffFBFixa1a5+NGzfW119/rTNnztj8wfvZZ5/J09Mz16aK/qf9uWTJkurXr5/WrFmjTZs23XI9Dw8P1a9fX19++aXGjh17y8CT1+e/Zs0a/f7779YQmJ6eroULF+rBBx+0jn5ZLJYsfXfv3r3asmWLzS2C9evX16JFi7RixQrrbXCSssyid7f+Sf+6VV8F8iOCEuAgrVu31qRJk9S5c2f16tVLFy5c0HvvvZfll+CdVKpUSevXr9c333yj4OBg+fj43HJUpGvXrpo8ebK6du2qsWPHKjIyUsuXL9d3332XZd0ZM2aoZcuWat68ubp3764SJUro4sWLOnjwoHbt2qUvv/zyljV16tRJsbGx6tOnjw4dOqSGDRsqIyND27ZtU/ny5fXss8+qadOmat68uYYMGaLLly+rbt261lnvqlWrpueff96u6yBJNWvWVJs2bVS5cmUVLVpUBw8e1Ny5c1W7dm15enre9XndSqVKlbRgwQItXLhQpUqVkru7uypVqqQBAwboq6++Ur169fT666+rcuXKysjI0IkTJ/T9999r4MCBqlmzpt3HM/P29tYHH3ygbt266eLFi+rQoYOKFy+u8+fPa8+ePTp//nyW/4HO7nllt2/Z05+ff/55vfPOOxoxYoTq16+vAwcOaNq0afL19bW7RnvVqVNHRYsWVZ8+fRQVFSUXFxd98cUX2rNnT64f26xixYrq1KmT3n//fTk5OalRo0bav3+/3n//ffn6+t721lVJeumll+Th4aG6desqODhY586d07hx4+Tr62sdkR01apRWrVqlOnXqqH///ipbtqxSUlJ07NgxLV++XNOnT7/lLWhRUVHWZ1BGjBghPz8/ffHFF/r22281ceLEXPt6Zbc/JyYmqmHDhurcubPK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hmbPnq2xY8da99++fXs5OTlp69atmj59uoYMGXK3lxIAAACwwWQO97DQ0FBNnjxZFotFZcuW1b59+zR58mS99NJL2d7HgAED1L59e+v7MWPGaODAgXrttdesbY888ojNNt27d1enTp0kSTExMfrggw+0fft2tWjRQi4uLho5cqR13YiICG3evFmLFi1Sx44ddfnyZSUmJqpNmzZ68MEHJUnly5e3rj927FgNHTpU3bp1kySVKlVKo0eP1uDBgxUVFaXVq1fr4MGDOnbsmB544AFrDS1btsz2OQMAAAB3QlC6h9WqVcs6EiNJtWvX1vvvv6/09PRs76NGjRrWfyckJOjMmTNq3LjxbbepXLmy9d9eXl7y8fFRQkKCtW369On65JNPdPz4cV27dk2pqamqWrWqJMnPz0/du3dX8+bN1bRpUzVp0kQdO3ZUcHCwJGnnzp3asWOHdQRJ+ut2vpSUFCUnJ+vgwYMqWbKkNSRlnjcAAACQk7j1roCyWCzW55Uy3WyyBi8vL+u/PTw8srVvFxeXLMfKyMiQJC1atEivv/66XnjhBX3//feKj49Xjx49lJqaal0/NjZWW7ZsUZ06dbRw4UKVKVNGW7dulfTXrXUjR45UfHy89bVv3z4dPnxY7u7uWc4p8/gAAABATmJE6R6WGS7+/j4yMlJOTk4qVqyYzp49a112+PBhJScn33Z/Pj4+Cg8P15o1a9SwYcN/VNOGDRtUp04d9e3b19r266+/ZlmvWrVqqlatmoYNG6batWtr3rx5qlWrlqpXr65Dhw5leS4qU4UKFXTixAmdOXNGISEhkqQtW7b8o1oBAACAWyEo3cNOnjypN954Q71799auXbv0wQcf6P3335ckNWrUSNOmTVOtWrWUkZGhIUOGZBkJupno6Gj16dNHxYsXV8uWLZWUlKRNmzbp1VdfzVZNpUuX1meffabvvvtOERERmjt3rnbs2KGIiAhJ0tGjRzVz5ky1bdtWISEhOnTokH755Rd17dpVkjRixAi1adNGoaGhevrpp1WoUCHt3btX+/bt05gxY9SkSROVLVtWXbt21fvvv6/Lly9r+PDh//AKAgAAADdHULqV6ERHV3BHXbt21bVr1/Too4/KyclJr776qnr16iVJev/999WjRw/Vq1dPISEh+ve//62dO3fecZ/dunVTSkqKJk+erEGDBikgIEAd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",
|
||
"text/plain": [
|
||
"<Figure size 1000x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Création du barplot groupé\n",
|
||
"fig, ax = plt.subplots(figsize=(10, 6))\n",
|
||
"\n",
|
||
"categories = df_graph[\"number_compagny\"].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_compagny'] == 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": 94,
|
||
"id": "91b743c4-5473-41e1-b97e-cf06904f0fa8",
|
||
"metadata": {
|
||
"scrolled": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_company</th>\n",
|
||
" <th>y_has_purchased</th>\n",
|
||
" <th>opt_in</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>22.681533</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>45.617174</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>8.681794</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.034686</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>38.730755</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.046081</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>12.596642</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>16.709675</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>77.789137</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>17.561409</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_company y_has_purchased opt_in\n",
|
||
"0 10 0.0 22.681533\n",
|
||
"1 10 1.0 45.617174\n",
|
||
"2 11 0.0 8.681794\n",
|
||
"3 11 1.0 0.034686\n",
|
||
"4 12 0.0 38.730755\n",
|
||
"5 12 1.0 0.046081\n",
|
||
"6 13 0.0 12.596642\n",
|
||
"7 13 1.0 16.709675\n",
|
||
"8 14 0.0 77.789137\n",
|
||
"9 14 1.0 17.561409"
|
||
]
|
||
},
|
||
"execution_count": 94,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# on refait le graphique sur train set \n",
|
||
"\n",
|
||
"df_graph = train_set_spectacle.groupby([\"number_company\", \"y_has_purchased\"])[\"opt_in\"].mean().reset_index()\n",
|
||
"df_graph[\"opt_in\"] = 100 * df_graph[\"opt_in\"]\n",
|
||
"df_graph"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 96,
|
||
"id": "728e0021-4f95-4601-bb01-032db2cf6571",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"0.43578991448407206\n",
|
||
"0.2889600758160463\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# pourquoi une telle différence sur la variable opt in ??\n",
|
||
"print(train_set_spectacle[\"opt_in\"].mean())\n",
|
||
"print(customerplus_clean_spectacle[\"opt_in\"].mean())"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 72,
|
||
"id": "274b4bc5-277f-476a-8bc1-c1764b1df2de",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"0.8473746548562269\n",
|
||
"0.7573747808905485\n"
|
||
]
|
||
}
|
||
],
|
||
"source": []
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 76,
|
||
"id": "e1d837e1-c445-424b-867a-48b1e790f703",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"genre = homme : \n",
|
||
"0.3175633912091978\n",
|
||
"0.3103916287323914\n",
|
||
"email vérifié : \n",
|
||
"0.9581971527197163\n",
|
||
"0.9360131470484772\n",
|
||
"nationalité française : \n",
|
||
"0.8473746548562269\n",
|
||
"0.7573747808905485\n",
|
||
"nbre d'achats : \n",
|
||
"2.925387603847428\n",
|
||
"1.968932616126136\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# pour les autres variables, la distribution semble similaire\n",
|
||
"\n",
|
||
"print(\"genre = homme : \")\n",
|
||
"print(train_set_spectacle[\"gender_male\"].mean())\n",
|
||
"print(customerplus_clean_spectacle[\"gender_male\"].mean())\n",
|
||
"\n",
|
||
"print(\"email vérifié : \")\n",
|
||
"print(train_set_spectacle[\"is_email_true\"].mean())\n",
|
||
"print(customerplus_clean_spectacle[\"is_email_true\"].mean())\n",
|
||
"\n",
|
||
"print(\"nationalité française : \")\n",
|
||
"print(train_set_spectacle[\"country_fr\"].mean())\n",
|
||
"print(customerplus_clean_spectacle[\"country_fr\"].mean())\n",
|
||
"\n",
|
||
"# sauf pr nbre d'achats - à verif\n",
|
||
"print(\"nbre d'achats : \")\n",
|
||
"print(train_set_spectacle[\"purchase_count\"].mean())\n",
|
||
"print(customerplus_clean_spectacle[\"purchase_count\"].mean())"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 98,
|
||
"id": "43deeeb5-8092-42fc-b80b-59d2c58093de",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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8+bNea7n5uamyMhIffnll5owYUKef0wW9fmvXbtWf/zxh/mP4czMTC1evFh33323+eqXyWTK0Xf37t2rrVu3WgwRjIyM1BdffKGVK1eah8FJyjGL3u26lf6VV1/NTWhoqNzc3HTkyJEcy2z5fMpmMpnk7OxsEZKSk5NznfWuMOXWV23p9ze7inXq1ClduXLFYoIH3BkISig1OnTooKlTp6pHjx569tlndebMGb311ls2fc+DJNWpU0cbNmzQ//73PwUFBcnLyyvPqyK9e/fWtGnT1Lt3b02YMEERERFasWKFvv322xzrvv/++2rXrp3atGmjvn37qmLFijp79qwOHjyoXbt26csvv8yzpieeeELz5s3TwIEDdejQIUVHRysrK0vbt29XjRo11L17d7Vq1Upt2rTRiBEjlJaWpqZNm5pnvWvQoIF69epl0+sgSY0aNVLHjh1Vt25dlStXTgcPHtSnn36qxo0by93d/bbPKy916tTRokWLtHjxYlWuXFmurq6qU6eOYmJi9NVXX6l58+Z6+eWXVbduXWVlZen48eP67rvvNHToUDVq1Mjm41nz9PTUu+++qz59+ujs2bN69NFH5e/vrz///FN79uzRn3/+meN/oPN7XvntW7b05169eum1117T66+/rsjISB04cEAzZ86Uj4+PzTXaqkmTJipXrpwGDhyoMWPGyMnJSZ9//rn27NlT6Me2VqtWLT3xxBN6++235eDgoBYtWmj//v16++235ePjc8Ohq5L0zDPPyM3NTU2bNlVQUJCSk5M1ceJE+fj4mK/IvvHGG1q9erWaNGmiF198UdWqVdOVK1d09OhRrVixQnPmzMlzCNqYMWPM96C8/vrr8vX11eeff65vvvlGU6ZMKbT3K7/9OTU1VdHR0erRo4eqV68uLy8vJSQkaNWqVXleMc42depUPfDAA2rUqJFGjhypKlWq6I8//tCyZcv0/vvvy8vLq8jPv3z58mrRooVee+0186x3P//8s0W46dixo8aNG6cxY8YoMjJShw4d0htvvKHw8HCLcN2nTx9NmzZNTz75pMaPH68qVapo5cqV5s/6m/Wt/Mpv/8pPX82Ns7OzGjdurG3btuVYVqdOHS1ZskSzZ8/WvffeqzJlyuQ5giNb9tdsDBo0SI8++qhOnDihcePGKSgoyDxEuzDkp6/a8jlep04dSdI777yj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BQtyzCoXFRWlP//8U1OmTNGRI0f03nvvaeXKlTets1KlSnJ2dta7776r3377TcuWLdO4cePydY7XCwsLU1JSkhITE/XXX38pPT39ptvk5zXKy4kTJ8yvx8KFC/Xuu+/qpZdekiRVrVpVPXv2VO/evbVkyRIlJSUpISFBkydP1ooVK/J9Th4eHnruuef0yiuvaNWqVTpw4ICeeeYZXbp0SU899ZSk/L03I0aM0NatW/X8888rMTFRhw8f1rJly/TCCy/kuxYAAICSiKBUwpQpU0aLFi3Szp07Vbt2bb388st68803LdZxdnbWd999J39/f7Vv31516tTRpEmTcgzlup1jODo6asaMGXr//fcVHByshx9+ONd9VapUSV999ZX+97//qV69epozZ455QoJsNWrU0KxZs/Tee++pXr162rFjh4YNG3bTOitUqKD4+Hh9+eWXqlmzpiZNmqS33norX+d4va5du6pt27aKjo5WhQoVtHDhwptuk5/XKC+9e/fW5cuXdd999+n555/XCy+8oGeffda8fN68eerdu7eGDh2qatWq6aGHHtL27dvNV83ya9KkSeratat69eqle+65R7/++qu+/fZblStXTlL+3pu6detq48aNOnz4sJo1a6YGDRrotddeM9/nBQAAUFqZjPzcqFCCpaWlycfHR6mpqfL29rZYduXKFSUlJSk8PJzZu1AkoqKiVL9+fU2fPt3epRQafq4AAEUtbOQ39i6hQB2d1MHeJZRaN8oG1riiBAAAAABWCEoAAAAAYIVZ74AitGHDBnuXAAAAgHzgihIAAAAAWCEoAQAAAIAVgpKkUj7xH1Ck+HkCAAClwR0dlJycnCRJly5dsnMlQOmR/fOU/fMFAABQEt3Rkzk4ODiobNmySklJkSS5u7vLZDLZuSqgZDIMQ5cuXVJKSorKli2b7y84BgAAKI7u6KAkSYGBgZJkDksAbk/ZsmXNP1cAAAAl1R0flEwmk4KCguTv76+rV6/auxygRHNycuJKEgAAKBXu+KCUzcHBgT/wAAAAAEi6wydzAAAAAIDcEJQAAAAAwApBCQAAAACsEJQAAAAAwApBCQAAAACs2DUohYWFyWQy5Xg8//zzkv75AsvY2FgFBwfLzc1NUVFR2r9/vz1LBgAAAHAHsGtQSkhI0OnTp82P1atXS5Iee+wxSdKUKVM0depUzZw5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5v0GBAQY6enp5nU++OADo1y5csaFCxfMbd98841RpkwZIzk5OddzHTVqlFGjRg2LY40YMcKQZJw7d84wDMPo1auX8eyzz1ps98MPPxhlypQxLl++nOt+GzdubPTs2TPXZb/88oshydi8ebO57a+//jLc3NyML774wjAMw5g3b54hyfj111/N6wwYMMBwd3c3zp8/b25r06aNMWDAAPPz0NBQo23bthbHe/zxx4127drlWothGMYXX3xh+Pn5WazfoUMHi3V69uxp+Pj4mJ+PGTPGcHd3N9LS0sxtr7zyitGoUSPz88jISOOll14yDMMwfv31V8NkMhm///67xX5btmxpjBo1Ks/aAKA044oSAJRgkydP1vz583XgwIFb3ketWrVUpsz//ToICAhQnTp1zM8dHBzk5+enlJQUSdLOnTv166+/ysvLS56envL09JSvr6+uXLmiI0eOmLerU6eOxX1JBw8eVL169eTh4WFua9q0qbKysnTo0KFcazt48KDuv/9+i0kqGjdubLHOzp07FR8fb67F09NTbdq0UVZWlpKSknLdb2Jiolq2bJnnMR0dHdWoUSNzm5+fn6pVq6aDBw+a29zd3XX33XdbvG5hYWEWs/8FBASYX7e86m/cuLHFftevX69WrVqpYsWK8vLyUu/evXXmzBnzUMJDhw7pvvvus9iH9XPpn2F+Xl5e5udBQUE5asm2a9cuGYahqlWrWryOGzdutHhPAeBOwmQOAFCCNW/eXG3atNG///1v9e3b12JZmTJlZBiGRdv1Q8eyOTk5WTw3mUy5tmVlZUmSsrKydO+99+rzzz/Psa8KFSqY/319IJIkwzDynJUvr3br+nOTlZWlAQMG6MUXX8yxrFKlSrlu4+bmluf+8jqmdf22vm43kr3fY8eOqX379ho4cKDGjRsnX19fbdq0SU899ZT5vcvtdcytZltqycrKkoODg3bu3CkHBweLZUU17TsAFDcEJQAo4SZNmqT69eubJ0zIVqFCBSUnJ1v8YZ2YmHjbx7vnnnu0ePFi+fv7y9vbO9/b1axZU/Pnz9fFixfNIWrz5s0qU6ZMjtqv32bp0qUWbdu2bctRz/79+1WlSpV811K3bl2tXbtW/fr1y/WY165d0/bt29WkSRNJ0pkzZ/TLL7+oRo0a+T5GXqzr37Ztm6pXry5J+vHHH3Xt2jW9/fbb5qt8X3zxhcX61atX144dOyzafvzxx9uqqUGDBsrMzFRKSoqaNWt2W/sCgNKCoXcAUMLVqVNHPXv2zDF7WlRUlP78809NmTJFR44c0XvvvaeVK1fe9vF69uyp8uXL6+GHH9YPP/ygpKQkbdy4US+99NINJ5bo2bOnXF1d1adPH/30009av369XnjhBfXq1UsBAQG5bjNw4EAdOXJEQ4YM0aFDh7RgwQLFx8dbrDNixAht3bpVzz//vBITE3X48GEtW7ZML7zwQp61jBkzRgsXLtSYMWN08OBB7du3T1OmTJEkRURE6OGHH9YzzzyjTZs2ac+ePXryySdVsWJFPfzww7a/YFY2b96sKVOm6JdfftF7772nL7/8Ui+99JIk6e6779a1a9f07rvv6rffftOnn36qOXPmWGz/wgsvaMWKFZo6daoOHz6s999/XytXrryt79CqWrWqevbsqd69e2vJkiVKSkpSQkKCJk+erBUrVtzW+QJASUVQAoBSYNy4cTmGX9WoUUOzZs3Se++9p3r16mnHjh0aNmzYbR/L3d1d33//vSpVqqQuXbqoRo0a6t+/vy5fvnzDK0zu7u769ttvdfbsWf3rX//So48+qpYtW2rmzJl5blOpUiV99dVX+t///qd69eppzpw5iouLs1inbt262rhxow4fPqxmzZqpQYMGeu211xQUFJTnfqOiovTll19q2bJlql+/vlq0aKHt27ebl8+bN0/33nuvOnbsqMaNG8swDK1YsSLHcLZbMXToUO3cuVMNGjTQuHHj9Pbbb6tNmzaSpPr162vq1KmaPHmyateurc8//zzHFPBNmzbVnDlzNHXqVNWrV0+rVq3Syy+/LFdX19uqa968eerdu7eGDh2qatWq6aGHHtL27dsVEhJyW/sFgJLKZORnADgAALhtYWFhiomJsfj+ooLwzDPP6Oeff9YPP/xQoPsFgDsZ9ygBAFDCvPXWW2rVqpU8PDy0cuVKzZ8/X7NmzbJ3WQBQqhCUAAAoYXbs2KEpU6bo/Pnzqly5smbMmKGnn37a3mUBQKnC0DsAAAAAsMJkDgAAAABghaAEAAAAAFYISgAAAABghaAEAAAAAFYISgAAAABghaAEAAAAAFYISgAAAABghaAEAAAAAFYISgAAAABg5f8BhTVk1PFx0PUAAAAASUVORK5CYII=",
|
||
"text/plain": [
|
||
"<Figure size 1000x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# with the generic function\n",
|
||
"multiple_barplot(df_graph, x=\"number_company\", y=\"opt_in\", 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 consentement (%)\", \n",
|
||
" title = \"Part de consentement au mailing selon les compagnies (train set)\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 79,
|
||
"id": "32960530-cb46-4eeb-a6d2-1dcf5fb640d8",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>gender_male</th>\n",
|
||
" <th>gender_female</th>\n",
|
||
" <th>gender_other</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>0.181580</td>\n",
|
||
" <td>0.343837</td>\n",
|
||
" <td>0.474583</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>0.179520</td>\n",
|
||
" <td>0.314443</td>\n",
|
||
" <td>0.506037</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>0.346380</td>\n",
|
||
" <td>0.454036</td>\n",
|
||
" <td>0.199584</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>0.318108</td>\n",
|
||
" <td>0.503092</td>\n",
|
||
" <td>0.178800</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>0.331954</td>\n",
|
||
" <td>0.316181</td>\n",
|
||
" <td>0.351865</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_compagny gender_male gender_female gender_other\n",
|
||
"0 10 0.181580 0.343837 0.474583\n",
|
||
"1 11 0.179520 0.314443 0.506037\n",
|
||
"2 12 0.346380 0.454036 0.199584\n",
|
||
"3 13 0.318108 0.503092 0.178800\n",
|
||
"4 14 0.331954 0.316181 0.351865"
|
||
]
|
||
},
|
||
"execution_count": 79,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# genre \n",
|
||
"\n",
|
||
"company_genders = customerplus_clean_spectacle.groupby(\"number_compagny\")[[\"gender_male\", \"gender_female\", \"gender_other\"]].mean().reset_index()\n",
|
||
"company_genders"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 80,
|
||
"id": "1b4a49d7-7bfe-4e80-aa7e-c9c6d4bc46e2",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABYJ0lEQVR4nO3dd1RU1/428GdoQxNQkaJS7QUVQSMYNUQFS9TYO9Z7LTEWNCrXKFgxJlFMwZKIaEIMMZZEQ1RiISqWiGiM2BuoIIoKVpCZ/f7hy/wyDugcGBgcn89as5azZ59zvmdP4fFUmRBCgIiIiMhAGOm7ACIiIiJdYrghIiIig8JwQ0RERAaF4YaIiIgMCsMNERERGRSGGyIiIjIoDDdERERkUBhuiIiIyKAw3BAREZFBYbjRgyNHjqBnz55wdXWFXC6Ho6Mj/Pz8MHXqVH2XJplMJkN4eLi+y9DwYl379u2DTCbDvn37ynS5UVFRiImJKdNlAOW3Pv929epVyGQyfPbZZ+W2THo9xMTEQCaT4erVq2W6HH187vUlKSkJ4eHhuH//fpkup7zeu/LGcFPOfvvtN/j7+yM3NxdLlizBrl27sHz5crRu3RpxcXH6Ls9gNW/eHIcOHULz5s3LdDnlFW6IKpKuXbvi0KFDcHZ21ncpBiMpKQlz584t83BjqEz0XcCbZsmSJfDw8MDOnTthYvJ/wz9gwAAsWbJEj5UZNhsbG7Rq1UrfZRAZpGrVqqFatWr6LoNIhVtuyll2djbs7e3Vgk0hIyPNtyMuLg5+fn6wsrKCtbU1goKCkJKSonr9wIEDMDU1xbRp09SmK9zUuGbNGlXbhQsXMGjQIDg4OEAul6NBgwb4+uuvtao7NzcX//nPf1C1alVYW1ujU6dOOH/+fJF9tVmOUqnEggULUK9ePVhYWMDOzg5NmjTB8uXLX1nL/fv3MXXqVHh6ekIul8PBwQFdunTB2bNni52muM3Zx44dQ/fu3VGlShWYm5vD29sbP/30k1qfwrHcu3cvxo0bB3t7e1StWhW9evXCzZs3Vf3c3d1x+vRpJCYmQiaTQSaTwd3dvdTre/bsWXTq1AmWlpawt7fH2LFj8eDBgyL7/vHHH2jfvj1sbGxgaWmJ1q1bY/fu3a9cBiBtXJcuXQoPDw9YW1vDz88Phw8fVnv92LFjGDBgANzd3WFhYQF3d3cMHDgQ165d05jX4cOH0bp1a5ibm6N69eoIDQ3FN998o7GpvLhdoO7u7hg+fLhaW2ZmJsaMGYOaNWvCzMwMHh4emDt3LgoKCrQaix9++AF+fn6wtraGtbU1mjVrpvZdAoDo6Gg0bdoU5ubmqFKlCnr27IkzZ86o9Rk+fDisra1x9uxZBAUFwcrKCs7Ozli8eLFq3d9++21YWVmhbt26WLdundr0hZ+9hIQEjBgxAlWqVIGVlRW6deuGy5cvq/VNSEhAjx49ULNmTZibm6N27doYM2YM7ty5o7F+v/zyC5o0aQK5XA5PT08sX74c4eHhkMlkav1kMhkmTJiA7777Dg0aNIClpSWaNm2K7du3F1nni7s2SvN5LI/PvTbfy8JxSUlJQa9evWBjYwNbW1sMGTIEt2/f1pjnq36zCx05cgTdunVD1apVYW5ujlq1amHy5MmqZX700UcAAA8PD9XvSeHvV1xcHAIDA+Hs7AwLCws0aNAAM2fOxKNHjyQt52VK895VCILK1ejRowUA8eGHH4rDhw+L/Pz8YvsuXLhQyGQyMXLkSLF9+3axefNm4efnJ6ysrMTp06dV/RYvXiwAiF9++UUIIcQ///wjLC0txZAhQ1R9Tp8+LWxtbYWXl5dYv3692LVrl5g6daowMjIS4eHhL61ZqVSKgIAAIZfLxcKFC8WuXbtEWFiY8PT0FABEWFiY5OVEREQIY2NjERYWJnbv3i127NghIiMjX1lLbm6uaNSokbCyshLz5s0TO3fuFJs2bRKTJk0Se/bsUfV7sa69e/cKAGLv3r2qtj179ggzMzPRpk0bERcXJ3bs2CGGDx8uAIi1a9eq+q1du1YAEJ6enuLDDz8UO3fuFN9++62oXLmyCAgIUPU7fvy48PT0FN7e3uLQoUPi0KFD4vjx46Va38zMTOHg4CBq1Kgh1q5dK+Lj48XgwYOFq6urxvp89913QiaTiffff19s3rxZbNu2Tbz33nvC2NhY/PHHH6Ue1ytXrggAwt3dXXTq1Els3bpVbN26VXh5eYnKlSuL+/fvq+a3ceNGMWfOHLFlyxaRmJgofvzxR9GuXTtRrVo1cfv2bVW/06dPC0tLS9GwYUOxYcMG8csvv4igoCDV+l25cqXY97SQm5ubGDZsmOp5RkaGcHFxEW5ubmLVqlXijz/+EPPnzxdyuVwMHz78peMghBCzZ88WAESvXr3Exo0bxa5du8TSpUvF7NmzVX0WLVokAIiBAweK3377Taxfv154enoKW1tbcf78eVW/YcOGCTMzM9GgQQOxfPlykZCQIEaMGCEAiNDQUFG3bl2xZs0asXPnTvHee+8JAOLYsWOq6Qs/ey4uLmLkyJHi999/F6tXrxYODg7CxcVF3Lt3T9V3xYoVIiIiQvz6668iMTFRrFu3TjRt2lTUq1dP7Xfm999/F0ZGRuKdd94RW7ZsERs3bhRvvfWWcHd3Fy/+SSh8v1u2bCl++uknER8fL9555x1hYmIiLl26pFHnv9+v0nwey+tzr833MiwsTAAQbm5u4qOPPhI7d+4US5cuFVZWVsLb21ttbLX9zd6xY4cwNTUVTZo0ETExMWLPnj0iOjpaDBgwQAghRHp6uvjwww8FALF582bV70lOTo4QQoj58+eLZcuWid9++03s27dPrFy5Unh4eKj9HmmznLJ47yoKhptydufOHfH2228LAAKAMDU1Ff7+/iIiIkI8ePBA1S8tLU2YmJiIDz/8UG36Bw8eCCcnJ9GvXz9Vm1KpFF26dBF2dnbin3/+EQ0bNhT169cXDx8+VPUJCgoSNWvWVH05Ck2YMEGYm5uLu3fvFlvz77//LgCI5cuXq7UvXLhQ4w+Otst57733RLNmzV4xWprmzZsnAIiEhISX9tMm3NSvX194e3uLZ8+eqU373nvvCWdnZ6FQKIQQ//flHz9+vFq/JUuWCAAiIyND1daoUSPRrl07jXpKur4zZswQMplMnDhxQq29Y8eOauvz6NEjUaVKFdGtWze1fgqFQjRt2lS0bNnypcvRZlwLw42Xl5coKChQtR89elQAEBs2bCh22oKCAvHw4UNhZWWl9jnq37+/sLCwEJmZmWp969evX+JwM2bMGGFtbS2uXbum1u+zzz4TANT+yLzo8uXLwtjYWAwePLjYPvfu3RMWFhaiS5cuau1paWlCLpeLQYMGqdqGDRsmAIhNmzap2p49eyaqVasmAKjCrxBCZGdnC2NjYxESEqJqK/zs9ezZU21ZBw8eFADEggULiqxRqVSKZ8+eiWvXrqn9x0cIIVq0aCFcXFxEXl6equ3BgweiatWqRYYbR0dHkZubq2rLzMwURkZGIiIiQqPOwvertJ/H8vrca/O9LAw3U6ZMUWuPjY0VAMT3338vhJD2m12rVi1Rq1Yt8eTJk2KX++mnn2p8B4pS+F4nJiYKAOLkyZOSlqPr966i4G6pcla1alXs378ff/31FxYvXowePXrg/PnzCA0NhZeXl2oT8s6dO1FQUIDg4GAUFBSoHubm5mjXrp3a7hWZTIb169ejUqVK8PX1xZUrV/DTTz/BysoKAPD06VPs3r0bPXv2hKWlpdr8unTpgqdPn2rsVvi3vXv3AgAGDx6s1j5o0CC151KW07JlS5w8eRLjx4/Hzp07kZubq9X4/f7776hbty46dOigVf/iXLx4EWfPnlWt04u1ZmRk4Ny5c2rTdO/eXe15kyZNAKDIXS0vKun67t27F40aNULTpk3V2l8c+6SkJNy9exfDhg1TWxelUolOnTrhr7/+KnKTdSEp49q1a1cYGxurnhc1Dg8fPsSMGTNQu3ZtmJiYwMTEBNbW1nj06JHarpu9e/eiffv2cHR0VLUZGxujf//+r6yjONu3b0dAQACqV6+uNhadO3cGACQmJhY7bUJCAhQKBT744INi+xw6dAhPnjzR2BXm4uKCd999V2PTvUwmQ5cuXVTPTUxMULt2bTg7O8Pb21vVXqVKFTg4OBT5eXrxu+fv7w83NzfVdxMAsrKyMHbsWLi4uMDExASmpqZwc3MDANWYP3r0CMeOHcP7778PMzMz1bTW1tbo1q1bkesbEBCASpUqqZ47OjoWW2eh0n4ey+tzL+V7+eJ70K9fP5iYmKjeA21/s8+fP49Lly5h1KhRMDc3L3Z5L3P58mUMGjQITk5OMDY2hqmpKdq1awfg/97rki6ntGNaUfCAYj3x9fWFr68vAODZs2eYMWMGli1bhiVLlmDJkiW4desWAKBFixZFTv/i8TlVq1ZF9+7d8fXXX6Nnz57w8vJSvZadnY2CggJ8+eWX+PLLL4ucX1H75f89vYmJCapWrarW7uTkpNFP2+WEhobCysoK33//PVauXAljY2O0bdsWn3zyiWpcinL79m24uroW+7q2Csd32rRpGscrvVhroRfXXy6XAwCePHnyyuWVdH2zs7Ph4eGh0f7i2BeuT58+fYqd1927d1WB90VSxlWbcRg0aBB2796N2bNno0WLFrCxsVH9kf93v+zsbI11ATTXT4pbt25h27ZtMDU1LfL1l33WC4+hqFmzZrF9srOzAaDIM4OqV6+OhIQEtTZLS0uNPy5mZmaoUqWKxvRmZmZ4+vSpRntxY1RYi1KpRGBgIG7evInZs2fDy8sLVlZWUCqVaNWqlWrM7927ByGEWpgsVFQboPl+A8/f85d97kv7eSyvz72U7+WLyy78TSx8D7T9zdbmM/YyDx8+RJs2bWBubo4FCxagbt26sLS0RHp6Onr16qV6X0q6nNKOaUXBcFMBmJqaIiwsDMuWLcM///wDALC3twcA/Pzzz6r/fb1MQkICVqxYgZYtW2LLli3YtGkTevfuDQCoXLkyjI2NMXTo0GL/R1rUD0mhqlWroqCgANnZ2Wo/dJmZmWr9pCzHxMQEISEhCAkJwf379/HHH3/gf//7H4KCgpCeng5LS8sip69WrRquX79e/EBoqXB8Q0ND0atXryL71KtXr9TLKVTS9a1atarGOAOaY1+4Pl9++WWxZ4UV98cL0N24AkBOTg62b9+OsLAwzJw5U9Wel5eHu3fvqvXVdv2A539Q8/LyNNoL/7gUsre3R5MmTbBw4cIi66tevXqxtRee8XP9+nW4uLgU2afwO5CRkaHx2s2bN1XvhS4VN0a1a9cGAPzzzz84efIkYmJiMGzYMFWfixcvqk1TuXJlyGQy1R+wVy2jpEr7eSyvz72U72VmZiZq1Kihev7ib6K2v9n//oyVxJ49e3Dz5k3s27dPtbUGgMYp4yVdTmnHtKJguClnGRkZRf6Pr3BTYuEPb1BQEExMTHDp0iVVSHnZPIcMGYJ27dohISEBvXr1wqhRo9C8eXN4eHjA0tISAQEBSElJQZMmTdQ2R2sjICAAS5YsQWxsLCZOnKhq/+GHH9T6lXQ5dnZ26NOnD27cuIHJkyfj6tWraNiwYZF9O3fujDlz5mDPnj149913Ja3Hv9WrVw916tTByZMnsWjRohLP50Wv+h8tIG19C8f+5MmTapvoXxz71q1bw87ODqmpqZgwYYLkunU1rsDz3TBCCNUWnULffvstFAqFWltAQAB+/fVX3Lp1S/WDqVAoirzmk7u7O/7++2+1tj179uDhw4dqbe+99x7i4+NRq1YtVK5cWVLtgYGBMDY2xooVK+Dn51dkHz8/P1hYWOD7779H3759Ve3Xr1/Hnj17Xvo/3pKKjY1V+x1ISkrCtWvXMHr0aABQneX04pivWrVK7bmVlRV8fX2xdetWfPbZZ6rv6MOHDzXOgCqN0n4ey+tz/2+v+l7GxsbCx8dH9fynn35CQUEB3nnnHQDa/2bXrVsXtWrVQnR0NEJCQjTes0LFbRnW9r3Wdjkv0uWY6hPDTTkLCgpCzZo10a1bN9SvXx9KpRInTpzA559/Dmtra0yaNAnA8x/yefPmYdasWbh8+TI6deqEypUr49atWzh69CisrKwwd+5cKBQKDBw4EDKZDD/88AOMjY0RExODZs2aoX///jhw4ADMzMywfPlyvP3222jTpg3GjRsHd3d3PHjwABcvXsS2bduwZ8+eYmsODAxE27ZtMX36dDx69Ai+vr44ePAgvvvuO42+2i6nW7duaNy4MXx9fVGtWjVcu3YNkZGRcHNzQ506dYqtZfLkyYiLi0OPHj0wc+ZMtGzZEk+ePEFiYiLee+89BAQEaP1erFq1Cp07d0ZQUBCGDx+OGjVq4O7duzhz5gyOHz+OjRs3aj2vQl5eXvjxxx8RFxcHT09PmJubw8vLq1TrGx0dja5du2LBggVwdHREbGysxunZ1tbW+PLLLzFs2DDcvXsXffr0gYODA27fvo2TJ0/i9u3bWLFixUuXo6txtbGxQdu2bfHpp5/C3t4e7u7uSExMxJo1a2BnZ6fW9+OPP8avv/6Kd999F3PmzIGlpSW+/vrrIvfpDx06FLNnz8acOXPQrl07pKam4quvvoKtra1av3nz5iEhIQH+/v6YOHEi6tWrh6dPn+Lq1auIj4/HypUri91U7+7ujv/973+YP38+njx5goEDB8LW1hapqam4c+cO5s6dCzs7O8yePRv/+9//EBwcjIEDByI7Oxtz586Fubk5wsLCtB4rbR07dgyjR49G3759kZ6ejlmzZqFGjRoYP348AKB+/fqoVasWZs6cCSEEqlSpgm3btmnsIiscn65duyIoKAiTJk2CQqHAp59+Cmtra40tayWli89jeXzupXwvN2/eDBMTE3Ts2BGnT5/G7Nmz0bRpU/Tr1w+A9r/ZAPD111+jW7duaNWqFaZMmQJXV1ekpaVh586diI2NBQDVoQXLly/HsGHDYGpqinr16sHf3x+VK1fG2LFjERYWBlNTU8TGxuLkyZMa66fNcnT93lUYej6g+Y0TFxcnBg0aJOrUqSOsra2FqampcHV1FUOHDhWpqaka/bdu3SoCAgKEjY2NkMvlws3NTfTp00d1Ot6sWbOEkZGR2L17t9p0SUlJwsTEREyaNEnVduXKFTFy5EhRo0YNYWpqKqpVqyb8/f2LPePi3+7fvy9Gjhwp7OzshKWlpejYsaM4e/ZskWewaLOczz//XPj7+wt7e3thZmYmXF1dxahRo8TVq1dfWcu9e/fEpEmThKurqzA1NRUODg6ia9eu4uzZs6o+L9ZV1NlSQghx8uRJ0a9fP+Hg4CBMTU2Fk5OTePfdd8XKlStVfQrPJvjrr7/Upi1qnlevXhWBgYGiUqVKqtNHS7u+qampomPHjsLc3FxUqVJFjBo1Svzyyy9Frk9iYqLo2rWrqFKlijA1NRU1atQQXbt2FRs3bnzlcl41roVnS3366aca07443tevXxe9e/cWlStXFpUqVRKdOnUS//zzj8aZTUI8P/OnVatWQi6XCycnJ/HRRx+J1atXa5wpkpeXJ6ZPny5cXFyEhYWFaNeunThx4kSR87x9+7aYOHGi8PDwEKampqJKlSrCx8dHzJo1S+0swuKsX79etGjRQpibmwtra2vh7e2tdnkAIYT49ttvRZMmTYSZmZmwtbUVPXr00DgTa9iwYcLKykpj/u3atRONGjXSaHdzcxNdu3ZVPS/87O3atUsMHTpU2NnZqc7UunDhgtq0hZ+TSpUqicqVK4u+ffuKtLS0Ir+jW7ZsEV5eXqrP4uLFi8XEiRNF5cqV1foBEB988EGRdf57zIs6nViI0n0ey+Nzr833svBsqeTkZNGtWzdhbW0tKlWqJAYOHChu3bqlMc9X/WYXOnTokOjcubOwtbUVcrlc1KpVS+OMrNDQUFG9enVhZGSktt5JSUnCz89PWFpaimrVqonRo0eL48ePa1zGQpvllMV7VxHIhBCinPMUEdFLxcTEYMSIEbhy5YrqQohvosJx+Ouvv1564HlpPXv2DM2aNUONGjWwa9euMlvO6yg8PBxz587F7du3y+R4Kiob3C1FRPSGGTVqFDp27AhnZ2dkZmZi5cqVOHPmjFZXzCZ6HTDcEBG9YR48eIBp06bh9u3bMDU1RfPmzREfH1/q60cRVRTcLUVEREQGhVcoJiIiIoPCcENEREQGheGGiIiIDMobd0CxUqnEzZs3UalSJdWVHomIiKhiE0LgwYMHqF69usb9FV/0xoWbmzdvFnvPGCIiIqrY0tPTX3lD0Dcu3FSqVAnA88GxsbHRczVERESkjdzcXLi4uKj+jr/MGxduCndF2djYMNwQERG9ZrQ5pIQHFBMREZFBYbghIiIig8JwQ0RERAbljTvmhoiICAAUCgWePXum7zLoX8zMzF55mrc2GG6IiOiNIoRAZmYm7t+/r+9S6AVGRkbw8PCAmZlZqebDcENERG+UwmDj4OAAS0tLXtC1gii8yG5GRgZcXV1L9b4w3BAR0RtDoVCogk3VqlX1XQ69oFq1arh58yYKCgpgampa4vnwgGIiInpjFB5jY2lpqedKqCiFu6MUCkWp5sNwQ0REbxzuiqqYdPW+MNwQERGRQWG4ISIiIoPCA4qJiIgAuM/8rdyWdXVxV8nTDB8+HPfv38fWrVvV2vft24eAgADcu3cPdnZ2uinwNcctN0RERGRQGG6IiIgMyKZNm9CoUSPI5XK4u7vj888/V3vd3d0dCxYsQHBwMKytreHm5oZffvkFt2/fRo8ePWBtbQ0vLy8cO3ZMNU1MTAzs7Oywfft21KtXD5aWlujTpw8ePXqEdevWwd3dHZUrV8aHH36odqZTfn4+pk+fjho1asDKygpvvfUW9u3bV+ZjwHBDRERkIJKTk9GvXz8MGDAAp06dQnh4OGbPno2YmBi1fsuWLUPr1q2RkpKCrl27YujQoQgODsaQIUNw/Phx1K5dG8HBwRBCqKZ5/PgxvvjiC/z444/YsWMH9u3bh169eiE+Ph7x8fH47rvvsHr1avz888+qaUaMGIGDBw/ixx9/xN9//42+ffuiU6dOuHDhQpmOA4+5ISJ63YTb6ruC10d4jr4r0Knt27fD2tpare3fW0qWLl2K9u3bY/bs2QCAunXrIjU1FZ9++imGDx+u6telSxeMGTMGADBnzhysWLECLVq0QN++fQEAM2bMgJ+fH27dugUnJycAz68RtGLFCtSqVQsA0KdPH3z33Xe4desWrK2t0bBhQwQEBGDv3r3o378/Ll26hA0bNuD69euoXr06AGDatGnYsWMH1q5di0WLFpXNIIHhhoiI6LUREBCAFStWqLUdOXIEQ4YMAQCcOXMGPXr0UHu9devWiIyMhEKhgLGxMQCgSZMmqtcdHR0BAF5eXhptWVlZqnBjaWmpCjaFfdzd3dXClqOjI7KysgAAx48fhxACdevWVasnLy+vzK8OzXBDRET0mrCyskLt2rXV2q5fv676txBC40J4/961VOjftzYo7F9Um1KpLHKawj5FtRVOo1QqYWxsjOTkZFWoKvTi1iddY7ghIiIyEA0bNsSBAwfU2pKSklC3bl2NgFHWvL29oVAokJWVhTZt2pTrshluiIiIDMTUqVPRokULzJ8/H/3798ehQ4fw1VdfISoqqtxrqVu3LgYPHozg4GB8/vnn8Pb2xp07d7Bnzx54eXmhS5cuZbZsvZ8tFRUVBQ8PD5ibm8PHxwf79+9/af/Y2Fg0bdoUlpaWcHZ2xogRI5CdnV1O1RIREVVczZs3x08//YQff/wRjRs3xpw5czBv3jy1g4nL09q1axEcHIypU6eiXr166N69O44cOQIXF5cyXa5MFLUzrpzExcVh6NChiIqKQuvWrbFq1Sp8++23SE1Nhaurq0b/AwcOoF27dli2bBm6deuGGzduYOzYsahTpw62bNmi1TJzc3Nha2uLnJwc2NjY6HqViIjKHs+W0t4LZ0s9ffoUV65cUf2nmiqWl70/Uv5+63XLzdKlSzFq1CiMHj0aDRo0QGRkJFxcXDSOBC90+PBhuLu7Y+LEifDw8MDbb7+NMWPGqF1oiIiIiN5segs3+fn5SE5ORmBgoFp7YGAgkpKSipzG398f169fR3x8PIQQuHXrFn7++Wd07Vr8PTry8vKQm5ur9iAiIiLDpbcDiu/cuQOFQqE6l76Qo6MjMjMzi5zG398fsbGx6N+/P54+fYqCggJ0794dX375ZbHLiYiIwNy5c3VaOxH9f9w9oj0Du5gcUUWm9wOKizof/8W2QqmpqZg4cSLmzJmD5ORk7NixA1euXMHYsWOLnX9oaChycnJUj/T0dJ3WT0RERBWL3rbc2Nvbw9jYWGMrTVZWlsbWnEIRERFo3bo1PvroIwDPr7BoZWWFNm3aYMGCBXB2dtaYRi6XQy6X634FiIiIqELS25YbMzMz+Pj4ICEhQa09ISEB/v7+RU7z+PFjGBmpl1x4USI9nvRFREREFYhed0uFhITg22+/RXR0NM6cOYMpU6YgLS1NtZspNDQUwcHBqv7dunXD5s2bsWLFCly+fBkHDx7ExIkT0bJlS9VNuYiIiOjNptcrFPfv3x/Z2dmYN28eMjIy0LhxY8THx8PNzQ0AkJGRgbS0NFX/4cOH48GDB/jqq68wdepU2NnZ4d1338Unn3yir1UgIiKiCkavF/HTB17Ej0iHeLaU9nR5thTHXXu8iN9rxSAu4kdERESka7xxJhEREVC+W8RKsCVv+PDhWLdunUb7hQsXULt2bV1UZTAYboiIiF4TnTp1wtq1a9XaqlWrpqdqKi7uliIiInpNyOVyODk5qT2MjY2xbds2+Pj4wNzcHJ6enpg7dy4KCgpU08lkMqxatQrvvfceLC0t0aBBAxw6dAgXL17EO++8AysrK/j5+eHSpUuqacLDw9GsWTNER0fD1dUV1tbWGDduHBQKBZYsWQInJyc4ODhg4cKFajXm5OTgv//9LxwcHGBjY4N3330XJ0+eLLcxAhhuiIiIXms7d+7EkCFDMHHiRKSmpmLVqlWIiYnRCB3z589HcHAwTpw4gfr162PQoEEYM2YMQkNDVTegnjBhgto0ly5dwu+//44dO3Zgw4YNiI6ORteuXXH9+nUkJibik08+wccff4zDhw8DeH7Nua5duyIzMxPx8fFITk5G8+bN0b59e9y9e7d8BgTcLUVERPTa2L59O6ytrVXPO3fujFu3bmHmzJkYNmwYAMDT0xPz58/H9OnTERYWpuo7YsQI9OvXDwAwY8YM+Pn5Yfbs2QgKCgIATJo0CSNGjFBbnlKpRHR0NCpVqoSGDRsiICAA586dQ3x8PIyMjFCvXj188skn2LdvH1q1aoW9e/fi1KlTyMrKUt0d4LPPPsPWrVvx888/47///W+Zjk8hhhsiIqLXREBAAFasWKF6bmVlhdq1a+Ovv/5S21KjUCjw9OlTPH78GJaWlgCe37KoUOFtjry8vNTanj59itzcXNWp1u7u7qhUqZJaH2NjY7W7BTg6OiIrKwsAkJycjIcPH6Jq1apqdT958kRtl1dZY7ghIiJ6TRSGmX9TKpWYO3cuevXqpdH/39eKMTU1Vf278AbVRbUplcoipynsU1Rb4TRKpRLOzs7Yt2+fRi12dnYvWzWdYrghIiJ6jTVv3hznzp2rEKeDN2/eHJmZmTAxMYG7u7ve6mC4ISIieo3NmTMH7733HlxcXNC3b18YGRnh77//xqlTp7BgwYJyraVDhw7w8/PD+++/j08++QT16tXDzZs3ER8fj/fffx++vr7lUgfPliIiInqNBQUFYfv27UhISECLFi3QqlUrLF26VHWfxvIkk8kQHx+Ptm3bYuTIkahbty4GDBiAq1evqo7zKZc6eG8pIiox3uNIe7y3lH7w3lKvFd5bioiIiKgIDDdERERkUBhuiIiIyKAw3BAREZFBYbghIqI3zht2Ls1rQ1fvC8MNERG9MQqvrvv48WM9V0JFyc/PBwAYGxuXaj68iB8REb0xjI2NYWdnp7oXkqWlpeq2A6RfSqUSt2/fhqWlJUxMShdPGG6IiOiN4uTkBACqgEMVh5GREVxdXUsdOBluiIjojSKTyeDs7AwHBwc8e/ZM3+XQv5iZmandcbykGG6IiOiNZGxsXOpjO6hi4gHFREREZFAYboiIiMigMNwQERGRQWG4ISIiIoPCcENEREQGheGGiIiIDArDDRERERkUhhsiIiIyKAw3REREZFD0Hm6ioqLg4eEBc3Nz+Pj4YP/+/cX2HT58OGQymcajUaNG5VgxERERVWR6DTdxcXGYPHkyZs2ahZSUFLRp0wadO3dGWlpakf2XL1+OjIwM1SM9PR1VqlRB3759y7lyIiIiqqj0Gm6WLl2KUaNGYfTo0WjQoAEiIyPh4uKCFStWFNnf1tYWTk5OqsexY8dw7949jBgxopwrJyIioopKb+EmPz8fycnJCAwMVGsPDAxEUlKSVvNYs2YNOnToADc3t7IokYiIiF5Dersr+J07d6BQKODo6KjW7ujoiMzMzFdOn5GRgd9//x0//PDDS/vl5eUhLy9P9Tw3N7dkBRMREdFrQe8HFMtkMrXnQgiNtqLExMTAzs4O77///kv7RUREwNbWVvVwcXEpTblERERUwekt3Njb28PY2FhjK01WVpbG1pwXCSEQHR2NoUOHwszM7KV9Q0NDkZOTo3qkp6eXunYiIiKquPQWbszMzODj44OEhAS19oSEBPj7+7902sTERFy8eBGjRo165XLkcjlsbGzUHkRERGS49HbMDQCEhIRg6NCh8PX1hZ+fH1avXo20tDSMHTsWwPOtLjdu3MD69evVpluzZg3eeustNG7cWB9lExERUQWm13DTv39/ZGdnY968ecjIyEDjxo0RHx+vOvspIyND45o3OTk52LRpE5YvX66PkomIiKiCkwkhhL6LKE+5ubmwtbVFTk4Od1ERlVa4rb4reH2E5+hwXhx3rely3EmvpPz91vvZUkRERES6xHBDREREBoXhhoiIiAwKww0REREZlBKFm/3792PIkCHw8/PDjRs3AADfffcdDhw4oNPiiIiIiKSSHG42bdqEoKAgWFhYICUlRXXfpgcPHmDRokU6L5CIiIhICsnhZsGCBVi5ciW++eYbmJqaqtr9/f1x/PhxnRZHREREJJXkcHPu3Dm0bdtWo93Gxgb379/XRU1EREREJSY53Dg7O+PixYsa7QcOHICnp6dOiiIiIiIqKcnhZsyYMZg0aRKOHDkCmUyGmzdvIjY2FtOmTcP48ePLokYiIiIirUm+t9T06dORk5ODgIAAPH36FG3btoVcLse0adMwYcKEsqiRiIiISGslunHmwoULMWvWLKSmpkKpVKJhw4awtrbWdW1EREREkkneLbVmzRoAgKWlJXx9fdGyZUtYW1ujoKAAoaGhOi+QiIiISArJ4Wbq1Kno3bs37t69q2o7e/YsWrZsiZ9++kmnxRERERFJJTncpKSk4NatW/Dy8kJCQgK+/vprNG/eHI0bN8aJEyfKoEQiIiIi7Uk+5sbDwwN//vknpkyZgk6dOsHY2Bjr16/HgAEDyqI+IiIiIklKdEDx9u3bsWHDBvj7++PcuXP45ptv0LZtW1SvXl3X9REREVUM4bb6ruD1EZ6j18WX6Do3/fr1w/Tp0/Hnn3/i77//hlwuh5eXF4+5ISIiIr2TvOXm4MGDOHLkCJo2bQoAcHJyQnx8PL7++muMHDkS/fr103mRRERERNqSHG6Sk5Mhl8s12j/44AN06NBBJ0URERERlZTk3VJyuRyXLl3Cxx9/jIEDByIrKwsAsGPHDhQUFOi8QCIiIiIpJIebxMREeHl54ciRI9i8eTMePnwIAPj7778RFham8wKJiIiIpJAcbmbOnIkFCxYgISEBZmZmqvaAgAAcOnRIp8URERERSSU53Jw6dQo9e/bUaK9WrRqys7N1UhQRERFRSUkON3Z2dsjIyNBoT0lJQY0aNXRSFBEREVFJSQ43gwYNwowZM5CZmQmZTAalUomDBw9i2rRpCA4OLosaiYiIiLQmOdwsXLgQrq6uqFGjBh4+fIiGDRuibdu28Pf3x8cff1wWNRIRERFpTfJ1bkxNTREbG4v58+fj+PHjUCqV8Pb2Rp06dcqiPiIiIiJJSnRvKQDw9PSEp6cnFAoFTp06hXv37qFy5cq6rI2IiIhIMsm7pSZPnow1a9YAABQKBdq1a4fmzZvDxcUF+/bt03V9RERERJJIDjc///yz6r5S27Ztw+XLl3H27FlMnjwZs2bN0nmBRERERFJIDjd37tyBk5MTACA+Ph79+vVD3bp1MWrUKJw6dUrnBRIRERFJITncODo6IjU1FQqFAjt27FDdLPPx48cwNjaWXEBUVBQ8PDxgbm4OHx8f7N+//6X98/LyMGvWLLi5uUEul6NWrVqIjo6WvFwiIiIyTJIPKB4xYgT69esHZ2dnyGQydOzYEQBw5MgR1K9fX9K84uLiMHnyZERFRaF169ZYtWoVOnfujNTUVLi6uhY5Tb9+/XDr1i2sWbMGtWvXRlZWFm/YSURERCqSw014eDgaN26M9PR09O3bF3K5HABgbGyMmTNnSprX0qVLMWrUKIwePRoAEBkZiZ07d2LFihWIiIjQ6L9jxw4kJibi8uXLqFKlCgDA3d1d6ioQERGRASvRqeB9+vTRaBs2bJikeeTn5yM5OVkjEAUGBiIpKanIaX799Vf4+vpiyZIl+O6772BlZYXu3btj/vz5sLCwkLR8IiIiMkwlvs5Nad25cwcKhQKOjo5q7Y6OjsjMzCxymsuXL+PAgQMwNzfHli1bcOfOHYwfPx53794t9ribvLw85OXlqZ7n5ubqbiWIiIiowpF8QLGuyWQytedCCI22QkqlEjKZDLGxsWjZsiW6dOmCpUuXIiYmBk+ePClymoiICNja2qoeLi4uOl8HIiIiqjj0Fm7s7e1hbGyssZUmKytLY2tOIWdnZ9SoUQO2traqtgYNGkAIgevXrxc5TWhoKHJyclSP9PR03a0EERERVTh6CzdmZmbw8fFBQkKCWntCQgL8/f2LnKZ169a4efMmHj58qGo7f/48jIyMULNmzSKnkcvlsLGxUXsQERGR4SpRuLl06RI+/vhjDBw4EFlZWQCen8l0+vRpSfMJCQnBt99+i+joaJw5cwZTpkxBWloaxo4dC+D5Vpfg4GBV/0GDBqFq1aoYMWIEUlNT8eeff+Kjjz7CyJEjeUAxERERAShBuElMTISXlxeOHDmCzZs3q7ai/P333wgLC5M0r/79+yMyMhLz5s1Ds2bN8OeffyI+Ph5ubm4AgIyMDKSlpan6W1tbIyEhAffv34evry8GDx6Mbt264YsvvpC6GkRERGSgZEIIIWUCPz8/9O3bFyEhIahUqRJOnjwJT09P/PXXX3j//fdx48aNsqpVJ3Jzc2Fra4ucnBzuoiIqrXDbV/eh58JzdDgvjrvWOO76octx//+k/P2WvOXm1KlT6Nmzp0Z7tWrVkJ2dLXV2RERERDolOdzY2dkhIyNDoz0lJQU1atTQSVFEREREJSU53AwaNAgzZsxAZmYmZDIZlEolDh48iGnTpqkd/EtERESkD5LDzcKFC+Hq6ooaNWrg4cOHaNiwIdq2bQt/f398/PHHZVEjERERkdYk337B1NQUsbGxmDdvHlJSUqBUKuHt7Y06deqURX1EREREkpT43lK1atVCrVq1dFkLERERUalJDjcjR4586evF3cCSiIiIqDxIDjf37t1Te/7s2TP8888/uH//Pt59912dFUZERERUEpLDzZYtWzTalEolxo8fD09PT50URURERFRSOrlxppGREaZMmYJly5bpYnZEREREJaazu4JfunQJBQUFupodERERUYlI3i0VEhKi9lwIgYyMDPz2228YNmyYzgojIiIiKgnJ4SYlJUXtuZGREapVq4bPP//8lWdSEREREZU1yeFm7969ZVEHERERkU7o7JgbIiIioopA8pYbb29vyGQyrfoeP35cckFEREREpSE53HTq1AlRUVFo2LAh/Pz8AACHDx/G6dOnMW7cOFhYWOi8SCIiIiJtSQ43t2/fxsSJEzF//ny19rCwMKSnp/P2C0RERKRXko+52bhxI4KDgzXahwwZgk2bNumkKCIiIqKSkhxuLCwscODAAY32AwcOwNzcXCdFEREREZWU5N1SkydPxrhx45CcnIxWrVoBeH7MTXR0NObMmaPzAomIiIikkBxuZs6cCU9PTyxfvhw//PADAKBBgwaIiYlBv379dF4gERERkRSSww0A9OvXj0GGiIiIKiRexI+IiIgMiuQtNwqFAsuWLcNPP/2EtLQ05Ofnq71+9+5dnRVHREREJJXkLTdz587F0qVL0a9fP+Tk5CAkJAS9evWCkZERwsPDy6BEIiIiIu1J3nITGxuLb775Bl27dsXcuXMxcOBA1KpVC02aNMHhw4cxceLEsqjz9RFuq+8KXh/hOfqugIiIDJDkLTeZmZnw8vICAFhbWyMn5/kfqPfeew+//fabbqsjIiIikkhyuKlZsyYyMjIAALVr18auXbsAAH/99RfkcrluqyMiIiKSSHK46dmzJ3bv3g0AmDRpEmbPno06deogODgYI0eO1HmBRERERFJIPuZm8eLFqn/36dMHNWvWRFJSEmrXro3u3bvrtDgiIiIiqUp0Eb9/a9Wqleo2DERERET6VqJwc/78eezbtw9ZWVlQKpVqr0m9v1RUVBQ+/fRTZGRkoFGjRoiMjESbNm2K7Ltv3z4EBARotJ85cwb169eXtFwiIiIyTJLDzTfffINx48bB3t4eTk5OkMlkqtdkMpmkcBMXF4fJkycjKioKrVu3xqpVq9C5c2ekpqbC1dW12OnOnTsHGxsb1fNq1apJXQ0iIiIyUJLDzYIFC7Bw4ULMmDGj1AtfunQpRo0ahdGjRwMAIiMjsXPnTqxYsQIRERHFTufg4AA7O7tSL5+IiIgMj+Szpe7du4e+ffuWesH5+flITk5GYGCgWntgYCCSkpJeOq23tzecnZ3Rvn177N2796V98/LykJubq/YgIiIiwyU53PTt21d1bZvSuHPnDhQKBRwdHdXaHR0dkZmZWeQ0zs7OWL16NTZt2oTNmzejXr16aN++Pf78889ilxMREQFbW1vVw8XFpdS1ExERUcWl1W6pL774QvXv2rVrY/bs2Th8+DC8vLxgamqq1lfq7Rf+fcwOAAghNNoK1atXD/Xq1VM99/PzQ3p6Oj777DO0bdu2yGlCQ0MREhKiep6bm8uAQ0REZMC0CjfLli1Te25tbY3ExEQkJiaqtctkMq3Djb29PYyNjTW20mRlZWlszXmZVq1a4fvvvy/2dblczisnExERvUG0CjdXrlzR+YLNzMzg4+ODhIQE9OzZU9WekJCAHj16aD2flJQUODs767w+es3whqXa4w1LicjAlfoifqUREhKCoUOHwtfXF35+fli9ejXS0tIwduxYAM93Kd24cQPr168H8PxsKnd3dzRq1Aj5+fn4/vvvsWnTJmzatEmfq0FEREQViORw06dPH/j6+mLmzJlq7Z9++imOHj2KjRs3aj2v/v37Izs7G/PmzUNGRgYaN26M+Ph4uLm5AQAyMjKQlpam6p+fn49p06bhxo0bsLCwQKNGjfDbb7+hS5cuUleDiIiIDJRMCCGkTFCtWjXs2bMHXl5eau2nTp1Chw4dcOvWLZ0WqGu5ubmwtbVFTk6O2oUAdYa7R7Sny90jHHftcdz1g+OuHxx3/SiD3d9S/n5LPhX84cOHMDMz02g3NTXlNWSIiIhI7ySHm8aNGyMuLk6j/ccff0TDhg11UhQRERFRSUk+5mb27Nno3bs3Ll26hHfffRcAsHv3bmzYsEHS8TZEREREZUFyuOnevTu2bt2KRYsW4eeff4aFhQWaNGmCP/74A+3atSuLGomIiIi0VqJTwbt27YquXbvquhYiIiKiUpN8zA0RERFRRcZwQ0RERAaF4YaIiIgMCsMNERERGZQSh5v8/HycO3cOBQUFuqyHiIiIqFQkh5vHjx9j1KhRsLS0RKNGjVT3fpo4cSIWL16s8wKJiIiIpJAcbkJDQ3Hy5Ens27cP5ubmqvYOHToUeeViIiIiovIk+To3W7duRVxcHFq1agWZTKZqb9iwIS5duqTT4oiIiIikkrzl5vbt23BwcNBof/TokVrYISIiItIHyeGmRYsW+O2331TPCwPNN998Az8/P91VRkRERFQCkndLRUREoFOnTkhNTUVBQQGWL1+O06dP49ChQ0hMTCyLGomIiIi0JnnLjb+/Pw4ePIjHjx+jVq1a2LVrFxwdHXHo0CH4+PiURY1EREREWivRjTO9vLywbt06XddCREREVGpahZvc3FytZ2hjY1PiYoiIiIhKS6twY2dnp/WZUAqFolQFEREREZWGVuFm7969qn9fvXoVM2fOxPDhw1VnRx06dAjr1q1DRERE2VRJREREpCWtwk27du1U/543bx6WLl2KgQMHqtq6d+8OLy8vrF69GsOGDdN9lURERERakny21KFDh+Dr66vR7uvri6NHj+qkKCIiIqKSkhxuXFxcsHLlSo32VatWwcXFRSdFEREREZWU5FPBly1bht69e2Pnzp1o1aoVAODw4cO4dOkSNm3apPMCiYiIiKSQvOWmS5cuuHDhAnr06IG7d+8iOzsbPXr0wPnz59GlS5eyqJGIiIhIayW6iF/NmjWxcOFCXddCREREVGqSt9wQERERVWQMN0RERGRQGG6IiIjIoDDcEBERkUGRHG6ePHmCx48fq55fu3YNkZGR2LVrl04LIyIiIioJyeGmR48eWL9+PQDg/v37eOutt/D555+jR48eWLFiheQCoqKi4OHhAXNzc/j4+GD//v1aTXfw4EGYmJigWbNmkpdJREREhktyuDl+/DjatGkDAPj555/h6OiIa9euYf369fjiiy8kzSsuLg6TJ0/GrFmzkJKSgjZt2qBz585IS0t76XQ5OTkIDg5G+/btpZZPREREBk5yuHn8+DEqVaoEANi1axd69eoFIyMjtGrVCteuXZM0r6VLl2LUqFEYPXo0GjRogMjISLi4uLxyC9CYMWMwaNAg1V3JiYiIiApJDje1a9fG1q1bkZ6ejp07dyIwMBAAkJWVBRsb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3JiZmcHHxwcJCQlq7QkJCfD399dTVURERPS609uWGwAICQnB0KFD4evrCz8/P6xevRppaWkYO3YsgOe7lG7cuIH169erpjlx4gQA4OHDh7h9+zZOnDgBMzMzNGzYUB+rQERERBWMXsNN//79kZ2djXnz5iEjIwONGzdGfHw83NzcADy/aN+L17zx9vZW/Ts5ORk//PAD3NzccPXq1fIsnYiIiCoovYYbABg/fjzGjx9f5GsxMTEabUKIMq6IiIiIXmd6P1uKiIiISJcYboiIiMigMNwQERGRQWG4ISIiIoPCcENEREQGheGGiIiIDArDDRERERkUhhsiIiIyKAw3REREZFAYboiIiMigMNwQERGRQWG4ISIiIoPCcENEREQGheGGiIiIDArDDRERERkUhhsiIiIyKAw3REREZFAYboiIiMigMNwQERGRQWG4ISIiIoPCcENEREQGheGGiIiIDArDDRERERkUhhsiIiIyKAw3REREZFAYboiIiMigMNwQERGRQWG4ISIiIoPCcENEREQGheGGiIiIDArDDRERERkUvYebqKgoeHh4wNzcHD4+Pti/f/9L+ycmJsLHxwfm5ubw9PTEypUry6lSIiIieh3oNdzExcVh8uTJmDVrFlJSUtCmTRt07twZaWlpRfa/cuUKunTpgjZt2iAlJQX/+9//MHHiRGzatKmcKyciIqKKSq/hZunSpRg1ahRGjx6NBg0aIDIyEi4uLlixYkWR/VeuXAlXV1dERkaiQYMGGD16NEaOHInPPvusnCsnIiKiikpv4SY/Px/JyckIDAxUaw8MDERSUlKR0xw6dEijf1BQEI4dO4Znz56VWa1ERET0+jDR14Lv3LkDhUIBR0dHtXZHR0dkZmYWOU1mZmaR/QsKCnDnzh04OztrTJOXl4e8vDzV85ycHABAbm5uaVehSMq8x2UyX0Oky/eA4649jrt+cNz1g+OuH2XxN7ZwnkKIV/bVW7gpJJPJ1J4LITTaXtW/qPZCERERmDt3rka7i4uL1FJJx2wj9V3Bm4njrh8cd/3guOtHWY77gwcPYGtr+9I+egs39vb2MDY21thKk5WVpbF1ppCTk1OR/U1MTFC1atUipwkNDUVISIjquVKpxN27d1G1atWXhihDkpubCxcXF6Snp8PGxkbf5bwROOb6wXHXD467frxp4y6EwIMHD1C9evVX9tVbuDEzM4OPjw8SEhLQs2dPVXtCQgJ69OhR5DR+fn7Ytm2bWtuuXbvg6+sLU1PTIqeRy+WQy+VqbXZ2dqUr/jVlY2PzRnwBKhKOuX5w3PWD464fb9K4v2qLTSG9ni0VEhKCb7/9FtHR0Thz5gymTJmCtLQ0jB07FsDzrS7BwcGq/mPHjsW1a9cQEhKCM2fOIDo6GmvWrMG0adP0tQpERERUwej1mJv+/fsjOzsb8+bNQ0ZGBho3boz4+Hi4ubkBADIyMtSueePh4YH4+HhMmTIFX3/9NapXr44vvvgCvXv31tcqEBERUQWj9wOKx48fj/Hjxxf5WkxMjEZbu3btcPz48TKuyrDI5XKEhYVp7J6jssMx1w+Ou35w3PWD4148mdDmnCoiIiKi14Te7y1FREREpEsMN0RERGRQGG6IiIjIoDDcEBERkUFhuDEQf/75J7p164bq1atDJpNh69ataq8LIRAeHo7q1avDwsIC77zzDk6fPq2fYg3Iq8Z98+bNCAoKgr29PWQyGU6cOKGXOg3Ny8b92bNnmDFjBry8vGBlZYXq1asjODgYN2/e1F/BBuJVn/fw8HDUr18fVlZWqFy5Mjp06IAjR47op1gD8qpx/7cxY8ZAJpMhMjKy3OqriBhuDMSjR4/QtGlTfPXVV0W+vmTJEixduhRfffUV/vrrLzg5OaFjx4548OBBOVdqWF417o8ePULr1q2xePHicq7MsL1s3B8/fozjx49j9uzZOH78ODZv3ozz58+je/fueqjUsLzq8163bl189dVXOHXqFA4cOAB3d3cEBgbi9u3b5VypYXnVuBfaunUrjhw5otXtCQyeIIMDQGzZskX1XKlUCicnJ7F48WJV29OnT4Wtra1YuXKlHio0TC+O+79duXJFABApKSnlWtOb4GXjXujo0aMCgLh27Vr5FPUG0Gbcc3JyBADxxx9/lE9Rb4Dixv369euiRo0a4p9//hFubm5i2bJl5V5bRcItN2+AK1euIDMzE4GBgao2uVyOdu3aISkpSY+VEZWPnJwcyGSyN/a+cvqQn5+P1atXw9bWFk2bNtV3OQZNqVRi6NCh+Oijj9CoUSN9l1Mh6P0KxVT2Cu+k/uLd1h0dHXHt2jV9lERUbp4+fYqZM2di0KBBb8zNBfVp+/btGDBgAB4/fgxnZ2ckJCTA3t5e32UZtE8++QQmJiaYOHGivkupMLjl5g0ik8nUngshNNqIDMmzZ88wYMAAKJVKREVF6bucN0JAQABOnDiBpKQkdOrUCf369UNWVpa+yzJYycnJWL58OWJiYvh7/i8MN28AJycnAP+3BadQVlaWxtYcIkPx7Nkz9OvXD1euXEFCQgK32pQTKysr1K5dG61atcKaNWtgYmKCNWvW6Lssg7V//35kZWXB1dUVJiYmMDExwbVr1zB16lS4u7vruzy9Ybh5A3h4eMDJyQkJCQmqtvz8fCQmJsLf31+PlRGVjcJgc+HCBfzxxx+oWrWqvkt6YwkhkJeXp+8yDNbQoUPx999/48SJE6pH9erV8dFHH2Hnzp36Lk9veMyNgXj48CEuXryoen7lyhWcOHECVapUgaurKyZPnoxFixahTp06qFOnDhYtWgRLS0sMGjRIj1W//l417nfv3kVaWprqGivnzp0D8HxrWuEWNZLuZeNevXp19OnTB8ePH8f27duhUChUWy2rVKkCMzMzfZX92nvZuFetWhULFy5E9+7d4ezsjOzsbERFReH69evo27evHqt+/b3qd+bF8G5qagonJyfUq1evvEutOPR9uhbpxt69ewUAjcewYcOEEM9PBw8LCxNOTk5CLpeLtm3bilOnTum3aAPwqnFfu3Ztka+HhYXpte7X3cvGvfC0+6Iee/fu1Xfpr7WXjfuTJ09Ez549RfXq1YWZmZlwdnYW3bt3F0ePHtV32a+9V/3OvIinggshE0KIso1PREREROWHx9wQERGRQWG4ISIiIoPCcENEREQGheGGiIiIDArDDRERERkUhhsiIiIyKAw3REREZFAYboiIiMigMNwQUZnIzMzEhx9+CE9PT8jlcri4uKBbt27YvXu3vksjIgPHe0sRkc5dvXoVrVu3hp2dHZYsWYImTZrg2bNn2LlzJz744AOcPXtW3yUSkQHjlhsi0rnx48dDJpPh6NGj6NOnD+rWrYtGjRohJCQEhw8fBgCkpaWhR48esLa2ho2NDfr164dbt26p5hEeHo5mzZohOjoarq6usLa2xrhx46BQKLBkyRI4OTnBwcEBCxcuVFu2TCbDihUr0LlzZ1hYWMDDwwMbN25U6zNjxgzUrVsXlpaW8PT0xOzZs/Hs2TONZX/33Xdwd3eHra0tBgwYgAcPHgAA1q9fj6pVq2rc7bp3794IDg7W6VgSkXQMN0SkU3fv3sWOHTvwwQcfwMrKSuN1Ozs7CCHw/vvv4+7du0hMTERCQgIuXbqE/v37q/W9dOkSfv/9d+zYsQMbNmxAdHQ0unbtiuvXryMxMRGffPIJPv74Y1VgKjR79mz07t0bJ0+exJAhQzBw4ECcOXNG9XqlSpUQExOD1NRULF++HN988w2WLVumseytW7di+/bt2L59OxITE7F48WIAQN++faFQKPDrr7+q+t+5cwfbt2/HiBEjSj2GRFRKer5xJxEZmCNHjggAYvPmzcX22bVrlzA2NhZpaWmqttOnTwsAqrtIh4WFCUtLS5Gbm6vqExQUJNzd3YVCoVC11atXT0RERKieAxBjx45VW95bb70lxo0bV2w9S5YsET4+PqrnRS37o48+Em+99Zbq+bhx40Tnzp1VzyMjI4Wnp6dQKpXFLoeIygePuSEinRJCAHi+e6g4Z86cgYuLC1xcXFRtDRs2hJ2dHc6cOYMWLVoAANzd3VGpUiVVH0dHRxgbG8PIyEitLSsrS23+fn5+Gs9PnDihev7zzz8jMjISFy9exMOHD1FQUAAbGxu1aV5ctrOzs9py/vOf/6BFixa4ceMGatSogbVr12L48OEvXW8iKh/cLUVEOlWnTh3IZDK13UAvEkIUGQJebDc1NVV7XSaTFdmmVCpfWVfhfA8fPowBAwagc+fO2L59O1JSUjBr1izk5+er9X/Vcry9vdG0aVOsX78ex48fx6lTpzB8+PBX1kFEZY/hhoh0qkqVKggKCsLXX3+NR48eabx+//59NGzYEGlpaUhPT1e1p6amIicnBw0aNCh1DS8eg3P48GHUr18fAHDw4EG4ublh1qxZ8PX1RZ06dXDt2rUSLWf06NFYu3YtoqOj0aFDB7UtUUSkPww3RKRzUVFRUCgUaNmyJTZt2oQLFy7gzJkz+OKLL+Dn54cOHTqgSZMmGDx4MI4fP46jR48iODgY7dq1g6+vb6mXv3HjRkRHR+P8+fMICwvD0aNHMWHCBABA7dq1kZaWhh9//BGXLl3CF198gS1btpRoOYMHD8aNGzfwzTffYOTIkaWum4h0g+GGiHTOw8MDx48fR0BAAKZOnYrGjRujY8eO2L17N1asWAGZTIatW7eicuXKaNu2LTp06ABPT0/ExcXpZPlz587Fjz/+iCZNmmDdunWIjY1Fw4YNAQA9evTAlClTMGHCBDRr1gxJSUmYPXt2iZZjY2OD3r17w9raGu+//75Oaiei0pOJwqP/iIgMgEwmw5YtW8otbHTs2BENGjTAF198US7LI6JX49lSREQlcPfuXezatQt79uzBV199pe9yiOhfGG6IiEqgefPmuHfvHj755BPUq1dP3+UQ0b9wtxQREREZFB5QTERERAaF4YaIiIgMCsMNERERGRSGGyIiIjIoDDdERERkUBhuiIiIyKAw3BAREZFBYbghIiIig8JwQ0RERAbl/wGOyLwlO/mwSwAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Création du barplot\n",
|
||
"plt.bar(company_genders[\"number_compagny\"], company_genders[\"gender_male\"], label = \"Homme\")\n",
|
||
"plt.bar(company_genders[\"number_compagny\"], company_genders[\"gender_female\"], \n",
|
||
" bottom = company_genders[\"gender_male\"], label = \"Femme\")\n",
|
||
"\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 spectacle\")\n",
|
||
"plt.legend()\n",
|
||
"\n",
|
||
"# Affichage du barplot\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 82,
|
||
"id": "c7348c95-e506-4002-90d9-d3b6768af985",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_company</th>\n",
|
||
" <th>y_has_purchased</th>\n",
|
||
" <th>gender_male</th>\n",
|
||
" <th>gender_female</th>\n",
|
||
" <th>gender_other</th>\n",
|
||
" <th>share_of_women</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.171838</td>\n",
|
||
" <td>0.333929</td>\n",
|
||
" <td>0.494232</td>\n",
|
||
" <td>66.024263</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.312165</td>\n",
|
||
" <td>0.683363</td>\n",
|
||
" <td>0.004472</td>\n",
|
||
" <td>68.643306</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.151162</td>\n",
|
||
" <td>0.273204</td>\n",
|
||
" <td>0.575635</td>\n",
|
||
" <td>64.379376</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.328477</td>\n",
|
||
" <td>0.597641</td>\n",
|
||
" <td>0.073881</td>\n",
|
||
" <td>64.531835</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.334546</td>\n",
|
||
" <td>0.433672</td>\n",
|
||
" <td>0.231782</td>\n",
|
||
" <td>56.451654</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.366020</td>\n",
|
||
" <td>0.506659</td>\n",
|
||
" <td>0.127321</td>\n",
|
||
" <td>58.057873</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.314243</td>\n",
|
||
" <td>0.503242</td>\n",
|
||
" <td>0.182515</td>\n",
|
||
" <td>61.559817</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.351721</td>\n",
|
||
" <td>0.504910</td>\n",
|
||
" <td>0.143369</td>\n",
|
||
" <td>58.941356</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.317971</td>\n",
|
||
" <td>0.296388</td>\n",
|
||
" <td>0.385641</td>\n",
|
||
" <td>48.243443</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.451289</td>\n",
|
||
" <td>0.485106</td>\n",
|
||
" <td>0.063605</td>\n",
|
||
" <td>51.805692</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_company y_has_purchased gender_male gender_female gender_other \\\n",
|
||
"0 10 0.0 0.171838 0.333929 0.494232 \n",
|
||
"1 10 1.0 0.312165 0.683363 0.004472 \n",
|
||
"2 11 0.0 0.151162 0.273204 0.575635 \n",
|
||
"3 11 1.0 0.328477 0.597641 0.073881 \n",
|
||
"4 12 0.0 0.334546 0.433672 0.231782 \n",
|
||
"5 12 1.0 0.366020 0.506659 0.127321 \n",
|
||
"6 13 0.0 0.314243 0.503242 0.182515 \n",
|
||
"7 13 1.0 0.351721 0.504910 0.143369 \n",
|
||
"8 14 0.0 0.317971 0.296388 0.385641 \n",
|
||
"9 14 1.0 0.451289 0.485106 0.063605 \n",
|
||
"\n",
|
||
" share_of_women \n",
|
||
"0 66.024263 \n",
|
||
"1 68.643306 \n",
|
||
"2 64.379376 \n",
|
||
"3 64.531835 \n",
|
||
"4 56.451654 \n",
|
||
"5 58.057873 \n",
|
||
"6 61.559817 \n",
|
||
"7 58.941356 \n",
|
||
"8 48.243443 \n",
|
||
"9 51.805692 "
|
||
]
|
||
},
|
||
"execution_count": 82,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"company_genders = train_set_spectacle.groupby([\"number_company\", \"y_has_purchased\"])[[\"gender_male\", \"gender_female\", \"gender_other\"]].mean().reset_index()\n",
|
||
"company_genders[\"share_of_women\"] = 100 * (company_genders[\"gender_female\"]/(1-company_genders[\"gender_other\"]))\n",
|
||
"company_genders"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 84,
|
||
"id": "b36e5a8f-45dc-4b74-8137-80b7e916aa84",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIiCAYAAAD2CjhuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABkGklEQVR4nO3dfXzO9f////thZ3bOxs6EjUbOhpKzYiRnoROVikLnkspZyrv6mjBnJUWREkpSvclbCMvJIqdhCAlNJGtCzhnb8/dHvx0fx2sbx8G2Y+Z2vVyOy8Xr+Tp7vF7Hc8d293q9nofNGGMEAAAAALAr4e4CAAAAAKCoISgBAAAAgAVBCQAAAAAsCEoAAAAAYEFQAgAAAAALghIAAAAAWBCUAAAAAMCCoAQAAAAAFgQlAAAAALAgKOG6MnXqVNlsNvvL09NTN9xwgx5//HEdOHAgX/eVmJioOXPmXNU29u7dK5vNpqlTp+ZLTdnbbNeunUJCQmSz2dS7d+982zYcFcT756yEhATZbLZC3y9c484+YrV8+XLZbDYtX77c3aUUuFWrVikhIUH//PNPge4n+3fO3r1783W7K1askI+Pj37//Xd72wcffFCg/chmsykhIaHAtn81FixYkGtt58+fV+XKlTV27NhCrwnFA0EJ16UpU6Zo9erVSkpK0tNPP60vvvhCTZo00alTp/JtH/kRlApCnz59tHbtWn3yySdavXq1+vTp4+6SgOtWZGSkVq9erXbt2rm7lOvKqlWrNHjw4AIPSgXBGKPevXvr6aefVsWKFe3tBR2UVq9eraeeeqrAtn81FixYoMGDB+do9/Ly0v/7f/9Pb775pg4fPuyGynCtIyjhulSzZk01bNhQzZs316BBgzRgwAClpqbmS7A5c+bM1RdYgH7++WfVr19f9957rxo2bOjwixZA4fLx8VHDhg1VtmxZd5eCa8TChQu1ceNGvfDCC1e8jfPnz+vChQsurdOwYUPdcMMNV7xPd3nkkUdks9n04YcfursUXIMISoD+/QUgyX4bw+DBg9WgQQOFhIQoKChIN998syZPnixjjMN60dHRat++vWbPnq26deuqZMmSGjx4sGw2m06dOqVp06bZb/Nr1qzZJWv4888/1alTJwUGBio4OFgPPfSQ0tLScl32p59+0t13362QkBCVLFlSdevW1VdffXXJ7WffVrN7925999139rqybwk5fvy4+vfvr5iYGHl7e6tcuXLq3bt3jqtsNptNvXr10pQpU1S1alX5+vqqXr16WrNmjYwxGj16tGJiYhQQEKA77rhDu3fvdli/WbNmqlmzplavXq3GjRvL19dX0dHRmjJliiRp/vz5uvnmm+Xn56datWpp4cKFOY5l165d6ty5s8LCwuTj46Nq1arp/fffd1gmKytLQ4cOtddYqlQpxcXF6d13373keXJ2PWdqyMvKlSvVokULBQYGys/PT40bN9b8+fMdlsm+ZWfZsmV67rnnVKZMGYWGhqpjx476888/ndpPbr788ks1atRI/v7+CggIUOvWrbVp0yaHZX777Tc9/PDDioqKko+Pj8LDw9WiRQulpKRcdvtr165Vhw4dFBoaqpIlS6py5co5bu905fiXLl2qp59+WqGhoQoKClLXrl116tQppaWlqVOnTipVqpQiIyPVv39/nT9/3r5+9i1to0aN0rBhw1ShQgWVLFlS9erV05IlSxz2tXv3bj3++OOKjY2Vn5+fypUrpw4dOmjr1q05jm/btm1q1aqV/Pz8VLZsWT3//POaP39+jlvWsvv5+vXr1aRJE/n5+alSpUoaMWKEsrKyctRpvRJQkH1ckn755Re1adNGfn5+KlOmjHr06KETJ07kuuz333+vFi1aKCgoSH5+frrttttynMPcOFNf9i2imzZtUseOHRUUFKTg4GA9+uijOnToUI5tOtN/pUv3w4SEBL388suSpJiYGPtnYfb79+WXX6pVq1aKjIyUr6+vqlWrpldffTXXOw6c6e/5eU4lacKECbr11ltVtWpVe1t0dLS2bdum5ORk+/FER0dL+r/P/s8++0z9+vVTuXLl5OPjo927d+vQoUPq2bOnqlevroCAAIWFhemOO+7QihUrcuzXeuvd1X5GOfs5c7n3vHv37vafjYtvrc/+3ebt7a2HHnpIkyZNyvE7HLgsA1xHpkyZYiSZ9evXO7S/++67RpKZNGmSMcaY7t27m8mTJ5ukpCSTlJRkhgwZYnx9fc3gwYMd1qtYsaKJjIw0lSpVMp988olZtmyZWbdunVm9erXx9fU1d911l1m9erVZvXq12bZtW551nT592lSrVs0EBwebcePGmUWLFpkXX3zRVKhQwUgyU6ZMsS+7dOlS4+3tbZo0aWK+/PJLs3DhQtO9e/ccy1kd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Of7s4zp06JBDe7du3Yy/v799Ovvcjxw50gwePNjccMMNxtvb29StW9csWrTIYd2jR4+aJ5980oSFhRk/Pz9z++23mxUrVpj4+PgcP7c///yzufPOO03JkiVNSEiIefLJJ820adNyjIiWVz/v1q2bqVixYo46rX2kIPu4McZs377dtGzZ0uE4/ve//+Xat5KTk027du1MSEiI8fLyMuXKlTPt2rVz+LnOjTP1Zb+fGzZsMB06dLB//j3yyCPmr7/+yrHNy/XfbM70w4EDB5qoqChTokQJh+NetWqVadSokfHz8zNly5Y1Tz31lNm4cWOu79Pl9pPb8OBXc06NMeaNN94wpUuXdhj+2hhj9u7da1q1amUCAwPtQ64bk/vncLZz586Z/v37m3LlypmSJUuam2++2cyZMydHPzUm71HvruQzypXPGWfe83PnzpmnnnrKlC1b1thsthznvEmTJjlGGgScYTOGb98CABQve/fuVUxMjEaPHp3nwCf55ZlnntEXX3yhw4cPu3QrJv798tfBgwfr0KFDPD/ipD///FMxMTH69NNP9dBDD7m7nCJvz549io2N1aJFi9SyZUt3l4NrDLfeAQDgpDfffFNRUVGqVKmSTp48qXnz5unjjz/W66+/TkhCoYiKilLv3r01bNgwPfjgg/l2y2dxNXToULVo0YKQhCtCUAIAwEleXl4aPXq0/vjjD124cEGxsbEaM2aMXnrpJXeXhuvI66+/Lj8/Px04cKBQB1241ly4cEGVK1fWwIED3V0KrlHcegcAAAAAFlyvBQAAAAALghIAAAAAWBCUAAAAAMCi2A/mkJWVpT///FOBgYEF9kWOAAAAAIo+Y4xOnDihqKioy44aWeyD0p9//smIMAAAAADs9u/frxtuuOGSyxT7oBQYGCjp35MRFBTk5moAAAAAuMvx48dVvnx5e0a4lGIflLJvtwsKCiIoAQAAAHDqkRwGcwAAAAAAC4ISAAAAAFgQlAAAAADAotg/owQAAHAtyMzM1Pnz591dBnBN8/LykoeHR75si6AEAADgRsYYpaWl6Z9//nF3KUCxUKpUKUVERFz1d6gSlAAAANwoOySFhYXJz8/vqv+4A65XxhidPn1a6enpkqTIyMir2p5bg1J0dLR+//33HO09e/bU+++/L2OMBg8erEmTJuno0aNq0KCB3n//fdWoUcMN1QIAAOSvzMxMe0gKDQ11dznANc/X11eSlJ6errCwsKu6Dc+tgzmsX79eBw8etL+SkpIkSQ8++KAkadSoURozZozGjx+v9evXKyIiQi1bttSJEyfcWTYAAEC+yH4myc/Pz82VAMVH9s/T1T7z59agVLZsWUVERNhf8+bNU+XKlRUfHy9jjMaOHavXXntNHTt2VM2aNTVt2jSdPn1aM2bMcGfZAAAA+Yrb7YD8k18/T0VmePCMjAxNnz5dTzzxhGw2m1JTU5WWlqZWrVrZl/Hx8VF8fLxWrVrlxkoBAAAAFHdFZjCHOXPm6J9//lH37t0l/ftgoySFh4c7LBceHp7rc03Zzp07p3Pnztmnjx8/nv/FAgAA4LrVvXt3/fPPP5ozZ467S0EBKjJBafLkyWrbtq2ioqIc2q2Xzowxl7ycNnz4cA0ePLhAagQAACgs0a/OL9T97R3RrlD3d71bvny5mjdvrqNHj6pUqVLuLge5KBK33v3+++/6/vvv9dRTT9nbIiIiJP3flaVs6enpOa4yXWzgwIE6duyY/bV///6CKRoAAABAsVUkgtKUKVMUFhamdu3+738yYmJiFBERYR8JT/r3Oabk5GQ1btw4z235+PgoKCjI4QUAAID8tXDhQt1+++0qVaqUQkND1b59e+3Zs8c+f/ny5bLZbA5fpJuSkiKbzaa9e/fa23788UfFx8fLz89PpUuXVuvWrXX06FFJ/36VzNixYx32W6dOHSUkJNinbTabPv74Y913333y8/NTbGys5s6de8nap0+frnr16ikwMFARERHq3Lmz/bt3sm3btk3t2rVTUFCQAgMD1aRJE4fjk6S33npLkZGRCg0N1fPPP+8wytql9rF37141b95cklS6dGnZbDb74ycoOtwelLKysjRlyhR169ZNnp7/dyegzWZT7969lZiYqG+++UY///yzunfvLj8/P3Xu3NmNFQMAAODUqVPq27ev1q9fryVLlqhEiRK67777lJWV5fQ2UlJS1KJFC9WoUUOrV6/WypUr1aFDB2VmZrpUy+DBg9WpUydt2bJFd911l7p06aIjR47kuXxGRoaGDBmizZs3a86cOUpNTXUIKgcOHFDTpk1VsmRJLV26VBs2bNATTzyhCxcu2JdZtmyZ9uzZo2XLlmnatGmaOnWqpk6d6tQ+ypcvr1mzZkmSdu7cqYMHD+rdd9916ZhR8Nz+jNL333+vffv26Yknnsgxb8CAATpz5ox69uxp/8LZxYsXKzAw0A2VAgAAINv999/vMD158mSFhYVp+/btqlmzplPbGDVqlOrVq6cPPvjA3lajRg2Xa+nevbseeeQRSVJiYqLGjRundevWqU2bNrkuf/HfnZUqVdJ7772n+vXr6+TJkwoICND777+v4OBgzZw5U15eXpKkKlWqOGyjdOnSGj9+vDw8PHTTTTepXbt2WrJkiZ5++mmn9hESEiJJCgsL4xmlIsrtV5RatWolY0yOzif9e1UpISFBBw8e1NmzZ5WcnOz0Dx4AAAAKzp49e9S5c2dVqlRJQUFBiomJkSTt27fP6W1kX1G6WnFxcfZ/+/v7KzAwMMetdBfbtGmT7rnnHlWsWFGBgYFq1qyZpP+rPSUlRU2aNLGHpNzUqFFDHh4e9unIyEiHfV5uHyj63B6UAAAAcO3p0KGDDh8+rI8++khr167V2rVrJf17y5kklSjx75+Zxhj7Ohc/wyNJvr6+l9xHiRIlHNbPbRuScgQam82W5y2Ap06dUqtWrRQQEKDp06dr/fr1+uabbxxqv1xdl9unM/tA0UdQAgAAgEsOHz6sHTt26PXXX1eLFi1UrVo1+wAM2cqWLStJOnjwoL0tJSXFYZm4uDgtWbIkz/2ULVvWYf3jx48rNTX1qmr/5Zdf9Pfff2vEiBFq0qSJbrrpphxXn+Li4rRixYpcQ1l+7cPb21uSXH4eC4XH7c8ooRhICHZ3Bfkr4Zi7KwAAoEgrXbq0QkNDNWnSJEVGRmrfvn169dVXHZa58cYbVb58eSUkJGjo0KHatWuX3n77bYdlBg4cqFq1aqlnz57q0aOHvL29tWzZMj344IMqU6aM7rjjDk2dOlUdOnRQ6dKl9cYbbzjc7nYlKlSoIG9vb40bN049evTQzz//rCFDhjgs06tXL40bN04PP/ywBg4cqODgYK1Zs0b169dX1apV82UfFStWlM1m07x583TXXXfJ19dXAQEBV3VsyF9cUQIAAIBLSpQooZkzZ2rDhg2qWbOm+vTpo9GjRzss4+XlpS+++EK//PKLateurZEjR2ro0KEOy1SpUkWLFy/W5s2bVb9+fTVq1Ej/+9//7CMhDxw4UE2bNlX79u1111136d5771XlypWvqvayZctq6tSp+vrrr1W9enWNGDFCb731lsMyoaGhWrp0qU6ePKn4+Hjdcsst+uijjy75zJKr+yhXrpwGDx6sV199VeHh4erVq9dVHRfyn81Yb/wsZo4fP67g4GAdO3aM71QqKFxRAgDgipw9e1apqamKiYlRyZIl3V0OUCxc6ufKlWzAFSUAAAAAsCAoAQAAAIAFQQkAAAAALAhKAAAAAGBBUAIAAAAAC4ISAAAAAFgQlAAAAADAgqAEAAAAABYEJQAAAAB5ysjIUGJionbs2OHuUgoVQQkAAACFLiEhQXXq1HHb/pcvXy6bzaZ//vnHbTVcie7du+vee+8t1H32799fW7du1U033XTZZfOjvqLy3ni6de8AAADIXUJwIe/vWOHuLx/s3btXMTEx2rRpk1tDV35ISEjQnDlzlJKS4u5SHMyaNUs///yzFi5cKJvNdtnl3333XRljCqGygscVJQAAAOAKZGRkuLuEAnf//fdr6dKl8vb2vuRymZmZysrKUnBwsEqVKlU4xRUwghIAAABctnDhQt1+++0qVaqUQkND1b59e+3Zs8dhmT/++EMPP/ywQkJC5O/vr3r16mnt2rUOy3z22WeKjo5WcHCwHn74YZ04ccLpfcTExEiS6tatK5vNpmbNmuVZ74IFC1SlShX5+vqqefPm2rt3r8P83G4FHDt2rKKjo+3T2beVDR8+XFFRUapSpYokafr06apXr54CAwMVERGhzp07Kz093b5e9q1kS5YsUb169eTn56fGjRtr586dkqSpU6dq8ODB2rx5s2w2m2w2m6ZOnZrnsVzMmffBqlmzZurVq5d69eplX+/11193uBKUkZGhAQMGqFy5cvL391eDBg20fPly+/ypU6eqVKlSmjdvnqpXry4fHx/9/vvvOW69O3funF588UWFhYWpZMmSuv3227V+/XqHei733kjSqlWr1LRpU/n6+qp8+fJ68cUXderUKafO0ZUiKAEAAMBlp06dUt++fbV+/XotWbJEJUqU0H333aesrCxJ0smTJxUfH68///xTc+fO1ebNmzVgwAD7fEnas2eP5syZo3nz5mnevHlKTk7WiBEjnN7HunXrJEnff/+9Dh48qNmzZ+da6/79+9WxY0fdddddSklJ0VNPPaVXX331io57yZIl2rFjh5KSkjRv3jxJ/4aKIUOGaPPmzZozZ45SU1PVvXv3HOu+9tprevvtt/XTTz/J09NTTzzxhCTpoYce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fn5+uu+++zRmzBiVKlXKPj/7vf/ss88UHR2t4OBgPfzwwzpx4oR9GeutdxkZGRowYIDKlSsnf39/NWjQQMuXL7/kOQSA4oygBADXIA8PDyUmJmrcuHH6448/rmpbS5cu1Z9//qkffvhBY8aMUUJCgtq3b6/SpUtr7dq16tGjh3r06KH9+/dLkk6fPq3mzZsrICBAP/zwg1auXKmAgAC1adNGGRkZ9u0uWbJEO3bsUFJSkubNm6fTp0+rTZs2Kl26tNavX6+vv/5a33//vXr16pVnbfv371fHjh111113KSUlRU899ZReffVVh2W2bt2q1q1bq2PHjtqyZYu+/PJLrVy58pLbnT9/vjp27Kh27dpp06ZNWrJkierVq2ef3717d/3000+aO3euVq9eLWOM7rrrLp0/f96+zOnTp/Xee+9p5syZWrhwoZYvX66OHTtqwYIFWrBggT777DNNmjRJ//3vfx32PXr0aMXFxWnjxo0aOHCg+vTpo6SkJPv8EiVK6L333tPPP/+sadOmaenSpRowYIB9/o8//qgePXropZdeUkpKilq2bKlhw4blOMY9e/Zozpw5mjdvnubNm6fk5OQct2te7PHHH9ePP/6omTNnasuWLXrwwQfVpk0bh4AIANcVAwC4pnTr1s3cc889xhhjGjZsaJ544gljjDHffPONufhjfdCgQaZ27doO677zzjumYsWKDtuqWLGiyczMtLdVrVrVNGnSxD594cIF4+/vb7744gtjjDGTJ082VatWNVlZWfZlzp07Z3x9fc2iRYvs2w0PDzfnzp2zLzNp0iRTunRpc/LkSXvb/PnzTYkSJUxaWlquxzpw4EBTrVo1h3298sorRpI5evSoMcaYxx57zDzzzDMO661YscKUKFHCnDlzJtftNmrUyHTp0iXXeb/++quRZH788Ud7299//218fX3NV199ZYwxZsqUKUaS2b17t32ZZ5991vj5+ZkTJ07Y21q3bm2effZZ+3TFihVNmzZtHPb30EMPmbZt2+ZaizHGfPXVVyY0NNRh+Xbt2jks06VLFxMcHGyfHjRokPHz8zPHjx+3t7388sumQYMG9un4+Hjz0ksvGWOM2b17t7HZbObAgQMO223RooUZOHBgnrUBQHHGFSUAuIaNHDlS06ZN0/bt2694GzVq1FCJEv/36yA8PFy1atWyT3t4eCg0NFTp6emSpA0bNmj37t0KDAxUQECAAgICFBISorNnz2rPnj329WrVquXwXNKOHTtUu3Zt+fv729tuu+02ZWVlaefOnbnWtmPHDjVs2NBhkIpGjRo5LLNhwwZNnTrVXktAQIBat26trKwspaam5rrdlJQUtWjRIs99enp6qkGDBva20NBQVa1aVTt27LC3+fn5qXLlyg7nLTo62mH0v/DwcPt5y6v+Ro0aOWx32bJlatmypcqVK6fAwEB17dpVhw8ftt9KuHPnTtWvX99hG9Zp6d/b/AIDA+3TkZGROWrJtnHjRhljVKVKFYfzmJyc7PCeAsD1hMEcAOAa1rRpU7Vu3Vr/+c9/1L17d4d5JUqUkDHGoe3iW8eyeXl5OUzbbLZc27KysiRJWVlZuuWWW/T555/n2FbZsmXt/744EEmSMSbPUfnyarfWn5usrCw9++yzevHFF3PMq1ChQq7r+Pr65rm9vPZprd/V83Yp2dv9/fffddddd6lHjx4aMmSIQkJCtHLlSj355JP29y6385hbza7UkpWVJQ8PD23YsEEeHh4O8wpr2HcAKGoISgBwjRsxYoTq1KljHzAhW9myZZWWlubwh3VKSspV7+/mm2/Wl19+qbCwMAUFBTm9XvXq1TVt2jSdOnXKHqJ+/PFHlShRIkftF68zZ84ch7Y1a9bkqGfbtm268cYbna4lLi5OS5Ys0eOPP57rPi9cuKC1a9eqcePGkqTDhw/r119/VbVq1ZzeR16s9a9Zs0Y33XSTJOmnn37ShQsX9Pbbb9uv8n311VcOy990001at26dQ9tPP/10VTXVrVtXmZmZSk9PV5MmTa5qWwBQXHDrHQBc42rVqqUuXbrkGD2tWbNmOnTokEaNGqU9e/bo/fff13fffXfV++vSpYvKlCmje+65RytWrFBqaqqSk5P10ksvXXJgiS5duqhkyZLq1q2bfv75Zy1btkwvvPCCHnvsMYWHh+e6To8ePbRnzx717dtXO3fu1IwZMzR16lSHZV555RWtXr1azz//vFJSUrRr1y7NnTtXL7zwQp61DBo0SF988YUGDRqkHTt2aOvWrRo1apQkKTY2Vvfcc4+efvpprVy5Ups3b9ajjz6qcuXK6Z577nH9hFn8+OOPGjVqlH799Ve9//77+vrrr/XSSy9JkipXrqwLFy5o3Lhx+u233/TZZ59p4sSJDuu/8MILWrBggcaMGaNdu3bpww8/1HfffXdV36FVpUoVdenSRV27dtXs2bOVmpqq9evXa+TIkVqwYMFVHS8AXKsISgBQDAwZMiTH7VfVqlXTBx98oPfff1+1a9fWunXr1L9//6vel5+fn3744QdVqFBBHTt2VLVq1fTEE0/ozJkzl7zC5Ofnp0WLFunIkSO69dZb9cADD6hFixYaP358nutUqFBBs2bN0rfffqvatWtr4sSJSkxMdFgmLi5OycnJ2rVrl5o0aaK6devqjTfeUGRkZJ7bbdasmb7++mvNnTtXderU0R133KG1a9fa50+ZMkW33HKL2rdvr0aNGskYowULFuS4ne1K9OvXTxs2bFDdunU1ZMgQvf3222rdurUkqU6dOhozZoxGjhypmjVr6vPPP88xBPxtt92miRMnasyYMapdu7YWLlyoPn36qGTJkldV15QpU9S1a1f169dPVatW1d133621a9eqfPnyV7VdALhW2YwzN4ADAICrFh0drd69ezt8f1F+ePrpp/XLL79oxYoV+bpdALie8YwSAADXmLfeekstW7aUv7+/vvvuO02bNk0ffPCBu8sCgGKFoAQAwDVm3bp1GjVqlE6cOKFKlSrpvffe01NPPeXusgCgWOHWOwAAAACwYDAHAAAAALAgKAEAAACABUEJAAAAACwISgAAAABgQVACAAAAAAuCEgAAAABYEJQAAAAAwIKgBAAAAAAWBCUAAAAAsPj/AN1JC6NqIxiRAAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 1000x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# création barplot avec la fonction générique\n",
|
||
"\n",
|
||
"multiple_barplot(company_genders, x=\"number_company\", y=\"share_of_women\", 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 femmes (%)\", \n",
|
||
" title = \"Part de femmes selon les compagnies de spectacle (train set)\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 87,
|
||
"id": "ed6374e5-f36c-4f8e-9dba-602715b726f1",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>country_fr</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>0.996136</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>0.994838</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>0.002119</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>0.831795</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>0.993978</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_compagny country_fr\n",
|
||
"0 10 0.996136\n",
|
||
"1 11 0.994838\n",
|
||
"2 12 0.002119\n",
|
||
"3 13 0.831795\n",
|
||
"4 14 0.993978"
|
||
]
|
||
},
|
||
"execution_count": 87,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# pays d'origine (France VS reste du monde)\n",
|
||
"\n",
|
||
"company_country_fr = customerplus_clean_spectacle.groupby(\"number_compagny\")[\"country_fr\"].mean().reset_index()\n",
|
||
"company_country_fr"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 88,
|
||
"id": "8d95cdd9-2ab3-4c9a-8442-bb9b98e0dd18",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHGCAYAAACIDqqPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABINElEQVR4nO3deVxU9f7H8fcAAoKAggliCph7LrmUe7jhkqm3zCXNLe1qWl63NDOXvC7pLTMrtXJBy7pmmql5UzIzS819yy1LwQUXRMUVFc7vDx/Mz3FAZ2Bw9PR6Ph7zeDjf8z3nfM53zgxvzzJjMQzDEAAAgEl4uLsAAAAAVyLcAAAAUyHcAAAAUyHcAAAAUyHcAAAAUyHcAAAAUyHcAAAAUyHcAAAAUyHcAAAAUyHcIFddvHhRZcqUUZs2bZSenu7ucgAAfwOEm1vExsbKYrHI19dX8fHxdtPr1aun8uXLZ2vZX3zxhSZPnpzpNIvFolGjRmVrua6WMQaHDx+2tnXt2lWRkZE2/caNG6fFixffdXkvvfSSQkND9fnnn8vDI/u7W2RkpLp27Zrt+XPL7XUdPnxYFotFsbGxubreO+1PrnSvtud2FotFr7zyyj1dJ+5/P/30kywWi3766adcXY+79nt32LNnj0aNGmXzmZ8b7tVrl4Fwk4nU1FS9+eabLl3mnf4YrV+/Xj169HDp+lxp+PDh+uabb2zaHAk3H330kXbu3Klvv/1WPj4+uVjh/aNw4cJav369mjdvnqvruVfhBrifVKlSRevXr1eVKlXcXYpp7NmzR2+99Vauh5t7jXCTiaZNm+qLL77Qjh077sn6atSooYcffvierCs7HnnkEVWuXNnp+fr06aPff/9d+fPnd31R9ykfHx/VqFFDDz30kLtLAUwnMDBQNWrUUGBgoLtLwX2OcJOJwYMHKyQkREOGDLlr348++khPPvmkChUqJH9/f1WoUEETJ07U9evXrX3q1aun7777TvHx8bJYLNZHhsxOS+3evVutWrVSgQIF5Ovrq8cee0xz5syx6ZNxmO/LL7/UsGHDFB4ersDAQDVq1Ej79++36RsXF6dWrVrp4Ycflq+vr0qUKKGePXsqKSnprtt4+2kpi8WiS5cuac6cOdZtqVevnnX6iRMn1LNnTz388MPy9vZWVFSU3nrrLd24ceOu67p+/boGDx6ssLAw+fn5qU6dOtq4cWOmfR1dz7Rp01SpUiXly5dPAQEBKlOmjN5444271pKamqrRo0erbNmy8vX1VUhIiOrXr69169ZlOU9Wh7P/+OMPdejQQYUKFZKPj4/Kli2rjz76yKaPo6/n3fan7G7v8ePH1bZtWwUEBCgoKEjt2rXTiRMnMu27efNmtWzZUsHBwfL19VXlypX11Vdf3XUdknPj+tlnn6ls2bLy8/NTpUqVtGzZMpvpBw8eVLdu3VSyZEn5+fmpSJEiatGihXbt2mW3rH379qlp06by8/NTwYIF1atXLy1dutTuUHlWp0Dr1atns59LUkpKigYNGqSoqCh5e3urSJEi6tevny5duuTQWHz//fdq2LChgoKC5Ofnp7Jly2r8+PE2fZYsWaKaNWvKz89PAQEBiomJ0fr16236jBo1ShaLRTt37lSbNm0UFBSk4OBgDRgwQDdu3ND+/fvVtGlTBQQEKDIyUhMnTrSZP2Pf+/zzzzVgwACFhYUpb968io6O1rZt22z6bt68We3bt1dkZKTy5s2ryMhIPf/885meyv/ll19Us2ZN+fr6qkiRIho+fLhmzJhhd+o7MjJSTz/9tL7//ntVqVJFefPmVZkyZTRr1qxM67z91EZO9sd7td/f7X2ZcUlAXFycunXrpuDgYPn7+6tFixb666+/7Jb3ww8/qGHDhgoMDJSfn59q166tVatW2fXbt2+fnn/+eYWGhsrHx0fFihVT586dlZqaqtjYWLVp00aSVL9+fetnScbnlzN/N+60njvJyZjeiVeOl2BCAQEBevPNN/Wvf/1LP/74oxo0aJBl3z///FMdOnSwfrjt2LFDY8eO1b59+6xvzKlTp+qf//yn/vzzT7vTO5nZv3+/atWqpUKFCmnKlCkKCQnR559/rq5du+rkyZMaPHiwTf833nhDtWvX1owZM5SSkqIhQ4aoRYsW2rt3rzw9Pa111qxZUz169FBQUJAOHz6sSZMmqU6dOtq1a5fy5Mnj8PisX79eDRo0UP369TV8+HBJsv5P6sSJE3riiSfk4eGhESNG6JFHHtH69es1ZswYHT58WLNnz77jsl966SXNnTtXgwYNUkxMjHbv3q1nn31WFy5csOnn6Hr++9//qnfv3nr11Vf1zjvvyMPDQwcPHtSePXvuWMeNGzfUrFkzrV27Vv369VODBg1048YNbdiwQQkJCapVq5bD47Vnzx7VqlVLxYoV07vvvquwsDCtWLFCffv2VVJSkkaOHGnT/26v5532p+xu75UrV9SoUSMdP35c48ePV6lSpfTdd9+pXbt2dn1Xr16tpk2bqnr16po+fbqCgoL03//+V+3atdPly5fveG2UM+P63XffadOmTRo9erTy5cuniRMn6plnntH+/ftVvHhxSTf/MIWEhOjtt9/WQw89pOTkZM2ZM0fVq1fXtm3bVLp0aUnSyZMnFR0drTx58mjq1KkKDQ3VvHnzcnRdz+XLlxUdHa2jR4/qjTfeUMWKFfX7779rxIgR2rVrl3744Qeb0Hm7mTNn6qWXXlJ0dLSmT5+uQoUK6cCBA9q9e7e1zxdffKGOHTuqcePG+vLLL5WamqqJEyeqXr16WrVqlerUqWOzzLZt2+qFF15Qz549FRcXZ/2P1g8//KDevXtr0KBB+uKLLzRkyBCVKFFCzz77rM38b7zxhqpUqaIZM2bo/PnzGjVqlOrVq6dt27ZZx/zw4cMqXbq02rdvr+DgYCUmJmratGl6/PHHtWfPHhUsWFCStHPnTsXExKhUqVKaM2eO/Pz8NH36dH3++eeZjseOHTs0cOBAvf766woNDdWMGTPUvXt3lShRQk8++WSW45iT/fFe7ffOvC+7d++umJgYffHFFzpy5IjefPNN1atXTzt37rQeBf/888/VuXNntWrVSnPmzFGePHn08ccfq0mTJlqxYoUaNmxoHdM6deqoYMGCGj16tEqWLKnExEQtWbJE165dU/PmzTVu3Di98cYb+uijj6yn+x555BFJjv/duNt6srosISdjelcGrGbPnm1IMjZt2mSkpqYaxYsXN6pVq2akp6cbhmEY0dHRxqOPPprl/Glpacb169eNuXPnGp6enkZycrJ1WvPmzY2IiIhM55NkjBw50vq8ffv2ho+Pj5GQkGDTr1mzZoafn59x7tw5wzAMY/Xq1YYk46mnnrLp99VXXxmSjPXr12e6vvT0dOP69etGfHy8Icn49ttv7cbg0KFD1rYuXbrY1e7v72906dLFbtk9e/Y08uXLZ8THx9u0v/POO4Yk4/fff8+0JsMwjL179xqSjP79+9u0z5s3z5Bksz5H1/PKK68Y+fPnz3KdWZk7d64hyfj000/v2C8iIsKmrkOHDhmSjNmzZ1vbmjRpYjz88MPG+fPnbeZ95ZVXDF9fX+t+4szrmdX+lN3tnTZtmt2+YBiG8dJLL9ltT5kyZYzKlSsb169ft+n79NNPG4ULFzbS0tKyXI+j4yrJCA0NNVJSUqxtJ06cMDw8PIzx48dnOd+NGzeMa9euGSVLlrTZj4YMGWJYLBZj+/btNv1jYmIMScbq1autbbe/phmio6ON6Oho6/Px48cbHh4exqZNm2z6ff3114YkY/ny5VnWeeHCBSMwMNCoU6eO9fPldmlpaUZ4eLhRoUIFmzG9cOGCUahQIaNWrVrWtpEjRxqSjHfffddmGY899pghyVi0aJG17fr168ZDDz1kPPvss9a2jH2vSpUqNvUcPnzYyJMnj9GjR48st+XGjRvGxYsXDX9/f+P999+3trdp08bw9/c3Tp8+bbNN5cqVs/uMiYiIMHx9fW3ez1euXDGCg4ONnj172tV56+uVk/3xXu33jrwvMz57n3nmGZv2X3/91ZBkjBkzxjAMw7h06ZIRHBxstGjRwqZfWlqaUalSJeOJJ56wtjVo0MDInz+/cerUqSzXu2DBArsxzcyd/m44sh5Xv3Z3w2mpLHh7e2vMmDHavHnzHQ+Rbdu2TS1btlRISIg8PT2VJ08ede7cWWlpaTpw4EC21v3jjz+qYcOGKlq0qE17165ddfnyZbtD0i1btrR5XrFiRUmyOUx86tQp9erVS0WLFpWXl5fy5MmjiIgISdLevXuzVWdmli1bpvr16ys8PFw3btywPpo1ayZJWrNmTZbzrl69WpLUsWNHm/a2bdvKy8v2IKOj63niiSd07tw5Pf/88/r2228dOg0nSf/73//k6+urF1980bENz8LVq1e1atUqPfPMM/Lz87Op9amnntLVq1e1YcMGm3kceT2zkt3tXb16tQICAuzW3aFDB5vnBw8e1L59+6yv0e3bk5iYaHdK9FbOjGv9+vUVEBBgfR4aGqpChQrZjMONGzc0btw4lStXTt7e3vLy8pK3t7f++OMPm/169erVevTRR1WpUqU7bp8zli1bpvLly+uxxx6zGYcmTZrc9a6QdevWKSUlRb17987y6M7+/ft1/PhxderUyeZOw3z58ql169basGGDLl++bDPP008/bfO8bNmyslgs1veFJHl5ealEiRKZ7k8dOnSwqSciIkK1atWyvjelm1/vkHHkx8vLS15eXsqXL58uXbpkM+Zr1qxRgwYNrEdyJMnDw0Nt27bNdHsfe+wxFStWzPrc19dXpUqVuuN+n9P98V7t9868L2///KtVq5YiIiKsr8G6deuUnJysLl262NSRnp6upk2batOmTbp06ZIuX76sNWvWqG3bttm+BtCRvxvZXU9Ox/RuOC11B+3bt9c777yjYcOG2R2+laSEhATVrVtXpUuX1vvvv6/IyEj5+vpq48aN6tOnj65cuZKt9Z45c0aFCxe2aw8PD7dOv1VISIjN84xDgBnrT09PV+PGjXX8+HENHz5cFSpUkL+/v9LT01WjRo1s15mZkydPaunSpVme5rrTmzpju8LCwmzavby87LbR0fV06tRJN27c0KeffqrWrVsrPT1djz/+uMaMGaOYmJgsazl9+rTCw8NzdPu6dHObbty4oQ8++EAffPDBHWvNcLfX806yu71nzpxRaGioXfvtr8XJkyclSYMGDdKgQYMc2p5bOTOut4+DdHMsbh2HAQMG6KOPPtKQIUMUHR2tAgUKyMPDQz169LDpd+bMGUVFRdkt7/btc8bJkyd18ODBbO3rp0+flqQ73kiQ8X7I6rMgPT1dZ8+elZ+fn7U9ODjYpp+3t7f8/Pzk6+tr156SkmK33MzGIywszObmig4dOmjVqlUaPny4Hn/8cQUGBspiseipp56yG/PM9qnM2iTHXu/b5XR/vFf7vTPvy6xeg4z9IaOW5557Lsv1JScny8PDQ2lpadm+WcXRvxtnz57N1npyOqZ3Q7i5A4vFogkTJigmJkaffPKJ3fTFixfr0qVLWrRokTXNStL27dtztN6QkBAlJibatR8/flySbP4n5Ijdu3drx44dio2NVZcuXaztBw8ezFGdmSlYsKAqVqyosWPHZjo9I6BlJuPD7cSJEypSpIi1/caNG3aBzpn1dOvWTd26ddOlS5f0888/a+TIkXr66ad14MABm9ftVg899JB++eUXpaen5yjgFChQQJ6enurUqZP69OmTaZ/M/ujmRHa2NyQkJNMLt2+/sDJj3xs6dGimgV+S9TqXzLhqXDNkXHswbtw4m/akpCSbu/RCQkIyvUg0szZfX99ML4JMSkqyee8VLFhQefPmtbvo9dbpWcn4H+7Ro0ez7JPxfsjqs8DDw0MFChTIcv7syGqMMmo5f/68li1bppEjR+r111+39klNTVVycrLNfCEhIdY/YHdbR3bldH+8V/u95Pj7MqvXoESJEja1fPDBB6pRo0am6woNDVVaWpo8PT3vuI/diaN/N4KDg7O1HleM6Z0Qbu6iUaNGiomJ0ejRo+1OE2Ucvr31YinDMPTpp5/aLedu/wO5VcOGDfXNN9/o+PHjNn+k586dKz8/vyx36KxkVqckffzxx04t51ZZbc/TTz+t5cuX65FHHnH6gzfjTpR58+apatWq1vavvvrK7g6o7KzH399fzZo107Vr1/SPf/xDv//+e5Z/7Js1a6Yvv/xSsbGxOTo15efnp/r162vbtm2qWLGivL29s72sWzmyPzmzvfXr19dXX32lJUuW2Byi/+KLL2z6lS5dWiVLltSOHTvsAoUjXDWuGSwWi91+/d133+nYsWPWPwbSze2bOHGiduzYYXNq6vbtk27eubNz506btgMHDmj//v02geXpp5/WuHHjFBIS4nRArVWrloKCgjR9+nS1b98+01NTpUuXVpEiRfTFF19o0KBB1j6XLl3SwoULrXdQudKXX36pAQMGWNcVHx+vdevWqXPnzpJujrdhGHZjPmPGDKWlpdm0RUdHa/ny5TahMD09XQsWLHBZvTndH+/Vfn+ru70v582bp9atW1ufr1u3TvHx8dbvQqtdu7by58+vPXv23PWC+OjoaC1YsEBjx47NMmxndWTY0b8bGXfV3W09t3PlmGaGcOOACRMmqGrVqjp16pQeffRRa3tMTIy8vb31/PPPa/Dgwbp69aqmTZums2fP2i2jQoUKWrRokaZNm6aqVavKw8ND1apVy3R9I0eOtF5TMmLECAUHB2vevHn67rvvNHHiRAUFBTlVf5kyZfTII4/o9ddfl2EYCg4O1tKlSxUXF+fcQNy2PT/99JOWLl2qwoULKyAgQKVLl9bo0aMVFxenWrVqqW/fvipdurSuXr2qw4cPa/ny5Zo+fXqWhy/Lli2rF154QZMnT1aePHnUqFEj7d69W++8847d91o4up6XXnpJefPmVe3atVW4cGGdOHFC48ePV1BQkB5//PEst+/555/X7Nmz1atXL+3fv1/169dXenq6fvvtN5UtW1bt27d3eKzef/991alTR3Xr1tXLL7+syMhIXbhwQQcPHtTSpUv1448/OrysDFntT9nd3s6dO+u9995T586dNXbsWJUsWVLLly/XihUr7Pp+/PHHatasmZo0aaKuXbuqSJEiSk5O1t69e7V169Y7/vFy5bhKNwNGbGysypQpo4oVK2rLli36z3/+Y7eP9evXT7NmzVLz5s01ZswY691S+/bts1tmp06d9MILL6h3795q3bq14uPjNXHiRLvrCfr166eFCxfqySefVP/+/VWxYkWlp6crISFBK1eu1MCBA1W9evVM686XL5/effdd9ejRQ40aNbJ+k/fBgwe1Y8cOffjhh/Lw8NDEiRPVsWNHPf300+rZs6dSU1P1n//8R+fOndPbb7/t1Fg54tSpU3rmmWf00ksv6fz58xo5cqR8fX01dOhQSTfvinzyySf1n//8RwULFlRkZKTWrFmjmTNn2n2f1bBhw7R06VI1bNhQw4YNU968eTV9+nTrbfKuOHIn5Wx/vFf7vTPvy82bN6tHjx5q06aNjhw5omHDhqlIkSLq3bu3pJv7zgcffKAuXbooOTlZzz33nAoVKqTTp09rx44dOn36tKZNmyZJ1jubqlevrtdff10lSpTQyZMntWTJEn388ccKCAiwfuv+J598ooCAAPn6+ioqKsqpvxuOrMfVr91dZftSZBO69W6p23Xo0MGQZHe31NKlS41KlSoZvr6+RpEiRYzXXnvN+N///md3VXhycrLx3HPPGfnz5zcsFotx69DrtrulDMMwdu3aZbRo0cIICgoyvL29jUqVKtlcuW8Y/3/1+YIFC2zaM7tjZ8+ePUZMTIwREBBgFChQwGjTpo2RkJBgt25H75bavn27Ubt2bcPPz8+QZHMXyenTp42+ffsaUVFRRp48eYzg4GCjatWqxrBhw4yLFy/aje2tUlNTjYEDBxqFChUyfH19jRo1ahjr16/P9A4WR9YzZ84co379+kZoaKjh7e1thIeHG23btjV27tx5xzoM4+bdGiNGjDBKlixpeHt7GyEhIUaDBg2MdevWWfs4crdURvuLL75oFClSxMiTJ4/x0EMPGbVq1bLeAWEYzr2eWe1POdneo0ePGq1btzby5ctnBAQEGK1btzbWrVuX6fbs2LHDaNu2rVGoUCEjT548RlhYmNGgQQNj+vTpd12PI+MqyejTp4/dvLeP99mzZ43u3bsbhQoVMvz8/Iw6deoYa9eutbuzyTD+/z3g6+trBAcHG927dze+/fZbu/dqenq6MXHiRKN48eKGr6+vUa1aNePHH3/MdJkXL1403nzzTaN06dKGt7e3ERQUZFSoUMHo37+/ceLEibuOxfLly43o6GjD39/f8PPzM8qVK2dMmDDBps/ixYuN6tWrG76+voa/v7/RsGFD49dff7Xpk3G31K13JhnGzfeuv7+/3Xpvv/MzY9/77LPPjL59+xoPPfSQ4ePjY9StW9fYvHmzzbwZ+0mBAgWMgIAAo2nTpsbu3bszfY+uXbvWqF69uuHj42OEhYUZr732mjFhwgRDkvWuT8O4+bo2b9480zpvHfPM7rgxjJztj/div3fkfZnx2bty5UqjU6dORv78+Y28efMaTz31lPHHH3/YLXPNmjVG8+bNjeDgYCNPnjxGkSJFjObNm9t9fuzZs8do06aNERISYnh7exvFihUzunbtaly9etXaZ/LkyUZUVJTh6elps92O/t1wZD258drdicUwDCP70QgAHlw//fST6tevr9WrV9t9Qd/fScY4LFiw4I4XqrpC48aNdfjw4WzfTWpWsbGx6tatmzZt2pTlUX04jtNSAIBcMWDAAFWuXFlFixZVcnKy5s2bp7i4OM2cOdPdpcHkCDcAgFyRlpamESNG6MSJE7JYLCpXrpw+++wzvfDCC+4uDSbHaSkAAGAqfEMxAAAwFcINAAAwFcINAAAwlb/dBcXp6ek6fvy4AgICsvzBOgAAcH8xDEMXLlxw6Pfp/nbh5vjx43Y/owAAAB4MR44cuesPdf7twk3G10AfOXLE7iv9AQDA/SklJUVFixbN8uccbvW3CzcZp6ICAwMJNwAAPGAcuaSEC4oBAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpuDXc/Pzzz2rRooXCw8NlsVi0ePHiu86zZs0aVa1aVb6+vipevLimT5+e+4UCAIAHhlvDzaVLl1SpUiV9+OGHDvU/dOiQnnrqKdWtW1fbtm3TG2+8ob59+2rhwoW5XCkAAHhQuPW3pZo1a6ZmzZo53H/69OkqVqyYJk+eLEkqW7asNm/erHfeeUetW7fOpSoBAMCD5IG65mb9+vVq3LixTVuTJk20efNmXb9+PdN5UlNTlZKSYvMAAADm9UCFmxMnTig0NNSmLTQ0VDdu3FBSUlKm84wfP15BQUHWR9GiRe9FqQAAwE0eqHAj2f/UuWEYmbZnGDp0qM6fP299HDlyJNdrBAAA7uPWa26cFRYWphMnTti0nTp1Sl5eXgoJCcl0Hh8fH/n4+NyL8iRJka9/d8/W9aA7/HZzly2LcXecK8cd+Dvhc8Zx7v6ceaCO3NSsWVNxcXE2bStXrlS1atWUJ08eN1UFAADuJ24NNxcvXtT27du1fft2STdv9d6+fbsSEhIk3Tyl1LlzZ2v/Xr16KT4+XgMGDNDevXs1a9YszZw5U4MGDXJH+QAA4D7k1tNSmzdvVv369a3PBwwYIEnq0qWLYmNjlZiYaA06khQVFaXly5erf//++uijjxQeHq4pU6ZwGzgAALBya7ipV6+e9YLgzMTGxtq1RUdHa+vWrblYFQAAeJA9UNfcAAAA3A3hBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmIqXuwsAADgn8vXv3F3CA+Pw283dXQLcgCM3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVNwebqZOnaqoqCj5+vqqatWqWrt27R37z5s3T5UqVZKfn58KFy6sbt266cyZM/eoWgAAcL9za7iZP3+++vXrp2HDhmnbtm2qW7eumjVrpoSEhEz7//LLL+rcubO6d++u33//XQsWLNCmTZvUo0ePe1w5AAC4X7k13EyaNEndu3dXjx49VLZsWU2ePFlFixbVtGnTMu2/YcMGRUZGqm/fvoqKilKdOnXUs2dPbd68+R5XDgAA7lduCzfXrl3Tli1b1LhxY5v2xo0ba926dZnOU6tWLR09elTLly+XYRg6efKkvv76azVvnvU3UKampiolJcXmAQAAzMtt4SYpKUlpaWkKDQ21aQ8NDdWJEycynadWrVqaN2+e2rVrJ29vb4WFhSl//vz64IMPslzP+PHjFRQUZH0ULVrUpdsBAADuL26/oNhisdg8NwzDri3Dnj171LdvX40YMUJbtmzR999/r0OHDqlXr15ZLn/o0KE6f/689XHkyBGX1g8AAO4vbvvhzIIFC8rT09PuKM2pU6fsjuZkGD9+vGrXrq3XXntNklSxYkX5+/urbt26GjNmjAoXLmw3j4+Pj3x8fFy/AQAA4L7ktiM33t7eqlq1quLi4mza4+LiVKtWrUznuXz5sjw8bEv29PSUdPOIDwAAgFtPSw0YMEAzZszQrFmztHfvXvXv318JCQnW00xDhw5V586drf1btGihRYsWadq0afrrr7/066+/qm/fvnriiScUHh7urs0AAAD3EbedlpKkdu3a6cyZMxo9erQSExNVvnx5LV++XBEREZKkxMREm++86dq1qy5cuKAPP/xQAwcOVP78+dWgQQNNmDDBXZsAAADuM24NN5LUu3dv9e7dO9NpsbGxdm2vvvqqXn311VyuCgAAPKjcfrcUAACAKxFuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqeQ43KSlpWn79u06e/asK+oBAADIEafDTb9+/TRz5kxJN4NNdHS0qlSpoqJFi+qnn35ydX0AAABOcTrcfP3116pUqZIkaenSpTp06JD27dunfv36adiwYS4vEAAAwBlOh5ukpCSFhYVJkpYvX642bdqoVKlS6t69u3bt2uXyAgEAAJzhdLgJDQ3Vnj17lJaWpu+//16NGjWSJF2+fFmenp4uLxAAAMAZXs7O0K1bN7Vt21aFCxeWxWJRTEyMJOm3335TmTJlXF4gAACAM5wON6NGjVL58uV15MgRtWnTRj4+PpIkT09Pvf766y4vEAAAwBlOhxtJeu655+zaunTpkuNiAAAAcsqhcDNlyhT985//lK+vr6ZMmXLHvn379nVJYQAAANnhULh577331LFjR/n6+uq9997Lsp/FYiHcAAAAt3Io3Bw6dCjTfwMAANxv+G0pAABgKtm6oPjo0aNasmSJEhISdO3aNZtpkyZNcklhAAAA2eF0uFm1apVatmypqKgo7d+/X+XLl9fhw4dlGIaqVKmSGzUCAAA4zOnTUkOHDtXAgQO1e/du+fr6auHChTpy5Iiio6PVpk2b3KgRAADAYU6Hm71791q/08bLy0tXrlxRvnz5NHr0aE2YMMHlBQIAADjD6XDj7++v1NRUSVJ4eLj+/PNP67SkpCTXVQYAAJANTl9zU6NGDf36668qV66cmjdvroEDB2rXrl1atGiRatSokRs1AgAAOMzpcDNp0iRdvHhR0s3fmbp48aLmz5+vEiVK3PEL/gAAAO4Fp8NN8eLFrf/28/PT1KlTXVoQAABATjh9zc2mTZv022+/2bX/9ttv2rx5s0uKAgAAyC6nw02fPn105MgRu/Zjx46pT58+Onv2rL799lslJia6pEAAAABnOH1aas+ePZl+WV/lypW1adMmtWjRQmlpaUpJSdHvv//ukiIBAAAc5XS48fHx0cmTJ22uvZGkxMRE+fj46JdfftFff/2lcuXKuaxIAAAARzl9WiomJkZDhw7V+fPnrW3nzp3T0KFD1aJFC0k3A9C0adNcVyUAAICDnD5y8+677+rJJ59URESEKleuLEnavn27QkND9fnnn0uSihQpom7durm2UgAAAAc4HW6KFCminTt3at68edqxY4fy5s2rbt266fnnn1eePHlyo0YAAACHOR1upJs/wfDPf/7T1bUAAADkWLbCzYEDB/TTTz/p1KlTSk9Pt5k2YsQIlxQGAACQHU6Hm08//VQvv/yyChYsqLCwMFksFus0i8VCuAEAAG7ldLgZM2aMxo4dqyFDhuRGPQAAADni9K3gZ8+eVZs2bXKjFgAAgBxzOty0adNGK1euzI1aAAAAcszp01IlSpTQ8OHDtWHDBlWoUMHu9u++ffu6rDgAAABnOR1uPvnkE+XLl09r1qzRmjVrbKZZLBbCDQAAcCunw82hQ4dyow4AAACXcPqaGwAAgPtZtr7E7+jRo1qyZIkSEhJ07do1m2mTJk1ySWEAAADZ4XS4WbVqlVq2bKmoqCjt379f5cuX1+HDh2UYhqpUqZIbNQIAADjM6dNSQ4cO1cCBA7V79275+vpq4cKFOnLkiKKjo/n+GwAA4HZOh5u9e/eqS5cukiQvLy9duXJF+fLl0+jRozVhwgSXFwgAAOAMp8ONv7+/UlNTJUnh4eH6888/rdOSkpJcVxkAAEA2OH3NTY0aNfTrr7+qXLlyat68uQYOHKhdu3Zp0aJFqlGjRm7UCAAA4DCnw82kSZN08eJFSdKoUaN08eJFzZ8/XyVKlNB7773n8gIBAACc4VS4SUtL05EjR1SxYkVJkp+fn6ZOnZorhQEAAGSHU9fceHp6qkmTJjp37lwulQMAAJAzTl9QXKFCBf31118uK2Dq1KmKioqSr6+vqlatqrVr196xf2pqqoYNG6aIiAj5+PjokUce0axZs1xWDwAAeLA5fc3N2LFjNWjQIP373/9W1apV5e/vbzM9MDDQ4WXNnz9f/fr109SpU1W7dm19/PHHatasmfbs2aNixYplOk/btm118uRJzZw5UyVKlNCpU6d048YNZzcDAACYlNPhpmnTppKkli1bymKxWNsNw5DFYlFaWprDy5o0aZK6d++uHj16SJImT56sFStWaNq0aRo/frxd/++//15r1qzRX3/9peDgYElSZGSks5sAAABMzOlws3r1apes+Nq1a9qyZYtef/11m/bGjRtr3bp1mc6zZMkSVatWTRMnTtRnn30mf39/tWzZUv/+97+VN29el9QFAAAebA6Fm2effVaxsbEKDAxUfHy82rVrJx8fnxytOCkpSWlpaQoNDbVpDw0N1YkTJzKd56+//tIvv/wiX19fffPNN0pKSlLv3r2VnJyc5XU3qamp1i8dlKSUlJQc1Q0AAO5vDl1QvGzZMl26dEmS1K1bN50/f95lBdx6akv6/9NbmUlPT5fFYtG8efP0xBNP6KmnntKkSZMUGxurK1euZDrP+PHjFRQUZH0ULVrUZbUDAID7j0NHbsqUKaOhQ4eqfv36MgxDX331VZYXDnfu3NmhFRcsWFCenp52R2lOnTpldzQnQ+HChVWkSBEFBQVZ28qWLSvDMHT06FGVLFnSbp6hQ4dqwIAB1ucpKSkEHAAATMyhcDN9+nQNGDBA3333nSwWi958881Mj65YLBaHw423t7eqVq2quLg4PfPMM9b2uLg4tWrVKtN5ateurQULFujixYvKly+fJOnAgQPy8PDQww8/nOk8Pj4+OT6FBgAAHhwOnZaqVauWNmzYoNOnT8swDB04cEBnz561eyQnJzu18gEDBmjGjBmaNWuW9u7dq/79+yshIUG9evWSdPOoy61hqUOHDgoJCVG3bt20Z88e/fzzz3rttdf04osvckExAACQlI27pQ4dOqSHHnrIJStv166dzpw5o9GjRysxMVHly5fX8uXLFRERIUlKTExUQkKCtX++fPkUFxenV199VdWq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ZEktXbr0HlcOAADuV24LN9euXdOWLVvUuHFjm/bGjRtr3bp1Di0jPT1dFy5cUHBwcJZ9UlNTlZKSYvMAAADm5bZwk5SUpLS0NIWGhtq0h4aG6sSJEw4t491339WlS5fUtm3bLPuMHz9eQUFB1kfRokVzVDcAALi/uf2CYovFYvPcMAy7tsx8+eWXGjVqlObPn69ChQpl2W/o0KE6f/689XHkyJEc1wwAAO5fXu5accGCBeXp6Wl3lObUqVN2R3NuN3/+fHXv3l0LFixQo0aN7tjXx8dHPj4+Oa4XAAA8GNx25Mbb21tVq1ZVXFycTXtcXJxq1aqV5Xxffvmlunbtqi+++ELNmzfP7TIBAMADxm1HbiRpwIAB6tSpk6pVq6aaNWvqk08+UUJCgnr16iXp5imlY8eOae7cuZJuBpvOnTvr/fffV40aNaxHffLmzaugoCC3bQcAALh/uDXctGvXTmfOnNHo0aOVmJio8uXLa/ny5YqIiJAkJSYm2nznzccff6wbN26oT58+6tOnj7W9S5cuio2NvdflAwCA+5Bbw40k9e7dW71798502u2B5aeffsr9ggAAwAPN7XdLAQAAuBLhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmIrbw83UqVMVFRUlX19fVa1aVWvXrr1j/zVr1qhq1ary9fVV8eLFNX369HtUKQAAeBC4NdzMnz9f/fr107Bhw7Rt2zbVrVtXzZo1U0JCQqb9Dx06pKeeekp169bVtm3b9MYbb6hv375a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++zZszOdPnLkSLfW/aC707hn3Haf2WP16tXuLv2Bdqdxv3LlivHMM88Y4eHhhre3t1G4cGGjZcuWxsaNG91d9gPvbp8zt+NWcMOwGIZh5G58AgAAuHe45gYAAJgK4QYAAJgK4QYAAJgK4QYAAJgK4QYAAJgK4QYAAJgK4QYAAJgK4QYAAJgK4QZArjhx4oReffVVFS9eXD4+PipatKhatGihVatWubs0ACbHb0sBcLnDhw+rdu3ayp8/vyZOnKiKFSvq+vXrWrFihfr06aN9+/a5u0QAJsaRGwAu17t3b1ksFm3cuFHPPfecSpUqpUcffVQDBgzQhg0bJEkJCQlq1aqV8uXLp8DAQLVt21YnT560LmPUqFF67LHHNGvWLBUrVkz58uXTyy+/rLS0NE2cOFFhYWEqVKiQxo4da7Nui8WiadOmqVmzZsqbN6+ioqK0YMECmz5DhgxRqVKl5Ofnp+LFi2v48OG6fv263bo/++wzRUZGKigoSO3bt9eFCxckSXPnzlVISIjdr123bt1anTt3dulYAnAe4QaASyUnJ+v7779Xnz595O/vbzc9f/78MgxD//jHP5ScnKw1a9YoLi5Of/75p9q1a2fT988//9T//vc/ff/99/ryyy81a9YsNW/eXEePHtWaNWs0YcIEvfnmm9bAlGH48OFq3bq1duzYoRdeeEHPP/+89u7da50eEBCg2NhY7dmzR++//74+/fRTvffee3brXrx4sZYtW6Zly5ZpzZo1evvttyVJbdq0UVpampYsWWLtn5SUpGXLlqlbt245HkMAOeTmH+4EYDK//fabIclYtGhRln1WrlxpeHp6GgkJCda233//3ZBk/RXpkSNHGn5+fkZKSoq1T5MmTYzIyEgjLS3N2la6dGlj/Pjx1ueSjF69etmsr3r16sbLL7+cZT0TJ040qlatan2e2bpfe+01o3r16tbnL7/8stGsWTPr88mTJxvFixc30tPTs1wPgHuDa24AuJRhGJJunh7Kyt69e1W0aFEVLVrU2lauXDnlz59fe/fu1eOPPy5JioyMVEBAgLVPaGioPD095eHhYdN26tQpm+XXrFnT7vn27dutz7/++mtNnjxZBw8e1MWLF3Xjxg0FBgbazHP7ugsXLmyznpdeekmPP/64jh07piJFimj27Nnq2rXrHbcbwL3BaSkALlWyZElZLBab00C3Mwwj0xBwe3uePHlsplsslkzb0tPT71pXxnI3bNig9u3bq1mzZlq2bJm2bdumYcOG6dq1azb977aeypUrq1KlSpo7d662bt2qXbt2qWvXrnetA0DuI9wAcKng4GA1adJEH330kS5dumQ3/dy5cypXrpwSEhJ05MgRa/uePXt0/vx5lS1bNsc13H4NzoYNG1SmTBlJ0q+//qqIiAgNGzZM1apVU8mSJRUfH5+t9fTo0UOzZ8/WrFmz1KhRI5sjUQDch3ADwOWmTp2qtLQ0PfHEE1q4cKH++OMP7d27V1OmTFHNmjXVqFEjVaxYUR07dtTWrVu1ceNGde7cWdHR0apWrVqO179gwQLNmjVLBw4c0MiRI7Vx40a98sorkqQSJUooISFB//3vf/Xnn39qypQp+uabb7K1no4dO+rYsWP69NNP9eKLL+a4bgCuQbgB4HJRUVHaunWr6tevr4EDB6p8+fKKiYnRqlWrNG3aNFksFi1evFgFChTQk08+qUaNGql48eKaP3++S9b/1ltv6b///a8qVqyoOXPmaN68eSpXrpwkqVWrVurfv79eeeUVPfbYY1q3bp2GDx+erfUEBgaqdevWypcvn/7xj3+4pHYAOWcxMq7+AwATsFgs+uabb+5Z2IiJiVHZsmU1ZcqUe7I+AHfH3VIAkA3JyclauXKlfvzxR3344YfuLgfALQg3AJANVapU0dmzZzVhwgSVLl3a3eUAuAWnpQAAgKlwQTEAADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADCV/wPJ0nECepCwAAAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Création du barplot\n",
|
||
"plt.bar(company_country_fr[\"number_compagny\"], 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 spectacle\")\n",
|
||
"\n",
|
||
"# Affichage du barplot\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 90,
|
||
"id": "b459f81f-6d30-44fa-ad65-e85acbf12fd2",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_company</th>\n",
|
||
" <th>y_has_purchased</th>\n",
|
||
" <th>country_fr</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>99.542095</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>99.909747</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>99.543280</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>99.501602</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.156470</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.265579</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>84.389610</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>77.596741</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>99.520205</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>98.471506</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_company y_has_purchased country_fr\n",
|
||
"0 10 0.0 99.542095\n",
|
||
"1 10 1.0 99.909747\n",
|
||
"2 11 0.0 99.543280\n",
|
||
"3 11 1.0 99.501602\n",
|
||
"4 12 0.0 0.156470\n",
|
||
"5 12 1.0 0.265579\n",
|
||
"6 13 0.0 84.389610\n",
|
||
"7 13 1.0 77.596741\n",
|
||
"8 14 0.0 99.520205\n",
|
||
"9 14 1.0 98.471506"
|
||
]
|
||
},
|
||
"execution_count": 90,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# graphique sur le train set\n",
|
||
"\n",
|
||
"company_country_fr = train_set_spectacle.groupby([\"number_company\", \"y_has_purchased\"])[[\"country_fr\"]].mean().reset_index()\n",
|
||
"company_country_fr[\"country_fr\"] = 100 * company_country_fr[\"country_fr\"]\n",
|
||
"company_country_fr"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 92,
|
||
"id": "4a037b48-1d65-4ed3-a012-7d6f5a312533",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAIiCAYAAADCc/lyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABptElEQVR4nO3dd3QUZf/+8WuTkF5IQipCEjpIF6lCQKRXURFBqgVERASkiEiQjgoIUh4VCYqUR0VEpIqA9B5ARAQMRcpDbwECJPP7g1/2y5IEdiAhm/B+nbPnZO9pnymZzZWZuddiGIYhAAAAAIDdnLK6AAAAAADIbghSAAAAAGASQQoAAAAATCJIAQAAAIBJBCkAAAAAMIkgBQAAAAAmEaQAAAAAwCSCFAAAAACYRJACAAAAAJMIUnjkxMbGymKxWF8uLi567LHH1LFjRx09ejRDlzV8+HDNmzfvgeZx8OBBWSwWxcbGZkhN9oqMjFSHDh0eeh0zZ87UuHHjMnSeBw8eVKNGjRQQECCLxaIePXpk6PwftoexL2JiYmSxWDJt/sgYK1eulMVi0cqVK7O6FOu59eDBg1ldSqZbuHChYmJiMn05mfV7+PXXXysoKEiXLl2ytmXE51V6supzzF7pfe6cO3dOuXPnzrTtguyPIIVH1rRp07R+/XotW7ZMr732mmbNmqXq1asrISEhw5aRmR9MD1tYWJjWr1+vRo0aZepyMiNIvfPOO9q4caO++uorrV+/Xu+8806Gzv9he1j7Ao6vfPnyWr9+vcqXL5/VpTxSFi5cqMGDB2d1GfflypUreu+999S3b1/5+PhY2zPz88rRz1npfe74+/vrnXfe0bvvvqvr168//MLg8FyyugAgq5QsWVIVKlSQJNWqVUtJSUkaMmSI5s2bpzZt2jzQvK9evSoPD4+MKNNhuLm5qXLlylldxn35448/VLFiRTVv3vyu4924ccN6ldKRZed9gYzl6+vLsQBTpk+frjNnzujVV1+973lcvXpV7u7udl8ty87nrC5dumjo0KH6/vvv1bp166wuBw6GK1LA/5dykj906JAkafDgwapUqZICAgLk6+ur8uXLa+rUqTIMw2a6yMhINW7cWHPnzlW5cuXk7u6uwYMHy2KxKCEhQdOnT7feRlizZs271nDs2DG1bNlSPj4+8vPz04svvqgTJ06kOe6WLVvUtGlTBQQEyN3dXeXKldN///tfu9Y1MTFRH374oYoXLy53d3cFBgaqVq1aWrduXbrTpHdrxr59+9S6dWsFBwfLzc1NxYsX18SJE23GSbn9aNasWRowYIDCw8Pl6+urZ555Rnv37rWOV7NmTf3yyy86dOiQze2XKSZPnqwyZcrI29tbPj4+KlasmN577710a05Z7v79+7Vo0SLr/A4ePGgd9s0336hXr17Kmzev3NzctH//fp06dUpdu3ZViRIl5O3treDgYD399NNavXp1mtvk448/1pgxYxQVFSVvb29VqVJFGzZsSFXPxo0b1aRJEwUGBsrd3V0FCxa0uc1w//796tixowoXLixPT0/lzZtXTZo00a5du+65L06dOqXXX39d+fLlk5ubm4KCglStWjX9+uuv6W6fFL/88ovKli0rNzc3RUVF6eOPP05zPMMwNGnSJJUtW1YeHh7y9/fX888/r3/++cdmvO3bt6tx48bWYyI8PFyNGjXSv//+e89aFi9erNq1a8vPz0+enp4qXry4RowYYTPO/PnzVaVKFXl6esrHx0d16tTR+vXrbcZJuSVq586deuGFF+Tn56eAgAD17NlTN2/e1N69e1W/fn35+PgoMjJSo0ePtpk+5fiYMWOGevbsqdDQUHl4eCg6Olrbt2+3GXfLli1q1aqVIiMj5eHhocjISL300kvWc8nt1qxZoypVqsjd3V158+bVwIED9eWXX6a6JS7lvLJ48WKVL19eHh4eKlasmL766qs067zz1j57zg9XrlxR7969FRUVJXd3dwUEBKhChQqaNWvWXfeRJG3YsEHVqlWTu7u7wsPD1b9/f924cSPNcefMmaMqVarIy8tL3t7eqlevXqptmBZ76uvQoYO8vb21e/du1a5dW15eXgoKClK3bt105coVm/nZe/xKdz8OO3ToYD3H3X6eStl/EydOVI0aNRQcHCwvLy+VKlVKo0ePTnP72HO8Z+Q2lW6dR5s0aaLcuXNb2+72eZVyy+bSpUvVqVMnBQUFydPTU4mJiQ90zkr5Hd29e7deeukl+fn5KSQkRJ06ddKFCxfuuR72nGfs2ef3+twJCQlRnTp1NGXKFLu2Lx4tjv1vV+Ah2r9/vyQpKChI0q0Tf+fOnZU/f35Jt/5weOutt3T06FF98MEHNtNu27ZNe/bs0fvvv6+oqCh5eXmpefPmevrpp1Wr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ynwPHTqkhg0bqkuXLhoyZIgCAgK0Zs0avfLKK9Z9l9Z2TKtmM7UkJyfL2dlZW7dulbOzs82wh9WtPQA4EoIUADwCRo4cqbJly1o7dEgRFBSkEydO2PzhHRcX98DLK1++vObMmaPg4GD5+vraPV2JEiU0ffp0JSQkWEPW2rVr5eTklKr226eZN2+eTduGDRtS1bN7924VKlTI7lpKly6t5cuXq2PHjmku8+bNm9q4caOqVq0qSTpz5oz+/vtvFS9e3O5lpOfO+jds2KBixYpJkrZs2aKbN2/qk08+sV4l/O9//2szfrFixbRp0yabti1btjxQTeXKlVNSUpJOnjyp6tWrP9C8ACAn4NY+AHgElCpVSm3atEnV+1vNmjV16tQpjR49WgcOHNDEiRO1aNGiB15emzZtlCdPHjVr1kyrV69WfHy8Vq1apbfffvuuHV+0adNG7u7uat++vf744w+tWLFCb731ltq2bauQkJA0p+nSpYsOHDignj17au/evZo5c6ZiY2Ntxunbt6/Wr1+vN998U3Fxcdq3b5/mz5+vt956K91aBg0apFmzZmnQoEHas2ePdu3apdGjR0uSChcurGbNmum1117TmjVrtGPHDr388svKmzevmjVrZn6D3WHt2rUaPXq0/v77b02cOFHfffed3n77bUlSwYIFdfPmTU2YMEH//POPvvnmG02ZMsVm+rfeeksLFy7UmDFjtG/fPv3nP//RokWLHug7xIoUKaI2bdqoXbt2mjt3ruLj47V582aNGjVKCxcufKD1BYDsiCAFAI+IIUOGpLq9q3jx4po0aZImTpyoMmXKaNOmTerdu/cDL8vT01O///678ufPrxYtWqh48eLq1KmTrl69etcrVJ6enlqyZInOnj2rJ598Us8//7xq166tzz77LN1p8ufPrx9++EE///yzypQpoylTpmj48OE245QuXVqrVq3Svn37VL16dZUrV04DBw5UWFhYuvOtWbOmvvvuO82fP19ly5bV008/rY0bN1qHT5s2TU888YQaN26sKlWqyDAMLVy4MNXtcvejV69e2rp1q8qVK6chQ4bok08+Ub169SRJZcuW1ZgxYzRq1CiVLFlS3377baou7qtVq6YpU6ZozJgxKlOmjBYvXqx33nlH7u7uD1TXtGnT1K5dO/Xq1UtFixZV06ZNtXHjRuXLl++B5gsA2ZHFsOfmcgAA8FBERkaqR48eNt/flBFee+01/fXXX1q9enWGzhcAHlU8IwUAQA708ccfq06dOvLy8tKiRYs0ffp0TZo0KavLAoAcgyAFAEAOtGnTJo0ePVqXLl1SgQIFNH78eL366qtZXRYA5Bjc2gcAAAAAJtHZBAAAAACYRJACAAAAAJMIUgAAAABgEkEKAAAAAEwiSAEAAACASQQpAAAAADCJIAUAAAAAJhGkAAAAAMAkghQAAAAAmPT/AFLEY2RJFPgqAAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 1000x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# generic function to generate the barplot - nationality\n",
|
||
"\n",
|
||
"multiple_barplot(company_country_fr, x=\"number_company\", y=\"country_fr\", 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 français (%)\", \n",
|
||
" title = \"Part de clients français des compagnies de spectacle (train set)\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ecfd112e-270a-4223-b80f-7e95e57d199d",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 2. campaigns_information"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 189,
|
||
"id": "b37e7ddf-321a-4ebe-9742-9e760a541d29",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Nombre de lignes de la table : 688953\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"customer_id 0\n",
|
||
"nb_campaigns 0\n",
|
||
"nb_campaigns_opened 0\n",
|
||
"time_to_open 301495\n",
|
||
"number_compagny 0\n",
|
||
"dtype: int64"
|
||
]
|
||
},
|
||
"execution_count": 189,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# nombre de nan\n",
|
||
"print(\"Nombre de lignes de la table : \",campaigns_information_spectacle.shape[0])\n",
|
||
"campaigns_information_spectacle.isna().sum()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 192,
|
||
"id": "de1ecaac-25bb-4853-b8ab-3ef2ca6917ed",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>nb_campaigns</th>\n",
|
||
" <th>nb_campaigns_opened</th>\n",
|
||
" <th>time_to_open</th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>no_campaign_opened</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>29</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaT</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>37</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaT</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>39</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0 days 05:16:38</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>41</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0 days 01:12:29</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>44</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaT</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>254699</th>\n",
|
||
" <td>6837769</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0 days 23:42:15</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>254700</th>\n",
|
||
" <td>6875038</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaT</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>254701</th>\n",
|
||
" <td>6875066</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaT</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>254702</th>\n",
|
||
" <td>6875099</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaT</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>254703</th>\n",
|
||
" <td>6875143</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0 days 01:17:01</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>688953 rows × 6 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" customer_id nb_campaigns nb_campaigns_opened time_to_open \\\n",
|
||
"0 29 4 0.0 NaT \n",
|
||
"1 37 3 0.0 NaT \n",
|
||
"2 39 4 1.0 0 days 05:16:38 \n",
|
||
"3 41 4 1.0 0 days 01:12:29 \n",
|
||
"4 44 4 0.0 NaT \n",
|
||
"... ... ... ... ... \n",
|
||
"254699 6837769 1 1.0 0 days 23:42:15 \n",
|
||
"254700 6875038 1 0.0 NaT \n",
|
||
"254701 6875066 1 0.0 NaT \n",
|
||
"254702 6875099 1 0.0 NaT \n",
|
||
"254703 6875143 1 1.0 0 days 01:17:01 \n",
|
||
"\n",
|
||
" number_compagny no_campaign_opened \n",
|
||
"0 10 True \n",
|
||
"1 10 True \n",
|
||
"2 10 False \n",
|
||
"3 10 False \n",
|
||
"4 10 True \n",
|
||
"... ... ... \n",
|
||
"254699 14 False \n",
|
||
"254700 14 True \n",
|
||
"254701 14 True \n",
|
||
"254702 14 True \n",
|
||
"254703 14 False \n",
|
||
"\n",
|
||
"[688953 rows x 6 columns]"
|
||
]
|
||
},
|
||
"execution_count": 192,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# part de clients n'ouvrant jamais les mails par compagnie\n",
|
||
"\n",
|
||
"campaigns_information_spectacle[\"no_campaign_opened\"] = pd.isna(campaigns_information_spectacle[\"time_to_open\"])\n",
|
||
"campaigns_information_spectacle"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 197,
|
||
"id": "b5a0060f-a9dd-435b-844f-b24674b8bc27",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>no_campaign_opened</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>0.605656</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>0.294001</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>0.475719</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>0.353820</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>0.428148</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_compagny no_campaign_opened\n",
|
||
"0 10 0.605656\n",
|
||
"1 11 0.294001\n",
|
||
"2 12 0.475719\n",
|
||
"3 13 0.353820\n",
|
||
"4 14 0.428148"
|
||
]
|
||
},
|
||
"execution_count": 197,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"company_lazy_customers = campaigns_information_spectacle.groupby(\"number_compagny\")[\"no_campaign_opened\"].mean().reset_index()\n",
|
||
"company_lazy_customers"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 198,
|
||
"id": "788c90e0-f13a-4804-ace7-e5159fddd7fd",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAo0AAAHFCAYAAACXTsPRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABcSElEQVR4nO3dd1gUV9sG8HvpHQWlKQJGQRSwR9EodoJEsEUNKoqaiMauMXYFNagxSkxiS1Q0lhBrjDEFu4ldQE00dgEVREHFCric7w8/9s2yy+6CyADev+vaS/bMzDnPzM7OPp6ZMyMTQggQEREREWmgJ3UARERERFT2MWkkIiIiIq2YNBIRERGRVkwaiYiIiEgrJo1EREREpBWTRiIiIiLSikkjEREREWnFpJGIiIiItGLSSERERERaFSlpjImJgUwmU7wMDAxQvXp1hIWF4datWyUa2GeffYYdO3a8Uh03btyATCZDTExMicSkK1dXVwwcOLDU49i4cSOio6NfaxuFmTVrFlxdXSVpu7iePn2KWbNm4cCBA1KHUip2796NWbNmSR3GG0kmkylt+wMHDkAmk1W4fa/gsY/KplmzZkEmk0kdBgBg4MCB5e63o7iWLl1aKvlImzZt0KZNm9dSd7F6GtesWYOjR48iLi4OH374ITZt2oRWrVrhyZMnJRZYSSSNZYWjoyOOHj2KwMDA19qOlEljefT06VNERERUuB/uwuzevRsRERFSh/FGOnr0KIYMGSJ1GEQAgCFDhuDo0aNSh/HGKa2k8XUyKM5CXl5eaNKkCQCgbdu2kMvlmD17Nnbs2IG+ffu+UkDPnj2DqanpK9VR1hgbG6N58+ZSh0FvqKdPn8LMzEzqMN5oFeX7L5fL8eLFCxgbG0sdCr2C6tWro3r16lKHQeVQiVzTmH9ATEpKAgBERESgWbNmsLGxgZWVFRo1aoRVq1ZBCKG0nKurK9577z1s27YNDRs2hImJCSIiIiCTyfDkyROsXbtWcSpcW1fr7du30atXL1haWsLa2hq9e/dGWlqa2nlPnTqFoKAg2NjYwMTEBA0bNsSPP/6o07pmZ2cjMjISnp6eMDExga2tLdq2bYsjR44Uukxhp6cvX76MkJAQ2NnZwdjYGJ6envjmm2+U5sk/jbVp0yZMnToVTk5OsLKyQocOHXDx4kXFfG3atMEvv/yCpKQkpUsI8i1btgz169eHhYUFLC0tUadOHUyZMkXjuubHvXDhQixatAhubm6wsLCAr68vjh07pnVbffPNN2jdujXs7Oxgbm4Ob29vLFiwALm5uYp5Zs+eDQMDA6SkpKgsP2jQINja2uL58+cAgNjYWHTq1AmOjo4wNTWFp6cnJk2apNLDPXDgQFhYWODKlSvo3LkzLCws4OzsjPHjxyM7O1uxblWrVgUAxT4nk8m0nlpLTk5Gv379lD6zL774Anl5eYp5Cjv1WHA/iI6Ohkwmw5UrV1Ta+fTTT2FkZIR79+4pyvbs2YP27dvDysoKZmZmaNmyJfbu3au0XP5pp/j4ePTs2ROVK1fGW2+9hYEDByr2rf/uHzdu3Ch0XePi4hAcHIzq1avDxMQEtWrVwtChQ5Viyt/e6k4vqTsFlpeXh6+++goNGjSAqakpKlWqhObNm2Pnzp2KeQqeys1X8NRn/uUy+/fvx7Bhw1ClShXY2tqie/fuuH37dqHr9d+4LSws8O+//8Lf3x/m5uZwdHTEvHnzAADHjh3DO++8A3Nzc7i7u2Pt2rVKy9+9exfDhw9H3bp1YWFhATs7O7Rr1w6HDx9WaauwddImfx3j4uIQFhYGGxsbmJubo0uXLrh27ZrK/KtXr0b9+vVhYmICGxsbdOvWDRcuXFCap7BTVwU/x/z9dcGCBZgzZw7c3NxgbGyM/fv3F2kdsrKyMGHCBLi5ucHIyAjVqlXDmDFjVL63mzdvRrNmzWBtbQ0zMzPUrFkTgwYN0lq/LvtUXl4eFixYgDp16sDY2Bh2dnYIDQ3FzZs3VbaNl5cXjh49ihYtWsDU1BSurq5Ys2YNAOCXX35Bo0aNYGZmBm9vb/z2229Ky+fv8wkJCejevTusrKxgbW2Nfv364e7du0rz6no8A4Bvv/0W7u7uMDY2Rt26dbFx48ZCPy9djteFnZ6OjY2Fr68vzM3NYWFhAX9/fyQkJCjNc+3aNfTp0wdOTk4wNjaGvb092rdvj8TExMI/pP8XExMDDw8PxbFz3bp1aufLycnBnDlzFJ9X1apVERYWprIN1dElvvzcY/v27fDx8YGJiQlq1qyJJUuWqNSn6/6rbT90dXXFP//8g4MHDyqOv/mf3/PnzzF+/Hg0aNAA1tbWsLGxga+vL3766SeVeHTZ30t6m/5XsXoaC8r/0cv/Eb5x4waGDh2KGjVqAHh58B05ciRu3bqFGTNmKC0bHx+PCxcuYNq0aXBzc4O5uTm6du2Kdu3aoW3btpg+fToAwMrKqtD2nz17hg4dOuD27duIioqCu7s7fvnlF/Tu3Vtl3v379+Pdd99Fs2bNsHz5clhbW+OHH35A79698fTpU41Jw4sXLxAQEIDDhw9jzJgxaNeuHV68eIFjx44hOTkZLVq00HmbnT9/Hi1atECNGjXwxRdfwMHBAb///jtGjRqFe/fuYebMmUrzT5kyBS1btsR3332HrKwsfPrpp+jSpQsuXLgAfX19LF26FB999BGuXr2K7du3Ky37ww8/YPjw4Rg5ciQWLlwIPT09XLlyBefPn9cp1m+++QZ16tRRnPqePn06OnfujOvXr8Pa2hrAy4NQwR/Fq1evIiQkRPFlO3PmDObOnYt///0Xq1evBgAMHToUc+fOxYoVKzBnzhzFspmZmfjhhx8wYsQImJiYAHiZZHfu3BljxoyBubk5/v33X8yfPx8nTpzAvn37lNrOzc1FUFAQBg8ejPHjx+PQoUOYPXs2rK2tMWPGDDg6OuK3337Du+++i8GDBytOHebvw+rcvXsXLVq0QE5ODmbPng1XV1fs2rULEyZMwNWrV7F06VKdtme+fv364dNPP0VMTIzSusvlcqxfvx5dunRBlSpVAADr169HaGgogoODsXbtWhgaGmLFihXw9/fH77//jvbt2yvV3b17d/Tp0wfh4eF48uQJvLy88OTJE2zZskXptJSjo2Oh8V29ehW+vr4YMmQIrK2tcePGDSxatAjvvPMOzp07B0NDwyKtL/AyMVm/fj0GDx6MyMhIGBkZIT4+XmPyqs2QIUMQGBiIjRs3IiUlBZ988gn69eunsk+ok5ubi+7duyM8PByffPIJNm7ciMmTJyMrKwtbt27Fp59+iurVq+Orr77CwIED4eXlhcaNGwN4uY8CwMyZM+Hg4IDHjx9j+/btaNOmDfbu3Vui1xQNHjwYHTt2VKzjtGnT0KZNG5w9exaVKlUCAERFRWHKlCn44IMPEBUVhYyMDMyaNQu+vr44efIkateuXay2lyxZAnd3dyxcuBBWVlZFqufp06fw8/PDzZs3MWXKFPj4+OCff/7BjBkzcO7cOezZswcymQxHjx5F79690bt3b8yaNQsmJiZISkrS6TPUZZ8aNmwYVq5ciREjRuC9997DjRs3MH36dBw4cADx8fGK7xkApKWlISwsDBMnTlR89oMGDUJKSgq2bNmCKVOmwNraGpGRkejatSuuXbsGJycnpZi6deuGXr16ITw8HP/88w+mT5+O8+fP4/jx44rvja7Hs5UrV2Lo0KHo0aMHFi9ejIcPHyIiIkLxH+CCdDleq/PZZ59h2rRpCAsLw7Rp05CTk4PPP/8crVq1wokTJ1C3bl0AQOfOnSGXy7FgwQLUqFED9+7dw5EjR/DgwQONn1NMTAzCwsIQHByML774Ag8fPsSsWbOQnZ0NPb3/9V/l5eUhODgYhw8fxsSJE9GiRQskJSVh5syZaNOmDU6dOqXxbKSu8SUmJmLMmDGYNWsWHBwcsGHDBowePRo5OTmYMGECAN33X0D7frh9+3b07NkT1tbWit+K/B777OxsZGZmYsKECahWrRpycnKwZ88edO/eHWvWrEFoaKgi7uIcQ191myoRRbBmzRoBQBw7dkzk5uaKR48eiV27domqVasKS0tLkZaWprKMXC4Xubm5IjIyUtja2oq8vDzFNBcXF6Gvry8uXryospy5ubkYMGCATnEtW7ZMABA//fSTUvmHH34oAIg1a9YoyurUqSMaNmwocnNzleZ97733hKOjo5DL5YW2s27dOgFAfPvttxrjcXFxUYr9+vXrKnH4+/uL6tWri4cPHyotO2LECGFiYiIyMzOFEELs379fABCdO3dWmu/HH38UAMTRo0cVZYGBgcLFxUUlnhEjRohKlSppjFmd/Li9vb3FixcvFOUnTpwQAMSmTZt0rit/P1i3bp3Q19dXrJ8QQgwYMEDY2dmJ7OxsRdn8+fOFnp6euH79utr68vLyRG5urjh48KAAIM6cOaNUHwDx448/Ki3TuXNn4eHhoXh/9+5dAUDMnDlTp3WYNGmSACCOHz+uVD5s2DAhk8kU+3H+Z7Z//36l+dTtB927dxfVq1dX2u92794tAIiff/5ZCCHEkydPhI2NjejSpYtSfXK5XNSvX1+8/fbbirKZM2cKAGLGjBkq8X/88ceiiF95hfztnZSUpPJdGzBggNr9Lj+WfIcOHRIAxNSpUzW2VdhnUvB7lX88Gj58uNJ8CxYsEABEamqqxnby95OtW7cqynJzc0XVqlUFABEfH68oz8jIEPr6+mLcuHGF1vfixQuRm5sr2rdvL7p166ZxnQrbRwrKX8eC9f31118CgJgzZ44QQoj79+8LU1NTleNEcnKyMDY2FiEhIYoyPz8/4efnp9JWwc8xf3996623RE5OjsY48xX8jKKiooSenp44efKk0nxbtmwRAMTu3buFEEIsXLhQABAPHjzQqZ18uuxTFy5cULufHD9+XAAQU6ZMUZT5+fkJAOLUqVOKsvzP3tTUVNy6dUtRnpiYKACIJUuWKMry9/mxY8cqtbVhwwYBQKxfv15tjIUdz+RyuXBwcBDNmjVTmj8pKUkYGhqq/bx0OV4X/G4mJycLAwMDMXLkSKV2Hj16JBwcHESvXr2EEELcu3dPABDR0dFq16MwcrlcODk5iUaNGinlADdu3FBZj02bNql8L4UQ4uTJkwKAWLp0aaHt6Bqfi4uLkMlkIjExUam8Y8eOwsrKSjx58kQIofv+q+uxrV69emq/ewXlH0sGDx4sGjZsqCjXtZ2C3/FX2aYFFev0dPPmzWFoaAhLS0u89957cHBwwK+//gp7e3sAwL59+9ChQwdYW1tDX18fhoaGmDFjBjIyMpCenq5Ul4+PD9zd3YsThsL+/fthaWmJoKAgpfKQkBCl91euXMG///6ruO7yxYsXilfnzp2RmpqqdMq3oF9//RUmJiY6nTLR5Pnz59i7dy+6desGMzMzlTieP3+ucjqh4Lr5+PgA+N8lAZq8/fbbePDgAT744AP89NNPKqcXtQkMDIS+vn6R205ISEBQUBBsbW0V+0FoaCjkcjkuXbqkmG/06NFIT0/H5s2bAbz8X9GyZcsQGBiodPrl2rVrCAkJgYODg6I+Pz8/AFA5BSeTydClSxelMh8fH522V2H27duHunXr4u2331YqHzhwIIQQOvWKFBQWFoabN29iz549irI1a9bAwcEBAQEBAIAjR44gMzMTAwYMUNpX8vLy8O677+LkyZMqp0p69OhRjDVUlp6ejvDwcDg7O8PAwACGhoZwcXEBoLq9dfHrr78CAD7++ONXju2/XuW7IZPJ0LlzZ8V7AwMD1KpVC46OjmjYsKGi3MbGBnZ2dip1Ll++HI0aNYKJiYliG+3du7dY20eTgteKt2jRAi4uLopTxUePHsWzZ89UzpQ4OzujXbt2KpcxFEVQUFCxepUBYNeuXfDy8kKDBg2U9l1/f3+lSziaNm0KAOjVqxd+/PFHne/Gocs+lb+NCm6bt99+G56enirbxtHRUdGbDPzvs2/QoIFSj6KnpycA9ftZwc+rV69eMDAwUDq1r8vx7OLFi0hLS0OvXr2U6qtRowZatmypdn2Lc7z+/fff8eLFC4SGhip9TiYmJvDz81N8TjY2Nnjrrbfw+eefY9GiRUhISFC6NKcwFy9exO3btxESEqJ0WtzFxUXlDN2uXbtQqVIldOnSRSmWBg0awMHBQePAxaLEV69ePdSvX1+pLCQkBFlZWYiPj1fEosv+WxLHts2bN6Nly5awsLBQHEtWrVqldCwpbjuvsk0LKlbSuG7dOpw8eRIJCQm4ffs2zp49q9iBT5w4gU6dOgF4eR3GX3/9hZMnT2Lq1KkAXp5K/i9Np8d0lZGRoUhY/8vBwUHp/Z07dwAAEyZMgKGhodJr+PDhAKAxobp79y6cnJyUutKLG++LFy/w1VdfqcSR/wNWMA5bW1ul9/nd2gW3pzr9+/fH6tWrkZSUhB49esDOzg7NmjVDXFycTvEWp+3k5GS0atUKt27dwpdffonDhw/j5MmTiuvq/rtsw4YN0apVK8W0Xbt24caNGxgxYoRinsePH6NVq1Y4fvw45syZgwMHDuDkyZPYtm2b2ljMzMwUp7X/G3f+9ZHFkZGRoXZ/zf8hycjIKHKdAQEBcHR0VFwzdf/+fezcuROhoaGKA3/+ftuzZ0+V/WX+/PkQQihOleZ71e9VXl4eOnXqhG3btmHixInYu3cvTpw4ofjPjC77XUF3796Fvr6+yvfyVb3Kd0PdfmJkZAQbGxuVeY2MjJT2n0WLFmHYsGFo1qwZtm7dimPHjuHkyZN49913i7V9NFG3zRwcHBT7XP6/he2fxdk3873KvnTnzh2cPXtWZb+1tLSEEEJxnGvdujV27NihSFyqV68OLy8vbNq0SWP9uuxTRd02hX32BcuNjIwAQO0xpWA8BgYGsLW1VbSl6/Esf351v2/qyoDifR/yjzFNmzZV+axiY2MVn5NMJsPevXvh7++PBQsWoFGjRqhatSpGjRqFR48eFVp//noUth8XjOXBgwcwMjJSiSUtLU3jb3RR4tMUS368uu6/r3ps27ZtG3r16oVq1aph/fr1OHr0KE6ePIlBgwYp7V/FbedVtmlBxbqm0dPTUzF6uqAffvgBhoaG2LVrl9LBuLDb55TEvaJsbW1x4sQJlfKCA2Hyr1uZPHkyunfvrrYuDw+PQtupWrUq/vzzT+Tl5b1S4li5cmXo6+ujf//+hf6Pwc3Nrdj1qxMWFoawsDA8efIEhw4dwsyZM/Hee+/h0qVLit6jkrRjxw48efIE27ZtU6q/sIulR40ahffffx/x8fH4+uuv4e7ujo4dOyqm79u3D7dv38aBAwcU/xsHoPU6mpJka2uL1NRUlfL8QRf5+1f+fl/wmiN1X8z8/WDJkiV48OABNm7ciOzsbISFhSnmya/3q6++KnQUbsEfkFf9Xv399984c+YMYmJiMGDAAEW5ukE7JiYmaq+vKri+VatWhVwuR1pamsZExNjYWG19r5L4vA7r169HmzZtsGzZMqVyTT+exaVuUF9aWhpq1aoF4H+JQmH753+v2TMxMcHDhw9V5ivsh+NV9qUqVarA1NRUcQ2zuun5goODERwcjOzsbBw7dgxRUVEICQmBq6srfH191S6vyz71321TcMRwwW1TUtLS0lCtWjXF+xcvXiAjI0MRi67Hs/z585O6gm2UlPxtsGXLFq2/By4uLli1ahUA4NKlS/jxxx8xa9Ys5OTkYPny5WqXyV+PwvbjgrHY2tqqDDLKZ2lpWSLxaYolP15d919dj22FWb9+Pdzc3BAbG6v0fSt4HCxuO6+6Tf+rxJ8Ik3/T7/92jz979gzff/99keoxNjbW+X/rbdu2xaNHj1RGD23cuFHpvYeHB2rXro0zZ86gSZMmal+aNl5AQACeP3/+yvdZMjMzQ9u2bZGQkAAfHx+1cRT836IudNlm5ubmCAgIwNSpU5GTk4N//vmnuKuhUf6O/99bcwgh8O2336qdv1u3bqhRowbGjx+PPXv2YPjw4UpfHnX1AcCKFSuKHWNReqQAoH379jh//rzi1EW+devWQSaToW3btgCgOKV+9uxZpfkKG90WFhaG58+fY9OmTYiJiYGvry/q1KmjmN6yZUtUqlQJ58+fL3S/ze/1KKn1Lcr2dnV1RXp6utIPW05ODn7//Xel+fJPtxdMstTVV3Db7du3D48fP9Yad2mSyWQq2+fs2bOv5f53GzZsUHp/5MgRJCUlKQbb+Pr6wtTUFOvXr1ea7+bNm9i3b5/SQClXV1dcunRJ6QcpIyND4x0giuu9997D1atXYWtrq3a/VTfq3tjYGH5+fpg/fz4AqIze/S9d9ql27doBgMq2OXnyJC5cuKAyiKwkFPy8fvzxR7x48ULxeen6/fLw8ICDg4PK3T2Sk5NL9PPy9/eHgYEBrl69WugxRh13d3dMmzYN3t7eKsfFguvh6OiITZs2Kd1FJSkpSWU93nvvPWRkZEAul6uNQ1PHTlHi++eff3DmzBmlso0bN8LS0hKNGjVSxKLL/qvrsa2w32iZTAYjIyOl37y0tDSV0dO6tlNQSW7TEhk9/V+BgYFYtGgRQkJC8NFHHyEjIwMLFy4s8n29vL29ceDAAfz8889wdHSEpaVloSsWGhqKxYsXIzQ0FHPnzkXt2rWxe/dulR8t4OWXMiAgAP7+/hg4cCCqVauGzMxMXLhwAfHx8Yrr6tT54IMPsGbNGoSHh+PixYto27Yt8vLycPz4cXh6eqJPnz46r9+XX36Jd955B61atcKwYcPg6uqKR48e4cqVK/j555+LdX2ct7c3tm3bhmXLlqFx48bQ09NDkyZN8OGHH8LU1BQtW7aEo6Mj0tLSEBUVBWtra8W1RCWtY8eOMDIywgcffICJEyfi+fPnWLZsGe7fv692fn19fXz88cf49NNPYW5urnL9UYsWLVC5cmWEh4dj5syZMDQ0xIYNG1S+9EVhaWkJFxcX/PTTT2jfvj1sbGxQpUqVQp9OMHbsWKxbtw6BgYGIjIyEi4sLfvnlFyxduhTDhg1TXJvr4OCADh06ICoqCpUrV4aLiwv27t2rOPVUUJ06deDr64uoqCikpKRg5cqVStMtLCzw1VdfYcCAAcjMzETPnj1hZ2eHu3fv4syZM7h7965OBxFvb28AwPz58xEQEAB9fX34+PioTTjr1KmDt956C5MmTYIQAjY2Nvj555/VXtLQu3dvzJgxA3369MEnn3yC58+fY8mSJZDL5UrztWrVCv3798ecOXNw584dvPfeezA2NkZCQgLMzMwwcuRIAC8vp5g+fTpmzJgBPz8/nD9/Hl9//bXGkZ9SeO+99zB79mzMnDkTfn5+uHjxIiIjI+Hm5oYXL16UaFunTp3CkCFD8P777yMlJQVTp05FtWrVFJfVVKpUCdOnT8eUKVMQGhqKDz74ABkZGYiIiICJiYnS3Rj69++PFStWoF+/fvjwww+RkZGBBQsWaLxDRXGNGTMGW7duRevWrTF27Fj4+PggLy8PycnJ+OOPPzB+/Hg0a9YMM2bMwM2bN9G+fXtUr14dDx48wJdffql0nZ86uuxTHh4e+Oijj/DVV19BT08PAQEBitHTzs7OGDt2bImv97Zt22BgYICOHTsqRk/Xr19fcW2irsczPT09REREYOjQoejZsycGDRqEBw8eICIiAo6Ojq98qVQ+V1dXREZGYurUqbh27RreffddVK5cGXfu3MGJEydgbm6OiIgInD17FiNGjMD777+P2rVrw8jICPv27cPZs2cxadKkQuvX09PD7NmzMWTIEHTr1g0ffvghHjx4oBi5/F99+vTBhg0b0LlzZ4wePRpvv/02DA0NcfPmTezfvx/BwcHo1q2b2naKEp+TkxOCgoIwa9YsODo6Yv369YiLi8P8+fMV97XVdf/V9djm7e2NH374AbGxsahZsyZMTEzg7e2tuPXg8OHD0bNnT6SkpGD27NlwdHTE5cuXFTHr2k5Br7JNVeg8ZEb8byRfwZFEBa1evVp4eHgIY2NjUbNmTREVFSVWrVolACiNhnVxcRGBgYFq60hMTBQtW7YUZmZmAoDWEUc3b94UPXr0EBYWFsLS0lL06NFDHDlyRGW0qhBCnDlzRvTq1UvY2dkJQ0ND4eDgINq1ayeWL1+udRs8e/ZMzJgxQ9SuXVsYGRkJW1tb0a5dO3HkyBGl9dI2ejq/fNCgQaJatWrC0NBQVK1aVbRo0UIxIlKI/42y3Lx5s8qyBevMzMwUPXv2FJUqVRIymUwxOm7t2rWibdu2wt7eXhgZGQknJyfRq1cvcfbsWY3rmt/G559/rjINOow6/vnnn0X9+vWFiYmJqFatmvjkk0/Er7/+Wuio0Rs3bggAIjw8XG19R44cEb6+vsLMzExUrVpVDBkyRMTHx6tshwEDBghzc3OV5QuOGBRCiD179oiGDRsKY2NjAUDriP2kpCQREhIibG1thaGhofDw8BCff/65yqj71NRU0bNnT2FjYyOsra1Fv379xKlTp9TuB0IIsXLlSgFAmJqaqoyoz3fw4EERGBgobGxshKGhoahWrZoIDAxU2jfy1/Hu3bsqy2dnZ4shQ4aIqlWrKvaPwkanCyHE+fPnRceOHYWlpaWoXLmyeP/990VycrLaz3737t2iQYMGwtTUVNSsWVN8/fXXare3XC4XixcvFl5eXsLIyEhYW1sLX19fxUjx/DgnTpwonJ2dhampqfDz8xOJiYmFjp4ueDzSdWRyYfuJn5+fqFevnkp5weNVdna2mDBhgqhWrZowMTERjRo1Ejt27FA7mrzgNivq6Ok//vhD9O/fX1SqVEkxSvry5csq83/33XfCx8dHsW2Dg4PFP//8ozLf2rVrhaenpzAxMRF169YVsbGxhY6eVvf9L0zBz0gIIR4/fiymTZsmPDw8FHF5e3uLsWPHKu64sWvXLhEQECCqVasmjIyMhJ2dnejcubM4fPiw1jZ12afkcrmYP3++cHd3F4aGhqJKlSqiX79+IiUlRakuXT/7fADExx9/rHifv8+fPn1adOnSRfF79MEHH4g7d+4oLavr8UyIl8eHWrVqCSMjI+Hu7i5Wr14tgoODlUbWFuV4re67KYQQO3bsEG3bthVWVlbC2NhYuLi4iJ49e4o9e/YIIYS4c+eOGDhwoKhTp44wNzcXFhYWwsfHRyxevFhpxHZhvvvuO8VvZ/56qPu+5ObmioULFyp+PywsLESdOnXE0KFD1e73+XSNL//z3LJli6hXr54wMjISrq6uYtGiRSp16rL/CqHbfnjjxg3RqVMnYWlpKQAorfe8efOEq6urMDY2Fp6enuLbb78t9jFU3R0SirtNC5IJUeCO20QS+eqrrzBq1Cj8/fffqFevntThEEku/952J0+eLPQUIZUds2bNQkREBO7evftarpXM9+DBA7i7u6Nr164qZyZIO1dXV3h5eWHXrl1Sh1LulPjpaaKiSkhIwPXr1xEZGYng4GAmjERE/y8tLQ1z585F27ZtYWtri6SkJCxevBiPHj3C6NGjpQ6P3jBMGkly3bp1Q1paGlq1alXo6DsiojeRsbExbty4geHDhyMzMxNmZmZo3rw5li9fzv9gU6nj6WkiIiIi0qrEb7lDRERERBUPk0YiIiIi0opJIxERERFpxYEwxZSXl4fbt2/D0tKyRB6FSERERK+fEAKPHj2Ck5NTid0g/U3BpLGYbt++DWdnZ6nDICIiomJISUlReR45acaksZjyn1GdkpLyWh6/RURERCUvKysLzs7Oit9x0h2TxmLKPyVtZWXFpJGIiKic4aVlRceT+URERESkFZNGIiIiItKKSSMRERERacWkkYiIiIi0YtJIRERERFoxaSQiIiIirZg0EhEREZFWTBqJiIiISCsmjURERESkFZNGIiIiItKKSSMRERERacWkkYiIiIi0YtJIRERERFoxaSQiIiIirSpM0rh06VK4ubnBxMQEjRs3xuHDhzXOn52djalTp8LFxQXGxsZ46623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FjpvdnY2srOzFe+zsrJ0jpGIiIiovJPk9HR4eDiaNGmCv//+G5mZmbh//77ilZmZWaS67t27B7lcDnt7e6Vye3t7pKWlqV3G0dERK1euxNatW7Ft2zZ4eHigffv2OHToUKHtREVFwdraWvFydnYuUpxERERE5ZkkPY2XL1/Gli1bUKtWrRKrUyaTKb0XQqiU5fPw8ICHh4fiva+vL1JSUrBw4cJCT41PnjwZ48aNU7zPyspi4khERERvDEl6Gps1a4YrV66USF1VqlSBvr6+Sq9ienq6Su+jJs2bN8fly5cLnW5sbAwrKyulFxEREdGbQpKexpEjR2L8+PFIS0uDt7c3DA0Nlab7+PjoXJeRkREaN26MuLg4dOvWTVEeFxeH4OBgnetJSEiAo6OjzvMTERERvUkkSRp79OgBABg0aJCiTCaTKU4pF2UgDACMGzcO/fv3R5MmTeDr64uVK1ciOTkZ4eHhAF6eWr516xbWrVsH4OXoaldXV9SrVw85OTlYv349tm7diq1bt5bQGhIRERFVLJIkjdevXy/R+nr37o2MjAxERkYiNTUVXl5e2L17N1xcXAAAqampSvdszMnJwYQJE3Dr1i2YmpqiXr16+OWXX9C5c+cSjYuIiIioopCJgve8IZ1kZWXB2toaDx8+LPHrG10n/VKi9VV0N+YFSh0CERGVE6/z97uik6SnMf80cWFCQ0NLKRIiIiIi0oUkSePo0aOV3ufm5uLp06cwMjKCmZkZk0YiIiKiMkaSW+7892be9+/fx+PHj3Hx4kW888472LRpkxQhEREREZEGkiSN6tSuXRvz5s1T6YUkIiIiIumVmaQRAPT19XH79m2pwyAiIiKiAiS5pnHnzp1K74UQSE1Nxddff42WLVtKERIRERERaSBJ0ti1a1el9zKZDFWrVkW7du3wxRdfSBESEREREWkgSdKYl5cnRbNEVAbxvqS64z1JiUhKZeqaRiIiIiIqmyRJGnv27Il58+aplH/++ed4//33JYiIiIiIiDSRJGk8ePAgAgNVT7O8++67OHTokAQREREREZEmkiSNjx8/hpGRkUq5oaEhsrKyJIiIiIiIiDSRJGn08vJCbGysSvkPP/yAunXrShAREREREWkiyejp6dOno0ePHrh69SratWsHANi7dy82bdqEzZs3SxESEREREWkgSdIYFBSEHTt24LPPPsOWLVtgamoKHx8f7NmzB35+flKEREREREQaSJI0AkBgYKDawTBEREREVPbwPo1EREREpJUkPY16enqQyWSFTpfL5aUYDRERERFpI0nSuH37dqX3ubm5SEhIwNq1axERESFFSERERESkgSRJY3BwsEpZz549Ua9ePcTGxmLw4MESREVEREREhSlT1zQ2a9YMe/bskToMIiIiIiqgzCSNz549w1dffYXq1atLHQoRERERFSDJ6enKlSsrDYQRQuDRo0cwMzPD+vXrpQiJiIiIiDSQJGmMjo5Weq+np4eqVauiWbNmqFy5shQhEREREZEGkiSNAwYMkKJZIiIiIiomyZ4IAwBPnz5FcnIycnJylMp9fHwkioiIiIiI1JEkabx79y7CwsLw66+/qp3Om3sTERERlS2SjJ4eM2YM7t+/j2PHjsHU1BS//fYb1q5di9q1a2Pnzp1ShEREREREGkjS07hv3z789NNPaNq0KfT09ODi4oKOHTvCysoKUVFRCAwMlCIsIiIiIiqEJD2NT548gZ2dHQDAxsYGd+/eBQB4e3sjPj5eipCIiIiISANJkkYPDw9cvHgRANCgQQOsWLECt27dwvLly+Ho6ChFSERERESkgSSnp8eMGYPU1FQAwMyZM+Hv748NGzbAyMgIMTExUoRERERERBpIkjT27dtX8XfDhg1x48YN/Pvvv6hRowaqVKkiRUhEREREpIGk92nMZ2ZmhkaNGkkdBhEREREVQpJrGomIiIiofCkTPY1ERERvAtdJv0gdQrlxYx5vv1fWsKeRiIiIiLSSJGlMTk6GEEKlXAiB5ORkCSIiIiIiIk0kSRrd3NwUN/T+r8zMTLi5uUkQERERERFpIknSKISATCZTKX/8+DFMTEwkiIiIiIiINCnVgTDjxo0DAMhkMkyfPh1mZmaKaXK5HMePH0eDBg1KMyQiIiIi0kGpJo0JCQkAXvY0njt3DkZGRoppRkZGqF+/PiZMmFCaIRERERGRDko1ady/fz8AYODAgfjqq69gaWlZms0TERERUTGV+jWNL168wPr165GUlFTaTRMRERFRMZV60mhgYAAXFxfI5fLSbpqIiIiIikmS0dPTpk3D5MmTkZmZKUXzRERERFREkjxGcMmSJbhy5QqcnJzg4uICc3Nzpenx8fFShEVEREREhZAkaezatWuJ17l06VJ8/vnnSE1NRb169RAdHY1WrVppXe6vv/6Cn58fvLy8kJiYWOJxEREREVUEkiSNM2fOLNH6YmNjMWbMGCxduhQtW7bEihUrEBAQgPPnz6NGjRqFLvfw4UOEhoaiffv2uHPnTonGRERERFSRSHJNIwA8ePAA3333ndK1jfHx8bh161aR61q0aBEGDx6MIUOGwNPTE9HR0XB2dsayZcs0Ljd06FCEhITA19e3WOtARERE9KaQJGk8e/Ys3N3dMX/+fCxcuBAPHjwAAGzfvh2TJ08uUl05OTk4ffo0OnXqpFTeqVMnHDlypNDl1qxZg6tXr+rc65mdnY2srCylFxEREdGbQpKkcdy4cRg4cCAuX76s9KzpgIAAHDp0qEh13bt3D3K5HPb29krl9vb2SEtLU7vM5cuXMWnSJGzYsAEGBrqdoY+KioK1tbXi5ezsXKQ4iYiIiMozSZLGkydPYujQoSrl1apVKzTR00Ymkym9F0KolAEvn3EdEhKCiIgIuLu761z/5MmT8fDhQ8UrJSWlWHESERERlUeSDIQxMTFRe3r34sWLqFq1apHqqlKlCvT19VWSzfT0dJXeRwB49OgRTp06hYSEBIwYMQIAkJeXByEEDAwM8Mcff6Bdu3YqyxkbG8PY2LhIsRERERFVFJL0NAYHByMyMhK5ubkAXvYSJicnY9KkSejRo0eR6jIyMkLjxo0RFxenVB4XF4cWLVqozG9lZYVz584hMTFR8QoPD4eHhwcSExPRrFmz4q8YERERUQUlSU/jwoUL0blzZ9jZ2eHZs2fw8/NDWloafH19MXfu3CLXN27cOPTv3x9NmjSBr68vVq5cieTkZISHhwN4eWr51q1bWLduHfT09ODl5aW0vJ2dHUxMTFTKiYiIiOglSZJGKysr/Pnnn9i3bx/i4+ORl5eHRo0aoUOHDsWqr3fv3sjIyEBkZCRSU1Ph5eWF3bt3w8XFBQCQmpqK5OTkklwFIiIiojeKTAghSrvRGzduwNXVtbSbLVFZWVmwtrbGw4cPYWVlVaJ1u076pUTrq+huzAuUOgR6Bdzfdcd9vfzj/q6717W/v87f74pOkmsaa9asiXfeeQcrVqxQ3NibiIiIiMouSZLGU6dOwdfXF3PmzIGTkxOCg4OxefNmZGdnSxEOEREREWkhSdLYqFEjfP7550hOTsavv/4KOzs7DB06FHZ2dhg0aJAUIRERERGRBpI9exp4eaudtm3b4ttvv8WePXtQs2ZNrF27VsqQiIiIiEgNSZPGlJQULFiwAA0aNEDTpk1hbm6Or7/+WsqQiIiIiEgNSW65s3LlSmzYsAF//fUXPDw80LdvX+zYsaPcj6gmIiIiqqgkSRpnz56NPn364Msvv0SDBg2kCIGIiIiIikCSpDE5ORkymUyKpomIiIioGCRJGg8fPqxxeuvWrUspEiIiIiLShSRJY5s2bVTK/tvzKJfLSzEaIiIiItJGktHT9+/fV3qlp6fjt99+Q9OmTfHHH39IERIRERERaSBJT6O1tbVKWceOHWFsbIyxY8fi9OnTEkRFRERERIWR9D6NBVWtWhUXL16UOgwiIiIiKkCSnsazZ88qvRdCIDU1FfPmzUP9+vWlCImIiIiINJAkaWzQoAFkMhmEEErlzZs3x+rVq6UIiYiIiIg0kCRpvH79utJ7PT09VK1aFSYmJlKEQ0RERERaSJI0uri4SNEsERERERWTZANhDh48iC5duqBWrVqoXbs2goKCtN70m4iIiIikIUnSuH79enTo0AFmZmYYNWoURowYAVNTU7Rv3x4bN26UIiQiIiIi0kCS09Nz587FggULMHbsWEXZ6NGjsWjRIsyePRshISFShEVEREREhZAkabx27Rq6dOmiUh4UFIQpU6ZIEBER0ZvFddIvUodQbtyYFyh1CERlgiSnp52dnbF3716V8r1798LZ2VmCiIiIiIhIE0l6GsePH49Ro0YhMTERLVq0gEwmw59//omYmBh8+eWXUoRERERERBpIkjQOGzYMDg4O+OKLL/Djjz8CADw9PREbG4vg4GApQiIiIiIiDSRJGgGgW7du6Natm1TNExEREVERSHafRiIiIiIqP5g0EhEREZFWTBqJiIiISCsmjURERESklSRJY2RkJJ4+fapS/uzZM0RGRkoQERERERFpIknSGBERgcePH6uUP336FBERERJERERERESaSJI0CiEgk8lUys+cOQMbGxsJIiIiIiIiTUr1Po2VK1eGTCaDTCaDu7u7UuIol8vx+PFjhIeHl2ZIRERERKSDUk0ao6OjIYTAoEGDEBERAWtra8U0IyMjuLq6wtfXtzRDIiIiIiIdlGrSOGDAAACAm5sbWrRoAUNDw9JsnoiIiIiKSZLHCPr5+SEvLw+XLl1Ceno68vLylKa3bt1airCI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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Création du barplot\n",
|
||
"plt.bar(company_lazy_customers[\"number_compagny\"], company_lazy_customers[\"no_campaign_opened\"])\n",
|
||
"\n",
|
||
"# Ajout de titres et d'étiquettes\n",
|
||
"plt.xlabel('Company')\n",
|
||
"plt.ylabel(\"Part de clients n'ayant ouvert aucun mail\")\n",
|
||
"plt.title(\"Part de clients n'ayant ouvert aucun mail pour les compagnies de spectacle\")\n",
|
||
"\n",
|
||
"# Affichage du barplot\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 203,
|
||
"id": "c48015c2-6451-4089-93b7-6d55d3b2e553",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>nb_campaigns</th>\n",
|
||
" <th>nb_campaigns_opened</th>\n",
|
||
" <th>ratio_campaigns_opened</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>734772</td>\n",
|
||
" <td>126151.0</td>\n",
|
||
" <td>0.171687</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>342396</td>\n",
|
||
" <td>129833.0</td>\n",
|
||
" <td>0.379190</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>3168123</td>\n",
|
||
" <td>810722.0</td>\n",
|
||
" <td>0.255900</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>3218569</td>\n",
|
||
" <td>793581.0</td>\n",
|
||
" <td>0.246563</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>2427043</td>\n",
|
||
" <td>723846.0</td>\n",
|
||
" <td>0.298242</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_compagny nb_campaigns nb_campaigns_opened ratio_campaigns_opened\n",
|
||
"0 10 734772 126151.0 0.171687\n",
|
||
"1 11 342396 129833.0 0.379190\n",
|
||
"2 12 3168123 810722.0 0.255900\n",
|
||
"3 13 3218569 793581.0 0.246563\n",
|
||
"4 14 2427043 723846.0 0.298242"
|
||
]
|
||
},
|
||
"execution_count": 203,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# taux d'ouverture des campaigns\n",
|
||
"\n",
|
||
"company_campaigns_stats = campaigns_information_spectacle.groupby(\"number_compagny\")[[\"nb_campaigns\", \"nb_campaigns_opened\"]].sum().reset_index()\n",
|
||
"company_campaigns_stats[\"ratio_campaigns_opened\"] = company_campaigns_stats[\"nb_campaigns_opened\"] / company_campaigns_stats[\"nb_campaigns\"]\n",
|
||
"company_campaigns_stats"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"id": "d06ab865-4832-4fe9-918b-e5ff72bebee4",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"ename": "NameError",
|
||
"evalue": "name 'company_campaigns_stats' is not defined",
|
||
"output_type": "error",
|
||
"traceback": [
|
||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
|
||
"Cell \u001b[0;32mIn[15], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Création du barplot\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m plt\u001b[38;5;241m.\u001b[39mbar(\u001b[43mcompany_campaigns_stats\u001b[49m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnumber_compagny\u001b[39m\u001b[38;5;124m\"\u001b[39m], \u001b[38;5;241m100\u001b[39m \u001b[38;5;241m*\u001b[39m company_campaigns_stats[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mratio_campaigns_opened\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;03m# Ajout de titres et d'étiquettes\u001b[39;00m\n\u001b[1;32m 5\u001b[0m plt\u001b[38;5;241m.\u001b[39mxlabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mCompany\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
|
||
"\u001b[0;31mNameError\u001b[0m: name 'company_campaigns_stats' is not defined"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Création du barplot\n",
|
||
"plt.bar(company_campaigns_stats[\"number_compagny\"], 100 * company_campaigns_stats[\"ratio_campaigns_opened\"])\n",
|
||
"\n",
|
||
"# Ajout de titres et d'étiquettes\n",
|
||
"plt.xlabel('Company')\n",
|
||
"plt.ylabel(\"Taux d'ouverture (%)\")\n",
|
||
"plt.title(\"Taux d'ouverture des campagnes de mails pour les compagnies de spectacle\")\n",
|
||
"\n",
|
||
"# Affichage du barplot\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 219,
|
||
"id": "5c37e063-a717-4a8c-828e-b386b87e8409",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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rqhRo0aRN/z555/nuJ5p0KBBqFGjBiZOnIgqVapApVIhPDwcDRo0APD6Cy4jIiIwd+7cIm+XCiisl7Yr0NT3F21XQEREH6BC/yhunTp1UKdOnbfesKmpaY71GBsbw8rKSmofPXo0/P394ezsDGdnZ/j7+8PIyAh9+/Z96+0TERER5afA1yjNmTMHiYmJBep78uRJ7Nmzp8hFZZkwYQJGjx4NHx8fuLm54e+//8aBAwdgamr61usmIiIiyk+BR5SuXr0KBwcH9OjRA506dYKbmxusra0BAOnp6bh69Sr+/PNPrF+/Ho8ePcLatWsLXczRo0c1phUKBXx9feHr61vodRERERG9rQIHpbVr1+LixYv473//i379+iE+Ph46OjpQKpVISkoCADRo0ABff/01Bg4cyAuqiYiI6J1XqGuU6tatixUrVmD58uW4ePEi7t69i1evXqFChQqoX78+KlSoUFJ1EhEREZW6Ql/MDbw+JVavXj3Uq1evuOshIiIiKjMK/VtvRERERB+KIo0oEZW2r0KitF1CiRj1+HmxrKe+2qJY1kNERJo4okREREQkg0GJiIiISEaRgtLjx49l5128eLHIxRARERGVJUUKSq6urti5c2eO9vnz58Pd3f2tiyIiIiIqC4oUlCZOnIhevXph+PDhePXqFf7++2+0aNECP/74I375hT9eSkRERO+HIgWlcePG4cSJE/jrr79Qt25d1K1bF4aGhrh48SI6depU3DUSERERaUWRL+auUqUKateujbt37yIhIQE9e/aEra1tcdZGREREpFVFCkpZI0m3b9/GxYsXERwcjFGjRqFnz5549uxZcddIREREpBVFCkotWrRAr169cPz4cdSsWRNDhgzBuXPn8ODBA7i6uhZ3jURERERaUaRv5j5w4AA8PDw02qpWrYo///wTs2fPLpbCiIiIiLStSCNK2UOStLJy5TBt2rS3KoiIiIiorCjSiNKMGTPynP/DDz8UqRgiIiKisqRIQWn79u0a02lpaYiOjoauri6qVq3KoERERETvhSIFpXPnzuVoS0hIgLe3N7p27frWRRERERGVBcX2o7hmZmaYMWMGr1EiIiKi90axBSUAeP78OeLj44tzlURERERaU6RTb4sXL9aYFkLg0aNHWLduHdq0aVMshRERERFpW5GC0sKFCzWmy5UrB2trawwcOBCTJ08u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REREMhiU3jHHjh1Dx44dYW9vD4VCgR07dmjMF0LA19cX9vb2MDQ0hKenJ65cuaKdYt9x+e3rbdu2oXXr1qhQoQIUCgXOnz+vlTrfdXnt57S0NEycOBGurq4wNjaGvb09BgwYgIcPH2qv4HdUfu9nX19f1KhRA8bGxihfvjxatmyJkydPaqfYd1h++/lNw4YNg0KhQFBQUKnVR4XHoPSOSUxMRL169bB06dJc58+bNw+BgYFYunQpoqKioFKp0KpVK7x48aKUK3335bevExMT0axZM8yZM6eUK3u/5LWfk5KScPbsWUybNg1nz57Ftm3bcPPmTXTq1EkLlb7b8ns/V69eHUuXLsWlS5fw559/wtHREV5eXvjnn39KudJ3W377OcuOHTtw8uRJrf88BxWAoHcWALF9+3ZpOjMzU6hUKjFnzhypLTk5WZibm4vly5drocL3R/Z9/abo6GgBQJw7d65Ua3of5bWfs5w6dUoAEPfu3Sudot5DBdnP8fHxAoA4ePBg6RT1HpLbzw8ePBAVK1YUly9fFg4ODmLhwoWlXhsVHEeU3iPR0dGIjY2Fl5eX1KZUKuHh4YHIyEgtVkZUfOLj46FQKD6433AsTampqfjpp59gbm6OevXqabuc90pmZib69++P//znP6hdu7a2y6ECeCe+mZsKJjY2FgBga2ur0W5ra4t79+5poySiYpWcnIxJkyahb9++/GHRErB792707t0bSUlJsLOzQ3h4OCpUqKDtst4rc+fOha6uLr799lttl0IFxBGl95BCodCYFkLkaCN616SlpaF3797IzMzEsmXLtF3Oe6l58+Y4f/48IiMj0aZNG/Ts2RNxcXHaLuu9cebMGSxatAghISE8Jr9DGJTeIyqVCsD/jSxliYuLyzHKRPQuSUtLQ8+ePREdHY3w8HCOJpUQY2NjVKtWDR9//DFWrVoFXV1drFq1SttlvTf++OMPxMXFoXLlytDV1YWuri7u3buHcePGwdHRUdvlkQwGpfeIk5MTVCoVwsPDpbbU1FRERESgadOmWqyMqOiyQtKtW7dw8OBBWFlZabukD4YQAikpKdou473Rv39/XLx4EefPn5ce9vb2+M9//oP9+/druzySwWuU3jEvX77E7du3peno6GicP38elpaWqFy5MkaPHg1/f384OzvD2dkZ/v7+MDIyQt++fbVY9bspv339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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# création d'un barplot permettant de visualiser les 2 indicateurs sur le même graphique\n",
|
||
"\n",
|
||
"# Création du premier barplot\n",
|
||
"plt.bar(company_campaigns_stats[\"number_compagny\"], 100 * company_campaigns_stats[\"ratio_campaigns_opened\"],\n",
|
||
" label = \"taux d'ouverture\", alpha = 0.7)\n",
|
||
"\n",
|
||
"# Création du deuxième barplot à côté du premier\n",
|
||
"bar_width = 0.4 # Largeur des barres\n",
|
||
"indices2 = company_campaigns_stats[\"number_compagny\"] + bar_width\n",
|
||
"plt.bar(indices2, 100 * (1 - company_lazy_customers[\"no_campaign_opened\"]), \n",
|
||
" label='Part de clients ouvrant des mails', alpha=0.7, width=bar_width)\n",
|
||
"\n",
|
||
"# Ajout des étiquettes et de la légende\n",
|
||
"plt.xlabel('Compagnie')\n",
|
||
"plt.ylabel('Taux (%)')\n",
|
||
"plt.title('Lien entre taux d ouverture des mails et nombre de clients actifs')\n",
|
||
"plt.legend()\n",
|
||
"\n",
|
||
"# Affichage du graphique\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 102,
|
||
"id": "4fdf4134-d32c-42c3-ab4f-36ad4783332c",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>nb_tickets</th>\n",
|
||
" <th>nb_purchases</th>\n",
|
||
" <th>total_amount</th>\n",
|
||
" <th>nb_suppliers</th>\n",
|
||
" <th>vente_internet_max</th>\n",
|
||
" <th>purchase_date_min</th>\n",
|
||
" <th>purchase_date_max</th>\n",
|
||
" <th>time_between_purchase</th>\n",
|
||
" <th>nb_tickets_internet</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>gender_label</th>\n",
|
||
" <th>gender_female</th>\n",
|
||
" <th>gender_male</th>\n",
|
||
" <th>gender_other</th>\n",
|
||
" <th>country_fr</th>\n",
|
||
" <th>nb_campaigns</th>\n",
|
||
" <th>nb_campaigns_opened</th>\n",
|
||
" <th>time_to_open</th>\n",
|
||
" <th>y_has_purchased</th>\n",
|
||
" <th>number_company</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10_299341</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>male</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>12.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>0 days 05:47:26.333333333</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>10_63788</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>62.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>393.205891</td>\n",
|
||
" <td>281.017639</td>\n",
|
||
" <td>112.188252</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>female</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0 days 05:13:51</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>10_759946</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>10_20653</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>male</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>11.0</td>\n",
|
||
" <td>10.0</td>\n",
|
||
" <td>1 days 00:45:54</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>10_824705</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>other</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>5 rows × 41 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" customer_id nb_tickets nb_purchases total_amount nb_suppliers \\\n",
|
||
"0 10_299341 0.0 0.0 0.0 0.0 \n",
|
||
"1 10_63788 3.0 2.0 62.0 1.0 \n",
|
||
"2 10_759946 0.0 0.0 0.0 0.0 \n",
|
||
"3 10_20653 0.0 0.0 0.0 0.0 \n",
|
||
"4 10_824705 0.0 0.0 0.0 0.0 \n",
|
||
"\n",
|
||
" vente_internet_max purchase_date_min purchase_date_max \\\n",
|
||
"0 0.0 NaN NaN \n",
|
||
"1 1.0 393.205891 281.017639 \n",
|
||
"2 0.0 NaN NaN \n",
|
||
"3 0.0 NaN NaN \n",
|
||
"4 0.0 NaN NaN \n",
|
||
"\n",
|
||
" time_between_purchase nb_tickets_internet ... gender_label \\\n",
|
||
"0 NaN 0.0 ... male \n",
|
||
"1 112.188252 3.0 ... female \n",
|
||
"2 NaN 0.0 ... other \n",
|
||
"3 NaN 0.0 ... male \n",
|
||
"4 NaN 0.0 ... other \n",
|
||
"\n",
|
||
" gender_female gender_male gender_other country_fr nb_campaigns \\\n",
|
||
"0 0 1 0 1.0 12.0 \n",
|
||
"1 1 0 0 1.0 3.0 \n",
|
||
"2 0 0 1 NaN 0.0 \n",
|
||
"3 0 1 0 1.0 11.0 \n",
|
||
"4 0 0 1 NaN 0.0 \n",
|
||
"\n",
|
||
" nb_campaigns_opened time_to_open y_has_purchased \\\n",
|
||
"0 3.0 0 days 05:47:26.333333333 0.0 \n",
|
||
"1 1.0 0 days 05:13:51 1.0 \n",
|
||
"2 0.0 NaN 0.0 \n",
|
||
"3 10.0 1 days 00:45:54 0.0 \n",
|
||
"4 0.0 NaN 0.0 \n",
|
||
"\n",
|
||
" number_company \n",
|
||
"0 10 \n",
|
||
"1 10 \n",
|
||
"2 10 \n",
|
||
"3 10 \n",
|
||
"4 10 \n",
|
||
"\n",
|
||
"[5 rows x 41 columns]"
|
||
]
|
||
},
|
||
"execution_count": 102,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# same statistics on the train set\n",
|
||
"\n",
|
||
"train_set_spectacle.head()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 105,
|
||
"id": "14ff9886-742c-4a60-8824-5d31f7c76aea",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"train_set_spectacle[\"no_campaign_opened\"] = train_set_spectacle[\"nb_campaigns_opened\"]==0"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 108,
|
||
"id": "16285593-a0fa-461c-aeb8-c64ffdf9a0d6",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_company</th>\n",
|
||
" <th>y_has_purchased</th>\n",
|
||
" <th>no_campaign_opened</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>91.227517</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>62.343470</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>84.608320</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>78.598682</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>100.000000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>100.000000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>90.124799</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>94.158651</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>72.903385</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>73.549517</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_company y_has_purchased no_campaign_opened\n",
|
||
"0 10 0.0 91.227517\n",
|
||
"1 10 1.0 62.343470\n",
|
||
"2 11 0.0 84.608320\n",
|
||
"3 11 1.0 78.598682\n",
|
||
"4 12 0.0 100.000000\n",
|
||
"5 12 1.0 100.000000\n",
|
||
"6 13 0.0 90.124799\n",
|
||
"7 13 1.0 94.158651\n",
|
||
"8 14 0.0 72.903385\n",
|
||
"9 14 1.0 73.549517"
|
||
]
|
||
},
|
||
"execution_count": 108,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"company_lazy_customers = train_set_spectacle.groupby([\"number_company\", \"y_has_purchased\"])[\"no_campaign_opened\"].mean().reset_index()\n",
|
||
"company_lazy_customers[\"no_campaign_opened\"] = 100 * company_lazy_customers[\"no_campaign_opened\"] \n",
|
||
"company_lazy_customers"
|
||
]
|
||
},
|
||
{
|
||
"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": [
|
||
"<Figure size 1000x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"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)\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 111,
|
||
"id": "b391f5b2-2424-4758-8ae5-f0fdacdfae66",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>customer_id</th>\n",
|
||
" <th>nb_tickets</th>\n",
|
||
" <th>nb_purchases</th>\n",
|
||
" <th>total_amount</th>\n",
|
||
" <th>nb_suppliers</th>\n",
|
||
" <th>vente_internet_max</th>\n",
|
||
" <th>purchase_date_min</th>\n",
|
||
" <th>purchase_date_max</th>\n",
|
||
" <th>time_between_purchase</th>\n",
|
||
" <th>nb_tickets_internet</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>gender_female</th>\n",
|
||
" <th>gender_male</th>\n",
|
||
" <th>gender_other</th>\n",
|
||
" <th>country_fr</th>\n",
|
||
" <th>nb_campaigns</th>\n",
|
||
" <th>nb_campaigns_opened</th>\n",
|
||
" <th>time_to_open</th>\n",
|
||
" <th>y_has_purchased</th>\n",
|
||
" <th>number_company</th>\n",
|
||
" <th>no_campaign_opened</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10_299341</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>12.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>0 days 05:47:26.333333333</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>10_63788</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>62.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>393.205891</td>\n",
|
||
" <td>281.017639</td>\n",
|
||
" <td>112.188252</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0 days 05:13:51</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>10_759946</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>10_20653</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>11.0</td>\n",
|
||
" <td>10.0</td>\n",
|
||
" <td>1 days 00:45:54</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>10_824705</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>697292</th>\n",
|
||
" <td>14_119950</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>697293</th>\n",
|
||
" <td>14_938</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>697294</th>\n",
|
||
" <td>14_5004707</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>2 days 16:42:51</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>False</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>697295</th>\n",
|
||
" <td>14_108184</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>697296</th>\n",
|
||
" <td>14_4663981</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>14</td>\n",
|
||
" <td>True</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>697297 rows × 42 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" customer_id nb_tickets nb_purchases total_amount nb_suppliers \\\n",
|
||
"0 10_299341 0.0 0.0 0.0 0.0 \n",
|
||
"1 10_63788 3.0 2.0 62.0 1.0 \n",
|
||
"2 10_759946 0.0 0.0 0.0 0.0 \n",
|
||
"3 10_20653 0.0 0.0 0.0 0.0 \n",
|
||
"4 10_824705 0.0 0.0 0.0 0.0 \n",
|
||
"... ... ... ... ... ... \n",
|
||
"697292 14_119950 0.0 0.0 0.0 0.0 \n",
|
||
"697293 14_938 0.0 0.0 0.0 0.0 \n",
|
||
"697294 14_5004707 0.0 0.0 0.0 0.0 \n",
|
||
"697295 14_108184 0.0 0.0 0.0 0.0 \n",
|
||
"697296 14_4663981 0.0 0.0 0.0 0.0 \n",
|
||
"\n",
|
||
" vente_internet_max purchase_date_min purchase_date_max \\\n",
|
||
"0 0.0 NaN NaN \n",
|
||
"1 1.0 393.205891 281.017639 \n",
|
||
"2 0.0 NaN NaN \n",
|
||
"3 0.0 NaN NaN \n",
|
||
"4 0.0 NaN NaN \n",
|
||
"... ... ... ... \n",
|
||
"697292 0.0 NaN NaN \n",
|
||
"697293 0.0 NaN NaN \n",
|
||
"697294 0.0 NaN NaN \n",
|
||
"697295 0.0 NaN NaN \n",
|
||
"697296 0.0 NaN NaN \n",
|
||
"\n",
|
||
" time_between_purchase nb_tickets_internet ... gender_female \\\n",
|
||
"0 NaN 0.0 ... 0 \n",
|
||
"1 112.188252 3.0 ... 1 \n",
|
||
"2 NaN 0.0 ... 0 \n",
|
||
"3 NaN 0.0 ... 0 \n",
|
||
"4 NaN 0.0 ... 0 \n",
|
||
"... ... ... ... ... \n",
|
||
"697292 NaN 0.0 ... 0 \n",
|
||
"697293 NaN 0.0 ... 0 \n",
|
||
"697294 NaN 0.0 ... 0 \n",
|
||
"697295 NaN 0.0 ... 0 \n",
|
||
"697296 NaN 0.0 ... 0 \n",
|
||
"\n",
|
||
" gender_male gender_other country_fr nb_campaigns \\\n",
|
||
"0 1 0 1.0 12.0 \n",
|
||
"1 0 0 1.0 3.0 \n",
|
||
"2 0 1 NaN 0.0 \n",
|
||
"3 1 0 1.0 11.0 \n",
|
||
"4 0 1 NaN 0.0 \n",
|
||
"... ... ... ... ... \n",
|
||
"697292 1 0 1.0 0.0 \n",
|
||
"697293 1 0 1.0 0.0 \n",
|
||
"697294 1 0 1.0 2.0 \n",
|
||
"697295 0 1 1.0 0.0 \n",
|
||
"697296 0 1 NaN 0.0 \n",
|
||
"\n",
|
||
" nb_campaigns_opened time_to_open y_has_purchased \\\n",
|
||
"0 3.0 0 days 05:47:26.333333333 0.0 \n",
|
||
"1 1.0 0 days 05:13:51 1.0 \n",
|
||
"2 0.0 NaN 0.0 \n",
|
||
"3 10.0 1 days 00:45:54 0.0 \n",
|
||
"4 0.0 NaN 0.0 \n",
|
||
"... ... ... ... \n",
|
||
"697292 0.0 NaN 0.0 \n",
|
||
"697293 0.0 NaN 0.0 \n",
|
||
"697294 1.0 2 days 16:42:51 0.0 \n",
|
||
"697295 0.0 NaN 0.0 \n",
|
||
"697296 0.0 NaN 0.0 \n",
|
||
"\n",
|
||
" number_company no_campaign_opened \n",
|
||
"0 10 False \n",
|
||
"1 10 False \n",
|
||
"2 10 True \n",
|
||
"3 10 False \n",
|
||
"4 10 True \n",
|
||
"... ... ... \n",
|
||
"697292 14 True \n",
|
||
"697293 14 True \n",
|
||
"697294 14 False \n",
|
||
"697295 14 True \n",
|
||
"697296 14 True \n",
|
||
"\n",
|
||
"[697297 rows x 42 columns]"
|
||
]
|
||
},
|
||
"execution_count": 111,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# part de mails ouverts de chaque compagnie\n",
|
||
"\n",
|
||
"train_set_spectacle"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 112,
|
||
"id": "dc8cfd36-0eb2-4ef3-877d-626fd0a9ced4",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>nb_campaigns</th>\n",
|
||
" <th>nb_campaigns_opened</th>\n",
|
||
" <th>ratio_campaigns_opened</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>734772</td>\n",
|
||
" <td>126151.0</td>\n",
|
||
" <td>0.171687</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>342396</td>\n",
|
||
" <td>129833.0</td>\n",
|
||
" <td>0.379190</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>3168123</td>\n",
|
||
" <td>810722.0</td>\n",
|
||
" <td>0.255900</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>3218569</td>\n",
|
||
" <td>793581.0</td>\n",
|
||
" <td>0.246563</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>2427043</td>\n",
|
||
" <td>723846.0</td>\n",
|
||
" <td>0.298242</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_compagny nb_campaigns nb_campaigns_opened ratio_campaigns_opened\n",
|
||
"0 10 734772 126151.0 0.171687\n",
|
||
"1 11 342396 129833.0 0.379190\n",
|
||
"2 12 3168123 810722.0 0.255900\n",
|
||
"3 13 3218569 793581.0 0.246563\n",
|
||
"4 14 2427043 723846.0 0.298242"
|
||
]
|
||
},
|
||
"execution_count": 112,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# taux d'ouverture des campaigns\n",
|
||
"\n",
|
||
"company_campaigns_stats = campaigns_information_spectacle.groupby(\"number_compagny\")[[\"nb_campaigns\", \"nb_campaigns_opened\"]].sum().reset_index()\n",
|
||
"company_campaigns_stats[\"ratio_campaigns_opened\"] = company_campaigns_stats[\"nb_campaigns_opened\"] / company_campaigns_stats[\"nb_campaigns\"]\n",
|
||
"company_campaigns_stats"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 119,
|
||
"id": "30b28426-088a-4153-b2aa-c20f11b2b771",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_company</th>\n",
|
||
" <th>y_has_purchased</th>\n",
|
||
" <th>nb_campaigns</th>\n",
|
||
" <th>nb_campaigns_opened</th>\n",
|
||
" <th>perc_campaigns_opened</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>61668.0</td>\n",
|
||
" <td>8240.0</td>\n",
|
||
" <td>13.361873</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>4361.0</td>\n",
|
||
" <td>2002.0</td>\n",
|
||
" <td>45.906902</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>37799.0</td>\n",
|
||
" <td>12286.0</td>\n",
|
||
" <td>32.503505</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>8824.0</td>\n",
|
||
" <td>4493.0</td>\n",
|
||
" <td>50.917951</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>505008.0</td>\n",
|
||
" <td>118071.0</td>\n",
|
||
" <td>23.380026</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>45824.0</td>\n",
|
||
" <td>17233.0</td>\n",
|
||
" <td>37.606931</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1176373.0</td>\n",
|
||
" <td>313379.0</td>\n",
|
||
" <td>26.639425</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>129157.0</td>\n",
|
||
" <td>47987.0</td>\n",
|
||
" <td>37.154006</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_company y_has_purchased nb_campaigns nb_campaigns_opened \\\n",
|
||
"0 10 0.0 61668.0 8240.0 \n",
|
||
"1 10 1.0 4361.0 2002.0 \n",
|
||
"2 11 0.0 37799.0 12286.0 \n",
|
||
"3 11 1.0 8824.0 4493.0 \n",
|
||
"4 12 0.0 0.0 0.0 \n",
|
||
"5 12 1.0 0.0 0.0 \n",
|
||
"6 13 0.0 505008.0 118071.0 \n",
|
||
"7 13 1.0 45824.0 17233.0 \n",
|
||
"8 14 0.0 1176373.0 313379.0 \n",
|
||
"9 14 1.0 129157.0 47987.0 \n",
|
||
"\n",
|
||
" perc_campaigns_opened \n",
|
||
"0 13.361873 \n",
|
||
"1 45.906902 \n",
|
||
"2 32.503505 \n",
|
||
"3 50.917951 \n",
|
||
"4 NaN \n",
|
||
"5 NaN \n",
|
||
"6 23.380026 \n",
|
||
"7 37.606931 \n",
|
||
"8 26.639425 \n",
|
||
"9 37.154006 "
|
||
]
|
||
},
|
||
"execution_count": 119,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"company_campaigns_stats = train_set_spectacle.groupby([\"number_company\", \"y_has_purchased\"])[[\"nb_campaigns\", \"nb_campaigns_opened\"]].sum().reset_index()\n",
|
||
"company_campaigns_stats[\"perc_campaigns_opened\"] = 100* (company_campaigns_stats[\"nb_campaigns_opened\"] / company_campaigns_stats[\"nb_campaigns\"])\n",
|
||
"company_campaigns_stats"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 120,
|
||
"id": "9cebe912-fce1-4f4f-9d87-9649605296c8",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_company</th>\n",
|
||
" <th>y_has_purchased</th>\n",
|
||
" <th>nb_campaigns</th>\n",
|
||
" <th>nb_campaigns_opened</th>\n",
|
||
" <th>perc_campaigns_opened</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>61668.0</td>\n",
|
||
" <td>8240.0</td>\n",
|
||
" <td>13.361873</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>4361.0</td>\n",
|
||
" <td>2002.0</td>\n",
|
||
" <td>45.906902</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>37799.0</td>\n",
|
||
" <td>12286.0</td>\n",
|
||
" <td>32.503505</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>8824.0</td>\n",
|
||
" <td>4493.0</td>\n",
|
||
" <td>50.917951</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>505008.0</td>\n",
|
||
" <td>118071.0</td>\n",
|
||
" <td>23.380026</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>45824.0</td>\n",
|
||
" <td>17233.0</td>\n",
|
||
" <td>37.606931</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1176373.0</td>\n",
|
||
" <td>313379.0</td>\n",
|
||
" <td>26.639425</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>129157.0</td>\n",
|
||
" <td>47987.0</td>\n",
|
||
" <td>37.154006</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_company y_has_purchased nb_campaigns nb_campaigns_opened \\\n",
|
||
"0 10 0.0 61668.0 8240.0 \n",
|
||
"1 10 1.0 4361.0 2002.0 \n",
|
||
"2 11 0.0 37799.0 12286.0 \n",
|
||
"3 11 1.0 8824.0 4493.0 \n",
|
||
"6 13 0.0 505008.0 118071.0 \n",
|
||
"7 13 1.0 45824.0 17233.0 \n",
|
||
"8 14 0.0 1176373.0 313379.0 \n",
|
||
"9 14 1.0 129157.0 47987.0 \n",
|
||
"\n",
|
||
" perc_campaigns_opened \n",
|
||
"0 13.361873 \n",
|
||
"1 45.906902 \n",
|
||
"2 32.503505 \n",
|
||
"3 50.917951 \n",
|
||
"6 23.380026 \n",
|
||
"7 37.606931 \n",
|
||
"8 26.639425 \n",
|
||
"9 37.154006 "
|
||
]
|
||
},
|
||
"execution_count": 120,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"company_campaigns_stats = company_campaigns_stats[company_campaigns_stats[\"number_company\"]!=12]\n",
|
||
"company_campaigns_stats"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 123,
|
||
"id": "8418531b-4f30-4d96-8035-f3630c789d6f",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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f39/VaxYUdOnT5dhGDbzNX8/STtGx40bp/Hjx6tw4cLy9fVVtWrVtGnTptsuh73nmdtt89jY2Ft+35L+vf3up59+0oEDB26/gp2AP3vnsAMHDqhjx47WE+yOHTv0/vvv6/fff9cXX3zh8PQmTJigzZs3q3379tq2bZvy5s2rd955R2vWrNGyZcsUHh6e6WevXLmip556SseOHdPIkSNVvHhx/fDDDzYHeJqYmBib/2gMw1DLli21cuVKDR06VDVr1tTOnTs1bNgwbdy4URs3bpSHh4fdy1GuXDlVqFBBM2bM0LPPPmszLDY2ViEhIWrcuLGkfy/jVq9eXQULFtQHH3ygsLAw/fjjj+rXr59OnTqlYcOG2Xx+6NChqlatmj755BPlyZNHlSpV0tmzZ/X6669rypQpqlixoqQ7/4u/efohISGaPXu2unTpohYtWmjmzJlyc3PTp59+qgYNGujHH39U3bp1M53e8ePHVbt2bfn4+Gjq1KkKCQnR3Llz1bdv39vW4uh2iY+PV//+/RUTE6OwsDB99dVXevnll3Xt2jUNGjRIkpScnKwzZ85o0KBBKlCggK5du6affvpJrVu31owZM9SlSxeH1ldajRs2bNDbb7+typUra/369WrUqFG6ce3d1mPGjFFMTIzefPNN1apVS9evX9fvv/+eaTg0e/3111WnTh3Fxsbq4MGDGjRokDp06CBXV1eVK1dOc+fO1fbt2/X666/Lz8/P5stcVh7Td7ocly9fVu3atfX333/r9ddfV9myZbV79269/fbb2rVrl3766Sebv27+8MMPiouL07vvvitfX1+NGTNGrVq10r59+1SkSBE1bdpUISEhmjFjRrp9NTY2VhUrVlTZsmUlSXPmzFGnTp1Uv359zZ07V8nJyRozZoyio6O1cuVKPfHEE6pZs6YqVKigKVOmqEOHDjbTmzx5sipXrmz9crR69Wo1bNhQVatW1SeffKKAgADNmzdPTz/9tC5fvmz90jpgwADNmjVL7733nipUqKCkpCT99ttvOn36tF3r+tlnn1W9evU0Z84cHTlyRG+++aaio6O1c+dO5c2bV9K/27ZatWp67rnnFBAQoIMHD2r8+PF64okntGvXLrm5udlMs3Xr1nrmmWfUq1evdF+abye7l/vo0aOqXLmyrl+/bt1HTp8+rR9//FFnz55VaGioTp48qerV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9+2MrFq1So888oiqVKli096tWzcZhpHuakPjxo1ttvutjhvp39v6bpaV55+1a9dKktq3b28zvVudN83/95UtW1ZXr15Nd5vgzew91tKukLZv317ffPONjh49muk0b5Yd58eMOFJfx44dba5IFypUSNWrV7fW6sj+a89+eCuXLl3Sa6+9pqJFi8rV1VWurq7y9fVVUlKSzf5wJ/O523V67tw5Xb582Xo1yBFPPvmk8uXLl6591apVeuqppxQQEGD9/+Xtt9/W6dOnb7mfpmnSpIlcXFys79PuBMjoVsWb3e4848g2t0dISIjdx0hOIyjloMOHD6tmzZo6evSoPvroI/3yyy+Ki4uzfnFw9D/6mzVp0kShoaG6evWqBgwYYHNgZOb06dMZXn4OCwuz67Ourq4KDg62abdYLAoLC7P79pebBQYGqnnz5vryyy+VkpIi6d/bfKpUqaJHH33UOt8bN25o0qRJcnNzs3ml3Zpnfn7gVrcfZgXz9NPuf27btm26GkePHi3DMHTmzJlMp5fZdsnsVgHzZx3ZLhlt67S2tHEXLFig9u3bq0CBApo9e7Y2btyouLg49ejRQ1evXr1tTZnVGBQUdMtaHNnWQ4cO1bhx47Rp0yY1atRIQUFBqlu3rrZu3WpXTYGBgTbv3d3db9mettxZfUzf6XL8888/2rlzZ7r15OfnJ8Mw0h0T5nUvSR4eHjb1Pvroo6pcubJmzJghSUpJSdHs2bPVokUL63pJ20cyOsYiIiKUmpqqs2fPWqffs2dPzZkzR+fOndPJkyf1zTff6LnnnrPeDpp27AwaNCjdsvTu3VvS/23ziRMn6rXXXtPChQtVp04dBQYGqmXLltq/f/9t1vK/Mtv305YpNTVV9evX14IFCzR48GCtXLlSW7ZssX5Rymjb3um5JieW++TJk9bblzJz+vTpTLdl2vCb3elxkyYrzz9p5xXzvG913jQfB2n74a2OW3uPtVq1amnhwoW6ceOGunTpooceekilS5e+7bNk2XF+zIgj9d3uWHFk/7VnP7yVjh07avLkyXruuef0448/asuWLYqLi1NwcLDNdruT+dztOk2bv6enp8PLldFxt2XLFtWvX1+SNG3aNK1fv15xcXF64403bOZ3K3eyj0u3P884ss3t4enpeVffgbMTzyjloIULFyopKUkLFiyw/lVSUoa/FeDp6ank5OR07adOnbLeg3uzXr166eLFi3r00UfVr18/1axZM8O/TtwsKChIW7ZsSdduT2cOQUFBunHjhk6ePGnzpdwwDCUmJlr/WiX9e2BmtCwZhanu3btr/vz5WrFihQoWLKi4uDhNnTrVOjxfvnxycXFR586d1adPnwxrK1y4sM17R3uecXTdm6efNs6kSZMy7fHwdv95Z/SwaVZvl8ymmdaWdoKdPXu2ChcurK+//tpmWTNaR/ZIq/H06dM2J3FzLY5sa1dXVw0YMEADBgzQuXPn9NNPP+n1119XgwYNdOTIkWzrfcyRY9oed7oc+fPnl5eXV6bPVmS039qje/fu6t27t/bu3au//vpLx48ft17dlf5vH8mo05hjx44pT548NuehF198UaNGjdIXX3yhq1ev6saNG+rVq1e6OocOHarWrVtnWFOJEiUkST4+PnrnnXf0zjvv6J9//rH+9bNZs2b6/fffb7tsme37RYsWlST99ttv2rFjh2JjY9W1a1frOGmdtWTkTnu5yonlDg4O1t9//33LOoKCgjLdljfXmVWy8vyTdl45c+aMTViyt3MiezlyrLVo0UItWrRQcnKyNm3apJEjR6pjx46KiopStWrVMvx8dpwfM2NvfZltp7T6HNl/7dkPM3P+/HktXrxYw4YN05AhQ6ztac+x3exO5nO36zRtfdzqD6GZyejcMW/ePLm5uWnx4sU24WvhwoUOT99RtzvPOLLN7XHmzJlc+1MtXFHKQWkHws0P0xuGoWnTpqUbNyoqyqZXKUn6448/MryU+fnnn2v27NmaPHmyFi1apHPnztl8mclMnTp1dPHixXQP2M6ZM+e2n017wHv27Nk27d9++62SkpJsHgDPaFlWrVqVrvcwSapfv74KFCigGTNmaMaMGfL09LS5dcLb21t16tTR9u3bVbZsWVWqVCndK6O/lpvd6q8qjqz7jNSoUUN58+bVnj17MqyvUqVK1r+wZqR27dr67bfftGfPHpv2m3+8LjOObBfp3971duzYYdM2Z84c+fn5WR+6tFgscnd3tzmRJyYm3nGvd3Xq1JEkffXVV+nme7M73dZ58+ZV27Zt1adPH505cyZbf1TYkWPaUY4sR9OmTXXgwAEFBQVluJ7u9D+gDh06yNPTU7GxsYqNjVWBAgWsf+GU/v2PsECBApozZ45NL0xJSUn69ttvrT3hpQkPD1e7du308ccf65NPPlGzZs2sDymnTa9YsWLasWNHpsfOzbcMpgkNDVW3bt3UoUMH7du3z3q7362Y978NGzbo0KFD1p6jMtq2kvTpp5/edtqOyonlbtSokVavXn3L81jdunW1Z88em9vepP/rmTDt2M0qWXn+qV27tiTZ3Coq2XfedMSdHGseHh6qXbu2Ro8eLUkZ9hiXJrvPjxm5XX1z5861Ob4PHTqkDRs2WI8VR/Zfe/bDzP5/tlgsMgwj3TH5+eefW+9CSWPPfMzudp26u7urSJEiGfbeZu+VnJul/dTIzXcIXblyRbNmzbJ7Glkho/OMI9v8dst+48YNHTlyJNd2cc4VpRxUr149ubu7q0OHDho8eLCuXr2qqVOnWm9NuVnnzp31n//8R71791abNm106NAhjRkzJt0tVbt27VK/fv3UtWtXaziaPn262rZtqwkTJqh///6Z1tOlSxd9+OGH6tKli95//30VK1ZMS5Ys0Y8//mjXsjRo0ECvvfaaLly4oBo1alh7V6tQoYI6d+5ssyxvvfWW3n77bdWuXVt79uzR5MmTM+xxxcXFRV26dNH48ePl7++v1q1bpxvvo48+svak9eKLLyoqKkoXL17Un3/+qe+///62vQpJUunSpSVJn332mfz8/OTp6anChQsrKCjI7nWfGV9fX02aNEldu3bVmTNn1LZtW4WEhOjkyZPasWOHTp48aXOVzKx///764osv1KhRI7377rsKDQ3VnDlzrH8tvvmZADNHtov07y01zZs3V0xMjMLDwzV79mytWLFCo0ePtn7Bbdq0qRYsWKDevXurbdu2OnLkiIYPH67w8HC7b3O6Wf369VWrVi0NHjxYSUlJqlSpktavX5/hyd/ebd2sWTOVLl1alSpVUnBwsA4dOqQJEyaoUKFCKlasmMM12suRY9oed7oc/fv317fffqtatWrplVdeUdmyZZWamqrDhw9r+fLlGjhwoKpWrepwPXnz5lWrVq0UGxurc+fOadCgQTb7X548eTRmzBh16tRJTZs2Vc+ePZWcnKyxY8fq3LlzGf5Q7Msvv2ytJe22vpt9+umnatSokRo0aKBu3bqpQIECOnPmjPbu3atff/1V8+fPlyRVrVpVTZs2VdmyZZUvXz7t3btXs2bNShfOMrN161Y999xzateunY4cOaI33nhDBQoUsN42UrJkST38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h4eHDh06lO7Wu+TkZPXr108hISHy9PTUE088obi4OJt6brdtJGnDhg2qVauWvLy8FBkZqX79+ikpKcmudXSnCEoAAABwWFJSkgYMGKC4uDitXLlSefLkUatWrZSamipJunTpkmrXrq1jx45p0aJF2rFjhwYPHmwdLkkHDhzQwoULtXjxYi1evFhr167VqFGj7J7Hli1bJEk//fSTjh8/rgULFmRY65EjR9S6dWs1btxY8fHxeu655zRkyJA7Wu6VK1dq7969WrFihRYvXizp31AxfPhw7dixQwsXLlRCQoK6deuW7rNvvPGGPvjgA23dulWurq7q0aOHJOnpp5/WwIED9eijj+r48eM6fvy4nn76abvqud06yszMmTPl6uqqzZs3a+LEifrwww/1+eefW4d3795d69ev17x587Rz5061a9dODRs21P79+63jXL58WSNHjtTnn3+u3bt3KyQkJN18Bg8erG+//VYzZ87Ur7/+qqJFi6pBgwY6c+aMJPu2za5du9SgQQO1bt1aO3fu1Ndff61169apb9++dq2jO+XUW+8AAABwbzLfjjV9+nSFhIRoz549Kl26tObMmaOTJ08qLi5OgYGBkqSiRYvafCY1NVWxsbHW5887d+6slStX6v3337drHsHBwZKkoKAg60/LZGTq1KkqUqSIPvzwQ1ksFpUoUUK7du3S6NGjHV5uHx8fff755za33KUFHkkqUqSIJk6cqCpVqujSpUvy9fW1Dnv//fdVu3ZtSdKQIUPUpEkTXb16VV5eXvL19ZWrq+stlyMjt1tHmYmMjEy3Pj788EM9//zzOnDggObOnau///5bERERkv7t0GHZsmWaMWOGRowYIUm6fv26Pv74Y5UrVy7DeSQlJWnq1KmKjY1Vo0aNJEnTpk3TihUrNH36dL366qt2bZuxY8eqY8eO6t+/vySpWLFimjhxomrXrq2pU6fK09PToXVmL64oAQAAwGEHDhxQx44dVaRIEfn7+1tvgzt8+LAkKT4+XhUqVLCGpIxERUXZdNIVHh5uc8va7eZhr7179+rxxx+36YygWrVqDk0jTZkyZdI9l7R9+3a1aNFChQoVkp+fn/UWQHOdZcuWtf47PDxckmyW907c6TrKaH3s379fKSkp+vXXX2UYhooXLy5fX1/ra+3atTa39bm7u9ssU0a1Xb9+XTVq1LC2ubm5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AAAAsJfDQalixYoaO3asDh8+rKVLlyokJEQ9e/ZUSEiIevTocceFpKSkaN68eUpKSlK1atWUkJCgxMRE1a9f3zqOh4eHateurQ0bNmQ6neTkZF24cMHmBQAAAACOcDgopbFYLKpTp46mTZumn376SUWKFNHMmTMdns6uXbvk6+srDw8P9erVS999950eeeQR64/XhoaG2owfGhp6yx+2HTlypAICAqyvyMhIh2sCAAAA8GC746B05MgRjRkzRuXLl1flypXl4+OjyZMnOzydEiVKKD4+Xps2bdKLL76orl27as+ePdbhFovFZnzDMNK13Wzo0KE6f/689XXkyBGHawIAAADwYHO4e/DPPvtMX331ldavX68SJUqoU6dOWrhwoaKiou6oAHd3dxUtWlSSVKlSJcXFxemjjz7Sa6+9JklKTExUeHi4dfwTJ06ku8p0Mw8PD3l4eNxRLQAAAAAg3cEVpeHDh6tKlSraunWrdu/erddff/2OQ1JGDMNQcnKyChcurLCwMK1YscI67Nq1a1q7dq2qV6+eZfMDAAAAADOHrygdPnz4lre+OeL1119Xo0aNFBkZqYsXL2revHlas2aNli1bJovFov79+2vEiBEqVqyYihUrphEjRsjb21sdO3bMkvkDAAAAQEYcDkq//PLLLYfXqlXL7mn9888/6ty5s44fP66AgACVLVtWy5YtU7169SRJgwcP1pUrV9S7d2+dPXtWVatW1fLly+Xn5+do2QAAAABgN4eDUnR0dLq2m68wpaSk2D2t6dOn33K4xWJRTEyMYmJi7J4mAAAAANwth59ROnv2rM3rxIkTWrZsmSpXrqzly5dnR40AAAAAkKMcvqIUEBCQrq1evXry8PDQK6+8om3btmVJYQAAAADgLHf8O0pmwcHB2rdvX1ZNDgAAAACcxuErSjt37rR5bxiGjh8/rlGjRqlcuXJZVhgAAAAAOIvDQal8+fKyWCwyDMOm/fHHH9cXX3yRZYUBAAAAgLM4HJQSEhJs3ufJk0fBwcHy9PTMsqIAAAAAwJkcDkqFChXKjjoAAAAAINe4o84c1q5dq2bNmqlo0aIqVqyYmjdvftsfogUAAACAe4XDQWn27Nl66qmn5O3trX79+qlv377y8vJS3bp1NWfOnOyoEQAAAABylMO33r3//vsaM2aMXnnlFWvbyy+/rPHjx2v48OHq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Hj00btw4rVu3TuvWrdO4ceP03HPPqXv37g5Na+TIkapcubL8/PwUEhKili1bat++fTbjGIahmJgYRUREyMvLS9HR0dq9e7ejZQMAAACA3RzuHnzcuHEKCwvThx9+qOPHj0uSwsPDNXjwYA0cONChaa1du1Z9+vRR5cqVdePGDb3xxhuqX7++9uzZIx8fH0nSmDFjNH78eMXGxqp48eJ67733VK9ePe3bt09+fn6Olg8AAAAAt+VwUMqTJ48GDx6swYMH68KFC5J0x504LFu2zOb9jBkzFBISom3btqlWrVoyDEMTJkzQG2+8Ye2ifObMmQoNDdWcOXPUs2fPO5ovAAAAANyKw7fe3czf3z9Le7o7f/68JCkwMFCSlJCQoMTERNWvX986joeHh2rXrq0NGzZkOI3k5GRduHDB5gUAAAAAjriroJSVDMPQgAED9MQTT6h06dKSpMTERElSaGiozbihoaHWYWYjR460+d2nyMjI7C0cAAAAwH0n1wSlvn37aufOnZo7d266YRaLxea9YRjp2tIMHTpU58+ft76OHDmSLfUCAAAAuH85/IxSdnjppZe0aNEi/fzzz3rooYes7WFhYZL+vbIUHh5ubT9x4kS6q0xpPDw85OHhkb0FAwAAALivOXxF6csvv1RycnK69mvXrunLL790aFqGYahv375asGCBVq1apcKFC9sML1y4sMLCwrRixQqb+axdu1bVq1d3tHQAAAAAsMsd/Y5SWqcLN7t48aLDv6PUp08fzZ49W3PmzJGfn58SExOVmJioK1euSPr3lrv+/ftrxIgR+u677/Tbb7+pW7du8vb2VseOHR0tHQAAAADs4vCtd5k9H/T3338rICDAoWlNnTpVkhQdHW3TPmPGDHXr1k2SNHjwYF25ckW9e/fW2bNnVbVqVS1fvpzfUAIAAACQbewOShUqVJDFYpHFYlHdunXl6vp/H01JSVFCQoIaNmzo0MwNw7jtOBaLRTExMYqJiXFo2gAAAABwp+wOSi1btpQkxcfHq0GDBvL19bUOc3d3V1RUlNq0aZPlBQIAAABATrM7KA0bNkwpKSkqVKiQGjRoYNMLHQAAAADcTxzqzMHFxUW9evXS1atXs6seAAAAAHA6h3u9K1OmjP7666/sqAUAAAAAcgWHg9L777+vQYMGafHixTp+/LguXLhg8wIAAACAe53D3YOn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G7gbt9rvr1y5YrRq1cqIiIgw3N3djfDwcKN58+bGli1bnF02cNdud843K1SokPHhhx/maI24M/yOEgAAAACY8IwSAAAAAJgQlAAAAADAhKAEAAAAACYEJQAAAAAwISgBAAAAgAlBCQAAAABMCEoAAAAAYEJQAgDclYMHD+q9997TpUuXnF0KAABZhqAEALhj165dU/v27RUUFCRfX98cmeeaNWtksVh07ty5HJnf/So6Olr9+/d3dhkAkGsRlADgHtOtWzdZLBaNGjXKpn3hwoWyWCw5WsvAgQNVr149vfjiizk6X9y9BQsWaPjw4c4uAwByLVdnFwAAcJynp6dGjx6tnj17Kl++fE6rY9KkSXaNd+3aNbm7u2dzNXBEYGCgs0sAgFyNK0oAcA966qmnFBYWppEjR2Y6TkxMjMqXL2/TNmHCBEVFRVnfd+vWTS1bttSIESMUGhqqvHnz6p133tGNGzf06quvKjAwUA899JC++OILm+kcPXpUTz/9tPLly6egoCC1aNFCBw8eTDfdkSNHKiIiQsWLF5ck7dq1S08++aS8vLwUFBSkF1544bbPNi1ZskTFixeXl5eX6tSpYzOfNBs2bFCtWrXk5eWlyMhI9evXT0lJSbec7qJFi1SpUiV5enoqf/78at26tXXY2bNn1aVLF+XLl0/e3t5q1KiR9u/fbx0eGxurvHnzavHixSpRooS8vb3Vtm1bJSUlaebMmYqKilK+fPn00ksvKSUlxfq5qKgoDR8+XB07dpSvr68iIiLShc3x48erTJky8vHxUWRkpHr37p1uHU2bNk2RkZHy9vZWq1atNH78eOXNm9c6PG3bz5o1S1FRUQoICNAzzzyjixcvWscx33p37do1DR48WAUKFJCPj4+qVq2qNWvW3HIdAsD9jKAEAPcgFxcXjRgxQpMmTdLff/99V9NatWqVjh07pp9//lnjx49XTEyMmjZtqnz58mnz5s3q1auXevXqpSNHjkiSLl++rDp16sjX11c///yz1q1bJ19fXzVs2FDXrl2zTnflypXau3evVqxYocWLF+vy5ctq2LCh8uXLp7i4OM2fP18//fST+vbtm2ltR44cUevWrdW4cWPFx8frueee05AhQ2zG2bVrlxo0aKDWrVtr586d+vrrr7Vu3bpbTveHH35Q69at1aRJE23fvl0rV65UpUqVrMO7deumrVu3atGiRdq4caMMw1Djxo11/fp16ziXL1/WxIkTNW/ePC1btkxr1qxR69attWTJEi1ZskSzZs3SZ599pv/+97828x47dqzKli2rX3/9VUOHDtUrr7yiFStWWIfnyZNHEydO1G+//aaZM2dq1apVGjx4sHX4+vXr1atXL7388suKj49XvXr19P7776dbxgMHDmjhwoVavHixFi9erLVr16a7XfNm3bt31/r16zVv3jzt3LlT7dq1U8OGDW0CIgA8UAwAwD2la9euRosWLQzDMIzHH3/c6NGjh2EYhvHdd98ZN5/Whw0bZpQrV87msx9++KFRqFAhm2kVKlTISElJsbaVKFHCqFmzpvX9jRs3DB8fH2Pu3LmGYRjG9OnTjRIlShipqanWcZKTkw0vLy/jxx9/tE43NDTUSE5Oto7z2WefGfny5TMuXbpkbfvhhx+MPHnyGImJiRku69ChQ41SpUrZzOu1114zJBlnz541DMMwOnfubLzwwgs2n/vll1+MPHnyGFeuXMlwutWqVTM6deqU4bA//vjDkGSsX7/e2nbq1CnDy8vL+OabbwzDMIwZM2YYkow///zTOk7Pnj0Nb29v4+LFi9a2Bg0aGD179rS+L1SokNGwYUOb+T399NNGo0aNMqzFMAzjm2++MYKCgmzGb9Kkic04nTp1MgICAqzvhw0bZnh7exsXLlywtr366qtG1apVre9r165tvPzyy4ZhGMaff/5pWCwW4+jRozbTrVu3rjF06NBMawOA+xlXlADgHjZ69GjNnDlTe/bsueNpPProo8qT5//+OwgNDVWZMmWs711cXBQUFKQTJ05IkrZt26Y///xTfn5+8vX1la+vrwIDA3X16lUdOHDA+rkyZcrYPJe0d+9elStXTj4+Pta2GjVqKDU1Vfv27cuwtr179+rxxx+36aSiWrVqNuNs27ZNsbGx1lp8fX3VoEEDpaamKiEhIcPpxsfHq27dupnO09XVVVWrVrW2BQUFqUSJEtq7d6+1zdvbWw8//LDNeouKirLp/S80NNS63jKrv1q1ajbTXb16terVq6cCBQrIz89PXbp00enTp623Eu7bt09VqlSxmYb5vfTvbX5+fn7W9+Hh4elqSfPrr7/KMAwVL17cZj2uXbvWZpsCwIOEzhwA4B5Wq1YtNWjQQK+//rq6detmMyxPnjwyDMOm7eZbx9K4ubnZvLdYLBm2paamSpJSU1P12GOP6auvvko3reDgYOu/bw5EkmQYRqa98mXWbq4/I6mpqerZs6f69euXbljBggUz/IyXl1em08tsnub6HV1vt5I23UOHDqlx48bq1auXhg8frsDAQK1bt07PPvusddtltB4zqtmRWlJTU+Xi4qJt27bJxcXFZlhOdfsOALkNQQkA7nGjRo1S+fLlrR0mpAkODlZiYqLNF+v4+Pi7nl/FihX19ddfKyQkRP7+/nZ/7pFHHtHMmTOVlJRkDVHr169Xnjx50tV+82cWLlxo07Zp06Z09ezevVtFixa1u5ayZctq5cqV6t69e4bzvHHjhjZv3qzq1atLkk6fPq0//vhDpUqVsnsemTHXv2nTJpUsWVKStHXrVt24cUMffPCB9SrfN998YzN+yZIltWXLFpu2rVu33lVNFSpUUEpKik6cOKGaNWve1bQA4H7BrXcAcI8rU6aMOnXqlK73tOjoaJ08eVJjxozRgQMHNGXKFC1duvSu59epUyflz59fLVq00C+//KKEhAStXbtWL7/88i07lujUqZM8PT3VtWtX/fbbb1q9erVeeuklde7cWaGhoRl+plevXjpw4IAGDBigffv2ac6cOYqNjbUZ57XXXtPGjRvVp08fxcfHa//+/Vq0aJFeeumlTGsZNmyY5s6dq2HDhmnv3r3atWuXxowZI0kqVqyYWrRooeeff17r1q3Tjh079J///EcFChRQixYtHF9hJuvXr9eYMWP0xx9/aMqUKZo/f75efvllSdLDDz+sGzduaNKkSfrrr780a9YsffLJJzaff+mll7RkyRKNHz9e+/fv16effqqlS5fe1W9oFS9eXJ06dVKXLl20YMECJSQkKC4uTqNHj9aSJUvuankB4F5FUAKA+8Dw4cPT3X5VqlQpffzxx5oyZYrKlSunLVu2aNCgQXc9L29vb/38888qWLCgWrdurVKlSqlHjx66cuXKLa8weXt768cff9SZM2dUuXJltW3bVnXr1tXkyZMz/UzBggX17bff6vvvv1e5cuX0ySefaMSIETbjlC1bVmvXrtX+/ftVs2ZNVahQQW+99ZbCw8MznW50dLTmz5+vRYsWqXz58nryySe1efNm6/AZM2boscceU9OmTVWtWjUZhqElS5aku53tTgwcOFDbtm1ThQoVNHz4cH3wwQdq0KCBJKl8+fIaP368Ro8erdKlS+urr75K1wV8jRo19Mknn2j8+PEqV66cli1bpldeeUWenp53VdeMGTPUpUsXDRw4UCVKlFDz5s21efNmRUZG3tV0AeBeZTHsuQEcAADctaioKPXv39/m94uywvPPP6/ff/9dv/zyS5ZOFwAeZDyjBADAPWbcuHGqV6+efHx8tHTpUs2cOVMff/yxs8sCgPsKQQkAgHvMli1bNGbMGF28eFFFihTRxIkT9dxzzzm7LAC4r3DrHQAAAACY0JkDAAAAAJgQlAAAAADAhKAEAAAAACYEJQAAAAAwISgBAAAAgAlBCQAAAABMCEoAAAAAYEJQAgAAAAATghIAAAAAmPw/BsaMgHfa8rMAAAAASUVORK5CYII=",
|
||
"text/plain": [
|
||
"<Figure size 1000x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"multiple_barplot(company_campaigns_stats, x=\"number_company\", y=\"perc_campaigns_opened\", var_labels=\"y_has_purchased\",\n",
|
||
" dico_labels = {0 : \"clients n'ayant pas acheté\", 1 : \"clients ayant acheté sur la période\"},\n",
|
||
" xlabel = \"Numéro de compagnie\", ylabel = \"Part de mails ouverts (%)\", \n",
|
||
" title = \"Taux d'ouverture global des mails envoyés par les compagnies de spectacle (train set)\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "783f6fb2-5f26-42a9-a22d-f4ece44bfaf2",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 3. products_purchased_reduced"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"id": "74534ded-8121-43fb-8cf8-af353bed2c77",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Nombre de lignes de la table : 764880\n"
|
||
]
|
||
},
|
||
{
|
||
"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",
|
||
"number_compagny 0\n",
|
||
"dtype: int64"
|
||
]
|
||
},
|
||
"execution_count": 16,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# nombre de nan\n",
|
||
"print(\"Nombre de lignes de la table : \",products_purchased_reduced_spectacle.shape[0])\n",
|
||
"products_purchased_reduced_spectacle.isna().sum()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"id": "6db089d5-5517-4aee-a5fd-53f20ae3f0d7",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"#importation librairies\n",
|
||
"import warnings\n",
|
||
"warnings.simplefilter(\"ignore\")\n",
|
||
"import pandas as pd\n",
|
||
"import numpy as np\n",
|
||
"import statsmodels\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import seaborn as sns\n",
|
||
"from scipy.stats import shapiro\n",
|
||
"from numpy.random import randn\n",
|
||
"import scipy.stats as st\n",
|
||
"%matplotlib inline\n",
|
||
"\n",
|
||
"#col_purchase=[\"nb_tickets\",\"nb_purchases\",\"total_amount\",\"nb_suppliers\",\"time_between_purchase\",\"nb_tickets_internet\"]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 39,
|
||
"id": "943b8088-9ca2-40a4-b658-2cfae1589fac",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"30.0\n",
|
||
"62.0\n",
|
||
"120.0\n",
|
||
"90.0\n",
|
||
"Moustache inferieure -105.0\n",
|
||
"Moustache superieure 255.0\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"#identification des valeur manquantes\n",
|
||
"#calcule des quartile de la variable valeur(taille de la population)\n",
|
||
"Q1=np.percentile(products_purchased_reduced_spectacle[\"total_amount\"], 25) # Q1\n",
|
||
"Q2=np.percentile(products_purchased_reduced_spectacle[\"total_amount\"], 50) # Q2\n",
|
||
"Q3=np.percentile(products_purchased_reduced_spectacle[\"total_amount\"], 75) # Q3\n",
|
||
"print(Q1)\n",
|
||
"print(Q2)\n",
|
||
"print(Q3)\n",
|
||
"\n",
|
||
"#intervale interquartile de la variable Valeur\n",
|
||
"\n",
|
||
"IQ=Q3-Q1\n",
|
||
"print(IQ)\n",
|
||
"\n",
|
||
"#la valeur minimale des moustache de la variable Valeur\n",
|
||
"\n",
|
||
"M_inf=Q1-1.5*IQ\n",
|
||
"M_sup=Q3+1.5*IQ\n",
|
||
"\n",
|
||
"print(\"Moustache inferieure\",M_inf)#moustache inferieur\n",
|
||
"print(\"Moustache superieure\",M_sup)#moustache sup\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a63e6d13-429b-4b01-ad11-27e5eea68cbd",
|
||
"metadata": {},
|
||
"source": [
|
||
"#histogrames des variable quantitatives\n",
|
||
"col_purchase=[\"nb_tickets\",\"nb_purchases\",\"total_amount\",\"nb_suppliers\",\"time_between_purchase\",\"nb_tickets_internet\"]\n",
|
||
"for col in col_purchase:\n",
|
||
" plt.figure()\n",
|
||
" sns.histplot(products_purchased_reduced_spectacle[col], kde=True, color='red')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 46,
|
||
"id": "5a08b5a5-7d56-4543-945a-38f6219d831d",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAn8AAAHGCAYAAAAFY+3bAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABPdUlEQVR4nO3deZyNdeP/8feZ7cxqmMEsmhn7zqgUoZA9S8gt6S6kRaSEW8mNUZZSSTepW1mTVPeNmzZGlrIVoZJSSoaYRmMZ6xgzn98f/eZ8ndnNnHFm5no9H4/z4FzXdT6fz7We93yu5diMMUYAAACwBA93NwAAAADXDuEPAADAQgh/AAAAFkL4AwAAsBDCHwAAgIUQ/gAAACyE8AcAAGAhhD8AAAALIfwBAABYiOXC3549exQcHKx//etf7m4KAADANXdV4W/hwoWy2WxOr0qVKqlNmzb68MMPC92IqlWrauDAgY73R48eVVxcnPbs2VPoMnPTpEkTrVixQuPGjdO2bdtcXn5JNHXqVK1cubLY67HZbHrssceKvZ686o+Li7umdQ4cOFCBgYEFmjan9n322Wdq2rSpAgICZLPZHOvpvffeU4MGDeTn5yebzVYs+0J+Bg4cqKpVqzoNs9lsWrhwYaHK2717t1q3bq3g4GDZbDbNnDlTUu7LoCB+++23IrXJXTKPpb/99ts1r7tNmzZq06bNNa8XV8ed20hWcXFxstls7m7GNbF06VLHsak45XR8vZa8CvOhBQsWqG7dujLGKDExUbNnz1b37t21atUqde/e/arLW7FihcqVK+d4f/ToUU2aNElVq1ZVkyZNCtPEPN1+++1688031a9fP+3cuVOVKlVyeR0lydSpU9WnTx/17NnT3U2xtG3btum6665zvDfGqG/fvqpdu7ZWrVqlgIAA1alTR8ePH9d9992nzp07a86cObLb7apdu7YbW+4aDzzwgM6dO6dly5apQoUKqlq1aq7LoKAiIiK0bds21ahRoxhbDlx7Xbt21bZt2xQREeHupljK0qVLtXfvXo0YMcLdTSlWhQp/DRs2VNOmTR3vO3furAoVKujdd98tVPi7/vrrC9OMIunXr5/69et3zeuFdTVv3tzp/dGjR3XixAn16tVL7dq1cwzfsmWL0tLS9Pe//12tW7fOs8zz58/L39+/WNrranv37tVDDz2kLl26OIb9/vvvOS6DgrLb7dmWa05K03ICJKlSpUplvmMC7uOSa/58fX3l4+Mjb29vp+EnTpzQ0KFDVaVKFfn4+Kh69eoaN26cUlNTnaa78rTvxo0bddNNN0mSBg0a5Di9fOXpsp07d6pHjx4KCQmRr6+vrr/+er3//vsFauukSZPUrFkzhYSEqFy5crrhhhs0b948GWPy/WzmKb4ff/xRnTp1UkBAgCIiIvT8889LkrZv365WrVopICBAtWvX1qJFi7KVsXfvXt15552qUKGCfH191aRJk2zT5dbdv3HjRtlsNm3cuNExbPfu3erWrZsqV64su92uyMhIde3aVUeOHJH012m6c+fOadGiRY5lmXnK5/jx4xo6dKjq16+vwMBAVa5cWbfffru++OKLbO1OTU3Vs88+q3r16snX11ehoaFq27attm7dmm3at99+W/Xq1ZO/v79iY2NzvCTg559/Vv/+/R3trlevnl577bU8l3+mlJQUPfTQQwoNDVVgYKA6d+6sn376Kdt0uXWrX80pjE8//VTt2rVTcHCw/P39Va9ePU2bNi3bdAcOHNAdd9yhwMBARUVFadSoUdm28yu347i4OEcv4FNPPSWbzebYD1q1aiVJuvvuu53WV+b2991336ljx44KCgpyBKZLly5p8uTJqlu3rux2uypVqqRBgwbp+PHjBZrPhQsXqk6dOo51sXjx4gJ97sCBAxo0aJBq1aolf39/ValSRd27d9d3333nVLbNZtPly5f1+uuvO+3TOS2DgpYr5XzaN3P97tq1S3369FGFChUcPYPGGM2ZM0dNmjSRn5+fKlSooD59+ujXX3/Nd16PHz+uhx9+WFFRUY5l3LJlS61bt85punXr1qldu3YqV66c/P391bJlS3322WcFWp7z589XbGysfH19FRISol69eumHH35wmiZzOyjINldQBd1+1q9frzZt2ig0NFR+fn6Kjo7WXXfdpfPnz+dbx9KlS3XLLbcoMDBQgYGBatKkiebNm1fo+S/scThze4yPj9egQYMUEhKigIAAde/ePdt2EB8frzvvvFPXXXedfH19VbNmTT3yyCP6888/s83f//73PzVu3Fh2u13Vq1fXq6++muOxJvPymPyOk7l9DxRk+yrotpqTjz76SE2aNJHdble1atX00ksv5Thdce9Lbdq0UcOGDfXFF1+oefPm8vPzU5UqVTR+/Hilp6c7lXc1x7+8tsM2bdroo48+0qFDh5wub8t0NfmhINt7YZdpft/7BWKuwoIFC4wks337dpOWlmYuXbpkDh8+bB5//HHj4eFhPv30U8e0Fy5cMI0bNzYBAQHmpZdeMmvXrjXjx483Xl5e5o477nAqNyYmxgwYMMAYY8zp06cd9fzzn/8027ZtM9u2bTOHDx82xhizfv164+PjY2699Vbz3nvvmU8//dQMHDjQSDILFizIdx4GDhxo5s2bZ+Lj4018fLx57rnnjJ+fn5k0aVK+nx0wYIDx8fEx9erVM6+++qqJj483gwYNMpLM2LFjTe3atc28efPMmjVrTLdu3Ywks3PnTsfnf/zxRxMUFGRq1KhhFi9ebD766CNzzz33GEnmhRdeyLacDx486FT/hg0bjCSzYcMGY4wxZ8+eNaGhoaZp06bm/fffN5s2bTLvvfeeGTJkiNm3b58xxpht27YZPz8/c8cddziW5ffff+9oz6OPPmqWLVtmNm7caD788EMzePBg4+Hh4ajDGGPS0tJM27ZtjZeXlxk9erT5+OOPzapVq8wzzzxj3n33Xcd0kkzVqlXNzTffbN5//33z8ccfmzZt2hgvLy/zyy+/OKb7/vvvTXBwsGnUqJFZvHixWbt2rRk1apTx8PAwcXFxea6DjIwM07ZtW2O3282UKVPM2rVrzcSJE0316tWNJDNx4kSn9RUTE5OtjIkTJ5qCbPpvvfWWsdlspk2bNmbp0qVm3bp1Zs6cOWbo0KFOdWRuEy+99JJZt26dmTBhgrHZbNm2qSvbd/jwYbN8+XIjyQwfPtxs27bN7Nq1yxw4cMC89tprRpKZOnWq0/oaMGCA8fb2NlWrVjXTpk0zn332mVmzZo1JT083nTt3NgEBAWbSpEkmPj7evPXWW6ZKlSqmfv365vz583nOZ+b2duedd5rVq1ebJUuWmJo1a5qoqKgcl9+VNm3aZEaNGmX+85//mE2bNpkVK1aYnj17Gj8/P/Pjjz8aY4xJSkoy27ZtM5JMnz59nPbpnJZBQcs1xpiDBw9m2/cz129MTIx56qmnTHx8vFm5cqUxxpiHHnrIeHt7m1GjRplPP/3ULF261NStW9eEhYWZxMTEPOe1U6dOplKlSmbu3Llm48aNZuXKlWbChAlm2bJljmnefvttY7PZTM+ePc3y5cvN6tWrTbdu3Yynp6dZt25dtmV+5T4+depUI8ncc8895qOPPjKLFy821atXN8HBweann35yTHc121xOWrdubVq3bu14X9Dt5+DBg8bX19d06NDBrFy50mzcuNG888475r777jMnT57Ms87x48cbSaZ3797mgw8+MGvXrjUzZsww48ePL9L8F+Y4nLnso6KizAMPPGA++eQTM3fuXFO5cmUTFRXlNC+vv/66mTZtmlm1apXZtGmTWbRokYmNjTV16tQxly5dckz3ySefGA8PD9OmTRuzYsUK88EHH5hmzZqZqlWrZjvWFPQ4mdM2UtDtqyDbak7WrVtnPD09TatWrczy5cvNBx98YG666SYTHR2dbT6Ke19q3bq1CQ0NNZGRkeZf//qXWbNmjXn88ceNJDNs2DDHdFdz/MtvO/z+++9Ny5YtTXh4uOM4tW3bNsfnC5ofCrK95/T9VJBlWpDv/YIoVPjL+rLb7WbOnDlO077xxhtGknn//fedhr/wwgtGklm7dq1j2JXhzxhjduzYkWuYq1u3rrn++utNWlqa0/Bu3bqZiIgIk56eXuD5SU9PN2lpaebZZ581oaGhJiMjI8/pBwwYYCSZ//73v45haWlpplKlSkaS44vLGGOSk5ONp6enGTlypGNYv379jN1uNwkJCU7ldunSxfj7+5tTp04ZYwoe/nbu3GkkOb7YchMQEOC0fHNz+fJlk5aWZtq1a2d69erlGL548WIjybz55pt5fl6SCQsLMykpKY5hiYmJxsPDw0ybNs0xrFOnTua6664zp0+fdvr8Y489Znx9fc2JEydyreOTTz4xksyrr77qNHzKlCkuDX9nzpwx5cqVM61atcpzu8jcJrJu53fccYepU6eO07Cs7csMLi+++KLTdJnr+YMPPsixrvnz5zsNf/fdd7Ntl8b8336Udd+8Unp6uomMjDQ33HCD03z+9ttvxtvbO9/wl9Xly5fNpUuXTK1atcyTTz7pNC7rQduY3JdBQcvNK/xNmDDBqYzMAPryyy87DT98+LDx8/MzY8aMybMNgYGBZsSIEbmOP3funAkJCTHdu3d3Gp6enm5iY2PNzTff7BiWdR8/efKk44+0KyUkJBi73W769+/vGHY121xOsoa/gm4///nPf4wks2fPnnzruNKvv/5qPD09zb333pvrNIWZ/8IehzOX/ZXHOGOM2bJli5FkJk+enGMbMzIyTFpa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AwcOOH2mQoUKstlsjnCWXx2FdTXbV37bak4y56Mgx4Li3pcy5bVMM7eZgm6/BdkO81LQ/FDYeq5mmRblez+Ty37hI/MhtJkz3q5dO509ezbbgsm8izCvxzpkzmTWv4Lq1KmjWrVq6ZtvvnH0PGZ95fVFZ7PZ5OXlJU9PT8ewCxcu6O233y7wfBZFu3bttH79ekfYy7R48WL5+/s7dujMOx6//fZbp+lWrVqVa9k2m02xsbF65ZVXVL58ee3atcsxLre/KG02W7aN7Ntvv812+rlLly66ePGiSx6k6+/vr7Zt22r37t1q3Lhxjuswp7+KM7Vt21aS9M477zgNX7p0abZpq1atqqSkJKcDyKVLl7RmzZp829miRQsFBwfrjTfeKNCd4O7UrVs3JScnKz09PcflmdcfRHXq1FFERITeffddp/k8dOhQjndyZ5XTNvTRRx/p999/L/wMFVO53bp1kzFGv//+e47LqVGjRgUuKzo6Wo899pg6dOjg2Ndatmyp8uXLa9++fbken648LXilW265RX5+flqyZInT8CNHjjguFykuhdl+PD091axZM8cd+lceb7Lq2LGjPD09s/2ReSV3zH/WY8jWrVt16NAhx931mX88ZN0O//3vfzu9DwgIUNOmTbVy5UpdunTJMfzs2bNF+vGDrAq7feW0reYkICBAN998s5YvX+7UU3rmzBmtXr3aadri3peurDvr997SpUvl4eGh2267zdGWgmy/BdkOpby/LwuSHwpaT1aFWaZ5fe/np1A9f3v37tXly5cl/dX1unz5csXHx6tXr16OXpv7779fr732mgYMGKDffvtNjRo10ubNmzV16lTdcccdat++fa7l16hRQ35+fnrnnXdUr149BQYGKjIyUpGRkfr3v/+tLl26qFOnTho4cKCqVKmiEydO6IcfftCuXbv0wQcf5Fpu165dNWPGDPXv318PP/ywkpOT9dJLL+X7V4qrTJw4UR9++KHatm2rCRMmKCQkRO+8844++ugjTZ8+XcHBwZKkm266SXXq1NHo0aN1+fJlVahQQStWrNDmzZudyvvwww81Z84c9ezZU9WrV5cxRsuXL9epU6fUoUMHx3SNGjXSxo0btXr1akVERCgoKEh16tRRt27d9Nxzz2nixIlq3bq19u/fr2effVbVqlVzrF9Juueee7RgwQINGTJE+/fvV9u2bZWRkaEvv/xS9erVu+rnJb766qtq1aqVbr31Vj366KOqWrWqzpw5owMHDmj16tVav359rp/t2LGjbrvtNo0ZM0bnzp1T06ZNtWXLlhwD/N13360JEyaoX79++sc//qGLFy/qX//6V7bHBOQkMDBQL7/8sh588EG1b99eDz30kMLCwnTgwAF98803Tte3ulu/fv30zjvv6I477tATTzyhm2++Wd7e3jpy5Ig2bNigO++8U7169crxsx4eHnruuef04IMPqlevXnrooYd06tQpxcXFFei0b7du3bRw4ULVrVtXjRs31tdff60XX3yx0KdWirPcli1b6uGHH9agQYO0c+dO3XbbbQoICNCxY8e0efNmNWrUSI8++miOnz19+rTatm2r/v37q27dugoKCtKOHTv06aefOs5CBAYGatasWRowYIBOnDihPn36qHLlyjp+/Li++eYbHT9+PNcvhPLly2v8+PF65plndP/99+uee+5RcnKyJk2aJF9fX02cOLHQ852fgm4/b7zxhtavX6+uXbsqOjpaFy9e1Pz58yUpz+N51apV9cwzz+i5557ThQsXdM899yg4OFj79u3Tn3/+qUmTJrll/nfu3KkHH3xQf/vb33T48GGNGzdOVapUcVxCVLduXdWoUUNPP/20jDEKCQnR6tWrFR8fn62sZ599Vl27dlWnTp30xBNPKD09XS+++KICAwNzPdV/tQq6fRVkW83Nc889p86dO6tDhw4aNWqU0tPT9cILLyggIMBpPop7X8oUGhqqRx99VAkJCapdu7Y+/vhjvfnmm3r00UcVHR0tqeDbb0G2Q+mv78vly5fr9ddf14033igPDw81bdq0wPmhoPVkVdBlWtDv/Xxdzd0hOd3tGxwcbJo0aWJmzJhhLl686DR9cnKyGTJkiImIiDBeXl4mJibGjB07Ntt0We/2NeavO3jq1q1rvL29s90l+c0335i+ffuaypUrG29vbxMeHm5uv/1288Ybb+Q7D/Pnzzd16tQxdrvdVK9e3UybNs3Mmzcvx7trsxowYIAJCAjINrx169amQYMG2YbHxMSYrl27Og377rvvTPfu3U1wcLDx8fExsbGxOd7V/NNPP5mOHTuacuXKmUqVKpnhw4ebjz76yOlu3x9//NHcc889pkaNGsbPz88EBwebm2++2SxcuNCprD179piWLVsaf39/I8lx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sq6//nr9+eefWr9+vRo1aqQ77rijUHXGxcVpyJAhqly5srp06aIzZ85oy5YtGj58uNq3b6/GjRvr3nvv1cyZM3X58mUNHTpUrVu3VtOmTYs8vx988IGaNm2qVq1a6Z133tFXX32lefPmSZJq1qyphIQELVu2TDfddJM++ugjrVixwunzw4cP10MPPaSmTZuqRYsWeu+99/Ttt986nV4vqAcffNARaLds2VLkeQNQOtHzByCb+fPnKy0tTU2bNtUTTzyhyZMnu6zs+++/XxcuXNDNN9+sYcOGafjw4Xr44Ycd4xcsWKD7779fo0aNUp06ddSjRw99+eWXTtfkXa0BAwZo5syZmjNnjho0aKBu3brp559/lvTX6dGVK1eqQoUKuu2229S+fXtVr15d7733XpHnVZImTZqkZcuWqXHjxlq0aJHeeecd1a9fX5J055136sknn9Rjjz2mJk2aaOvWrRo/frzT5++9916NHTtWo0eP1g033KCDBw9q4MCB8vX1veq21KpVSy1atFCdOnXUrFkzl8wfgNLHZnK6eAQAUGQ2m00rVqxQz549XVpuhw4dFB4errfffvuqPmeMUd26dfXII49o5MiRLm0TgNKD074AUIKdP39eb7zxhjp16iRPT0+9++67WrduneLj46+qnKSkJL399tv6/fffNWjQoGJqLYDSgPAHoNS78k7grD755BPdeuut17A1rmWz2fTxxx9r8uTJSk1NVZ06dfTf//5X7du3v6pywsLCVLFiRc2dO1cVKlQoptYCKA047Qug1Dtw4ECu46pUqZLv414AwEoIfwAAABbC3b4AAAAWQvgDAACwEMIfAACAhRD+AAAALITwBwAAYCGEPwAAAAsh/AEAAFgI4Q8AAMBC/h9soRb3SDv+HAAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"#repartition Chiffre d'affaire selon les compagnie de spectacle\n",
|
||
"\n",
|
||
"# Filtrer les données pour inclure uniquement les valeurs positives de total_amount et exclusion des valeur aberrantes\n",
|
||
"filtered_products_purchased_reduced_spectacle = products_purchased_reduced_spectacle[(products_purchased_reduced_spectacle['total_amount'] > 0) & (products_purchased_reduced_spectacle['total_amount'] <= 255)]\n",
|
||
"\n",
|
||
"# Créer le graphique en utilisant les données filtrées\n",
|
||
"sns.boxplot(data=filtered_products_purchased_reduced_spectacle, y=\"total_amount\", x=\"number_compagny\", showfliers=False, showmeans=True)\n",
|
||
"\n",
|
||
"# Titre du graphique\n",
|
||
"plt.title(\"Boite à moustache du chiffre d'affaire selon les compagnies de spectacles\")\n",
|
||
"\n",
|
||
"# Afficher le graphique\n",
|
||
"plt.show()\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "20ce4a40-8f0d-40e8-91d3-b923670326cb",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"#reprise du graphe de la repartition Chiffre d'affaire selon les compagnie de spectacle sur la base de train\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 44,
|
||
"id": "76e08ece-0b58-4b3a-abca-53e30ccc907b",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Statistique F : 317.1792172580724\n",
|
||
"Valeur de p : 3.665389608154993e-273\n",
|
||
"Nombre de degrés de liberté entre les groupes : 4\n",
|
||
"Nombre de degrés de liberté à l'intérieur des groupes : 670581\n",
|
||
"Il y a des différences significatives entre au moins une des entrepries .\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"#test d'anova pour voir si la difference de chiffre d'affaire est statistiquement significative\n",
|
||
"\n",
|
||
"from scipy.stats import f_oneway\n",
|
||
"\n",
|
||
"# Créez une liste pour stocker les données de chaque groupe\n",
|
||
"groupes = []\n",
|
||
"\n",
|
||
"# Parcourez chaque modalité de la variable catégorielle et divisez les données en groupes\n",
|
||
"for modalite in filtered_products_purchased_reduced_spectacle['number_compagny'].unique():\n",
|
||
" groupe = filtered_products_purchased_reduced_spectacle[filtered_products_purchased_reduced_spectacle['number_compagny'] == modalite]['total_amount']\n",
|
||
" groupes.append(groupe)\n",
|
||
"\n",
|
||
"# Effectuez le test ANOVA\n",
|
||
"f_statistic, p_value = f_oneway(*groupes)\n",
|
||
"\n",
|
||
"# Nombre total d'observations\n",
|
||
"N = sum(len(groupe) for groupe in groupes)\n",
|
||
"\n",
|
||
"# Nombre de groupes ou de catégories\n",
|
||
"k = len(groupes)\n",
|
||
"\n",
|
||
"# Degrés de liberté entre les groupes\n",
|
||
"df_between = k - 1\n",
|
||
"\n",
|
||
"# Degrés de liberté à l'intérieur des groupes\n",
|
||
"df_within = N - k\n",
|
||
"\n",
|
||
"# Affichez les résultats\n",
|
||
"print(\"Statistique F :\", f_statistic)\n",
|
||
"print(\"Valeur de p :\", p_value)\n",
|
||
"\n",
|
||
"print(\"Nombre de degrés de liberté entre les groupes :\", df_between)\n",
|
||
"print(\"Nombre de degrés de liberté à l'intérieur des groupes :\", df_within)\n",
|
||
"\n",
|
||
"if p_value < 0.05:\n",
|
||
" print(\"Il y a des différences significatives entre au moins une des entrepries .\")\n",
|
||
"else:\n",
|
||
" print(\"Il n'y a pas de différences significatives entre les entreprises .\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 45,
|
||
"id": "aacf2c34-f7ea-4d6e-935b-c5db01f03bbe",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>number_compagny</th>\n",
|
||
" <th>nb_tickets</th>\n",
|
||
" <th>nb_tickets_internet</th>\n",
|
||
" <th>Taux_ticket_internet</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>10</td>\n",
|
||
" <td>492314</td>\n",
|
||
" <td>126262.0</td>\n",
|
||
" <td>25.646640</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>11</td>\n",
|
||
" <td>318969</td>\n",
|
||
" <td>16348.0</td>\n",
|
||
" <td>5.125263</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>12</td>\n",
|
||
" <td>591028</td>\n",
|
||
" <td>42045.0</td>\n",
|
||
" <td>7.113876</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>13</td>\n",
|
||
" <td>7024227</td>\n",
|
||
" <td>1247482.0</td>\n",
|
||
" <td>17.759705</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>14</td>\n",
|
||
" <td>335741</td>\n",
|
||
" <td>125638.0</td>\n",
|
||
" <td>37.421107</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" number_compagny nb_tickets nb_tickets_internet Taux_ticket_internet\n",
|
||
"0 10 492314 126262.0 25.646640\n",
|
||
"1 11 318969 16348.0 5.125263\n",
|
||
"2 12 591028 42045.0 7.113876\n",
|
||
"3 13 7024227 1247482.0 17.759705\n",
|
||
"4 14 335741 125638.0 37.421107"
|
||
]
|
||
},
|
||
"execution_count": 45,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"#Taux de ticket payé par internet selon les compagnies\n",
|
||
"\n",
|
||
"purchase_spectacle = products_purchased_reduced_spectacle.groupby(\"number_compagny\")[[\"nb_tickets\", \"nb_tickets_internet\"]].sum().reset_index()\n",
|
||
"purchase_spectacle[\"Taux_ticket_internet\"] = purchase_spectacle[\"nb_tickets_internet\"]*100 / purchase_spectacle[\"nb_tickets\"]\n",
|
||
"purchase_spectacle"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 57,
|
||
"id": "f71bb53d-724b-454d-8743-305d20eec2b0",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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8+dISEjAkydPsH37dvz73/9GdHS0ssB63f379+Hs7IwtW7aga9euhc4vOztbpfhKS0uDk5MTUlNTYWVlpbX1ICKi94fL2H26jqA3bs1sr5X5pqWlQaFQ6OXfb51ecwW8ukA974J2Hx8fnD17FosWLcLPP/9cYFoHBwc4Ozvjxo0bRc5PLpdDLpdrLS8RERHRm+j8tGB+QogiT/slJyfjzp07cHBwKOFUREREROrR6ZGr8ePHIzAwEE5OTkhPT8eWLVtw9OhRhIeH4+nTpwgJCUG3bt3g4OCAW7duYfz48bC1tUWXLl10GZuIiIioSDotrh48eIC+ffvi/v37UCgU8Pb2Rnh4OFq3bo3MzExcvHgR69evx5MnT+Dg4AB/f39s3boVlpaWuoxNREREVCSdFlerVq0qcpypqSkiIiJKMA0RERHRuyt111wRERER6TMWV0REREQSYnFFREREJCEWV0REREQSYnFFREREJCEWV0REREQSYnFFREREJCEWV0REREQSYnFFREREJCEWV0REREQSYnFFREREJCEWV0REREQSYnFFREREJCEWV0REREQSYnFFREREJCHD4rzpxYsXSExMxLNnz1C+fHlYW1tLnYuIiIhIL6l95Orp06f4+eef4efnB4VCARcXF3h5eaF8+fJwdnbGgAEDcPbsWW1mJSIiIir11CquFixYABcXF6xcuRItWrTAjh07EBsbi2vXruHkyZOYPHkyXr58idatW6Nt27a4ceOGtnMTERERlUpqnRY8ceIEjhw5glq1ahU6vkGDBujXrx+WL1+OVatWITo6Gu7u7pIGJSIiItIHahVX27ZtU2tmcrkcgwcPfqdARERERPqsWBe053nx4gWuX7+OnJwcVKtWDXK5XKpcRERERHqp2I9i+P333+Hi4gJ/f3/4+fnByckJ4eHhUmYjIiIi0jtqF1dCCJXh4cOHY+PGjUhKSkJKSgqmTZuGQYMGSR6QiIiISJ+oXVw1aNAA58+fVw4/f/4clStXVg5XrlwZWVlZ0qYjIiIi0jNqX3O1ZMkS9O/fH82bN8e0adMwefJk1KtXD9WqVcOLFy9w9epV/Pjjj9rMSkRERFTqqV1c+fr64syZM5g9ezbq1auH2bNn49q1azh9+jRycnLQoEEDODo6ajMrERERUamn0d2ChoaGGD9+PHr27IlBgwZh3bp1+PHH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WrUKhoaGWLVqla5jvbd+//13JCUloXLlyjA0NIShoSFu376NUaNGwcXFRdfx6P+xuHoPubq6wt7eHlFRUcq258+fIzo6Go0bN9ZhMiLtyCusbty4gYMHD8LGxkbXkT5YQghkZ2frOsZ7q2/fvoiLi0NsbKzy5ejoiO+++w4RERG6jkf/j9dc6amnT5/i5s2byuH4+HjExsbC2toalStXxvDhwzFjxgy4u7vD3d0dM2bMgJmZGfr06aPD1Prvbf2ekpKChIQE5TOWrl27BuDV0cS8I4qkuTf1u6OjI7p3747z589j7969yMnJUR61tba2hrGxsa5i67039buNjQ2mT5+OTp06wcHBAcnJyVi6dCnu3r2LHj166DC1/nvbfib/Pw9GRkawt7dHtWrVSjoqFUXXtytS8Rw5ckQAKPAKCgoSQrx6HMPkyZOFvb29kMvlolmzZuLixYu6Df0eeFu/r1mzptDxkydP1mluffemfs977EVhryNHjug6ul57U79nZmaKLl26CEdHR2FsbCwcHBxEp06dxJkzZ3QdW++9bT+THx/FUPrIhBBCu+UbERER0YeD11wRERERSYjFFREREZGEWFwRERERSYjFFREREZGEWFwRERERSYjFFREREZGEWFwRERERSYjFFREREZGEWFwRkSQSExPx7bffws3NDXK5HE5OTujYsSMOHTqk62hERCWK3y1IRO/s1q1baNKkCcqWLYvZs2fD29sbL168QEREBIYMGYKrV6/qOiIRUYnhkSsiemeDBw+GTCbDmTNn0L17d3h4eKBGjRoYOXIkTp06BQBISEjAJ598AgsLC1hZWaFnz5548OCBch4hISGoU6cOVq9ejcqVK8PCwgKDBg1CTk4OZs+eDXt7e1SoUAHTp09XWbZMJsOyZcsQGBgIU1NTuLq6Ytu2bSrTfP/99/Dw8ICZmRnc3NwwceJEvHjxosCyN2zYABcXFygUCnz66adIT08HAKxfvx42NjbIzs5WmW+3bt3wxRdfSNqXRKT/WFwR0TtJSUlBeHg4hgwZAnNz8wLjy5YtCyEEOnfujJSUFERHRyMqKgp//fUXevXqpTLtX3/9hQMHDiA8PBybN2/G6tWr0b59e9y9exfR0dGYNWsWfvjhB2XBlmfixIno1q0bLly4gM8//xy9e/fGlStXlOMtLS2xdu1aXL58GYsWLcLKlSuxYMGCAsvetWsX9u7di7179yI6OhozZ84EAPTo0QM5OTnYvXu3cvpHjx5h7969+PLLL9+5D4noPaPjL44mIj13+vRpAUDs2LGjyGkiIyOFgYGBSEhIULZdunRJABBnzpwRQggxefJkYWZmJtLS0pTTtGnTRri4uIicnBxlW7Vq1URYWJhyGID45ptvVJbn6+srBg0aVGSe2bNni3r16imHC1v2d999J3x9fZXDgwYNEoGBgcrhhQsXCjc3N5Gbm1vkcojow8RrrojonQghALw6PVeUK1euwMnJCU5OTso2Ly8vlC1bFleuXEH9+vUBAC4uLrC0tFROY2dnBwMDA5QpU0alLSkpSWX+jRo1KjAcGxurHP7Pf/6DhQsX4ubNm3j69ClevnwJKysrlffkX7aDg4PKcgYMGID69evj3r17qFixItasWYPg4OA3rjcRfZh4WpCI3om7uztkMpnKabj8hBCFFiH5242MjFTGy2SyQttyc3PfmitvvqdOncKnn36KwMBA7N27FzExMZgwYQKeP3+uMv3bllO3bl3Url0b69evx/nz53Hx4kUEBwe/NQcRfXhYXBHRO7G2tkabNm3w008/ISMjo8D4J0+ewMvLCwkJCbhz546y/fLly0hNTUX16tXfOUP+a7BOnToFT09PAMDx48fh7OyMCRMmwMfHB+7u7rh9+3axltO/f3+sWbMGq1evRqtWrVSOxBER5WFxRUTvbOnSpcjJyUGDBg2wfft23LhxA1euXMHixYvRqFEjtGrVCt7e3vjss89w/vx5nDlzBl988QWaN28OHx+fd17+tm3bsHr1aly/fh2TJ0/GmTNnMHToUABA1apVkZCQgC1btuCvv/7C4sWLsXPnzmIt57PPPsO9e/ewcuVK9OvX751zE9H7icUVEb0zV1dXnD9/Hv7+/hg1ahRq1qyJ1q1b49ChQ1i2bBlkMhl27dqFcuXKoVmzZmjVqhXc3NywdetWSZYfGhqKLVu2wNvbG+vWrcPGjRvh5eUFAPjkk08wYsQIDB06FHXq1MGJEycwceLEYi3HysoK3bp1g4WFBTp37ixJdiJ6/8hE3tWoRER6SCaTYefOnSVW7LRu3RrVq1fH4sWLS2R5RKR/eLcgEZEaUlJSEBkZicOHD2PJkiW6jkNEpRiLKyIiNXz00Ud4/PgxZs2ahWrVquk6DhGVYjwtSERERCQhXtBOREREJCEWV0REREQSYnFFREREJCEWV0REREQSYnFFREREJCEWV0REREQSYnFFREREJCEWV0REREQSYnFFREREJKH/A6+rRUjgp74hAAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Création du barplot\n",
|
||
"plt.bar(purchase_spectacle[\"number_compagny\"], purchase_spectacle[\"Taux_ticket_internet\"])\n",
|
||
"\n",
|
||
"# Ajout de titres et d'étiquettes\n",
|
||
"plt.xlabel('Company')\n",
|
||
"plt.ylabel(\"Taux d'achat de tickets en ligne (%)\")\n",
|
||
"plt.title(\"Taux d'achat des tickets en ligne selon les compagnies de spectacle\")\n",
|
||
"\n",
|
||
"# Affichage du barplot\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 66,
|
||
"id": "59a95248-0261-4970-9e91-e43d50cf4d69",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"Text(0.5, 1.0, 'Boite à moustache du temps ecoulés entre le premier et le dernier achat selon les compagnies de spectacles')"
|
||
]
|
||
},
|
||
"execution_count": 66,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6UAAAHGCAYAAACM3i2bAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABvz0lEQVR4nO3dd3gUVfv/8c+SnhAWkpCGSei9g9JUQGpoYkNAKYJgRRGw8KACPhRFaV9QEaUJEbAAKiBIVwggVYqIoFQhBCkJoYSQnN8f/rIPSxJIINmhvF/XtRfMmTMz95Sd2Ttn5ozNGGMEAAAAAIAF8lkdAAAAAADgzkVSCgAAAACwDEkpAAAAAMAyJKUAAAAAAMuQlAIAAAAALENSCgAAAACwDEkpAAAAAMAyJKUAAAAAAMuQlAIAAAAALHPHJaVbt26V3W7X//3f/1kdCoBckJqaqvr16+vee+/VhQsXrA4HAAAAOZSjpHTq1Kmy2WxOn8KFC6tBgwaaP3/+dQdRtGhRde3a1TF85MgRDRo0SFu3br3ueWalatWqmjt3rgYMGKC1a9fm+vxvRsOGDdO8efPyfDk2m00vvvhini/nassfNGhQrs3viy++0JgxY3Jtfrg+V54frjRgwADFx8fru+++k7e3t+sCy4G8PKdlZdCgQbLZbC5b3s2ma9euKlq0qNVhOPntt980aNAg7d+/P1v106+52a1/vVauXCmbzaaVK1fm6XJu1uXfiKJFi6pVq1a5Nr9z585p0KBBlmyL/fv3y2azaerUqS5f9p1+vrpVWHmMXOlWPm/kVGxsrAYNGqTTp0/n6XJcdc3JynW1lE6ZMkVr165VbGysJk6cKDc3N7Vu3Vrff//9dQUxd+5cvfXWW47hI0eOaPDgwXn2A+6BBx7Qp59+qvbt2+v48eN5soybiauS0tsNSenNb8GCBZo+fboWLVqkgIAAq8PJUl6f05DRW2+9pblz51odhpPffvtNgwcPtuyCf7OqXr261q5dq+rVq1sdiuXOnTunwYMH3xE/tHHrCQsL09q1a9WyZUurQ7mjxMbGavDgwXmelFrN/XomqlixomrWrOkYbt68uQoVKqSZM2eqdevWOZ5ftWrVrieMG9K+fXu1b9/e5csFkHtatmypv//+2+owct25c+fk6+trdRi5ytXrVKJEiVyd3+24T/JKTrdVgQIFVLt27Vxb/vnz5+Xt7U3LG5DLvLy8cvW7ClwuV54p9fb2lqenpzw8PJzKT548qeeff15FihSRp6enihcvrgEDBig5Odmp3uW3561cuVJ33323JOmpp55y3CZ8+W2ZGzduVJs2bRQQECBvb29Vq1ZNX375ZbZiHTx4sGrVqqWAgAAVKFBA1atX16RJk2SMuea0Xbt2Vf78+fX777+rWbNm8vPzU1hYmN59911J0rp163TvvffKz89PpUuX1rRp0zLMY8eOHXrwwQdVqFAheXt7q2rVqhnqZdV8ntmtClu2bFGrVq0UHBwsLy8vhYeHq2XLljp8+LCkf29pPXv2rKZNm+bYlg0aNJAkHT9+XM8//7zKly+v/PnzKzg4WA888IB+/vnnDHEnJyfrnXfeUbly5eTt7a3AwEA1bNhQsbGxGepOnz5d5cqVk6+vr6pUqZLprd179uxRx44dHXGXK1dOH3744VW3f7rExET16NFDgYGByp8/v5o3b64//vgjQ72sbt/Lzm1CDRo00IIFC3TgwAGn29XTXbx4UUOGDFHZsmXl5eWlwoUL66mnnsrQ8p5+a9f8+fNVrVo1+fj4qFy5co5tMnXqVJUrV05+fn665557tHHjxgzrkD9/fu3cuVONGjWSn5+fChcurBdffFHnzp1zqvvVV1+pVq1astvt8vX1VfHixdWtW7errqckGWP00UcfqWrVqvLx8VGhQoX06KOP6q+//spQd9GiRWrUqJFjGeXKldPw4cOd6nz33XeqU6eOfH195e/vryZNmmS4Vf5G9o307zHQr18/FStWTJ6enipSpIh69+6ts2fPunSbNGjQQBUrVtSGDRt03333OZbx7rvvKi0tTdK1z2np+3j79u1q2rSp/P391ahRI0nZP85yYvbs2apTp478/PyUP39+NWvWTFu2bLnmdOnnpSVLluipp55SQECA/Pz81Lp16yy3y08//aS6devK19fXsd2zu+/SHweYMmWKypQpIx8fH9WsWVPr1q2TMUbvv/++ihUrpvz58+uBBx7Q3r17nabP7BjL6X7NLP6sXOu6NHXqVD322GOSpIYNGzqOg+u5DW7p0qVq1KiRChQoIF9fX9WrV0/Lli3L1rS///67mjdvLl9fXwUFBenZZ5/VmTNnrns56d/ZzZs369FHH1WhQoUcfxBIP/8tWrRI1atXl4+Pj8qWLavJkyc7zSOr2/Cyc61PPy5//PFHdevWTYULF5avr2+G3xnpLly4oL59+6pq1aqy2+0KCAhQnTp19O2332aom5aWpnHjxjmOl4IFC6p27dr67rvvMtS91jpm53q7f/9+FS5cWNK/v1XSj5GrPb6QlpamIUOGOL4jBQsWVOXKlTV27FinejdyzV29erUaNWokf39/+fr6qm7dulqwYIFTnfT9sGLFCj333HMKCgpSYGCgHn74YR05ciRby8lMds5Xf/31l9q3b6/w8HB5eXkpJCREjRo1ytadKevXr1fr1q0VGBgob29vlShRQr17977u9V++fLnj90mBAgXUuXNnnT17VnFxcWrXrp0KFiyosLAw9evXTykpKY7p02+LHTFihIYOHarIyEh5e3urZs2aGb5ze/fu1VNPPaVSpUrJ19dXRYoUUevWrbV9+/YM67dz5041bdpUvr6+Kly4sF544QUtWLAgw/ctO9eyy+O88ryVneMru8dqZnL7vJWZ7MSXfr7bsmWLHn74YRUoUEB2u11PPvlkptfl7F5vr3YcDho0SK+++qokqVixYo7zQvr+mz17tpo2baqwsDDHb8w33ngjwzX1Wsu5muxs0+PHj6tnz56KiIhw/F6pV6+eli5des35O5gcmDJlipFk1q1bZ1JSUszFixfNoUOHzEsvvWTy5ctnFi1a5Kh7/vx5U7lyZePn52c++OAD8+OPP5q33nrLuLu7mxYtWjjNNyoqynTp0sUYY0xCQoJjOW+++aZZu3atWbt2rTl06JAxxpjly5cbT09Pc99995nZs2ebRYsWma5duxpJZsqUKddch65du5pJkyaZJUuWmCVLlpj//ve/xsfHxwwePPia03bp0sV4enqacuXKmbFjx5olS5aYp556ykgy/fv3N6VLlzaTJk0yixcvNq1atTKSzMaNGx3T//7778bf39+UKFHCfP7552bBggWmQ4cORpJ57733Mmznffv2OS1/xYoVRpJZsWKFMcaYpKQkExgYaGrWrGm+/PJLs2rVKjN79mzz7LPPmt9++80YY8zatWuNj4+PadGihWNb7ty50xHPc889Z2bNmmVWrlxp5s+fb7p3727y5cvnWIYxxqSkpJiGDRsad3d3069fP7Nw4ULz3Xffmf/85z9m5syZjnqSTNGiRc0999xjvvzyS7Nw4ULToEED4+7ubv78809HvZ07dxq73W4qVapkPv/8c/Pjjz+avn37mnz58plBgwZddR+kpaWZhg0bGi8vLzN06FDz448/moEDB5rixYsbSWbgwIFO+ysqKirDPAYOHGiudejv3LnT1KtXz4SGhjq229q1a40xxqSmpprmzZsbPz8/M3jwYLNkyRLz2WefmSJFipjy5cubc+fOOeYTFRVl7rrrLlOxYkUzc+ZMs3DhQlOrVi3j4eFh3n77bVOvXj0zZ84cM3fuXFO6dGkTEhLiNH36MRcZGelY30GDBhl3d3fTqlUrR73Y2Fhjs9lM+/btzcKFC83y5cvNlClTTKdOna66nsYY06NHD+Ph4WH69u1rFi1aZL744gtTtmxZExISYuLi4hz1PvvsM2Oz2UyDBg3MF198YZYuXWo++ugj8/zzzzvqxMTEGEmmadOmZt68eWb27NmmRo0axtPT0/z888/XtW8uPz8YY8zZs2dN1apVTVBQkBk1apRZunSpGTt2rLHb7eaBBx4waWlpLtsm9evXN4GBgaZUqVJmwoQJZsmSJeb55583ksy0adOMMdc+p3Xp0sV4eHiYokWLmuHDh5tly5aZxYsX5+g4y0xm23Lo0KHGZrOZbt26mfnz55s5c+aYOnXqGD8/P8d5ISvp6xAREWG6detmfvjhBzNx4kQTHBxsIiIizKlTp5y2S0BAgImIiDDjxo0zK1asMKtWrcr2vjPm3/NJVFSUqVu3rtN3JCAgwLzyyivmwQcfNPPnzzcxMTEmJCTEVK5c2Wn6zI6xnOzXzOLPSnauS/Hx8WbYsGFGkvnwww8dx0F8fPw1t/nl14Lp06cbm81m2rZta+bMmWO+//5706pVK+Pm5maWLl161X0YFxdngoODTZEiRcyUKVPMwoULzRNPPGEiIyOdri05WU76cRYVFWVef/11s2TJEjNv3jxjzP/Of+XLlzeff/65Wbx4sXnssceMJKfteeW1Lbvb9PJtVKRIEdOzZ0/zww8/mK+//tpcunQp021w+vRp07VrVzN9+nSzfPlys2jRItOvXz+TL18+x3c2XadOnYzNZjNPP/20+fbbb80PP/xghg4dasaOHeuok911zM719sKFC2bRokVGkunevbvjGNm7d2+W+3T48OHGzc3NDBw40CxbtswsWrTIjBkzxulamt1r7r59+zJs35UrVxoPDw9To0YNM3v2bDNv3jzTtGlTY7PZzKxZszLsh+LFi5tevXqZxYsXm88++8wUKlTINGzYMMv4093I+apMmTKmZMmSZvr06WbVqlXmm2++MX379nU6njKzaNEi4+HhYSpXrmymTp1qli9fbiZPnmzat29/3etfrFgx07dvX/Pjjz+a9957z7i5uZkOHTqY6tWrmyFDhpglS5aY119/3UgyI0eOzLDtIyIizL333mu++eYb89VXX5m7777beHh4mNjYWEfdVatWmb59+5qvv/7arFq1ysydO9e0bdvW+Pj4mN9//91R78iRIyYwMNBERkaaqVOnmoULF5pOnTqZokWLZvi+Zedadnmclx8j2T2+snOsZiYvzluZyU58l5/vXn31VbN48WIzatQo4+fnZ6pVq2YuXrzoqJvd4/dax+GhQ4dMr169jCQzZ84cx3khISHBGGPMf//7XzN69GizYMECs3LlSjNhwgRTrFixDN+77BzvN3LNadasmSlcuLCZOHGiWblypZk3b555++23nb4n13JdSemVHy8vL/PRRx851Z0wYYKRZL788kun8vfee89IMj/++KOj7MofnRs2bMgyySxbtqypVq2aSUlJcSpv1aqVCQsLM6mpqdlen9TUVJOSkmLeeecdExgY6PSDJjNdunQxksw333zjKEtJSTGFCxc2kszmzZsd5SdOnDBubm6mT58+jrL27dsbLy8vc/DgQaf5RkdHG19fX3P69GljTPaT0o0bNxpJjh8AWfHz83Pavlm5dOmSSUlJMY0aNTIPPfSQo/zzzz83ksynn3561eklmZCQEJOYmOgoi4uLM/ny5TPDhw93lDVr1szcddddji9UuhdffNF4e3ubkydPZrmMH374wUhy+lFgzL9f/txMSo0xpmXLlplOP3PmzAzHgTH/O24v/y5ERUUZHx8fc/jwYUfZ1q1bjSQTFhZmzp496yifN2+ekWS+++47p3W42vquXr3aGGPMBx98YCQ5jqHsWrt2bYaLozH/ngR9fHzMa6+9Zowx5syZM6ZAgQLm3nvvzfJ7kpqaasLDw02lSpWcvodnzpwxwcHBpm7duk7rdb1J6fDhw02+fPnMhg0bnOp9/fXXRpJZuHChMSbvt4kx/17IJZn169c71S1fvrxp1qyZY/hq57T0fTx58mSn8pwcZ5m5clsePHjQuLu7m169ejnVO3PmjAkNDTXt2rW76vzSz0uXnxuMMWbNmjVGkhkyZIijLH27LFu2zKludvedMf+eT0JDQ01SUpKjLP07UrVqVafjcMyYMUaS2bZtm6PsymPsevbrlfFnJbvXpa+++irDj6irufJacPbsWRMQEGBat27tVC81NdVUqVLF3HPPPVed3+uvv25sNpvZunWrU3mTJk2c4srJctKPs7fffjvD8qKiooy3t7c5cOCAo+z8+fMmICDAPPPMM46yzJLS7G7T9G3UuXPnq657VtKve927dzfVqlVzlP/0009GkhkwYMBVp8/uOma13Cuvt8ePH89wLbuaVq1amapVq161TnavuZklHLVr1zbBwcHmzJkzTrFXrFjR3HXXXY7vYfp+uPyPlMYYM2LECCPJHD169KoxXu/56p9//jGSzJgxY646/8yUKFHClChRwpw/fz7LOjld/yvjbdu2rZFkRo0a5VRetWpVU716dcdw+rYPDw93iicxMdEEBASYxo0bZxnjpUuXzMWLF02pUqXMK6+84ih/9dVXjc1my/AHx2bNmmWalGbnWpbZMZLd4ys7x2pm8uK8lZnsxJd+nF6+nY353x/kZ8yYYYzJ2fU2O8fh+++/n2lecKW0tDSTkpJiVq1aZSSZX3/9NUfLuZFrTv78+U3v3r2vGt+1XNftu59//rk2bNigDRs26IcfflCXLl30wgsvaPz48Y46y5cvl5+fnx599FGnadNvQ8nurUaX27t3r37//Xc98cQTkqRLly45Pi1atNDRo0e1e/fuq85j+fLlaty4sex2u9zc3OTh4aG3335bJ06cUHx8/DVjsNlsatGihWPY3d1dJUuWVFhYmNOzsQEBAQoODtaBAweclt2oUSNFREQ4zbNr1646d+5cjnsDLlmypAoVKqTXX39dEyZM0G+//Zaj6SVpwoQJql69ury9veXu7i4PDw8tW7ZMu3btctT54Ycf5O3tna3bHhs2bCh/f3/HcEhIiNN2uHDhgpYtW6aHHnpIvr6+GfbhhQsXtG7duiznv2LFCklyHAPpOnbsmKP1vhHz589XwYIF1bp1a6f4q1atqtDQ0Ay3oFWtWlVFihRxDJcrV07Sv7fLXP7cVXr55cdMuqzWN317pN8e2q5dO3355ZfZfs5y/vz5stlsevLJJ53WJTQ0VFWqVHGsS2xsrBITE/X8889neXvt7t27deTIEXXq1En58v3v1JI/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atWqpR9//FH+/v6OaUaPHi13d3e1a9dO58+fV6NGjTR16lS5ubk56sTExOill15y9NLbpk2bLN+NCgAAACBnbCY7L4QEcknVqlVVunRpDR48WGFhYRk6C7Lb7RZFlrcSExNlt9uVkJBwyz5f+scff6hnz56aOHGiSpcubXU4AADkudvh+g3cCmgphUvt2bNHX3/9tUqWLGl1KAAAAABuAnR0BJeqVauW03OgAAAAAO5stJTCpXr16qW+ffsqLi5OlSpVkoeHh9P4ypUrWxQZAAAAACuQlMKlHnnkEUlSt27dHGU2m03GmBx3dAQAAADg1kdSCpfat2+f1SEAAAAAuImQlMKloqKirA4BAAAAwE2Ejo7gctOnT1e9evUUHh6uAwcOSJLGjBmjb7/91uLIAAAAALgaSSlc6uOPP1afPn3UokULnT592vEMacGCBTVmzBhrgwMAAADgciSlcKlx48bp008/1YABA+Tm5uYor1mzprZv325hZAAAAACsQFIKl9q3b5+qVauWodzLy0tnz561ICIAAAAAViIphUsVK1ZMW7duzVD+ww8/qHz58q4PCAAAAICl6H0XLvXqq6/qhRde0IULF2SM0S+//KKZM2dq+PDh+uyzz6wODwAAAICLkZTCpZ566ildunRJr732ms6dO6eOHTuqSJEiGjt2rNq3b291eAAAAABcjKQULtejRw/16NFD//zzj9LS0hQcHGx1SAAAAAAswjOlcLlLly5p6dKl+uabb+Tj4yNJOnLkiJKSkiyODAAAAICr0VIKlzpw4ICaN2+ugwcPKjk5WU2aNJG/v79GjBihCxcuaMKECVaHCAAAAMCFaCmFS7388suqWbOmTp065WgllaSHHnpIy5YtszAyAAAAAFagpRQutXr1aq1Zs0aenp5O5VFRUfr7778tigoAAACAVWgphUulpaUpNTU1Q/nhw4fl7+9vQUQAAAAArERSCpdq0qSJxowZ4xi22WxKSkrSwIED1aJFC+sCAwAAAGAJbt+FS40ePVoNGzZU+fLldeHCBXXs2FF79uxRUFCQZs6caXV4AAAAAFyMpBQuFR4erq1bt2rmzJnavHmz0tLS1L17dz3xxBNOHR8BAAAAuDOQlMLlfHx81K1bN3Xr1s3qUAAAAABYjGdK4VLh4eHq2LGjJk6cqD/++MPqcAAAAABYjKQULjVy5EgV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XgcPHtShQ4ccZb/99psSEhJUrly561rm5TJb37Jly0qS1qxZo6ioKA0YMEA1a9ZUqVKlMnTaVKZMGf3yyy9OZRs3bsxxHO7u7urSpYumTJmiKVOmqH379vL19c3xfAAASEdLKQAgT/j4+Kh27dp69913VbRoUf3zzz968803c23+hw4dUp8+ffTMM89o8+bNGjdunKNlsHTp0nriiSfUuXNnjRw5UtWqVdM///yj5cuXq1KlSmrRosV1LXPQoEF69tlnFRwcrOjoaJ05c0Zr1qxRr1691LhxY1WuXFlPPPGExowZo0uXLun5559X/fr1VbNmzRte36+++ko1a9bUvffeq5iYGP3yyy+aNGmSJKlkyZI6ePCgZs2apbvvvlsLFizQ3Llznabv1auXevTooZo1a6pu3bqaPXu2tm3b5nSbdHY9/fTTjkR7zZo1N7xuAIA7Gy2lAIA8M3nyZKWkpKhmzZp6+eWXNWTIkFybd+fOnXX+/Hndc889euGFF9SrVy/17NnTMX7KlCnq3Lmz+vbtqzJlyqhNmzZav3690zOfOdWlSxeNGTNGH330kSpUqKBWrVo5evO12WyaN2+eChUqpPvvv1+NGzdW8eLFNXv27BteV0kaPHiwZs2apcqVK2vatGmKiYlR+fLlJUkPPvigXnnlFb344ouqWrWqYmNj9dZbbzlN/8QTT6h///7q16+fqlevrn379qlr167y9vbOcSylSpVS3bp1VaZMGdWqVStX1g8AcOeymcweKAEAADcNm82muXPnqm3btrk63yZNmig0NFTTp0/P0XTGGJUtW1bPPPOM+vTpk6sxAQDuPNy+CwDAHeDcuXOaMGGCmjVrJjc3N82cOVNLly7N8Ttl4+PjNX36dP3999966qmn8ihaAMCdhKQUAID/7/Keea/0ww8/6L777nNhNLnLZrNp4cKFGjJkiJKTk1WmTBl98803aty4cY7mExISoqCgIE2cOFGFChXKo2gBAHcSbt8FAOD/27t3b5bjihQpcs3XwgAAgJwjKQUAAAAAWIbedwEAAAAAliEpBQAAAABYhqQUAAAAAGAZklIAAAAAgGVISgEAAAAAliEpBQAAAABYhqQUAAAAAGAZklIAAAAAgGX+HzsIOzI+/OG6AAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"#repartition Chiffre d'affaire selon le numero de la compagnie\n",
|
||
"\n",
|
||
"sns.boxplot(data=products_purchased_reduced_spectacle, y=\"time_between_purchase\",x=\"number_compagny\",showfliers=False,showmeans=True)\n",
|
||
"plt.title(\"Boite à moustache du temps ecoulés entre le premier et le dernier achat selon les compagnies de spectacles\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 29,
|
||
"id": "e2c51e28-6197-48f0-ab6d-9fc7b3b0de74",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Statistique F : 7956.05932109542\n",
|
||
"Valeur de p : 0.0\n",
|
||
"Nombre de degrés de liberté entre les groupes : 4\n",
|
||
"Nombre de degrés de liberté à l'intérieur des groupes : 764875\n",
|
||
"Il y a des différences significatives entre au moins une des entrepries .\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"#test d'anova pour voir si la difference de temps entre le premier et le dernier achat est statistiquement significative\n",
|
||
"\n",
|
||
"from scipy.stats import f_oneway\n",
|
||
"\n",
|
||
"# Créez une liste pour stocker les données de chaque groupe\n",
|
||
"groupes = []\n",
|
||
"\n",
|
||
"# Parcourez chaque modalité de la variable catégorielle et divisez les données en groupes\n",
|
||
"for modalite in products_purchased_reduced_spectacle['number_compagny'].unique():\n",
|
||
" groupe = products_purchased_reduced_spectacle[products_purchased_reduced_spectacle['number_compagny'] == modalite]['time_between_purchase']\n",
|
||
" groupes.append(groupe)\n",
|
||
"\n",
|
||
"# Effectuez le test ANOVA\n",
|
||
"f_statistic, p_value = f_oneway(*groupes)\n",
|
||
"\n",
|
||
"# Nombre total d'observations\n",
|
||
"N = sum(len(groupe) for groupe in groupes)\n",
|
||
"\n",
|
||
"# Nombre de groupes ou de catégories\n",
|
||
"k = len(groupes)\n",
|
||
"\n",
|
||
"# Degrés de liberté entre les groupes\n",
|
||
"df_between = k - 1\n",
|
||
"\n",
|
||
"# Degrés de liberté à l'intérieur des groupes\n",
|
||
"df_within = N - k\n",
|
||
"\n",
|
||
"# Affichez les résultats\n",
|
||
"print(\"Statistique F :\", f_statistic)\n",
|
||
"print(\"Valeur de p :\", p_value)\n",
|
||
"\n",
|
||
"print(\"Nombre de degrés de liberté entre les groupes :\", df_between)\n",
|
||
"print(\"Nombre de degrés de liberté à l'intérieur des groupes :\", df_within)\n",
|
||
"\n",
|
||
"if p_value < 0.05:\n",
|
||
" print(\"Il y a des différences significatives entre au moins une des entrepries .\")\n",
|
||
"else:\n",
|
||
" print(\"Il n'y a pas de différences significatives entre les entreprises .\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 33,
|
||
"id": "74f06e96-3c25-4eca-8190-25b0a4ab0d75",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"customer_id int64\n",
|
||
"nb_tickets int64\n",
|
||
"nb_purchases int64\n",
|
||
"total_amount float64\n",
|
||
"nb_suppliers int64\n",
|
||
"vente_internet_max int64\n",
|
||
"purchase_date_min float64\n",
|
||
"purchase_date_max float64\n",
|
||
"time_between_purchase float64\n",
|
||
"nb_tickets_internet float64\n",
|
||
"number_compagny int64\n",
|
||
"dtype: object"
|
||
]
|
||
},
|
||
"execution_count": 33,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"products_purchased_reduced_spectacle.dtypes"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 38,
|
||
"id": "20a70ec0-38f6-470e-a442-7884a150613a",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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Skpyur7MzExz8eJFs2bNGiPJ/Pjjj/Z5eQ2zxhhz7Ngxc8cdd5h77rnHbN261fj7+5t//vOfV92fr7/+Otfz/PIwez3n87Fjx4y3t7f597//7dDesWNHExwcbC5evGiMMWbOnDlGkvn8888d+v3www9Gkpk4caK9LTw83Pj6+poDBw7Y286dO2dKlChh+vbta2+bN2+ekWRWrVrlsE5XzmlnssLsXXfd5XAO7d+/33h5eZk+ffrkuOzVzqPu3bvnuu0srnwGJJng4GCTmppqb0tOTjaFChUycXFx9rY33njDSDL79u3Ltr3w8HDj4eFhfvnlF4f2vn37miJFijgcC2OMefPNN40ks3PnTmPM/4XZ0NBQc+7cOXu/1NRUU6JECdOsWTN7W9bPkVdeeSVbHVeG2az93b59u9P3yRjXzi1YB8MMcFPx9vbWmDFjtHnzZn366adO+6xcuVLSpT+fXu7xxx9X4cKFs/2Zqm7duipbtqx9ulq1apIu/fnW398/W7uzJyp07drVYbpLly6SpFWrVjm0N23aVMWLF7dPnz9/Xt98840effRR+fv7Kz093f5q06aNzp8/r++++87pfl6uSZMmKly4cLZaW7du7fBntiv3YePGjTp37ly29yosLExNmzZ1eK+efvppSdL//vc/e9u7776rWrVq6YEHHpB06aaQEydOqEePHg77kpmZqVatWumHH37I9mfNdu3aOUzXrl1b58+fV0pKSo77u3HjRp0/fz7b+x4VFaXw8HCHtsWLF6tmzZqqW7euQ00tW7Z0+NOoMxs2bFBqaqr69++f613Rp0+f1rBhw1SpUiV5enrK09NTRYoU0ZkzZxyGa+S2z5LjufXHH3+oS5cuCgkJkYeHh7y8vBQdHS1JTteZF0FBQZo7d662bt2qqKgolStXTpMmTbrqclnncU7neZbrPZ+DgoLUtm1bzZw5U5mZmZKkv/76S1988YW6d+8uT09PSZeOabFixdS2bVuHbdStW1chISHZjmndunVVrlw5+7Svr68qV67s9LN8pWs5p53p0qWLwzkUHh6uqKgoh58Rrp5HHTp0uOp2Jdc/A02aNFHRokXt08HBwSpdunSe3q8stWvXVuXKlbPV0aRJE4WGhjrU0bp1a0nSmjVrHPr/4x//kK+vr326aNGiatu2rdauXauMjAyHvnl5L+rWrStvb2/961//0syZM/XHH39k6+PquQVrIMziptO5c2fdddddeumll3Tx4sVs848fPy5PT0+VKlXKod1msykkJETHjx93aC9RooTDtLe3d67t58+fd2j39PRUUFCQQ1tISIi9lsuVKVMmW63p6emaMGGCvLy8HF5t2rSRJB07dizbPl7pWvchq74r65Kk0NBQh/qDg4PVqVMnffDBB8rIyNCOHTv07bff6plnnrH3OXLkiCTpsccey7Y/48aNkzFGJ06ccNjOle+dj4+PpNxvGMmqK+t9vtyVbUeOHNGOHTuy1VO0aFEZY3J9f7PGyN1xxx059pEuBZV3331Xffr00bJly7Rp0yb98MMPKlWqlNP9uNo+nz59Wo0aNdL333+vMWPGaPXq1frhhx80f/58h37X4t5771WNGjV0/vx5Pf300w7/CcpJ1mcqp/P88n7Xez736tVLhw4dUkJCgiRpzpw5SktLc/gP15EjR/T333/L29s723aSk5OzbePKuqVL73le3sdrOaedyelcvfwz5up55Oxzm9M+uPIZuJ73K7fajhw5okWLFmWro0aNGpKynxs5vWcXLlzQ6dOnr7q9K1WsWFErVqxQ6dKlNWDAAFWsWFEVK1bUO++841CjK+cWrMHT3QUAV7LZbBo3bpyaN2+uyZMnZ5sfFBSk9PR0HT161CHQGmOUnJysu+++O1/rSU9P1/Hjxx1+ASQnJ9trubL2yxUvXlweHh7q1q2bBgwY4HT9ERER+Vrv5bLqS0pKyjbv8OHDKlmypEPbs88+qw8//FBffPGFli5dqmLFijlcrcvqP2HChBzvIg4ODs63urPe58slJyc73PhUsmRJ+fn5Odzwc7kr9/FyWefPn3/+mWOfkydPavHixYqNjdXw4cPt7WlpaXkKOc6sXLlShw8f1urVq+1XYyU5fQySr6+v0xvmcvqlGxsbq59++kmRkZF65ZVX9PDDD6tChQq51pP1mcrpPM+SH+dzy5YtFRoaqunTp6tly5aaPn267r33XlWvXt3eJ+vGuaVLlzpdx+VXFa9Xfp3TOZ2rWe/ntZxHeX2G6vV8Bq6Vs9pKliyp2rVra+zYsU6XCQ0NdZjO6T3z9vbO9nzvvL4XjRo1UqNGjZSRkaHNmzdrwoQJGjx4sIKDg9W5c+cbem7hxiHM4qbUrFkzNW/eXKNHj1ZYWJjDvAcffFDjx4/XRx99pCFDhtjbP//8c505c0YPPvhgvtcze/ZsDRo0yD798ccfS9JVH97v7++vJk2aaNu2bapdu7b9yumN0qBBA/n5+emjjz6y380tXQpvK1eu1GOPPebQPzIyUlFRURo3bpx+/vln/etf/3K4stewYUMVK1ZMu3btcrhim9/uu+8++fr6avbs2Q5/XtywYYMOHDjgEGYffvhhvfbaawoKCnL5PwZRUVEKDAzUpEmT1LlzZ6e/MG02m4wx9qurWaZMmZLtT6F5lbWdK9f5wQcfZOtbvnx5zZs3T2lpafb+x48f14YNGxQQEODQNyEhQXFxcXr55Zc1ePBg1a1bV506ddL69etzPfeaNGmi8ePH53ieZ8mP8zkrDMfHx+vbb7/V5s2bs+33ww8/rE8++UQZGRm69957Xd6GMzn9RSC/zuk5c+Zo6NCh9mN74MABbdiwQd27d5dUMOdRluv5DOQkL39BcVbHkiVLVLFiRYfhVjmZP3++3njjDftQg1OnTmnRokVq1KiRPDw8rq3w/8/Dw0P33nuvqlatqtmzZ2vr1q3q3LlzgZxbcD/CLG5a48aNU2RkpFJSUux/ppKk5s2bq2XLlho2bJhSU1PVsGFD7dixQ7GxsapXr566deuWr3V4e3vrrbfe0unTp3X33Xdrw4YNGjNmjFq3bq3777//qsu/8847uv/++9WoUSM9/fTTKl++vE6dOqXff/9dixYtso8BLgjFihXTiBEj9O9//1vdu3fXE088oePHj2vUqFHy9fVVbGxstmWeffZZderUSTabTf3793eYV6RIEU2YMEE9evTQiRMn9Nhjj6l06dI6evSofvzxRx09elTvv//+ddddvHhxPf/88xozZoz69Omjxx9/XAcPHtTIkSOz/Wly8ODB+vzzz/XAAw9oyJAhql27tjIzM5WYmKjly5frueeey/GXVpEiRfTWW2+pT58+atasmZ566ikFBwfr999/148//qh3331XAQEBeuCBB/TGG2+oZMmSKl++vNasWaOpU6eqWLFi17R/UVFRKl68uPr166fY2Fh5eXlp9uzZTp+x3K1bN33wwQf65z//qaeeekrHjx/X+PHjswXZpKQk/fOf/1R0dLRiY2NVqFAhzZ07Vw888IBefPFFxcfH51hPixYt7P3OnDmj+vXra/369frwww+z9c2P87lXr14aN26cunTp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S7r06K3t27crMTFR0qXxrt27/9/3Nvfr108HDhzQ0KFDtXv3bk2bNk1Tp07V888/747yAQAA4GZuHTO7efNmNWnSxD49dOhQSVKPHj00Y8YMJSUl2YOtJEVERGjJkiUaMmSI3nvvPYWGhuq///1vjo/lAgAAwK3NrWG2cePG9hu4nJkxY0a2tujoaG3durUAqwIAAIBVWGrMLAAAAHA5wiwAAAAsizALAAAAyyLMAgAAwLIIswAAALAswiwAAAAsizALAAAAyyLMAgAAwLIIswAAALAswiwAAAAsizALAAAAyyLMAgAAwLIIswAAALAswiwAAAAsizALAAAAyyLMAgAAwLIIswAAALAswiwAAAAsizALAAAAyyLMAgAAwLIIswAAALAsl8Ps1KlTnbanp6crJibmugsCAAAA8srlMPvcc8+pQ4cOOnHihL1tz549uueee/Tpp5/ma3EAAABAblwOs9u2bdORI0dUq1YtJSQk6L333tNdd92lmjVravv27QVQIgAAAOCcp6sLREREaO3atRoyZIhatWolDw8PzZo1S507dy6I+gAAAIAcXdMNYIsXL9acOXMUFRWlYsWK6X//+58OHz6c37UBAAAAuXI5zPbt21cdO3bUiy++qLVr12rHjh3y8fFRrVq1GDMLAACAG8rlYQbr16/X999/rzp16kiSQkJCtGTJEr333nvq1auXOnbsmO9FAgAAAM64HGa3bNkiHx+fbO0DBgxQs2bN8qUoAAAAIC9cHmbgLMhmqVKlynUVAwAAALjimp5mYLPZcpz/xx9/XFdBAAAAQF65HGYHDx7sMH3x4kVt27ZNS5cu1QsvvJBfdQEAAABX5XKYffbZZ522v/fee9q8efN1FwQAAADk1TU9Z9aZ1q1b6/PPP8+v1QEAAABXlW9h9rPPPlOJEiXya3UAAADAVbk8zKBevXoON4AZY5ScnKyjR49q4sSJ+VocAAAAkBuXw+wjjzziMF2oUCGVKlVKjRs3VtWqVfOrLgAAAOCqXA6zsbGxBVEHAAAA4DKXw+zlzp07p4sXLzq0BQQEXFdBAAAAQF65fAPYmTNn9Mwzz6h06dIqUqSIihcv7vACAAAAbhSXw+yLL76olStXauLEifLx8dGUKVM0atQohYaGatasWQVRIwAAAOCUy8MMFi1apFmzZqlx48bq1auXGjVqpEqVKik8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6dJFw4YNU3Jysmw2mzIzM7V+/Xo9//zz6t69e0HUCAAAADjlcpgdO3asypUrp7Jly+r06dOqXr26HnjgAUVFRenll18uiBoBAAAAp1x+zqyXl5dmz56t0aNHa9u2bcrMzFS9evV05513FkR9AAAAQI5cDrOrV69W48aNVbFiRVWsWLEgagIAAADyxOVhBq1atVLFihU1ZswY/fnnnwVREwAAAJAnLofZw4cP69lnn9X8+fNVvnx5tWzZUp9++qkuXLhQEPUBAAAAOXI5zJYoUUKDBg3S1q1btXnzZlWpUkUDBgxQmTJlNGjQIP34448FUScAAACQjcth9nJ169bV8OHDNWDAAJ05c0bTpk1TZGSkGjVqpJ07d+ZXjQAAAIBT1xRmL168qM8++0xt2rRReHi4li1bpnfffVdHjhzRvn37FBYWpscffzy/awUAAAAcuBxmBw4cqDJlyqhfv36qXLmytm3bpo0bN6pPnz4qXLiwwsLC9Prrr2vPnj15Wt/EiRMVEREhX19fRUZG6ttvv821f1paml566SWFh4fLx8dHFStW1LRp01zdDQAAANwCXH40165duzRhwgR16NBB3t7eTvuEhoZq1apVV13X3LlzNXjwYE2cOFENGzbUBx98oNatW2vXrl0qV66c02U6duyoI0eOaOrUqapUqZJSUlKUnp7u6m4AAADgFuBymP3mm2+uvlJPT0VHR1+139tvv63evXurT58+kqT4+HgtW7ZM77//vuLi4rL1X7p0qdasWaM//vhDJUqUkCSVL1/etR0AAADALeOaxszu3btXAwcOVLNmzdS8eXMNGjRIe/fudWkdFy5c0JYtW9SiRQuH9hYtWmjDhg1Ol/nyyy9Vv359jR8/XmXLllXlypX1/PPP69y5czluJy0tTampqQ4vAAAA3BpcDrPLli1T9erVtWnTJtWuXVs1a9bU999/rxo1aighISHP6zl27JgyMjIUHBzs0B4cHKzk5GSny/zxxx9at26dfv75Zy1YsEDx8fH67LPPNGDAgBy3ExcXp8DAQPsrLCwszzUCAADg5ubyMIPhw4dryJAhev3117O1Dxs2TM2bN3dpfTabzWHaGJOtLUtmZqZsNptmz56twMBASZeGKjz22GN677335Ofnl22ZmJgYDR061D6dmppKoAUAALhFuHxldvfu3erdu3e29l69emnXrl15Xk/JkiXl4eGR7SpsSkpKtqu1WcqUKaOyZcvag6wkVatWTcaYHL9a18fHRwEBAQ4vAAAA3BpcDrOlSpXS9u3bs7Vv375dpUuXzvN6vL29FRkZmW1oQkJCgqKiopwu07BhQx0+fFinT5+2t/36668qVKiQ7rjjjjxvGwAAALcGl4cZPPXUU/rXv/6lP/74Q1FRUbLZbFq3bp3GjRun5557zqV1DR06VN26dVP9+vXVoEEDTZ48WYmJierXr5+kS0MEDh06pFmzZkmSunTpoldffVVPPvmkRo0apWPHjumFF15Qr169nA4xAAAAwK3N5TA7YsQIFS1aVG+99ZZiYmIkXXqu7MiRIzVo0CCX1tWpUycdP35co0ePVlJSkmrWrKklS5YoPDxckpSUlKTExER7/yJFiighIUEDBw5U/fr1FRQUpI4dO2rMmDGu7gYAAABuAS6HWZvNpiFDhmjIkCE6deqUJKlo0aLXXED//v3Vv39/p/NmzJiRra1q1aouPTUBAAAAty6Xw+zlrifEAgAAANfL5TB7/PhxvfLKK1q1apVSUlKUmZnpMP/EiRP5VhwAAACQG5fD7D//+U/t3btXvXv3VnBwcI7PhAUAAAAKmsthdt26dVq3bp3q1KlTEPUAAAAAeebyc2arVq2qc+fOFUQtAAAAgEtcDrMTJ07USy+9pDVr1uj48eNKTU11eAEAAAA3isvDDIoVK6aTJ0+qadOmDu3GGNlsNmVkZORbcQAAAEBuXA6zXbt2lbe3tz7++GNuAAMAAIBbuRxmf/75Z23btk1VqlQpiHoAAACAPHN5zGz9+vV18ODBgqgFAAAAcInLV2YHDhyoZ599Vi+88IJq1aolLy8vh/m1a9fOt+IAAACA3LgcZjt16iRJ6tWrl73NZrNxAxgAAABuOJfD7L59+wqiDgAAAMBlLofZ8PDwgqgDAAAAcJnLN4ABAAAANwvCLAAAACyLMAsAAADLIswCAADAsq4pzP7999+aMmWKYmJidOLECUnS1q1bdejQoXwtDgAAAMiNy08z2LFjh5o1a6bAwEDt379fTz31lEqUKKEFCxbowIEDmjVrVkHUCQAAAGTj8pXZoUOHqmfPnvrtt9/k6+trb2/durXWrl2br8UBAAAAuXE5zP7www/q27dvtvayZcsqOTk5X4oCAAAA8sLlMOvr66vU1NRs7b/88otKlSqVL0UBAAAAeeHymNn27dtr9OjR+vTTTyVJNptNiYmJGj58uDp06JDvBQJAQYt8gbH+N4stb3R3dwkALMblK7Nvvvmmjh49qtKlS+vcuXOKjo5WpUqVVLRoUY0dO7YgagQAAACccvnKbEBAgNatW6eVK1dq69atyszM1F133aVmzZoVRH0AAABAjlwKs+np6fL19dX27dvVtGlTNW3atKDqAgAAAK7KpWEGnp6eCg8PV0ZGRkHVAwAAAOSZy2NmX375ZYdv/gIAAADcxeUxs//973/1+++/KzQ0VOHh4SpcuLDD/K1bt+ZbcQAAAEBuXA6zjzzySAGUAQAAALjO5TAbGxtbEHUAAAAALnM5zGbZvHmzdu/eLZvNpmrVqikyMjI/6wIAAACuyuUw++eff+qJJ57Q+vXrVaxYMUnS33//raioKM2ZM0dhYWH5XSMAAADglMtPM+jVq5cuXryo3bt368SJEzpx4oR2794tY4x69+5dEDUCAAAATrl8Zfbbb7/Vhg0bVKVKFXtblSpVNGHCBDVs2DBfiwMAAABy4/KV2XLlyunixYvZ2tPT01W2bNl8KQoAAADIC5fD7Pjx4zVw4EBt3rxZxhhJl24Ge/bZZ/Xmm2/me4EAAABATvI0zKB48eKy2Wz26TNnzujee++Vp+elxdPT0+Xp6alevXrxHFoAAADcMHkKs/Hx8QVcBgAAAOC6PIXZHj16FHQdAAAAgMuu+UsTUlJSlJKSoszMTIf22rVrX3dRAAAAQF64HGa3bNmiHj162J8tezmbzaaMjIx8Kw4AAADIjcth9sknn1TlypU1depUBQcHO9wYBgAAANxILofZffv2af78+apUqVJB1AMAAADkmcvPmX3wwQf1448/FkQtAAAAgEtcvjI7ZcoU9ejRQz///LNq1qwpLy8vh/nt2rXLt+IAAACA3LgcZjds2KB169bp66+/zjaPG8AAAABwI7k8zGDQoEHq1q2bkpKSlJmZ6fAiyAIAAOBGcjnMHj9+XEOGDFFwcHBB1AMAAADkmcth9h//+IdWrVpVELUAAAAALnF5zGzlypUVExOjdevWqVatWtluABs0aFC+FQcAAADk5pqeZlCkSBGtWbNGa9ascZhns9kIswAAALhhrulLEwAAAICbgctjZi9njJExJr9qAQAAAFxyTWF21qxZqlWrlvz8/OTn56fatWvrww8/zO/aAAAAgFy5PMzg7bff1ogRI/TMM8+oYcOGMsZo/fr16tevn44dO6YhQ4YURJ0AAABANi6H2QkTJuj9999X9+7d7W3t27dXjRo1NHLkSMIsAAAAbhiXhxkkJSUpKioqW3tUVJSSkpLypSgAAAAgL1wOs5UqVdKnn36arX3u3Lm68847XS5g4sSJioiIkK+vryIjI/Xtt9/mabn169fL09NTdevWdXmbAAAAuDW4PMxg1KhR6tSpk9auXauGDRvKZrNp3bp1+uabb5yG3NzMnTtXgwcP1sSJE9WwYUN98MEHat26tXbt2qVy5crluNzJkyfVvXt3Pfjggzpy5IiruwAAAIBbhMtXZjt06KDvv/9eJUuW1MKFCzV//nyVLFlSmzZt0qOPPurSut5++2317t1bffr0UbVq1RQfH6+wsDC9//77uS7Xt29fdenSRQ0aNHC1fAAAANxCXL4yK0mRkZH66KOPrmvDFy5c0JYtWzR8+HCH9hYtWmjDhg05Ljd9+nTt3btXH330kcaMGXPV7aSlpSktLc0+nZqaeu1FAwAA4KZyXV+acD2OHTumjIwMBQcHO7QHBwcrOTnZ6TK//fabhg8frtmzZ8vTM285PC4uToGBgfZXWFjYddcOAACAm0Oew2yhQoXk4eGR6yuvAfNyNpvNYdoYk61NkjIyMtSlSxeNGjVKlStXzvP6Y2JidPLkSfvr4MGDLtcIAACAm1Oe0+eCBQtynLdhwwZNmDDBpa+2LVmypDw8PLJdhU1JScl2tVaSTp06pc2bN2vbtm165plnJEmZmZkyxsjT01PLly9X06ZNsy3n4+MjHx+fPNcFAAAA68hzmG3fvn22tj179igmJkaLFi1S165d9eqrr+Z5w97e3oqMjFRCQoLDjWMJCQlOtxUQEKCffvrJoW3ixIlauXKlPvvsM0VEROR52wAAALg1XNMNYIcPH1ZsbKxmzpypli1bavv27apZs6bL6xk6dKi6deum+vXrq0GDBpo8ebISExPVr18/SZeGCBw6dEizZs1SoUKFsm2jdOnS8vX1vaZtAwAAwPpcCrMnT57Ua6+9pgkTJqhu3br65ptv1KhRo2veeKdOnXT8+HGNHj1aSUlJqlmzppYsWaLw8HBJl75tLDEx8ZrXDwAAgFtbnsPs+PHjNW7cOIWEhGjOnDlOhwJci/79+6t///5O582YMSPXZUeOHKmRI0fmSx0AAACwnjyH2eHDh8vPz0+VKlXSzJkzNXPmTKf95s+fn2/FAQAAALnJc5jt3r2700dmAQAAAO6S5zB7tT/5AwAAADea274BDAAAALhehFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZbg+zEydOVEREhHx9fRUZGalvv/02x77z589X8+bNVapUKQUEBKhBgwZatmzZDawWAAAANxO3htm5c+dq8ODBeumll7Rt2zY1atRIrVu3VmJiotP+a9euVfPmzbVkyRJt2bJFTZo0Udu2bbVt27YbXDkAAABuBp7u3Pjbb7+t3r17q0+fPpKk+Ph4LVu2TO+//77i4uKy9Y+Pj3eYfu211/TFF19o0aJFqlevntNtpKWlKS0tzT6dmpqafzsAAAAAt3LbldkLFy5oy5YtatGihUN7ixYttGHDhjytIzMzU6dOnVKJEiVy7BMXF6fAwED7Kyws7LrqBgAAwM3DbWH22LFjysjIUHBwsEN7cHCwkpOT87SOt956S2fOnFHHjh1z7BMTE6OTJ0/aXwcPHryuugEAAHDzcOswA0my2WwO08aYbG3OzJkzRyNHjtQXX3yh0qVL59jPx8dHPj4+110nAAAAbj5uC7MlS5aUh4dHtquwKSkp2a7WXmnu3Lnq3bu35s2bp2bNmhVkmQAAALiJuW2Ygbe3tyIjI5WQkODQnpCQoKioqByXmzNnjnr27KmPP/5YDz30UEGXCQAAgJuYW4cZDB06VN26dVP9+vXVoEEDTZ48WYmJierXr5+kS+NdDx06pFmzZkm6FGS7d++ud955R/fdd5/9qq6fn58CAwPdth8AAABwD7eG2U6dOun48eMaPXq0kpKSVLNmTS1ZskTh4eGSpKSkJIdnzn7wwQdKT0/XgAEDNGDAAHt7jx49NGPGjBtdPgAAANzM7TeA9e/fX/3793c678qAunr16oIvCAAAAJbh9q+zBQAAAK4VYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZbk9zE6cOFERERHy9fVVZGSkvv3221z7r1mzRpGRkfL19VWFChU0adKkG1QpAAAAbjZuDbNz587V4MGD9dJLL2nbtm1q1KiRWrdurcTERKf99+3bpzZt2qhRo0batm2b/v3vf2vQoEH6/PPPb3DlAAAAuBm4Ncy+/fbb6t27t/r06aNq1aopPj5eYWFhev/99532nzRpksqVK6f4+HhVq1ZNffr0Ua9evfTmm2/e4MoBAABwM/B014YvXLigLVu2aPjw4Q7tLVq00IYNG5wus3HjRrVo0cKhrWXLlpo6daouXrwoLy+vbMukpaUpLS3NPn3y5ElJUmpqqkv1ZqSdc6k/Co6rx+5acLxvHhzv2wvH+/bC8b69uHK8s/oaY67a121h9tixY8rIyFBwcLBDe3BwsJKTk50uk5yc7LR/enq6jh07pjJlymRbJi4uTqNGjcrWHhYWdh3Vw50CJ/Rzdwm4gTjetxeO9+2F4317uZbjferUKQUGBubax21hNovNZnOYNsZka7taf2ftWWJiYjR06FD7dGZmpk6cOKGgoKBct3OrSU1NVVhYmA4ePKiAgAB3l4MCxvG+vXC8by8c79vL7Xq8jTE6deqUQkNDr9rXbWG2ZMmS8vDwyHYVNiUlJdvV1ywhISFO+3t6eiooKMjpMj4+PvLx8XFoK1as2LUXbnEBAQG31Yfhdsfxvr1wvG8vHO/by+14vK92RTaL224A8/b2VmRkpBISEhzaExISFBUV5XSZBg0aZOu/fPly1a9f3+l4WQAAANza3Po0g6FDh2rKlCmaNm2adu/erSFDhigxMVH9+l0aUxETE6Pu3bvb+/fr108HDhzQ0KFDtXv3bk2bNk1Tp07V888/765dAAAAgBu5dcxsp06ddPz4cY0ePVpJSUmqWbOmlixZovDwcElSUlKSwzNnIyIitGTJEg0ZMkTvvfeeQkND9d///lcdOnRw1y5Yho+Pj2JjY7MNucCtieN9e+F431443rcXjvfV2UxennkAAAAA3ITc/nW2AAAAwLUizAIAAMCyCLMAAACwLMIsAAAALIswe4tZu3at2rZtq9DQUNlsNi1cuNBhvjFGI0eOVGhoqPz8/NS4cWPt3LnTPcXiul3teM+fP18tW7ZUyZIlZbPZtH37drfUifyR2/G+ePGihg0bplq1aqlw4cIKDQ1V9+7ddfjwYfcVjOtytc/3yJEjVbVqVRUuXFjFixdXs2bN9P3337unWFy3qx3vy/Xt21c2m03x8fE3rL6bGWH2FnPmzBnVqVNH7777rtP548eP19tvv613331XP/zwg0JCQtS8eXOdOnXqBleK/HC1433mzBk1bNhQr7/++g2uDAUht+N99uxZbd26VSNGjNDWrVs1f/58/frrr2rXrp0bKkV+uNrnu3Llynr33Xf1008/ad26dSpfvrxatGiho0eP3uBKkR+udryzLFy4UN9//32evub1tmFwy5JkFixYYJ/OzMw0ISEh5vXXX7e3nT9/3gQGBppJkya5oULkpyuP9+X27dtnJJlt27bd0JpQcHI73lk2bdpkJJkDBw7cmKJQYPJyvE+ePGkkmRUrVtyYolBgcjref/75pylbtqz5+eefTXh4uPnPf/5zw2u7GXFl9jayb98+JScnq0WLFvY2Hx8fRUdHa8OGDW6sDEBBOHnypGw2m4oVK+buUlDALly4oMmTJyswMFB16tRxdzkoAJmZmerWrZteeOEF1ahRw93l3FTc+g1guLGSk5MlScHBwQ7twcHBOnDggDtKAlBAzp8/r+HDh6tLly4KCAhwdzkoIIsXL1bnzp119uxZlSlTRgkJCSpZsqS7y0IBGDdunDw9PTVo0CB3l3LT4crsbchmszlMG2OytQGwrosXL6pz587KzMzUxIkT3V0OClCTJk20fft2bdiwQa1atVLHjh2VkpLi7rKQz7Zs2aJ33nlHM2bM4Pe1E4TZ20hISIik/7tCmyUlJSXb1VoA1nTx4kV17NhR+/btU0JCAldlb3GFCxdWpUqVdN9992nq1Kny9PTU1KlT3V0W8tm3336rlJQUlStXTp6envL09NSBAwf03HPPqXz58u4uz+0Is7eRiIgIhYSEKCEhwd524cIFrVmzRlFRUW6sDEB+yAqyv/32m1asWKGgoCB3l4QbzBijtLQ0d5eBfNatWzft2LFD27dvt79CQ0P1wgsvaNmyZe4uz+0YM3uLOX36tH7//Xf79L59+7R9+3aVKFFC5cqV0+DBg/Xaa6/pzjvv1J133qnXXntN/v7+6tKlixurxrW62vE+ceKEEhMT7c8a/eWXXyRdukqfdaUe1pHb8Q4NDdVjjz2mrVu3avHixcrIyLD/FaZEiRLy9vZ2V9m4Rrkd76CgII0dO1bt2rVTmTJldPz4cU2cOFF//vmnHn/8cTdWjWt1tZ/nV/7n1MvLSyEhIapSpcqNLvXm4+7HKSB/rVq1ykjK9urRo4cx5tLjuWJjY01ISIjx8fExDzzwgPnpp5/cWzSu2dWO9/Tp053Oj42NdWvduDa5He+sx685e61atcrdpeMa5Ha8z507Zx599FETGhpqvL29TZkyZUy7du3Mpk2b3F02rtHVfp5fiUdz/R+bMcYUbFwGAAAACgZjZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgEAAGBZhFkAAABYFmEWAAAAlkWYBQAAgGURZgHgGjVu3FiDBw92dxkAcFsjzAIAAMCyCLMAcBPJyMhQZmamu8sAAMsgzAKwvMaNG2vQoEF68cUXVaJECYWEhGjkyJGSpP3798tms2n79u32/n///bdsNptWr14tSVq9erVsNpuWLVumevXqyc/PT02bNlVKSoq+/vprVatWTQEBAXriiSd09uxZh22np6frmWeeUbFixRQUFKSXX35Zxhj7/AsXLujFF19U2bJlVbhwYd1777327UrSjBkzVKxYMS1evFjVq1eXj4+PDhw4cNV9njZtmmrUqCEfHx+VKVNGzzzzjH1eYmKi2rdvryJFiiggIEAdO3bUkSNH7PNHjhypunXratq0aSpXrpyKFCmip59+WhkZGRo/frxCQkJUunRpjR071mGbNptN77//vlq3bi0/Pz9FRERo3rx5Dn2GDRumypUry9/fXxUqVNCIESN08eJFhz5jxoxR6dKlVbRoUfXp00fDhw9X3bp17fN79uypRx55RG+++abKlCmjoKAgDRgwwL6e0aNHq1atWtnek8jISL3yyitXfe8A3GIMAFhcdHS0CQgIMCNHjjS//vqrmTlzprHZbGb58uVm3759RpLZtm2bvf9ff/1lJJlVq1YZY4xZtWqVkWTuu+8+s27dOrN161ZTqVIlEx0dbVq0aGG2bt1q1q5da4KCgszrr7/usN0iRYqYZ5991uzZs8d89NFHxt/f30yePNnep0uXLiYqKsqsXbvW/P777+aNN94wPj4+5tdffzXGGDN9+nTj5eVloqKizPr1682ePXvM6dOnc93fiRMnGl9fXxMfH29++eUXs2nTJvOf//zHGGNMZmamqVevnrn//vvN5s2bzXfffWfuuusuEx0dbV8+NjbWFClSxDz22GNm586d5ssvvzTe3t6mZcuWZuDAgWbPnj1m2rRpRpLZuHGjfTlJJigoyPzvf/8zv/zyi3n55ZeNh4eH2bVrl73Pq6++atavX2/27dtnvvzySxMcHGzGjRtnn//RRx8ZX19fM23aNPPLL7+YUaNGmYCAAFOnTh17nx49epiAgADTr18/s3v3brNo0SKH9/XgwYOmUKFCZtOmTfZlfvzxR2Oz2czevXtzfe8A3HoIswAsLzo62tx///0ObXfffbcZNmyYS2F2xYoV9j5xcXFGkkM46tu3r2nZsqXDdqtVq2YyMzPtbcOGDTPVqlUzxhjz+++/G5vNZg4dOuRQ24MPPmhiYmKMMZfCrCSzffv2PO9vaGioeemll5zOW758ufHw8DCJiYn2tp07dxpJ9vAXGxtr/P39TWpqqr1Py5YtTfny5U1GRoa9rUqVKiYuLs4+Lcn069fPYXv33nuvefrpp3Osdfz48SYyMtKh/4ABAxz6NGzYMFuYDQ8PN+np6fa2xx9/3HTq1Mk+3bp1a4ftDh482DRu3DjHOgDcuhhmAOCWULt2bYfpMmXKKCUl5ZrXERwcbP9T+eVtV67zvvvuk81ms083aNBAv/32mzIyMrR161YZY1S5cmUVKVLE/lqzZo327t1rX8bb2ztb/TlJSUnR4cOH9eCDDzqdv3v3boWFhSksLMzeVr16dRUrVky7d++2t5UvX15FixZ12Lfq1aurUKFCDm1X7m+DBg2yTV++3s8++0z333+/QkJCVKRIEY0YMUKJiYn2+b/88ovuueceh3VcOS1JNWrUkIeHh336yuP51FNPac6cOTp//rwuXryo2bNnq1evXk7fEwC3Nk93FwAA+cHLy8th2mazKTMz0x7OzGXjWK8cw+lsHTabLcd15lVmZqY8PDy0ZcsWh2AmSUWKFLH/28/PzyEQ58bPzy/X+cYYp+u6st3Zvl3r/mat97vvvlPnzp01atQotWzZUoGBgfrkk0/01ltvOe1/eW1Xulotbdu2lY+PjxYsWCAfHx+lpaWpQ4cOV60VwK2HK7MAbmmlSpWSJCUlJdnbLr8Z7Hp999132abvvPNOeXh4qF69esrIyFBKSooqVark8AoJCbmm7RUtWlTly5fXN99843R+9erVlZiYqIMHD9rbdu3apZMnT6patWrXtM3LOdvfqlWrSpLWr1+v8PBwvfTSS6pfv77uvPPObDezValSRZs2bXJo27x5s8t1eHp6qkePHpo+fbqmT5+uzp07y9/f3+X1ALA+rswCuKX5+fnpvvvu0+uvv67y5cvr2LFjevnll/Nt/QcPHtTQoUPVt29fbd26VRMmTLBfiaxcubK6du2q7t2766233lK9evV07NgxrVy5UrVq1VKbNm2uaZsjR45Uv379VLp0abVu3VqnTp3S+vXrNXDgQDVr1ky1a9dW165dFR8fr/T0dPXv31/R0dGqX7/+de/vvHnzVL9+fd1///2aPXu2Nm3apKlTp0qSKlWqpMTERH3yySe6++679dVXX2nBggUOyw8cOFBPPfWU6tevr6ioKM2dO1c7duxwGM6RV3369LEH9PXr11/3vgGwJq7MArjlTZs2TRcvXlT9+vX17LPPasyYMfm27u7du+vcuXO65557NGDAAA0cOFD/+te/7POnT5+u7t2767nnnlOVKlXUrl07ff/99w5jWl3Vo0cPxcfHa+LEiapRo4Yefvhh/fbbb5Iu/Tl+4cKFKl68uB544AE1a9ZMFSpU0Ny5c697XyVp1KhR+uSTT1S7dm3NnDlTs2fPVvXq1SVJ7du315AhQ/TMM8+obt262rBhg0aMGOGwfNeuXRUTE6Pnn39ed911l/bt26eePXvK19fX5VruvPNORUVFqUqVKrr33nvzZf8AWI/NOBusBADAFWw2mxYsWKBHHnkkX9fbvHlzhYSE6MMPP3RpOWOMqlatqr59+2ro0KH5WhMA62CYAQDghjl79qwmTZqkli1bysPDQ3PmzNGKFSuUkJDg0npSUlL04Ycf6tChQ3ryyScLqFoAVkCYBYCbzOVPOrjS119/rUaNGt3AavKXzWbTkiVLNGbMGKWlpalKlSr6/PPP1axZM5fWExwcrJIlS2ry5MkqXrx4AVULwAoYZgAAN5nff/89x3lly5a96uO5AOB2QpgFAACAZfE0AwAAAFgWYRYAAACWRZgFAACAZRFmAQAAYFmEWQAAAFgWYRYAAACWRZgFAACAZf0/+B7g2S7P1+wAAAAASUVORK5CYII=",
|
||
"text/plain": [
|
||
"<Figure size 800x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"#Repartition du nombre de canaux de vente selon les entreprise\n",
|
||
"plt.figure(figsize=(8, 6))\n",
|
||
"sns.barplot(x='number_compagny', y='nb_suppliers', data=products_purchased_reduced_spectacle, ci=None) # ci=None pour ne pas afficher les intervalles de confiance\n",
|
||
"plt.title('Nombre moyen de canaux de vente par entreprise')\n",
|
||
"plt.xlabel('number_compagny')\n",
|
||
"plt.ylabel('Nombre moyen de caneaux ')\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b9e84af4-a02b-4f83-81ae-b7a73475d060",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 4. target_information"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"id": "2867eceb-1f72-406c-adc2-adfedcaf60e6",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Nombre de lignes de la table : 6240166\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"id 0\n",
|
||
"customer_id 0\n",
|
||
"target_name 0\n",
|
||
"target_type_is_import 0\n",
|
||
"target_type_name 0\n",
|
||
"number_compagny 0\n",
|
||
"dtype: int64"
|
||
]
|
||
},
|
||
"execution_count": 11,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# nombre de nan\n",
|
||
"print(\"Nombre de lignes de la table : \",target_information_spectacle.shape[0])\n",
|
||
"target_information_spectacle.isna().sum()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 47,
|
||
"id": "561f361d-7d39-430a-9e27-a32f6c2f7b50",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# pas exploitable"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"id": "904cbf32-77b6-49dd-a96c-9e7e5a0175c3",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
}
|
||
],
|
||
"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
|
||
}
|