BDC-team-1/Sport/Descriptive_statistics/stat_desc_sport.ipynb

972 lines
205 KiB
Plaintext
Raw Normal View History

2024-03-04 16:55:58 +01:00
{
"cells": [
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 31,
2024-03-04 16:55:58 +01:00
"id": "dd143b00-1989-44cf-8558-a30087d17f70",
"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"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 32,
2024-03-04 16:55:58 +01:00
"id": "08c63120-1b56-4145-9014-18a637b22876",
"metadata": {},
"outputs": [],
"source": [
"exec(open('../../0_KPI_functions.py').read())"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 33,
2024-03-04 16:55:58 +01:00
"id": "f8bd679d-fa76-49d4-9ec1-9f15516f16d3",
"metadata": {},
"outputs": [],
"source": [
"# Ignore warning\n",
"warnings.filterwarnings('ignore')"
]
},
{
"cell_type": "markdown",
"id": "ec9e996d-3eae-4836-8cf5-268e5dc0d672",
"metadata": {},
"source": [
"# Statistiques descriptives : compagnies sport"
]
},
{
"cell_type": "markdown",
"id": "43f81515-fbd0-49c0-b3f8-0e0fb663e2c1",
"metadata": {},
"source": [
"## Importations et chargement des données"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 34,
2024-03-04 16:55:58 +01:00
"id": "945c59bb-05b4-4f21-82f0-0db40d7957b3",
"metadata": {},
"outputs": [],
"source": [
"# Create filesystem object\n",
"S3_ENDPOINT_URL = \"https://\" + os.environ[\"AWS_S3_ENDPOINT\"]\n",
"fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL})"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 35,
2024-03-04 16:55:58 +01:00
"id": "41a67995-0a08-45c0-bbad-6e6cee5474c8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"File path : projet-bdc2324-team1/0_Input/Company_5/customerplus_cleaned.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_5/campaigns_information.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_5/products_purchased_reduced.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_5/target_information.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_6/customerplus_cleaned.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_6/campaigns_information.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_6/products_purchased_reduced.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_6/target_information.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_7/customerplus_cleaned.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_7/campaigns_information.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_7/products_purchased_reduced.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_7/target_information.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_8/customerplus_cleaned.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_8/campaigns_information.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_8/products_purchased_reduced.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_8/target_information.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_9/customerplus_cleaned.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_9/campaigns_information.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_9/products_purchased_reduced.csv\n",
"File path : projet-bdc2324-team1/0_Input/Company_9/target_information.csv\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=['5','6','7','8','9']\n",
"\n",
"customer_sport = pd.DataFrame()\n",
"campaigns_sport = pd.DataFrame()\n",
"products_sport = pd.DataFrame()\n",
"tickets_sport = pd.DataFrame()\n",
"\n",
"# début de la boucle permettant de générer des datasets agrégés pour les 5 compagnies de spectacle\n",
"for directory_path in nb_compagnie:\n",
" df_customerplus_clean_0 = display_databases(directory_path, file_name = \"customerplus_cleaned\")\n",
" df_campaigns_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_company\"]=int(directory_path)\n",
" df_campaigns_kpi[\"number_company\"]=int(directory_path)\n",
" df_customerplus_clean[\"number_company\"]=int(directory_path)\n",
" df_target_information[\"number_company\"]=int(directory_path)\n",
"\n",
"# Traitement des index\n",
" df_tickets_kpi[\"customer_id\"]= directory_path + '_' + df_tickets_kpi['customer_id'].astype('str')\n",
" df_campaigns_kpi[\"customer_id\"]= directory_path + '_' + df_campaigns_kpi['customer_id'].astype('str') \n",
" df_customerplus_clean[\"customer_id\"]= directory_path + '_' + df_customerplus_clean['customer_id'].astype('str') \n",
" df_products_purchased_reduced[\"customer_id\"]= directory_path + '_' + df_products_purchased_reduced['customer_id'].astype('str') \n",
"\n",
"# Concaténation\n",
" customer_sport = pd.concat([customer_sport, df_customerplus_clean], ignore_index=True)\n",
" campaigns_sport = pd.concat([campaigns_sport, df_campaigns_kpi], ignore_index=True)\n",
" tickets_sport = pd.concat([tickets_sport, df_tickets_kpi], ignore_index=True)\n",
" products_sport = pd.concat([products_sport, df_products_purchased_reduced], ignore_index=True)\n",
" "
]
},
{
"cell_type": "markdown",
"id": "62922029-8071-402e-8115-c145a2874a2f",
"metadata": {},
"source": [
"## Statistiques descriptives"
]
},
{
"cell_type": "markdown",
"id": "d347bca9-3041-4414-b18e-19b626998a3e",
"metadata": {},
"source": [
"### 0. Détection du client anonyme (outlier) - utile pour la section 3"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 36,
2024-03-04 16:55:58 +01:00
"id": "c4d4b2ad-8a3c-477b-bc52-dd4860527bfe",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([5, 6, 7, 8, 9])"
]
},
2024-03-04 19:29:21 +01:00
"execution_count": 36,
2024-03-04 16:55:58 +01:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sport_comp = tickets_sport['number_company'].unique()\n",
"sport_comp"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 37,
2024-03-04 16:55:58 +01:00
"id": "97a9e235-1c04-46bf-9f3c-5496e141cc40",
"metadata": {},
"outputs": [],
"source": [
"def outlier_detection(company_list, show_diagram=False):\n",
"\n",
" outlier_list = list()\n",
" \n",
" for company in company_list:\n",
" total_amount_share = tickets_sport[tickets_sport['number_company']==company].groupby('customer_id')['total_amount'].sum().reset_index()\n",
" total_amount_share['CA'] = total_amount_share['total_amount'].sum()\n",
" total_amount_share['share_total_amount'] = total_amount_share['total_amount']/total_amount_share['CA']\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",
" top = df_circulaire[:1]\n",
" outlier_list.append(top.index[0])\n",
" rest = df_circulaire[1:]\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",
" if show_diagram:\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(f'Répartition des montants totaux pour la compagnie {company}')\n",
" plt.show()\n",
" return outlier_list\n",
" "
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 38,
2024-03-04 16:55:58 +01:00
"id": "770cd3fc-bfe2-4a69-89bc-0eb946311130",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['5_191835', '6_591412', '7_49632', '8_1942', '9_19683']"
]
},
2024-03-04 19:29:21 +01:00
"execution_count": 38,
2024-03-04 16:55:58 +01:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"outlier_list = outlier_detection(sport_comp)\n",
"outlier_list"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 39,
2024-03-04 16:55:58 +01:00
"id": "70b6e961-c303-465e-93f4-609721d38454",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Suppression Réussie\n"
]
}
],
"source": [
"# On filtre les outliers\n",
"\n",
"def remove_elements(lst, elements_to_remove):\n",
2024-03-04 19:29:21 +01:00
" return ''.join([x for x in lst if x not in elements_to_remove])\n",
2024-03-04 16:55:58 +01:00
" \n",
"databases = [customer_sport, campaigns_sport, tickets_sport, products_sport]\n",
"\n",
"for dataset in databases:\n",
" dataset['customer_id'] = dataset['customer_id'].apply(lambda x: remove_elements(x, outlier_list))\n",
"\n",
"# On test\n",
"\n",
"bool = '5_191835' in customer_sport['customer_id']\n",
"if not bool:\n",
" print(\"Suppression Réussie\")"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 40,
2024-03-04 16:55:58 +01:00
"id": "b54b920a-7b46-490f-ba7e-d1859055a4e3",
"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_company</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
2024-03-04 19:29:21 +01:00
" <td>5_6009745</td>\n",
2024-03-04 16:55:58 +01:00
" <td>1372685</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1771</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>af</td>\n",
" <td>other</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
2024-03-04 19:29:21 +01:00
" <td>5_6011228</td>\n",
2024-03-04 16:55:58 +01:00
" <td>1372685</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1771</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>af</td>\n",
" <td>other</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
2024-03-04 19:29:21 +01:00
" <td>5_6058950</td>\n",
2024-03-04 16:55:58 +01:00
" <td>1372685</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1771</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>af</td>\n",
" <td>other</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
2024-03-04 19:29:21 +01:00
" <td>5_6062404</td>\n",
2024-03-04 16:55:58 +01:00
" <td>1372685</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1771</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>af</td>\n",
" <td>other</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
2024-03-04 19:29:21 +01:00
" <td>5_250217</td>\n",
2024-03-04 16:55:58 +01:00
" <td>78785</td>\n",
" <td>NaN</td>\n",
" <td>11035.0</td>\n",
" <td>0</td>\n",
" <td>1771</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>True</td>\n",
" <td>...</td>\n",
" <td>0</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>5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
2024-03-04 19:29:21 +01:00
" customer_id street_id structure_id mcp_contact_id fidelity tenant_id \\\n",
"0 5_6009745 1372685 NaN NaN 0 1771 \n",
"1 5_6011228 1372685 NaN NaN 0 1771 \n",
"2 5_6058950 1372685 NaN NaN 0 1771 \n",
"3 5_6062404 1372685 NaN NaN 0 1771 \n",
"4 5_250217 78785 NaN 11035.0 0 1771 \n",
2024-03-04 16:55:58 +01:00
"\n",
2024-03-04 19:29:21 +01:00
" 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 True ... 0 \n",
"3 False NaN 2 True ... 0 \n",
"4 False NaN 0 True ... 0 \n",
2024-03-04 16:55:58 +01:00
"\n",
2024-03-04 19:29:21 +01:00
" first_buying_date country gender_label gender_female gender_male \\\n",
"0 NaN af other 0 0 \n",
"1 NaN af other 0 0 \n",
"2 NaN af other 0 0 \n",
"3 NaN af other 0 0 \n",
"4 NaN fr female 1 0 \n",
2024-03-04 16:55:58 +01:00
"\n",
2024-03-04 19:29:21 +01:00
" gender_other country_fr has_tags number_company \n",
"0 1 0.0 0 5 \n",
"1 1 0.0 0 5 \n",
"2 1 0.0 0 5 \n",
"3 1 0.0 0 5 \n",
"4 0 1.0 0 5 \n",
2024-03-04 16:55:58 +01:00
"\n",
"[5 rows x 29 columns]"
]
},
2024-03-04 19:29:21 +01:00
"execution_count": 40,
2024-03-04 16:55:58 +01:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"customer_sport.head()"
]
},
{
"cell_type": "markdown",
"id": "d40fe668-e1d7-4544-9db8-02498afe65fe",
"metadata": {},
"source": [
"### 1. customerplus_clean"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 45,
2024-03-04 16:55:58 +01:00
"id": "eec1ac0b-2502-452b-97e6-69ffb77156d6",
"metadata": {},
"outputs": [],
"source": [
"def compute_nb_clients(customer_sport):\n",
" company_nb_clients = customer_sport[customer_sport[\"purchase_count\"]>0].groupby(\"number_company\")[\"customer_id\"].count().reset_index()\n",
" plt.bar(company_nb_clients[\"number_company\"], company_nb_clients[\"customer_id\"]/1000)\n",
"\n",
" # Ajout de titres et d'étiquettes\n",
" plt.xlabel('Company')\n",
" plt.ylabel(\"Nombre de clients (milliers)\")\n",
2024-03-04 19:29:21 +01:00
" plt.title(\"Nombre de clients de chaque compagnie de sport\")\n",
2024-03-04 16:55:58 +01:00
" \n",
" # Affichage du barplot\n",
" plt.show()"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 46,
2024-03-04 16:55:58 +01:00
"id": "db4494e7-6f65-4f7e-bf8c-8ec321d0b02d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"compute_nb_clients(customer_sport)"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 47,
2024-03-04 16:55:58 +01:00
"id": "a12a59a0-edfe-4e52-8037-9b875f823b33",
"metadata": {},
"outputs": [],
"source": [
"def maximum_price_paid(customer_sport):\n",
" company_max_price = customer_sport.groupby(\"number_company\")[\"max_price\"].max().reset_index()\n",
" # Création du barplot\n",
" plt.bar(company_max_price[\"number_company\"], 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",
2024-03-04 19:29:21 +01:00
" plt.title(\"Prix maximal de vente observé par compagnie de sport\")\n",
2024-03-04 16:55:58 +01:00
" \n",
" # Affichage du barplot\n",
" plt.show()"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 48,
2024-03-04 16:55:58 +01:00
"id": "2c7c2d26-4e35-4163-b771-fa4d3e8ca83e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"maximum_price_paid(customer_sport)"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 49,
2024-03-04 16:55:58 +01:00
"id": "597d4361-8beb-43f4-9224-8f7dc34b187c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Statistiques Descriptives company 5\n",
" average_price average_price_basket average_ticket_basket \\\n",
"count 145390.000000 68869.000000 68869.000000 \n",
"mean 11.070309 65.969693 3.655202 \n",
"std 16.353610 195.462869 13.119612 \n",
"min 0.000000 0.000000 1.000000 \n",
"25% 0.000000 20.000000 1.000000 \n",
"50% 0.000000 45.000000 2.000000 \n",
"75% 20.000000 79.500000 3.000000 \n",
"max 500.000000 24159.405000 2139.833333 \n",
"\n",
" purchase_count total_price \n",
"count 471598.00000 3.950770e+05 \n",
"mean 0.29900 2.608544e+01 \n",
"std 7.22753 2.089636e+03 \n",
"min 0.00000 0.000000e+00 \n",
"25% 0.00000 0.000000e+00 \n",
"50% 0.00000 0.000000e+00 \n",
"75% 0.00000 0.000000e+00 \n",
"max 3532.00000 1.262516e+06 \n",
"Statistiques Descriptives company 6\n",
" average_price average_price_basket average_ticket_basket \\\n",
"count 33779.000000 33779.000000 33779.000000 \n",
"mean 24.033859 56.711279 2.413530 \n",
"std 21.217031 72.841926 3.763809 \n",
"min -52.740000 -1046.666667 1.000000 \n",
"25% 10.000000 19.000000 1.080000 \n",
"50% 19.333333 39.000000 2.000000 \n",
"75% 30.000000 72.990000 3.000000 \n",
"max 199.990000 3922.845361 309.047619 \n",
"\n",
" purchase_count total_price \n",
"count 79938.000000 79938.000000 \n",
"mean 2.842090 102.251041 \n",
"std 74.949889 4290.159858 \n",
"min 0.000000 -3140.000000 \n",
"25% 0.000000 0.000000 \n",
"50% 0.000000 0.000000 \n",
"75% 1.000000 54.980000 \n",
"max 14750.000000 762695.290000 \n",
"Statistiques Descriptives company 7\n",
" average_price average_price_basket average_ticket_basket \\\n",
"count 39524.000000 39524.000000 39524.000000 \n",
"mean 33.110568 155.618778 3.365885 \n",
"std 85.221328 1085.613137 6.283143 \n",
"min 0.000000 0.000000 1.000000 \n",
"25% 17.250000 25.000000 1.800000 \n",
"50% 25.000000 57.676364 2.000000 \n",
"75% 43.054691 115.837500 3.555556 \n",
"max 10770.000000 86160.000000 400.000000 \n",
"\n",
" purchase_count total_price \n",
"count 68800.000000 68800.000000 \n",
"mean 3.290029 944.593729 \n",
"std 88.071870 12118.394731 \n",
"min 0.000000 0.000000 \n",
"25% 0.000000 0.000000 \n",
"50% 1.000000 9.000000 \n",
"75% 2.000000 132.000000 \n",
"max 22934.000000 940874.200000 \n",
"Statistiques Descriptives company 8\n",
" average_price average_price_basket average_ticket_basket \\\n",
"count 129198.000000 129198.000000 129198.000000 \n",
"mean 18.409977 38.492520 2.258036 \n",
"std 19.159059 71.136628 5.270858 \n",
"min -20.000000 -1545.000000 1.000000 \n",
"25% 0.000000 0.000000 1.000000 \n",
"50% 15.000000 20.000000 2.000000 \n",
"75% 28.461538 52.500000 2.000000 \n",
"max 390.000000 7618.227273 750.000000 \n",
"\n",
" purchase_count total_price \n",
"count 197376.000000 197376.000000 \n",
"mean 4.637448 130.336075 \n",
"std 96.228665 2791.899946 \n",
"min 0.000000 -36124.000000 \n",
"25% 0.000000 0.000000 \n",
"50% 1.000000 0.000000 \n",
"75% 2.000000 75.000000 \n",
"max 40272.000000 702080.290000 \n",
"Statistiques Descriptives company 9\n",
" average_price average_price_basket average_ticket_basket \\\n",
"count 102710.000000 102710.000000 102710.000000 \n",
"mean 60.312171 62.384177 1.042402 \n",
"std 50.018101 52.009984 0.268064 \n",
"min -291.670000 -291.670000 1.000000 \n",
"25% 41.500000 42.350000 1.000000 \n",
"50% 59.000000 61.070000 1.000000 \n",
"75% 74.550000 77.710000 1.000000 \n",
"max 1116.500000 1216.950000 23.000000 \n",
"\n",
" purchase_count total_price \n",
"count 181134.000000 181134.000000 \n",
"mean 1.021354 63.476966 \n",
"std 1.805412 129.781944 \n",
"min 0.000000 -291.670000 \n",
"25% 0.000000 0.000000 \n",
"50% 1.000000 0.000000 \n",
"75% 1.000000 80.000000 \n",
"max 273.000000 14343.950000 \n"
]
}
],
"source": [
"for company in sport_comp:\n",
" print(f'Statistiques Descriptives company {company}')\n",
" company_data = customer_sport[customer_sport['number_company'] == company][['average_price', 'average_price_basket',\n",
" 'average_ticket_basket', 'purchase_count', 'total_price']]\n",
" print(company_data.describe())"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 50,
2024-03-04 16:55:58 +01:00
"id": "5058d3c9-73a0-4e01-881e-4d2423f0d291",
"metadata": {},
"outputs": [],
"source": [
"customer_sport[\"already_purchased\"] = customer_sport[\"purchase_count\"] > 0"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 52,
2024-03-04 16:55:58 +01:00
"id": "848963c9-6129-4106-80b5-76bf814b70d1",
"metadata": {},
"outputs": [],
"source": [
"def mailing_consent(customer_sport):\n",
" df_graph = customer_sport.groupby([\"number_company\", \"already_purchased\"])[\"opt_in\"].mean().reset_index()\n",
" # Création du barplot groupé\n",
" fig, ax = plt.subplots(figsize=(10, 6))\n",
" \n",
" categories = df_graph[\"number_company\"].unique()\n",
" bar_width = 0.35\n",
" bar_positions = np.arange(len(categories))\n",
" \n",
" # Grouper les données par label et créer les barres groupées\n",
" for label in df_graph[\"already_purchased\"].unique():\n",
" label_data = df_graph[df_graph['already_purchased'] == label]\n",
" values = [label_data[label_data['number_company'] == category]['opt_in'].values[0]*100 for category in categories]\n",
" \n",
" label_printed = \"purchased\" if label else \"no purchase\"\n",
" ax.bar(bar_positions, values, bar_width, label=label_printed)\n",
" \n",
" # Mise à jour des positions des barres pour le prochain groupe\n",
" bar_positions = [pos + bar_width for pos in bar_positions]\n",
" \n",
" # Ajout des étiquettes, de la légende, etc.\n",
" ax.set_xlabel('Numero de compagnie')\n",
" ax.set_ylabel('Part de consentement (%)')\n",
" ax.set_title('Part de consentement au mailing selon les compagnies')\n",
" ax.set_xticks([pos + bar_width / 2 for pos in np.arange(len(categories))])\n",
" ax.set_xticklabels(categories)\n",
" ax.legend()\n",
" \n",
" # Affichage du plot\n",
" plt.show()"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 54,
"id": "b78ef715-c645-4625-a128-4f5b49e5339d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mailing_consent(customer_sport)"
]
},
{
"cell_type": "code",
"execution_count": 56,
2024-03-04 16:55:58 +01:00
"id": "d8071891-e6f5-4d93-b039-9e99c20ec4b0",
"metadata": {},
"outputs": [],
"source": [
"def gender_bar(customer_sport):\n",
" company_genders = customer_sport.groupby(\"number_company\")[[\"gender_male\", \"gender_female\", \"gender_other\"]].mean().reset_index()\n",
" # Création du barplot\n",
" plt.bar(company_genders[\"number_company\"], company_genders[\"gender_male\"], label = \"Homme\")\n",
" plt.bar(company_genders[\"number_company\"], company_genders[\"gender_female\"], \n",
" bottom = company_genders[\"gender_male\"], label = \"Femme\")\n",
" \n",
" \n",
" # Ajout de titres et d'étiquettes\n",
" plt.xlabel('Company')\n",
" plt.ylabel(\"Part de clients de chaque sexe\")\n",
2024-03-04 19:29:21 +01:00
" plt.title(\"Sexe des clients de chaque compagnie de sport\")\n",
2024-03-04 16:55:58 +01:00
" plt.legend()\n",
" \n",
" # Affichage du barplot\n",
" plt.show()"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 57,
2024-03-04 16:55:58 +01:00
"id": "2fc30f1d-cf64-4efb-9442-4d97bb50b29f",
"metadata": {},
2024-03-04 19:29:21 +01:00
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
2024-03-04 16:55:58 +01:00
"source": [
2024-03-04 19:29:21 +01:00
"gender_bar(customer_sport)"
2024-03-04 16:55:58 +01:00
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 62,
2024-03-04 16:55:58 +01:00
"id": "4b3bb641-814b-4679-9a67-4eca87a920a6",
"metadata": {},
"outputs": [],
"source": [
"def country_bar(customer_sport):\n",
2024-03-04 19:29:21 +01:00
" company_country_fr = customer_sport.groupby(\"number_company\")[\"country_fr\"].mean().reset_index()\n",
2024-03-04 16:55:58 +01:00
" # Création du barplot\n",
" plt.bar(company_country_fr[\"number_company\"], company_country_fr[\"country_fr\"])\n",
" \n",
" # Ajout de titres et d'étiquettes\n",
" plt.xlabel('Company')\n",
" plt.ylabel(\"Part de clients français\")\n",
2024-03-04 19:29:21 +01:00
" plt.title(\"Nationalité des clients de chaque compagnie de sport\")\n",
2024-03-04 16:55:58 +01:00
" \n",
" # Affichage du barplot\n",
" plt.show()"
]
},
{
"cell_type": "code",
2024-03-04 19:29:21 +01:00
"execution_count": 63,
2024-03-04 16:55:58 +01:00
"id": "01258674-6b98-49e4-93f4-f4185964999f",
"metadata": {},
2024-03-04 19:29:21 +01:00
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHGCAYAAACIDqqPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABIp0lEQVR4nO3dfXzN9f/H8efZtbFNmzaj2SbX11eFoeViJOlKLlK57kv0FaMiiXxJVJK+IeUyKokKKZbkSyiEkkUuJzbM1Vw1dvb5/eG28+s4G+dsZw4fj/vtdm43533en8/79fmcz9l5+lwdi2EYhgAAAEzCy9MFAAAAuBPhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBgAAmArhBoXq7NmzqlSpktq3b6/s7GxPlwMAuAUQbv5h1qxZslgsCggI0IEDBxxev/fee1WtWrV8zfvjjz/WxIkTc33NYrFo5MiR+Zqvu+Wsg/3799vaunXrppiYGLt+r732mr788strzu/pp59WRESE5s6dKy+v/G9uMTEx6tatW76nLyxX1rV//35ZLBbNmjWrUMe92vbkTtdrea5ksVj07LPPXtcxceP74YcfZLFY9MMPPxTqOJ7a7j1hx44dGjlypN3f/MJwvd67HISbXGRmZurll1926zyv9mW0fv169erVy63judPw4cP1xRdf2LU5E27ee+89/frrr/rqq6/k7+9fiBXeOCIjI7V+/Xq1adOmUMe5XuEGuJHUqVNH69evV506dTxdimns2LFDr776aqGHm+uNcJOL++67Tx9//LG2bdt2XcZr0KCB7rjjjusyVn7ceeedql27tsvT9evXT7///ruKFy/u/qJuUP7+/mrQoIFuv/12T5cCmE5wcLAaNGig4OBgT5eCGxzhJhcvvPCCwsLC9OKLL16z73vvvad77rlH4eHhKlq0qKpXr67x48fr0qVLtj733nuvvv76ax04cEAWi8X2yJHbYant27froYce0m233aaAgADVqlVLs2fPtuuTs5vvk08+0bBhw1SqVCkFBwerRYsW2rlzp13fpKQkPfTQQ7rjjjsUEBCgcuXKqXfv3kpPT7/mMl55WMpisejcuXOaPXu2bVnuvfde2+tpaWnq3bu37rjjDvn5+Sk2NlavvvqqsrKyrjnWpUuX9MILL6hkyZIKDAxU48aN9fPPP+fa19lxpkyZopo1a6pYsWIKCgpSpUqV9NJLL12zlszMTI0aNUqVK1dWQECAwsLC1LRpU61bty7PafLanf3nn3+qc+fOCg8Pl7+/vypXrqz33nvPro+z7+e1tqf8Lu/hw4fVoUMHBQUFKSQkRB07dlRaWlqufTdt2qQHH3xQoaGhCggIUO3atfXZZ59dcwzJtfX60UcfqXLlygoMDFTNmjW1dOlSu9d3796t7t27q3z58goMDFTp0qXVtm1b/fbbbw7z+uOPP3TfffcpMDBQJUqUUJ8+fbRkyRKHXeV5HQK999577bZzScrIyNDgwYMVGxsrPz8/lS5dWgMGDNC5c+ecWhfffvutmjdvrpCQEAUGBqpy5coaO3asXZ/FixerYcOGCgwMVFBQkBISErR+/Xq7PiNHjpTFYtGvv/6q9u3bKyQkRKGhoUpMTFRWVpZ27typ++67T0FBQYqJidH48ePtps/Z9ubOnavExESVLFlSRYoUUXx8vLZs2WLXd9OmTerUqZNiYmJUpEgRxcTE6PHHH8/1UP7atWvVsGFDBQQEqHTp0ho+fLg+/PBDh0PfMTExeuCBB/Ttt9+qTp06KlKkiCpVqqQZM2bkWueVhzYKsj1er+3+Wp/LnFMCkpKS1L17d4WGhqpo0aJq27at9u7d6zC/7777Ts2bN1dwcLACAwPVqFEjrVy50qHfH3/8occff1wRERHy9/dXmTJl1KVLF2VmZmrWrFlq3769JKlp06a2vyU5f79c+d642jhXU5B1ejU+BZ6DCQUFBenll1/Wc889p++//17NmjXLs++ePXvUuXNn2x+3bdu2acyYMfrjjz9sH8zJkyfrX//6l/bs2eNweCc3O3fuVFxcnMLDwzVp0iSFhYVp7ty56tatm44cOaIXXnjBrv9LL72kRo0a6cMPP1RGRoZefPFFtW3bVsnJyfL29rbV2bBhQ/Xq1UshISHav3+/JkyYoMaNG+u3336Tr6+v0+tn/fr1atasmZo2barhw4dLku1/Umlpabr77rvl5eWlV155RXfeeafWr1+v0aNHa//+/Zo5c+ZV5/30009rzpw5Gjx4sBISErR9+3Y9+uijOnPmjF0/Z8f59NNP1bdvX/373//Wm2++KS8vL+3evVs7duy4ah1ZWVlq3bq11qxZowEDBqhZs2bKysrShg0blJKSori4OKfX144dOxQXF6cyZcrorbfeUsmSJbV8+XL1799f6enpGjFihF3/a72fV9ue8ru8Fy5cUIsWLXT48GGNHTtWFSpU0Ndff62OHTs69F21apXuu+8+1a9fX1OnTlVISIg+/fRTdezYUefPn7/quVGurNevv/5aGzdu1KhRo1SsWDGNHz9ejzzyiHbu3KmyZctKuvzFFBYWptdff1233367Tpw4odmzZ6t+/frasmWLKlasKEk6cuSI4uPj5evrq8mTJysiIkLz5s0r0Hk958+fV3x8vP766y+99NJLqlGjhn7//Xe98sor+u233/Tdd9/Zhc4rTZ8+XU8//bTi4+M1depUhYeHa9euXdq+fbutz8cff6wnnnhCLVu21CeffKLMzEyNHz9e9957r1auXKnGjRvbzbNDhw568skn1bt3byUlJdn+o/Xdd9+pb9++Gjx4sD7++GO9+OKLKleunB599FG76V966SXVqVNHH374oU6fPq2RI0fq3nvv1ZYtW2zrfP/+/apYsaI6deqk0NBQpaamasqUKbrrrru0Y8cOlShRQpL066+/KiEhQRUqVNDs2bMVGBioqVOnau7cubmuj23btmnQoEEaMmSIIiIi9OGHH6pnz54qV66c7rnnnjzXY0G2x+u13bvyuezZs6cSEhL08ccf6+DBg3r55Zd177336tdff7XtBZ87d666dOmihx56SLNnz5avr6/ef/99tWrVSsuXL1fz5s1t67Rx48YqUaKERo0apfLlyys1NVWLFy/WxYsX1aZNG7322mt66aWX9N5779kO9915552SnP/euNY4eZ2WUJB1ek0GbGbOnGlIMjZu3GhkZmYaZcuWNerVq2dkZ2cbhmEY8fHxRtWqVfOc3mq1GpcuXTLmzJljeHt7GydOnLC91qZNGyM6OjrX6SQZI0aMsD3v1KmT4e/vb6SkpNj1a926tREYGGicOnXKMAzDWLVqlSHJuP/+++36ffbZZ4YkY/369bmOl52dbVy6dMk4cOCAIcn46quvHNbBvn37bG1du3Z1qL1o0aJG165dHebdu3dvo1ixYsaBAwfs2t98801DkvH777/nWpNhGEZycrIhyRg4cKBd+7x58wxJduM5O86zzz5rFC9ePM8x8zJnzhxDkvHBBx9ctV90dLRdXfv27TMkGTNnzrS1tWrVyrjjjjuM06dP20377LPPGgEBAbbtxJX3M6/tKb/LO2XKFIdtwTAM4+mnn3ZYnkqVKhm1a9c2Ll26ZNf3gQceMCIjIw2r1ZrnOM6uV0lGRESEkZGRYWtLS0szvLy8jLFjx+Y5XVZWlnHx4kWjfPnydtvRiy++aFgsFmPr1q12/RMSEgxJxqpVq2xtV76nOeLj4434+Hjb87FjxxpeXl7Gxo0b7fp9/vnnhiRj2bJledZ55swZIzg42GjcuLHt78uVrFarUapUKaN69ep26/TMmTNGeHi4ERcXZ2sbMWKEIcl466237OZRq1YtQ5KxaNEiW9ulS5eM22+/3Xj00UdtbTnbXp06dezq2b9/v+Hr62v06tUrz2XJysoyzp49axQtWtR45513bO3t27c3ihYtahw7dsxumapUqeLwNyY6OtoICAiw+zxfuHDBCA0NNXr37u1Q5z/fr4Jsj9dru3fmc5nzt/eRRx6xa//xxx8NScb
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"country_bar(customer_sport)"
]
},
{
"cell_type": "markdown",
"id": "43d63ea3-75f4-4356-a7e9-35905d86baa5",
"metadata": {},
"source": [
"### 2. campaigns_information"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "8d116e34-cdd6-4ef9-8622-474da79f79ef",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Nombre de lignes de la table : 463098\n"
]
},
{
"data": {
"text/plain": [
"customer_id 0\n",
"nb_campaigns 0\n",
"nb_campaigns_opened 0\n",
"time_to_open 178826\n",
"number_company 0\n",
"dtype: int64"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(\"Nombre de lignes de la table : \",campaigns_sport.shape[0])\n",
"campaigns_sport.isna().sum()"
]
},
{
"cell_type": "code",
"execution_count": 72,
"id": "724d3c33-c219-4212-b8b6-dd78481674cb",
"metadata": {},
2024-03-04 16:55:58 +01:00
"outputs": [],
"source": [
2024-03-04 19:29:21 +01:00
"campaigns_sport[\"no_campaign_opened\"] = pd.isna(campaigns_sport[\"time_to_open\"])\n",
"company_lazy_customers = campaigns_sport.groupby(\"number_company\")[\"no_campaign_opened\"].mean().reset_index()\n",
"\n",
"def lazy_customer_plot(campaigns_sport):\n",
" company_lazy_customers = campaigns_sport.groupby(\"number_company\")[\"no_campaign_opened\"].mean().reset_index()\n",
" # Création du barplot\n",
" plt.bar(company_lazy_customers[\"number_company\"], 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 sport\")\n",
" \n",
" # Affichage du barplot\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 73,
"id": "e513f308-3a9c-40ed-99d5-ed420bd67384",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"lazy_customer_plot(campaigns_sport)"
2024-03-04 16:55:58 +01:00
]
}
],
"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
}