"
],
"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": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"products_purchased_reduced"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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_437/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_437/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_437/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_437/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",
":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_437/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_437/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_437/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_437/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",
":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_437/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_437/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_437/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_437/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_437/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",
":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_437/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_437/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_437/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_437/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",
":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_437/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_437/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_437/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_437/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_437/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",
":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": [
"
"
]
},
"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": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
number_compagny
\n",
"
nb_campaigns
\n",
"
nb_campaigns_opened
\n",
"
ratio_campaigns_opened
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
10
\n",
"
734772
\n",
"
126151.0
\n",
"
0.171687
\n",
"
\n",
"
\n",
"
1
\n",
"
11
\n",
"
342396
\n",
"
129833.0
\n",
"
0.379190
\n",
"
\n",
"
\n",
"
2
\n",
"
12
\n",
"
3168123
\n",
"
810722.0
\n",
"
0.255900
\n",
"
\n",
"
\n",
"
3
\n",
"
13
\n",
"
3218569
\n",
"
793581.0
\n",
"
0.246563
\n",
"
\n",
"
\n",
"
4
\n",
"
14
\n",
"
2427043
\n",
"
723846.0
\n",
"
0.298242
\n",
"
\n",
" \n",
"
\n",
"
"
],
"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": 43,
"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[43], 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": [
"
"
]
},
"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": [
"
"
]
},
"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": 47,
"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": 47,
"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": 22,
"id": "d64979ba-fccf-45f2-8a15-40ef1b49c74f",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_430/3239820253.py:6: DtypeWarning: Columns (39) have mixed types. Specify dtype option on import or set low_memory=False.\n",
" dataset_train = pd.read_csv(file_in, sep=\",\")\n"
]
}
],
"source": [
"#base d'entrainement\n",
"\n",
"#FILE_PATH_S3='projet-bdc2324-team1/Generalization/musique/Train_test/dataset_train14.csv'\n",
"\n",
"#with fs.open(FILE_PATH_S3, mode=\"rb\") as file_in:\n",
" #dataset_train = pd.read_csv(file_in, sep=\",\")"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "635d60cd-2dbc-49da-b0f4-94e16667882f",
"metadata": {},
"outputs": [],
"source": [
"#Creation de la variable dependante fictive: 1 si l'individu a effectué un achat au cours de la periode de train et 0 sinon\n",
"\n",
"#dataset_train_modif=dataset_train\n",
"\n",
"#dataset_train_modif[\"y_purchase_fictive\"]=np.random.randint(2, size=dataset_train_modif.shape[0])"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "ea63e5d6-70f9-4685-8b08-673a47108954",
"metadata": {},
"outputs": [],
"source": [
"#dataset_train_modif[\"y_purchase_fictive\"].value_counts(normalize=True)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "98f7645f-ffe6-4d7b-8032-15e65f36af87",
"metadata": {},
"outputs": [],
"source": [
"\n",
"#dataset_train_modif[\"y_purchase_fictive\"]=dataset_train_modif[\"y_purchase_fictive\"].replace([0,1],[\"Purchase_train\",\"no_purchase_train\"])"
]
},
{
"cell_type": "code",
"execution_count": 35,
"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": null,
"id": "c532f884-3f44-4ce7-8924-9b4542bc3c10",
"metadata": {},
"outputs": [],
"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": 73,
"id": "eb6355e0-3f8c-47d9-a5ee-d349040dcf51",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, \"Boite à moustache du chiffre d'affaire selon les compagnies de spectacles\")"
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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Bw7YvadmzZqyWCy20FbcNBxVmu2ruG21MHnzUZJ9QVl/lvJcapnmbTMl3X5Lsh1eSknzg6PTKc0yvZzv/Txl/osmeTfXzVsgXbt21ZkzZwossLyrGi91+4m8mc//V1PTpk3VpEkTfffdd7aeyvyPS30BWiwWeXh4yN3d3Tbs3Llzeuutt0o8n5eja9euWrt2rS0E5nnzzTfl6+tr+6DnXYH5/fff27VbtWpVkeO2WCyKiYnRK6+8oho1amjbtm2214r6C9RisRTY+L7//vsCh7F79eqljIwMp9wg2NfXV126dNH27dvVunXrQtdhYX9F5+nSpYskacmSJXbDly5dWqBt/fr1dezYMbsdS1ZWlj777LNi6+zYsaOCgoL02muvlejKdFfq06eP0tLSlJOTU+jyvNQfSk2bNlXdunX1zjvv2M1ncnJyoVeW51fYNvTRRx/p119/dXyGymi8ffr0kTFGv/76a6HLqVWrViUeV2RkpB566CF1797d9lnr1KmTatSooT179hS5f7r48OLFOnToIB8fH7399tt2ww8fPmw77aSsOLL9uLu7q3379rY7Bly8v8mvR48ecnd3L/DH58VcMf/59yFJSUlKTk62Xe2f90dF/u3wX//6l91zPz8/tWvXTitXrlRWVpZt+JkzZy7rRx3yc3T7KmxbLYyfn5+uvfZaLV++3K5n9fTp0/rggw/s2pb1Z+niaef/3lu6dKnc3Nx0ww032GopyfZbku1QuvT3ZUnyQ0mnk58jy/RS3/vFcWpP4a5du3T+/HlJF7pwly9frsTERPXv39/Wy3P33Xfrn//8p4YMGaJffvlFrVq10saNGzV9+nTdfPPN6tatW5Hjb9SokXx8fLRkyRI1b95c/v7+Cg8PV3h4uP71r3+pV69e6tmzp4YOHap69erpxIkT+uGHH7Rt2za9//77RY63d+/emjlzpgYNGqThw4crLS1NL730UrF/1TjLlClT9OGHH6pLly6aPHmygoODtWTJEn300Ud64YUXFBQUJEm65ppr1LRpU40fP17nz59XzZo1tWLFCm3cuNFufB9++KHmzZunW2+9VQ0bNpQxRsuXL9cff/yh7t2729q1atVK69ev1wcffKC6desqICBATZs2VZ8+ffTMM89oypQpio2N1b59+/T000+rQYMGtvUrSXfeeacWLlyoESNGaN++ferSpYtyc3P19ddfq3nz5qW+3+Ps2bPVuXNnXX/99XrwwQdVv359nT59WgcOHNAHH3ygtWvXFvneHj166IYbbtBjjz2ms2fPql27dvrqq68KDfZ33HGHJk+erIEDB+rvf/+7MjIy9I9//KPA7QwK4+/vr5dffln33XefunXrpvvvv1+hoaE6cOCAvvvuO7vzZ11t4MCBWrJkiW6++WY98sgjuvbaa+Xp6anDhw9r3bp1uuWWW9S/f/9C3+vm5qZnnnlG9913n/r376/7779ff/zxh+Lj40t0+LhPnz5atGiRmjVrptatW+vbb7/Viy++6PAhmrIcb6dOnTR8+HANGzZMW7du1Q033CA/Pz8dPXpUGzduVKtWrfTggw8W+t709HR16dJFgwYNUrNmzRQQEKAtW7bo008/tR218Pf315w5czRkyBCdOHFCt99+u+rUqaPjx4/ru+++0/Hjx4v8oqhRo4YmTZqkJ598UnfffbfuvPNOpaWlaerUqfL29taUKVMcnu/ilHT7ee2117R27Vr17t1bkZGRysjI0IIFCyTpkvvz+vXr68knn9Qzzzyjc+fO6c4771RQUJD27Nmj33//XVOnTnXJ/G/dulX33Xef/vrXv+rQoUOaOHGi6tWrZzsVqVmzZmrUqJGeeOIJGWMUHBysDz74QImJiQXG9fTTT6t3797q2bOnHnnkEeXk5OjFF1+Uv79/kacMlFZJt6+SbKtFeeaZZ3TTTTepe/fuGjdunHJycvT888/Lz8/Pbj7K+rOUJyQkRA8++KBSUlIUHR2tjz/+WK+//roefPBBRUZGSir59luS7VC68H25fPlyvfrqq7r66qvl5uamdu3alTg/lHQ6+ZV0mZb0e79Yl3WZyv8r7OrjoKAg06ZNGzNz5kyTkZFh1z4tLc2MGDHC1K1b13h4eJioqCgzYcKEAu3yX31szIUripo1a2Y8PT0LXLX53XffmQEDBpg6deoYT09PExYWZm688Ubz2muvFTsPCxYsME2bNjVWq9U0bNjQzJgxw8yfP7/Qq33zGzJkiPHz8yswPDY21lx55ZUFhkdFRZnevXvbDdu5c6fp27evCQoKMl5eXiYmJqbQq6z3799vevToYQIDA03t2rXN6NGjzUcffWR39fHevXvNnXfeaRo1amR8fHxMUFCQufbaa82iRYvsxrVjxw7TqVMn4+vrayTZrjzMzMw048ePN/Xq1TPe3t7mqquuMitXriz0qt1z586ZyZMnmyZNmhgvLy8TEhJibrzxRpOUlGRro0KuLs1bDvnX78GDB80999xj6tWrZzw9PU3t2rVNx44di7zy72J//PGHueeee0yNGjWMr6+v6d69u9m7d2+B7cQYYz7++GPTpk0b4+PjYxo2bGjmzp1b4lvS5L0/NjbW+Pn5GV9fX9OiRQu72wcVtU0UNo389Tly9XFh0zLmwtWXL730komJiTHe3t7G39/fNGvWzDzwwAPmxx9/LHY+33jjDdu6jY6ONgsWLCjy6u2LnTx50tx7772mTp06xtfX13Tu3Nl8+eWXBa5wzZv/kl59XNLxXurq4+PHjxda84IFC0z79u2Nn5+f8fHxMY0aNTJ333233W1L8svIyDAjRowwrVu3NoGBgcbHx8c0bdrUTJkyxZw9e9au7YYNG0zv3r1NcHCw8fT0NPXq1TO9e/e2W59F3WHgjTfeMK1btzZeXl4mKCjI3HLLLbZbEuUpzTZXmMLWTUm2n02bNpn+/fubqKgoY7VaTUhIiImNjTWrVq0qdprGXLiLwTXXXGMbf9u2bQvs+y5n/ku6H85b9qtXrzaDBw82NWrUsF35nP+zsmfPHtO9e3cTEBBgatasaf7617+alJSUQvc1K1asMK1atTJeXl4mMjLSPPfcc+bhhx82NWvWtGtX0v1kUdtIcdtXabbVwqxatcq2DvLmo6htqyw/S3nrc/369aZdu3bGarWaunXrmieffLLA3UdKs/8rbjs8ceKEuf32202NGjWMxWKxm+/S5IfiplPU/rW4ZVrS7/3iWIyp4MfAAAAoY4sWLdKwYcO0ZcsWu1/mcrbs7Gy1adNG9erV0+rVq8tsOlVVXFycfv/9d+3atcvVpVRJZX6hCQAA1dW9996r7t27q27dukpNTdVrr72mH374odirswFXIBQCAFBGTp8+rfHjx+v48ePy9PTUVVddpY8//viS51sCrsLhYwAAAJT9LWkAAABQ8REKAQAAQCgEAAAAF5o4JDc3V0eOHFFAQEChPy8GAAAqHmOMTp8+rfDw8Mv+edaqiFDogCNHjjj0G4kAAMD1Dh06dNm/sFQVEQodkPc7yocOHVJgYKCLqwEAACVx6tQpRURE2L7HYY9Q6IC8Q8aBgYGEQgAAKhlO/SocB9QBAABAKAQAAAChEAAAACIUAgAAQIRCAAAAiFAIAAAAEQoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQIRCAAAASPJwdQEomYyMDKWkpLi6jGJFRkbK29vb1WUAAIBSIhRWEikpKRo+fLiryyhWQkKCoqOjXV0GAAAoJUJhJREZGamEhASnjS85OVnTpk3TxIkTFRUV5bTxRkZGOm1cAACg/BAKKwlvb+8y6YGLioqiZw8AAHChCQAAAAiFAAAAEKEQAAAAIhQCAABAhEIAAACIUAgAAAARCgEAACBCIQAAAEQoBAAAgAiFAAAAEKEQAAAAIhQCAABAhEIAAACoEoXCV199Va1bt1ZgYKACAwPVoUMHffLJJ7bXjTGKj49XeHi4fHx8FBcXp927d9uNIzMzU6NHj1atWrXk5+enfv366fDhw+U9KwAAABVOpQmFV1xxhZ577jlt3bpVW7du1Y033qhbbrnFFvxeeOEFzZw5U3PnztWWLVsUFham7t276/Tp07ZxjBkzRitWrNCyZcu0ceNGnTlzRn369FFOTo6rZgsAAKBCqDShsG/fvrr55psVHR2t6OhoTZs2Tf7+/tq8ebOMMZo1a5YmTpyo2267TS1bttTixYv1559/aunSpZKk9PR0zZ8/Xy+//LK6deumtm3b6u2339bOnTu1Zs0aF88dAACAa1WaUHixnJwcLVu2TGfPnlWHDh108OBBpaamqkePHrY2VqtVsbGxSkpKkiR9++23ys7OtmsTHh6uli1b2toUJTMzU6dOnbJ7AAAAVCWVKhTu3LlT/v7+slqtGjFihFasWKEWLVooNTVVkhQaGmrXPjQ01PZaamqqvLy8VLNmzSLbFGXGjBkKCgqyPSIiIpw4VwAAAK5XqUJh06ZNtWPHDm3evFkPPvighgwZoj179thet1gsdu2NMQWG5VeSNhMmTFB6errtcejQIcdnAgAAoAKqVKHQy8tLjRs3Vrt27TRjxgzFxMRo9uzZCgsLk6QCPX7Hjh2z9R6GhYUpKytLJ0+eLLJNUaxWq+2q57wHAABAVVKpQmF+xhhlZmaqQYMGCgsLU2Jiou21rKwsbdiwQR07dpQkXX311fL09LRrc/ToUe3atcvWBgAAoLrycHUBJfXkk0+qV69eioiI0OnTp7Vs2TKtX79en376qSwWi8aMGaPp06erSZMmatKkiaZPny5fX18NGjRIkhQUFKR7771X48aNU0hIiIKDgzV+/Hi1atVK3bp1c/HcAQAAuFalCYW//fabBg8erKNHjyooKEitW7fWp59+qu7du0uSHnvsMZ07d04jR47UyZMn1b59e61evVoBAQG2cbzyyivy8PDQgAEDdO7cOXXt2lWLFi2Su7u7q2YLAACgQrAYY4yri6hsTp06paCgIKWnp1fa8wv379+v4cOHKyEhQdHR0a4uBwCAMlcVvr/LUqU+pxAAAADOQSgEAAAAoRAAAACEQgAAAIhQCAAAABEKAQAV1KYjm3TLylu06cgmV5cCVAuEQgBAhWOM0exts/Vz+s+avW22uHsaUPYIhQCACifpSJJ2p+2WJO1O262kI0kurgio+giFAIAKxRijOdvnyM1y4SvKzeKmOdvn0FsIlDFCIQCgQsnrJcw1uZKkXJNLbyFQDgiFAIAKI38vYR56C4GyRygEAFQY+XsJ89BbCJQ9QiEAoELI6yW0yFLo6xZZ6C0EyhChEABQIWTnZiv1bKqMCg99RkapZ1OVnZtdzpUB1YOHqwsAAECSvNy9tKzPMp3IOFFkm2DvYHm5e5VjVUD1QSgEHJCRkaGUlBRXl3FJkZGR8vb2dnUZqEac9bnwuMRX06n//+9y8NkACkcoBByQkpKi4cOHu7qMS0pISFB0dLSry0A1Uhk+FxKfDaAohELAAZGRkUpISHDKuJKTkzVt2jRNnDhRUVFRThmndKFGoDw583Mh8dkAyhuhEHCAt7e303saoqKi6L1ApVYWnwuJzwZQXrj6GAAAAIRCAAAAEAoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQIRCAAAAiFAIAAAAEQoBAAAgQiEAAABEKAQAAIAkD1cXAACXIyMjQykpKa4uo1iRkZHy9vZ2dRkAUCRCIYBKLSUlRcOHD3d1GcVKSEhQdHS0q8sAgCIRCgFUapGRkUpISHDa+JKTkzVt2jRNnDhRUVFRThtvZGSk08YFAGWBUAigUvP29i6THrioqCh69gBUK1xoAgAAAEIhAAAACIUAAAAQoRAAAAAiFAIAAECEQgAAAIhQCAAAABEKAQAAIEIhAAAARCgEAACACIUAAAAQoRAAAAAiFAIAAECEQgAAAIhQCAAAAEkeri4AAAA4V0ZGhlJSUlxdRrEiIyPl7e3t6jLw/wiFAABUMSkpKRo+fLiryyhWQkKCoqOjXV0G/h+hEACAKiYyMlIJCQlOG19ycrKmTZumiRMnKioqymnjjYyMdNq4cPkIhQAAVDHe3t5l0gMXFRVFz14VxoUmAAAAIBQCAACAUAgAAABVolA4Y8YMXXPNNQoICFCdOnV06623at++fXZtjDGKj49XeHi4fHx8FBcXp927d9u1yczM1OjRo1WrVi35+fmpX79+Onz4cHnOCgAAQIVTaULhhg0bNGrUKG3evFmJiYk6f/68evToobNnz9ravPDCC5o5c6bmzp2rLVu2KCwsTN27d9fp06dtbcaMGaMVK1Zo2bJl2rhxo86cOaM+ffooJyfHFbMFAABQIVSaq48//fRTu+cLFy5UnTp19O233+qGG26QMUazZs3SxIkTddttt0mSFi9erNDQUC1dulQPPPCA0tPTNX/+fL311lvq1q2bJOntt99WRESE1qxZo549e5b7fAEAAFQElaanML/09HRJUnBwsCTp4MGDSk1NVY8ePWxtrFarYmNjlZSUJEn69ttvlZ2dbdcmPDxcLVu2tLUBAACojipNT+HFjDEaO3asOnfurJYtW0qSUlNTJUmhoaF2bUNDQ5WcnGxr4+XlpZo1axZok/f+wmRmZiozM9P2/NSpU06ZDwAAgIqiUvYUPvTQQ/r+++/1zjvvFHjNYrHYPTfGFBiWX3FtZsyYoaCgINsjIiLCscIBAAAqqEoXCkePHq1Vq1Zp3bp1uuKKK2zDw8LCJKlAj9+xY8dsvYdhYWHKysrSyZMni2xTmAkTJig9Pd32OHTokLNmBwAAoEKoNKHQGKOHHnpIy5cv19q1a9WgQQO71xs0aKCwsDAlJibahmVlZWnDhg3q2LGjJOnqq6+Wp6enXZujR49q165dtjaFsVqtCgwMtHsAAABUJZXmnMJRo0Zp6dKl+u9//6uAgABbj2BQUJB8fHxksVg0ZswYTZ8+XU2aNFGTJk00ffp0+fr6atCgQba29957r8aNG6eQkBAFBwdr/PjxatWqle1qZAAAgOqo0oTCV199VZIUFxdnN3zhwoUaOnSoJOmxxx7TuXPnNHLkSJ08eVLt27fX6tWrFRAQYGv/yiuvyMPDQwMGDNC5c+fUtWtXLVq0SO7u7uU1KwAAABVOpQmFxphi21gsFsXHxys+Pr7INt7e3pozZ47mzJnjxOoqn+/++E4n+5/Ud398p2hFu7ocAADgYpXmnEI4jzFGS1KWKLdGrpakLClR4AYAAFUbobAaSjqSpJ/O/iRJ+unsT0o6wo27AQCo7giF1YwxRnO2z5Hb/696N7lpzvY59BYCAFDNEQqrmaQjSdqdtlu5ypUk5SpXu9N201sIAEA1RyisRmy9hBb71e5mobcQAIDqjlBYjdh6CU2u3fBcQ28hAADVHaGwmsjrJbSo8N94tshCbyEAANUYobCayM7NVurZVBkVHvqMjFLPpio7N7ucKwMAABVBpbl5NS6Pl7uXlvVZphMZJyRJKckpenbas3pq4lOKjIqUJAV7B8vL3cuVZQIAABchFFYjYX5hCvMLkyR5pHnII81DDf0bKjqEXzQBAKC64/AxAAAACIUAAAAgFAIAAECEQgAAAIhQCAAAABEKAQAAIEIhAAAARCgEAACACIUAAAAQoRAAAAAiFAIAAECEQgAAAIhQCAAAABEKAQAAIEIhAAAARCgEAACACIWAy333x3c62f+kvvvjO1eXAgCoxhwKhV988YXOnz9fYPj58+f1xRdfXHZRQHVhjNGSlCXKrZGrJSlLZIxxdUkAgGrKoVDYpUsXnThxosDw9PR0denS5bKLAqqLpCNJ+unsT5Kkn87+pKQjSS6uCABQXXk48iZjjCwWS4HhaWlp8vPzu+yiqpLffvtN6enpri6jgOTkZLt/K6KgoCCFhoa6uowyY4zRnO1z5CY35SpXbnLTnO1z1DG8Y6GfLwAAylKpQuFtt90mSbJYLBo6dKisVqvttZycHH3//ffq2LGjcyusxH777Tf9bfDdys7KdHUpRZo2bZqrSyiSp5dVb7/1ZpUNhklHkrQ7bbftea5ytTttt5KOJKlTvU4urAwAUB2VKhQGBQVJutDDERAQIB8fH9trXl5euu6663T//fc7t8JKLD09XdlZmTrXMFa53kGuLqdScctIl37eoPT09CoZCm29hBY35Zpc23A3C72FAADXKFUoXLhwoSSpfv36Gj9+PIeKSyjXO0i5frVcXQYqkPy9hHlyDb2FAADXcOhCkylTphAIAQfl9RJaVHhPoEUWzdk+hyuRAQDlyqFQ+Ntvv2nw4MEKDw+Xh4eH3N3d7R4Aipadm63Us6kyKjz0GRmlnk1Vdm52OVcGAKjOHLr6eOjQoUpJSdGkSZNUt25dzn0CSsHL3UvL+izTiYwLt3VKSU7Rs9Oe1VMTn1JkVKQkKdg7WF7uXq4sEwBQzTgUCjdu3Kgvv/xSbdq0cXI5QPUQ5hemML8wSZJHmoc80jzU0L+hokOiXVwZAKC6cujwcUREBOc7AQAAVCEOhcJZs2bpiSee0C+//OLkcgAAAOAKDh0+vuOOO/Tnn3+qUaNG8vX1laenp93rhf0EHgAAACouh0LhrFmznFwGAAAAXMmhUDhkyBBn1wEAAAAXcigUpqSkXPL1yMhIh4oBAACAazgUCuvXr3/JexPm5OQ4XBAAAADKn0OhcPv27XbPs7OztX37ds2cOVPTpk1zSmEAAAAoPw6FwpiYmALD2rVrp/DwcL344ou67bbbLrswAEDZ++2335Senu7qMgqVnJxs929FFBQUpNDQUFeXATiFQ6GwKNHR0dqyZYszRwkAKCO//fab/jb4bmVnZbq6lEuqyEegPL2sevutNwmGqBIcCoWnTp2ye26M0dGjRxUfH68mTZo4pTAAQNlKT09XdlamzjWMVa53kKvLqXTcMtKlnzcoPT2dUIgqwaFQWKNGjQIXmhhjFBERoWXLljmlMABA+cj1DlKuXy1XlwHAxRwKhevWrbN77ubmptq1a6tx48by8HDqEWkAAACUA4cSXGxsrLPrAAAAgAs53K33008/adasWfrhhx9ksVjUvHlzPfLII2rUqJEz6wOcpqJeZckVlgCAisChUPjZZ5+pX79+atOmjTp16iRjjJKSknTllVfqgw8+UPfu3Z1dJ3BZKsNVltXpCsuKGtAlKXF/ok72P6nE/YmuLqVQBHQAZcWhUPjEE0/o0Ucf1XPPPVdg+OOPP04oRIXDVZaOc/YVlhU5oBsZpfdJV27tXL2+93W999J7sqjoX29yBW6BAqCsOBQKf/jhB7333nsFht9zzz2aNWvW5dYElBmusnS9ihzQc4J+VU7t1Rf+v3aOTndoJ/f0ei6u6n+4BQqAsuRQKKxdu7Z27NhR4J6EO3bsUJ06dZxSGICqraIFdCOj85GfSMYiWYxkLDof+b30c+sK11uIqqkin1bBuc/Vg0Oh8P7779fw4cP1888/q2PHjrJYLNq4caOef/55jRs3ztk1AkCZM/6/yPim/m+Axcj4psr4/yLLmQauKwzVQkU+reJi1enc5+rIoVA4adIkBQQE6OWXX9aECRMkSeHh4YqPj9fDDz/s1AIBoKwZGeXU2fi/XkLbCxbl1Nkoy5n69BaiTFXk0yoqA06tcA6HQqHFYtGjjz6qRx99VKdPn5YkBQQEOLUwACgvBXoJ89BbiHJW0U6rQPXidrkjCAgIKLdA+MUXX6hv374KDw+XxWLRypUr7V43xig+Pl7h4eHy8fFRXFycdu/ebdcmMzNTo0ePVq1ateTn56d+/frp8OHD5VI/gIrnf72ERTZQTp2NMkU2AICqwaFQmJaWplGjRqlFixaqVauWgoOD7R5l5ezZs4qJidHcuXMLff2FF17QzJkzNXfuXG3ZskVhYWHq3r27rTdTksaMGaMVK1Zo2bJl2rhxo86cOaM+ffooJyenzOoGUIFZcmQ8T6nIo8MW/f/r7CMAVG0OHT7+29/+pp9++kn33nuvQkNDZbGUz7k2vXr1Uq9evQp9zRijWbNmaeLEibrtttskSYsXL1ZoaKiWLl2qBx54QOnp6Zo/f77eeustdevWTZL09ttvKyIiQmvWrFHPnj3LZT4AVBwW4yHPnwfLuJ8rus15X1kMv+sOoGpzaC+3ceNGbdy4UTExMc6ux2EHDx5UamqqevToYRtmtVoVGxurpKQkPfDAA/r222+VnZ1t1yY8PFwtW7ZUUlJSkaEwMzNTmZn/uyLs1KlTZTcjAMqdJTtQluxAV5cBAC7l0OHjZs2a6dy5ov+qdoXU1Asniee/6ig0NNT2Wmpqqry8vFSzZs0i2xRmxowZCgoKsj0iIiKcXD0AAIBrORQK582bp4kTJ2rDhg1KS0vTqVOn7B6ulP9QtjGm2MPbxbWZMGGC0tPTbY9Dhw45pVYAAICKwqHDxzVq1FB6erpuvPFGu+F54coVF22EhYVJutAbWLduXdvwY8eO2XoPw8LClJWVpZMnT9r1Fh47dkwdO3YsctxWq1VWq7WMKgcAAHA9h0LhXXfdJS8vLy1durRcLzS5lAYNGigsLEyJiYlq27atJCkrK0sbNmzQ888/L0m6+uqr5enpqcTERA0YMECSdPToUe3atUsvvPCCy2oHAKAiy/X7RefrrpXH0Rvldra+q8tBGXEoFO7atUvbt29X06ZNnV3PJZ05c0YHDhywPT948KB27Nih4OBgRUZGasyYMZo+fbqaNGmiJk2aaPr06fL19dWgQYMkXfhdxHvvvVfjxo1TSEiIgoODNX78eLVq1cp2NTIAAPgfI6Oc0C8l7zTlhH4py89R/MJPFeVQKGzXrp0OHTpU7qFw69at6tKli+352LFjJUlDhgzRokWL9Nhjj+ncuXMaOXKkTp48qfbt22v16tV2N9d+5ZVX5OHhoQEDBujcuXPq2rWrFi1aJHd393KdFwAAKoOLf/GHX/ip2hwKhaNHj9Yjjzyiv//972rVqpU8PT3tXm/durVTissvLi5OxhT9qwIWi0Xx8fGKj48vso23t7fmzJmjOXPmlEGFAABUHQV+F5zfA6/SHAqFd9xxhyTpnnvusQ2zWCwuvdAEAAA4V4HfBef3wKs0h0LhwYMHnV0HAACoQAr0EtpeoLewqnIoFEZFRTm7DgAAUIEU6CXMQ29hlXVZP+a5Z88epaSkKCsry254v379LqsoAADgOv/rJZQK7Qw0orewCnIoFP7888/q37+/du7caTuXUPrfr4lwTiEAAJWYJUfG81ThgVCSLPr/13Mkc1n9S6hAHFqTjzzyiBo0aKA1a9aoYcOG+uabb5SWlqZx48bppZdecnaNAACgHFmMhzx/Hizjfq7oNud9ZSEQVikOrc1NmzZp7dq1ql27ttzc3OTm5qbOnTtrxowZevjhh7V9+3Zn1wkAAMqRJTtQluxAV5eBcuTmyJtycnLk7+8vSapVq5aOHDki6cIFKPv27XNedQAAACgXDvUUtmzZUt9//70aNmyo9u3b64UXXpCXl5cSEhLUsGFDZ9cIAACAMuZQKHzqqad09uxZSdKzzz6rPn366Prrr1dISIjeffddpxYIAACAsudQKOzZs6ft/xs2bKg9e/boxIkTqlmzpu0KZEk6fPiwwsPD5ebm0FFqAAAAlBOnpbXg4GC7QChJLVq00C+//OKsSQAAAKCMlGkXXt79CwEAAFCxcVwXAAAAhEIAAAAQCgEAAKAyDoX5LzwBAABAxVSmP1rIhSYAAJSc27k/XF1CpcRyc44yDYV79uxReHh4WU4CQCXFTrz0WGZVn8/BL1xdAqqxEofC2267rcQjXb58uSQpIiKi9BUBqBb48qs4CJuOKYvldq7BDcr1qeH08VZ1buf+YJ/iBCUOhUFBQWVZB4Bqhi+/0iurLz6+TCuOXJ8ayvWr5eoyUE2VOBQuXLiwLOuo0vgrvPRYZlUfX34VBwHdMfROoaop03MKcQE7DQAVGQEdgHQZofDf//633nvvPaWkpCgrK8vutW3btl12YVUJf4WXHn+BAwBQvhwKhf/4xz80ceJEDRkyRP/97381bNgw/fTTT9qyZYtGjRrl7BorPf4KBwAAFZ1DoXDevHlKSEjQnXfeqcWLF+uxxx5Tw4YNNXnyZJ04ccLZNQJOw7mKpccyA4DqwaFQmJKSoo4dO0qSfHx8dPr0aUnS4MGDdd1112nu3LnOqxBwIg5JAwBQOIdCYVhYmNLS0hQVFaWoqCht3rxZMTExOnjwIL9iggqN8ztLj/M7AaB6cCgU3njjjfrggw901VVX6d5779Wjjz6qf//739q6dWupbnINlDfO7wQAoHAOhcKEhATl5uZKkkaMGKHg4GBt3LhRffv21YgRI5xaIAAAAMqeQ6Hw8OHDdj9hN2DAAA0YMEDGGB06dEiRkZFOKxAAAABlz82RNzVo0EDHjx8vMPzEiRNq0KDBZRcFAACA8uVQKDTGyGKxFBh+5swZeXt7X3ZRAAAAKF+lOnw8duxYSZLFYtGkSZPk6+trey0nJ0dff/212rRp49QCAQAAUPZKFQq3b98u6UJP4c6dO+Xl5WV7zcvLSzExMRo/frxzKwQAoJpwy0h3dQmVEsvNOUoVCtetWydJGjZsmGbPnq3AwMAyKQoAgOokKChInl5W6ecNri6l0vL0siooKMjVZVRqDl19vHDhQtv/Hz58WBaLRfXq1XNaUQAAVCehoaF6+603lZ5eMXu8kpOTNW3aNE2cOFFRUVGuLqdQQUFBCg0NdXUZlZpDoTA3N1fPPvusXn75ZZ05c0aSFBAQoHHjxmnixIlyc3Po+hUAAKqt0NDQCh9qoqKiFB0d7eoyUEYcCoUTJ07U/Pnz9dxzz6lTp04yxuirr75SfHy8MjIyNG3aNGfXCQAAgDLkUChcvHix3njjDfXr1882LCYmRvXq1dPIkSMJhQAAAJWMQ8d5T5w4oWbNmhUY3qxZM504ceKyiwIAAED5cqinMCYmRnPnztU//vEPu+Fz585VTEyMUwoDAJQPbufhGJYbqhqHQuELL7yg3r17a82aNerQoYMsFouSkpJ06NAhffzxx86uEUAVxBdq6Tl7mXEblMvHbVBQlTgUChs0aKD9+/frn//8p/bu3StjjG677TaNHDlS58+fd3aNlR5ffqXHMqu6CCKXx5khhNugXD5ug4KqxOFQePTo0QIXlKSlpSkiIkI5OTlOKa6y48vv8vAXeNVEELk8zg4h3AYFQB6HQqExptDhZ86ckbe392UVVJVU5C+/iv7FJ/EXeFVGEAGAiqdUoXDs2LGSJIvFosmTJ8vX19f2Wk5Ojr7++mu1adPGqQVWdhX9y48vPgAAIJUyFG7fvl3ShZ7CnTt3ysvLy/aal5eXYmJiNH78eOdWCAAAgDJXqlC4bt06SdKwYcM0e/ZsBQYGlklRAAAAKF8OnVO4cOFCZ9cBAAAAF3LoF00AAABQtRAKAQAA4NjhY6Cy4qbYpccyA4DqgVCIaoEbiV8ebiQOAFUfoRDVAjcSvzzcSBwAqj5CIaoNbiQOAEDRuNAEAAAAhEIAAAAQCgEAAKBqHArnzZunBg0ayNvbW1dffbW+/PJLV5cEAADgMtUyFL777rsaM2aMJk6cqO3bt+v6669Xr169lJKS4urSAAAAXKJahsKZM2fq3nvv1X333afmzZtr1qxZioiI0Kuvvurq0gAAAFyi2t2SJisrS99++62eeOIJu+E9evRQUlJSoe/JzMxUZmam7fmpU6fKtEZUfBkZGU7rWU5OTrb711kiIyPl7e3t1HECqBycuY+S2E9VF9UuFP7+++/KyckpcL+60NBQpaamFvqeGTNmaOrUqeVRHiqJlJQUDR8+3KnjnDZtmlPHl5CQwH0PgWqqLPZREvupqq7ahcI8FovF7rkxpsCwPBMmTNDYsWNtz0+dOqWIiIgyrQ8VW2RkpBISElxdxiVFRka6ugQALlIZ9lES+6mKptqFwlq1asnd3b1Ar+CxY8eK/LULq9Uqq9VaHuWhkvD29uavWwAVFvsoOKLaXWji5eWlq6++WomJiXbDExMT1bFjRxdVBQAA4FrVrqdQksaOHavBgwerXbt26tChgxISEpSSkqIRI0a4ujQAAACXqJah8I477lBaWpqefvppHT16VC1bttTHH3+sqKgoV5cGAADgEtUyFErSyJEjNXLkSFeXAQAAUCFUu3MKAQAAUBChEAAAAIRCAAAAVONzCgFUDfycFwA4B6EQQKXGz3kBgHMQCgFUavycFwA4B6EQQKXGz3kBgHNwoQkAAAAIhQAAACAUAgAAQIRCAAAAiFAIAAAAEQoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQIRCAAAAiFAIAAAAEQoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQIRCAAAAiFAIAAAAEQoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQIRCAAAAiFAIAAAAEQoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQIRCAAAAiFAIAAAAEQoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQIRCAAAAiFAIAAAAEQoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQJUoFE6bNk0dO3aUr6+vatSoUWiblJQU9e3bV35+fqpVq5YefvhhZWVl2bXZuXOnYmNj5ePjo3r16unpp5+WMaYc5gAAAKDi8nB1ASWVlZWlv/71r+rQoYPmz59f4PWcnBz17t1btWvX1saNG5WWlqYhQ4bIGKM5c+ZIkk6dOqXu3burS5cu2rJli/bv36+hQ4fKz89P48aNK+9ZAgAAqDAqTSicOnWqJGnRokWFvr569Wrt2bNHhw4dUnh4uCTp5Zdf1tChQzVt2jQFBgZqyZIlysjI0KJFi2S1WtWyZUvt379fM2fO1NixY2WxWMprdgAAACqUSnP4uDibNm1Sy5YtbYFQknr27KnMzEx9++23tjaxsbGyWq12bY4cOaJffvmlyHFnZmbq1KlTdg8AAICqpMqEwtTUVIWGhtoNq1mzpry8vJSamlpkm7zneW0KM2PGDAUFBdkeERERTq4eAADAtVwaCuPj42WxWC752Lp1a4nHV9jhX2OM3fD8bfIuMrnUoeMJEyYoPT3d9jh06FCJawIAAKgMXHpO4UMPPaSBAwdesk39+vVLNK6wsDB9/fXXdsNOnjyp7OxsW29gWFhYgR7BY8eOSVKBHsSLWa1Wu0POAAAAVY1LQ2GtWrVUq1Ytp4yrQ4cOmjZtmo4ePaq6detKunDxidVq1dVXX21r8+STTyorK0teXl62NuHh4SUOnwAAAFVRpTmnMCUlRTt27FBKSopycnK0Y8cO7dixQ2fOnJEk9ejRQy1atNDgwYO1fft2ff755xo/frzuv/9+BQYGSpIGDRokq9WqoUOHateuXVqxYoWmT5/OlccAAKDaqzS3pJk8ebIWL15se962bVtJ0rp16xQXFyd3d3d99NFHGjlypDp16iQfHx8NGjRIL730ku09QUFBSkxM1KhRo9SuXTvVrFlTY8eO1dixY8t9fgAAACqSShMKFy1aVOQ9CvNERkbqww8/vGSbVq1a6YsvvnBiZQAAAJVfpTl8DAAAgLJTaXoKAQAVW0ZGhlJSUpw2vuTkZLt/nSUyMlLe3t5OHSdQFRAKAQBOkZKSouHDhzt9vNOmTXPq+BISEhQdHe3UcQJVAaEQAOAUkZGRSkhIcHUZxYqMjHR1CUCFRCgEADiFt7c3PXBAJcaFJgAAACAUAgAAgFAIAAAAEQoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQIRCAAAAiFAIAAAAEQoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQIRCAAAAiFAIAAAAEQoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQJKHqwtAyWRkZCglJcVp40tOTrb711kiIyPl7e3t1HECAICyRyisJFJSUjR8+HCnj3fatGlOHV9CQoKio6OdOk4AAFD2CIWVRGRkpBISElxdRrEiIyNdXQIAAHAAobCS8Pb2pgcOAACUGS40AQAAAKEQAAAAhEIAAACIUAgAAAARCgEAACBCIQAAAEQoBAAAgAiFAAAAEKEQAAAAIhQCAABAhEIAAACIUAgAAAARCgEAACDJw9UFVEbGGEnSqVOnXFwJAAAoqbzv7bzvcdgjFDrg9OnTkqSIiAgXVwIAAErr9OnTCgoKcnUZFY7FEJdLLTc3V0eOHFFAQIAsFoury3HIqVOnFBERoUOHDikwMNDV5VRrrIuKhfVRcbAuKo6qsi6MMTp9+rTCw8Pl5sYZdPnRU+gANzc3XXHFFa4uwykCAwMr9Qe8KmFdVCysj4qDdVFxVIV1QQ9h0YjJAAAAIBQCAACAUFhtWa1WTZkyRVar1dWlVHusi4qF9VFxsC4qDtZF9cCFJgAAAKCnEAAAAIRCAAAAiFAIAAAAEQoBAAAgQmGV98UXX6hv374KDw+XxWLRypUr7V43xig+Pl7h4eHy8fFRXFycdu/e7Zpiq7ji1sXy5cvVs2dP1apVSxaLRTt27HBJndXBpdZFdna2Hn/8cbVq1Up+fn4KDw/X3XffrSNHjriu4CquuM9GfHy8mjVrJj8/P9WsWVPdunXT119/7Zpiq7ji1sXFHnjgAVksFs2aNavc6kPZIhRWcWfPnlVMTIzmzp1b6OsvvPCCZs6cqblz52rLli0KCwtT9+7dbb/vDOcpbl2cPXtWnTp10nPPPVfOlVU/l1oXf/75p7Zt26ZJkyZp27ZtWr58ufbv369+/fq5oNLqobjPRnR0tObOnaudO3dq48aNql+/vnr06KHjx4+Xc6VVX3HrIs/KlSv19ddfKzw8vJwqQ7kwqDYkmRUrVtie5+bmmrCwMPPcc8/ZhmVkZJigoCDz2muvuaDC6iP/urjYwYMHjSSzffv2cq2purrUusjzzTffGEkmOTm5fIqqxkqyPtLT040ks2bNmvIpqpoqal0cPnzY1KtXz+zatctERUWZV155pdxrQ9mgp7AaO3jwoFJTU9WjRw/bMKvVqtjYWCUlJbmwMqBiSU9Pl8ViUY0aNVxdSrWXlZWlhIQEBQUFKSYmxtXlVDu5ubkaPHiw/v73v+vKK690dTlwMg9XFwDXSU1NlSSFhobaDQ8NDVVycrIrSgIqnIyMDD3xxBMaNGiQAgMDXV1OtfXhhx9q4MCB+vPPP1W3bl0lJiaqVq1ari6r2nn++efl4eGhhx9+2NWloAzQUwhZLBa758aYAsOA6ig7O1sDBw5Ubm6u5s2b5+pyqrUuXbpox44dSkpK0k033aQBAwbo2LFjri6rWvn22281e/ZsLVq0iO+IKopQWI2FhYVJ+l+PYZ5jx44V6D0Eqpvs7GwNGDBABw8eVGJiIr2ELubn56fGjRvruuuu0/z58+Xh4aH58+e7uqxq5csvv9SxY8cUGRkpDw8PeXh4KDk5WePGjVP9+vVdXR6cgFBYjTVo0EBhYWFKTEy0DcvKytKGDRvUsWNHF1YGuFZeIPzxxx+1Zs0ahYSEuLok5GOMUWZmpqvLqFYGDx6s77//Xjt27LA9wsPD9fe//12fffaZq8uDE3BOYRV35swZHThwwPb84MGD2rFjh4KDgxUZGakxY8Zo+vTpatKkiZo0aaLp06fL19dXgwYNcmHVVVNx6+LEiRNKSUmx3Q9v3759ki706Ob16sI5LrUuwsPDdfvtt2vbtm368MMPlZOTY+tNDw4OlpeXl6vKrrIutT5CQkI0bdo09evXT3Xr1lVaWprmzZunw4cP669//asLq66aittP5f8DydPTU2FhYWratGl5l4qy4OrLn1G21q1bZyQVeAwZMsQYc+G2NFOmTDFhYWHGarWaG264wezcudO1RVdRxa2LhQsXFvr6lClTXFp3VXSpdZF3S6DCHuvWrXN16VXSpdbHuXPnTP/+/U14eLjx8vIydevWNf369TPffPONq8uukorbT+XHLWmqFosxxpRt7AQAAEBFxzmFAAAAIBQCAACAUAgAAAARCgEAACBCIQAAAEQoBAAAgAiFAAAAEKEQQAUQFxenMWPGuLoMAKjWCIUAAAAgFAKomnJycpSbm+vqMgCg0iAUArCJi4vTww8/rMcee0zBwcEKCwtTfHy8JOmXX36RxWLRjh07bO3/+OMPWSwWrV+/XpK0fv16WSwWffbZZ2rbtq18fHx044036tixY/rkk0/UvHlzBQYG6s4779Sff/5pN+3z58/roYceUo0aNRQSEqKnnnpKF/8KZ1ZWlh577DHVq1dPfn5+at++vW26krRo0SLVqFFDH374oVq0aCGr1ark5ORi53nBggW68sorZbVaVbduXT300EO211JSUnTLLbfI399fgYGBGjBggH777Tfb6/Hx8WrTpo0WLFigyMhI+fv768EHH1ROTo5eeOEFhYWFqU6dOpo2bZrdNC0Wi1599VX16tVLPj4+atCggd5//327No8//riio6Pl6+urhg0batKkScrOzrZr8+yzz6pOnToKCAjQfffdpyeeeEJt2rSxvT506FDdeuuteumll1S3bl2FhIRo1KhRtvE8/fTTatWqVYFlcvXVV2vy5MnFLjsAVYyLf3sZQAUSGxtrAgMDTXx8vNm/f79ZvHixsVgsZvXq1ebgwYNGktm+fbut/cmTJ40ks27dOmOMMevWrTOSzHXXXWc2btxotm3bZho3bmxiY2NNjx49zLZt28wXX3xhQkJCzHPPPWc3XX9/f/PII4+YvXv3mrffftv4+vqahIQEW5tBgwaZjh07mi+++MIcOHDAvPjii8ZqtZr9+/cbY4xZuHCh8fT0NB07djRfffWV2bt3rzlz5swl53fevHnG29vbzJo1y+zbt89888035pVXXjHGGJObm2vatm1rOnfubLZu3Wo2b95srrrqKhMbG2t7/5QpU4y/v7+5/fbbze7du82qVauMl5eX6dmzpxk9erTZu3evWbBggZFkNm3aZHufJBMSEmJef/11s2/fPvPUU08Zd3d3s2fPHlubZ555xnz11Vfm4MGDZtWqVSY0NNQ8//zzttfffvtt4+3tbRYsWGD27dtnpk6dagIDA01MTIytzZAhQ0xgYKAZMWKE+eGHH8wHH3xgt1wPHTpk3NzczDfffGN7z3fffWcsFov56aefLrnsAFQ9hEIANrGxsaZz5852w6655hrz+OOPlyoUrlmzxtZmxowZRpJdyHjggQdMz5497abbvHlzk5ubaxv2+OOPm+bNmxtjjDlw4ICxWCzm119/tauta9euZsKECcaYC6FQktmxY0eJ5zc8PNxMnDix0NdWr15t3N3dTUpKim3Y7t27jSRbiJoyZYrx9fU1p06dsrXp2bOnqV+/vsnJybENa9q0qZkxY4btuSQzYsQIu+m1b9/ePPjgg0XW+sILL5irr77arv2oUaPs2nTq1KlAKIyKijLnz5+3DfvrX/9q7rjjDtvzXr162U13zJgxJi4ursg6AFRdHD4GYKd169Z2z+vWratjx445PI7Q0FDbIdCLh+Uf53XXXSeLxWJ73qFDB/3444/KycnRtm3bZIxRdHS0/P39bY8NGzbop59+sr3Hy8urQP1FOXbsmI4cOaKuXbsW+voPP/ygiIgIRURE2Ia1aNFCNWrU0A8//GAbVr9+fQUEBNjNW4sWLeTm5mY3LP/8dujQocDzi8f773//W507d1ZYWJj8/f01adIkpaSk2F7ft2+frr32Wrtx5H8uSVdeeaXc3d1tz/Ovz/vvv1/vvPOOMjIylJ2drSVLluiee+4pdJkAqNo8XF0AgIrF09PT7rnFYlFubq4t5JiLzvPLf45bYeOwWCxFjrOkcnNz5e7urm+//dYu4EiSv7+/7f99fHzsguWl+Pj4XPJ1Y0yh48o/vLB5c3R+88a7efNmDRw4UFOnTlXPnj0VFBSkZcuW6eWXXy60/cW15VdcLX379pXVatWKFStktVqVmZmpv/zlL8XWCqDqoacQQInUrl1bknT06FHbsIsvOrlcmzdvLvC8SZMmcnd3V9u2bZWTk6Njx46pcePGdo+wsDCHphcQEKD69evr888/L/T1Fi1aKCUlRYcOHbIN27Nnj9LT09W8eXOHpnmxwua3WbNmkqSvvvpKUVFRmjhxotq1a6cmTZoUuGimadOm+uabb+yGbd26tdR1eHh4aMiQIVq4cKEWLlyogQMHytfXt9TjAVD50VMIoER8fHx03XXX6bnnnlP9+vX1+++/66mnnnLa+A8dOqSxY8fqgQce0LZt2zRnzhxbz1h0dLTuuusu3X333Xr55ZfVtm1b/f7771q7dq1atWqlm2++2aFpxsfHa8SIEapTp4569eql06dP66uvvtLo0aPVrVs3tW7dWnfddZdmzZql8+fPa+TIkYqNjVW7du0ue37ff/99tWvXTp07d9aSJUv0zTffaP78+ZKkxo0bKyUlRcuWLdM111yjjz76SCtWrLB7/+jRo3X//ferXbt26tixo9599119//33dofpS+q+++6zBd2vvvrqsucNQOVETyGAEluwYIGys7PVrl07PfLII3r22WedNu67775b586d07XXXqtRo0Zp9OjRGj58uO31hQsX6u6779a4cePUtGlT9evXT19//bXdOX+lNWTIEM2aNUvz5s3TlVdeqT59+ujHH3+UdOEw68qVK1WzZk3dcMMN6tatmxo2bKh33333sudVkqZOnaply5apdevWWrx4sZYsWaIWLVpIkm655RY9+uijeuihh9SmTRslJSVp0qRJdu+/6667NGHCBI0fP15XXXWVDh48qKFDh8rb27vUtTRp0kQdO3ZU06ZN1b59e6fMH4DKx2IKOwkFAFBmLBaLVqxYoVtvvdWp4+3evbvCwsL01ltvlep9xhg1a9ZMDzzwgMaOHevUmgBUHhw+BoBK6M8//9Rrr72mnj17yt3dXe+8847WrFmjxMTEUo3n2LFjeuutt/Trr79q2LBhZVQtgMqAUAigyrr4yuT8PvnkE11//fXlWI1zWSwWffzxx3r22WeVmZmppk2b6j//+Y+6detWqvGEhoaqVq1aSkhIUM2aNcuoWgCVAYePAVRZBw4cKPK1evXqFXtbGgCoTgiFAAAA4OpjAAAAEAoBAAAgQiEAAABEKAQAAIAIhQAAABChEAAAACIUAgAAQIRCAAAASPo/oy+gltdg7lcAAAAASUVORK5CYII=",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#repartition Chiffre d'affaire selon les compagnie de spectacle\n",
"\n",
"sns.boxplot(data=products_purchased_reduced_spectacle, y=\"total_amount\",x=\"number_compagny\",showfliers=False,showmeans=True)\n",
"plt.title(\"Boite à moustache du chiffre d'affaire selon les compagnies de spectacles\")"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "76e08ece-0b58-4b3a-abca-53e30ccc907b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Statistique F : 0.6726212699019267\n",
"Valeur de p : 0.6108808380730608\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 n'y a pas de différences significatives entre les entreprises .\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 products_purchased_reduced_spectacle['number_compagny'].unique():\n",
" groupe = products_purchased_reduced_spectacle[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": 54,
"id": "aacf2c34-f7ea-4d6e-935b-c5db01f03bbe",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
number_compagny
\n",
"
nb_tickets
\n",
"
nb_tickets_internet
\n",
"
Taux_ticket_internet
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
10
\n",
"
492314
\n",
"
126262.0
\n",
"
25.646640
\n",
"
\n",
"
\n",
"
1
\n",
"
11
\n",
"
318969
\n",
"
16348.0
\n",
"
5.125263
\n",
"
\n",
"
\n",
"
2
\n",
"
12
\n",
"
591028
\n",
"
42045.0
\n",
"
7.113876
\n",
"
\n",
"
\n",
"
3
\n",
"
13
\n",
"
7024227
\n",
"
1247482.0
\n",
"
17.759705
\n",
"
\n",
"
\n",
"
4
\n",
"
14
\n",
"
335741
\n",
"
125638.0
\n",
"
37.421107
\n",
"
\n",
" \n",
"
\n",
"
"
],
"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": 54,
"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": [
""
]
},
"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": [
""
]
},
"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/zxxx9at26dfv75Zy1YsEDx8fH67LPPNGDAgBy3ExcXp8DAQPsrLCwszzUCAADg5ubyMIPhw4dryJAhev3117O1Dxs2TM2bN3dpfTabzWHaGJOtLUtmZqZsNptmz56twMBASZeGKjz22GN677335Ofnl22ZmJgYDR061D6dmppKoAUAALhFuHxldvfu3erdu3e29l69emnX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k50uk5yc7LR/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": [
""
]
},
"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
}