From 7dff6886a308b11fc8124655b2d225ec37a7f4ea Mon Sep 17 00:00:00 2001 From: arevelle-ensae Date: Thu, 8 Feb 2024 11:30:31 +0000 Subject: [PATCH] compute tickets by customer-event --- 0_Cleaning_and_merge.ipynb | 1899 +++++++++++++++++++++++++++++++----- Notebook_AR.ipynb | 883 ++++++++--------- 2 files changed, 2039 insertions(+), 743 deletions(-) diff --git a/0_Cleaning_and_merge.ipynb b/0_Cleaning_and_merge.ipynb index 99d5ea7..ba13c22 100644 --- a/0_Cleaning_and_merge.ipynb +++ b/0_Cleaning_and_merge.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 80, "id": "15103481-8d74-404c-aa09-7601fe7730da", "metadata": {}, "outputs": [], @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 82, "id": "5d83bb1a-d341-446e-91f6-1c428607f6d4", "metadata": {}, "outputs": [], @@ -60,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 84, "id": "699664b9-eee4-4f8d-a207-e524526560c5", "metadata": {}, "outputs": [], @@ -71,7 +71,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 86, "id": "dd6a3518-b752-4a1e-b77b-9e03e853c3ed", "metadata": {}, "outputs": [ @@ -79,7 +79,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_15815/4081512283.py:10: DtypeWarning: Columns (1) have mixed types. Specify dtype option on import or set low_memory=False.\n", + "/tmp/ipykernel_1018/4081512283.py:10: DtypeWarning: Columns (1) have mixed types. Specify dtype option on import or set low_memory=False.\n", " df = pd.read_csv(file_in)\n" ] } @@ -110,7 +110,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 88, "id": "d237be96-8c86-4a91-b7a1-487e87a16c3d", "metadata": {}, "outputs": [], @@ -151,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 90, "id": "7e7b90ce-da54-4f00-bc34-64c543b0858f", "metadata": {}, "outputs": [], @@ -173,7 +173,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 92, "id": "03329e32-00a5-42c8-9470-75f7b6216ccd", "metadata": {}, "outputs": [], @@ -191,7 +191,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 94, "id": "b95464b1-26bc-4aac-84b4-45da83b92251", "metadata": {}, "outputs": [], @@ -234,7 +234,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 96, "id": "3e1d2ba7-ff4f-48eb-93a8-2bb648c70396", "metadata": {}, "outputs": [ @@ -242,17 +242,17 @@ "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_15815/1591303091.py:5: SettingWithCopyWarning: \n", + "/tmp/ipykernel_1018/1591303091.py:5: 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", " tickets.rename(columns = {'id' : 'ticket_id'}, inplace = True)\n", - "/tmp/ipykernel_15815/1591303091.py:9: SettingWithCopyWarning: \n", + "/tmp/ipykernel_1018/1591303091.py:9: 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", " suppliers.rename(columns = {'name' : 'supplier_name'}, inplace = True)\n", - "/tmp/ipykernel_15815/1591303091.py:13: SettingWithCopyWarning: \n", + "/tmp/ipykernel_1018/1591303091.py:13: 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", @@ -266,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 98, "id": "4b18edfc-6450-4c6a-9e7b-ee5a5808c8c9", "metadata": {}, "outputs": [ @@ -377,7 +377,7 @@ "4 Atelier pricing_formula 2018-12-28 14:47:50+00:00 48187 " ] }, - "execution_count": 10, + "execution_count": 98, "metadata": {}, "output_type": "execute_result" } @@ -396,7 +396,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 100, "id": "baed146a-9d3a-4397-a812-3d50c9a2f038", "metadata": {}, "outputs": [], @@ -425,7 +425,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 102, "id": "5fbfd88b-b94c-489c-9201-670e96e453e7", "metadata": {}, "outputs": [ @@ -433,7 +433,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_15815/3848597476.py:4: SettingWithCopyWarning: \n", + "/tmp/ipykernel_1018/3848597476.py:4: 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", @@ -447,7 +447,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 104, "id": "b4f05142-2a22-42ef-a60d-f23cc4b5cb09", "metadata": {}, "outputs": [ @@ -514,7 +514,7 @@ "consentement optout b2c 34523" ] }, - "execution_count": 13, + "execution_count": 104, "metadata": {}, "output_type": "execute_result" } @@ -525,7 +525,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 106, "id": "4417ff51-f501-4ab9-a192-4ab75764a8ed", "metadata": { "scrolled": true @@ -594,7 +594,7 @@ "DDCP MD Procès du Siècle 1684" ] }, - "execution_count": 14, + "execution_count": 106, "metadata": {}, "output_type": "execute_result" } @@ -614,7 +614,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 108, "id": "d883cc7b-ac43-4485-b86f-eaf595fbad85", "metadata": {}, "outputs": [], @@ -639,7 +639,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 110, "id": "c8552dd6-52c5-4431-b43d-3cd6c578fd9f", "metadata": {}, "outputs": [ @@ -647,19 +647,19 @@ "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_15815/1967867975.py:15: SettingWithCopyWarning: \n", + "/tmp/ipykernel_1018/1967867975.py:15: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df[column_name] = pd.to_datetime(df[column_name], utc = True, format = 'ISO8601')\n", - "/tmp/ipykernel_15815/1967867975.py:15: SettingWithCopyWarning: \n", + "/tmp/ipykernel_1018/1967867975.py:15: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", " df[column_name] = pd.to_datetime(df[column_name], utc = True, format = 'ISO8601')\n", - "/tmp/ipykernel_15815/1967867975.py:15: SettingWithCopyWarning: \n", + "/tmp/ipykernel_1018/1967867975.py:15: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", @@ -674,7 +674,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 112, "id": "c24457e7-3cad-451a-a65b-7373b656bd6e", "metadata": { "scrolled": true @@ -794,7 +794,7 @@ "4 404 2021-03-27 23:00:00+00:00 " ] }, - "execution_count": 17, + "execution_count": 112, "metadata": {}, "output_type": "execute_result" } @@ -805,7 +805,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 114, "id": "e2c88552-b863-47a2-be23-8d2898fb28bc", "metadata": {}, "outputs": [], @@ -839,7 +839,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 116, "id": "24537647-bc29-4777-9848-ac4120a4aa60", "metadata": {}, "outputs": [ @@ -847,7 +847,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_15815/3700263836.py:11: SettingWithCopyWarning: \n", + "/tmp/ipykernel_1018/3700263836.py:11: 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", @@ -861,7 +861,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 118, "id": "6be2a9a6-056b-4e19-8c26-a18ba3df36b3", "metadata": {}, "outputs": [ @@ -941,7 +941,7 @@ "4 6 20 0.0 NaT" ] }, - "execution_count": 20, + "execution_count": 118, "metadata": {}, "output_type": "execute_result" } @@ -968,7 +968,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 120, "id": "30488a40-1b38-4b9a-9d3b-26a0597c5e6d", "metadata": {}, "outputs": [], @@ -979,7 +979,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 122, "id": "607eb4b4-eed9-4b50-b823-f75c116dd37c", "metadata": {}, "outputs": [], @@ -1050,7 +1050,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 124, "id": "350b09b9-451f-4d47-81fe-f34b892db027", "metadata": {}, "outputs": [], @@ -1138,7 +1138,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 126, "id": "0fccc8ef-e575-4857-a401-94a7274394df", "metadata": {}, "outputs": [ @@ -1291,7 +1291,7 @@ "4 indiv entrées tp " ] }, - "execution_count": 24, + "execution_count": 126, "metadata": {}, "output_type": "execute_result" } @@ -1303,7 +1303,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 128, "id": "779d8aaf-6668-4f66-8852-847304407ea3", "metadata": {}, "outputs": [ @@ -1473,7 +1473,7 @@ "4 spectacle vivant mucem " ] }, - "execution_count": 25, + "execution_count": 128, "metadata": {}, "output_type": "execute_result" } @@ -1485,7 +1485,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 130, "id": "7714fa32-303b-4ea7-b174-3fd0fcab5af0", "metadata": {}, "outputs": [ @@ -1584,7 +1584,7 @@ "4 37 383 269 1" ] }, - "execution_count": 26, + "execution_count": 130, "metadata": {}, "output_type": "execute_result" } @@ -1604,7 +1604,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 132, "id": "15a62ed6-35e4-4abc-aeef-a7daeec0a4ba", "metadata": {}, "outputs": [], @@ -1632,7 +1632,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 134, "id": "89dc9685-1de9-4ce3-a6c0-8d7f1931a951", "metadata": {}, "outputs": [ @@ -1686,7 +1686,7 @@ " id_representation_cap\n", " season_id\n", " facility_id\n", - " ...\n", + " event_type_id\n", " event_type_key_id\n", " facility_key_id\n", " street_id\n", @@ -1712,7 +1712,7 @@ " 8789\n", " 4\n", " 1\n", - " ...\n", + " 2\n", " 5\n", " 1\n", " 1\n", @@ -1736,7 +1736,7 @@ " 390\n", " 2\n", " 1\n", - " ...\n", + " 2\n", " 2\n", " 1\n", " 1\n", @@ -1760,7 +1760,7 @@ " 395\n", " 2\n", " 1\n", - " ...\n", + " 2\n", " 2\n", " 1\n", " 1\n", @@ -1784,7 +1784,7 @@ " 120199\n", " 1754\n", " 1\n", - " ...\n", + " 2\n", " 4\n", " 1\n", " 1\n", @@ -1808,7 +1808,7 @@ " 21\n", " 4\n", " 1\n", - " ...\n", + " 3\n", " 6\n", " 1\n", " 1\n", @@ -1822,7 +1822,6 @@ " \n", " \n", "\n", - "

5 rows × 21 columns

\n", "" ], "text/plain": [ @@ -1840,19 +1839,19 @@ "3 156773 1 12365 120199 \n", "4 1175 1 8 21 \n", "\n", - " season_id facility_id ... event_type_key_id facility_key_id street_id \\\n", - "0 4 1 ... 5 1 1 \n", - "1 2 1 ... 2 1 1 \n", - "2 2 1 ... 2 1 1 \n", - "3 1754 1 ... 4 1 1 \n", - "4 4 1 ... 6 1 1 \n", + " season_id facility_id event_type_id event_type_key_id facility_key_id \\\n", + "0 4 1 2 5 1 \n", + "1 2 1 2 2 1 \n", + "2 2 1 2 2 1 \n", + "3 1754 1 2 4 1 \n", + "4 4 1 3 6 1 \n", "\n", - " amount is_full_price name_categories \\\n", - "0 9.0 False indiv activité tr \n", - "1 9.5 False indiv entrées tp \n", - "2 11.5 False indiv entrées tp \n", - "3 8.0 False indiv entrées tr \n", - "4 8.5 False indiv entrées tp \n", + " street_id amount is_full_price name_categories \\\n", + "0 1 9.0 False indiv activité tr \n", + "1 1 9.5 False indiv entrées tp \n", + "2 1 11.5 False indiv entrées tp \n", + "3 1 8.0 False indiv entrées tr \n", + "4 1 8.5 False indiv entrées tp \n", "\n", " name_events name_seasons \\\n", "0 visite-jeu \"le classico des minots\" (1h30) 2017 \n", @@ -1866,12 +1865,10 @@ "1 offre muséale individuel mucem \n", "2 offre muséale individuel mucem \n", "3 offre muséale individuel mucem \n", - "4 non défini mucem \n", - "\n", - "[5 rows x 21 columns]" + "4 non défini mucem " ] }, - "execution_count": 28, + "execution_count": 134, "metadata": {}, "output_type": "execute_result" } @@ -1883,7 +1880,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 136, "id": "98f78cd5-b694-4cc6-b033-20170aa13e8d", "metadata": {}, "outputs": [], @@ -1894,11 +1891,286 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 137, "id": "52db7bcb-3fb7-48e5-b612-4e22bdab4a94", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ticket_idproduct_idis_from_subscriptionsupplier_nametype_of_ticket_namechildrenpurchase_datecustomer_idid_productsrepresentation_idpricing_formula_idcategory_idproducts_group_idproduct_pack_idevent_idid_representation_capseason_idfacility_idevent_type_idevent_type_key_idfacility_key_idstreet_idamountis_full_pricename_categoriesname_eventsname_seasonsname_event_typesname_facilities
013070859225251Falsevente en ligneAtelierpricing_formula2018-12-28 14:47:50+00:00481872252511136762813224768119717274216144118.0Falseindiv prog enfantl'école des magiciens2018spectacle vivantmucem
113070855225251Falsevente en ligneAtelierpricing_formula2018-12-28 14:47:50+00:00481872252511136762813224768119717274216144118.0Falseindiv prog enfantl'école des magiciens2018spectacle vivantmucem
213070856225251Falsevente en ligneAtelierpricing_formula2018-12-28 14:47:50+00:00481872252511136762813224768119717274216144118.0Falseindiv prog enfantl'école des magiciens2018spectacle vivantmucem
313070857225251Falsevente en ligneAtelierpricing_formula2018-12-28 14:47:50+00:00481872252511136762813224768119717274216144118.0Falseindiv prog enfantl'école des magiciens2018spectacle vivantmucem
413070858225251Falsevente en ligneAtelierpricing_formula2018-12-28 14:47:50+00:00481872252511136762813224768119717274216144118.0Falseindiv prog enfantl'école des magiciens2018spectacle vivantmucem
\n", + "
" + ], + "text/plain": [ + " ticket_id product_id is_from_subscription supplier_name \\\n", + "0 13070859 225251 False vente en ligne \n", + "1 13070855 225251 False vente en ligne \n", + "2 13070856 225251 False vente en ligne \n", + "3 13070857 225251 False vente en ligne \n", + "4 13070858 225251 False vente en ligne \n", + "\n", + " type_of_ticket_name children purchase_date customer_id \\\n", + "0 Atelier pricing_formula 2018-12-28 14:47:50+00:00 48187 \n", + "1 Atelier pricing_formula 2018-12-28 14:47:50+00:00 48187 \n", + "2 Atelier pricing_formula 2018-12-28 14:47:50+00:00 48187 \n", + "3 Atelier pricing_formula 2018-12-28 14:47:50+00:00 48187 \n", + "4 Atelier pricing_formula 2018-12-28 14:47:50+00:00 48187 \n", + "\n", + " id_products representation_id pricing_formula_id category_id \\\n", + "0 225251 113676 28 13 \n", + "1 225251 113676 28 13 \n", + "2 225251 113676 28 13 \n", + "3 225251 113676 28 13 \n", + "4 225251 113676 28 13 \n", + "\n", + " products_group_id product_pack_id event_id id_representation_cap \\\n", + "0 224768 1 197 172742 \n", + "1 224768 1 197 172742 \n", + "2 224768 1 197 172742 \n", + "3 224768 1 197 172742 \n", + "4 224768 1 197 172742 \n", + "\n", + " season_id facility_id event_type_id event_type_key_id facility_key_id \\\n", + "0 16 1 4 4 1 \n", + "1 16 1 4 4 1 \n", + "2 16 1 4 4 1 \n", + "3 16 1 4 4 1 \n", + "4 16 1 4 4 1 \n", + "\n", + " street_id amount is_full_price name_categories name_events \\\n", + "0 1 8.0 False indiv prog enfant l'école des magiciens \n", + "1 1 8.0 False indiv prog enfant l'école des magiciens \n", + "2 1 8.0 False indiv prog enfant l'école des magiciens \n", + "3 1 8.0 False indiv prog enfant l'école des magiciens \n", + "4 1 8.0 False indiv prog enfant l'école des magiciens \n", + "\n", + " name_seasons name_event_types name_facilities \n", + "0 2018 spectacle vivant mucem \n", + "1 2018 spectacle vivant mucem \n", + "2 2018 spectacle vivant mucem \n", + "3 2018 spectacle vivant mucem \n", + "4 2018 spectacle vivant mucem " + ] + }, + "execution_count": 137, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df1_products_purchased.head()" + ] }, { "cell_type": "markdown", @@ -1910,7 +2182,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 138, "id": "665a5925-9c0e-425a-8f11-c33a0a9ec444", "metadata": {}, "outputs": [ @@ -1928,7 +2200,7 @@ " dtype='object')" ] }, - "execution_count": 30, + "execution_count": 138, "metadata": {}, "output_type": "execute_result" } @@ -1939,7 +2211,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 139, "id": "b913a69e-3146-4919-b5f6-a6108532bffa", "metadata": {}, "outputs": [ @@ -1950,7 +2222,7 @@ " 'offre muséale groupe'], dtype=object)" ] }, - "execution_count": 31, + "execution_count": 139, "metadata": {}, "output_type": "execute_result" } @@ -1961,17 +2233,17 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 140, "id": "e01e8cf9-1187-4a4b-993d-b7b4321cd8f0", "metadata": {}, "outputs": [], "source": [ - "df1_products_purchased_reduced = df1_products_purchased[['ticket_id', 'customer_id', 'event_type_id', 'supplier_name', 'purchase_date', 'type_of_ticket_name', 'amount', 'children', 'is_full_price', 'name_event_types', 'name_facilities', 'name_categories', 'name_events', 'name_seasons']]" + "df1_products_purchased_reduced = df1_products_purchased[['ticket_id', 'customer_id', 'product_id', 'event_type_id', 'supplier_name', 'purchase_date', 'type_of_ticket_name', 'amount', 'children', 'is_full_price', 'name_event_types', 'name_facilities', 'name_categories', 'name_events', 'name_seasons']]" ] }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 141, "id": "3d8b0875-b409-44ce-b688-d9d6758782d3", "metadata": {}, "outputs": [ @@ -1998,6 +2270,7 @@ " \n", " ticket_id\n", " customer_id\n", + " product_id\n", " event_type_id\n", " supplier_name\n", " purchase_date\n", @@ -2017,6 +2290,7 @@ " 0\n", " 13070859\n", " 48187\n", + " 225251\n", " 4\n", " vente en ligne\n", " 2018-12-28 14:47:50+00:00\n", @@ -2034,6 +2308,7 @@ " 1\n", " 13070855\n", " 48187\n", + " 225251\n", " 4\n", " vente en ligne\n", " 2018-12-28 14:47:50+00:00\n", @@ -2051,6 +2326,7 @@ " 2\n", " 13070856\n", " 48187\n", + " 225251\n", " 4\n", " vente en ligne\n", " 2018-12-28 14:47:50+00:00\n", @@ -2068,6 +2344,7 @@ " 3\n", " 13070857\n", " 48187\n", + " 225251\n", " 4\n", " vente en ligne\n", " 2018-12-28 14:47:50+00:00\n", @@ -2085,6 +2362,7 @@ " 4\n", " 13070858\n", " 48187\n", + " 225251\n", " 4\n", " vente en ligne\n", " 2018-12-28 14:47:50+00:00\n", @@ -2098,182 +2376,827 @@ " l'école des magiciens\n", " 2018\n", " \n", - " \n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " \n", - " \n", - " 1826667\n", - " 18643494\n", - " 81\n", - " 4\n", - " vad\n", - " 2022-08-02 12:18:16+00:00\n", - " Billet en nombre\n", - " 11.0\n", - " pricing_formula\n", - " False\n", - " spectacle vivant\n", - " mucem\n", - " en nb entrées tr\n", - " NaN\n", - " 2022\n", - " \n", - " \n", - " 1826668\n", - " 18643495\n", - " 81\n", - " 4\n", - " vad\n", - " 2022-08-02 12:18:16+00:00\n", - " Billet en nombre\n", - " 11.0\n", - " pricing_formula\n", - " False\n", - " spectacle vivant\n", - " mucem\n", - " en nb entrées tr\n", - " NaN\n", - " 2022\n", - " \n", - " \n", - " 1826669\n", - " 18643496\n", - " 81\n", - " 4\n", - " vad\n", - " 2022-08-02 12:18:16+00:00\n", - " Billet en nombre\n", - " 11.0\n", - " pricing_formula\n", - " False\n", - " spectacle vivant\n", - " mucem\n", - " en nb entrées tr\n", - " NaN\n", - " 2022\n", - " \n", - " \n", - " 1826670\n", - " 18643497\n", - " 81\n", - " 4\n", - " vad\n", - " 2022-08-02 12:18:16+00:00\n", - " Billet en nombre\n", - " 11.0\n", - " pricing_formula\n", - " False\n", - " spectacle vivant\n", - " mucem\n", - " en nb entrées tr\n", - " NaN\n", - " 2022\n", - " \n", - " \n", - " 1826671\n", - " 19853111\n", - " 62763\n", - " 4\n", - " vad\n", - " 2022-11-04 14:25:42+00:00\n", - " Billet en nombre\n", - " 0.0\n", - " pricing_formula\n", - " False\n", - " spectacle vivant\n", - " mucem\n", - " indiv entrées gr\n", - " NaN\n", - " 2022\n", - " \n", " \n", "\n", - "

1826672 rows × 14 columns

\n", "" ], "text/plain": [ - " ticket_id customer_id event_type_id supplier_name \\\n", - "0 13070859 48187 4 vente en ligne \n", - "1 13070855 48187 4 vente en ligne \n", - "2 13070856 48187 4 vente en ligne \n", - "3 13070857 48187 4 vente en ligne \n", - "4 13070858 48187 4 vente en ligne \n", - "... ... ... ... ... \n", - "1826667 18643494 81 4 vad \n", - "1826668 18643495 81 4 vad \n", - "1826669 18643496 81 4 vad \n", - "1826670 18643497 81 4 vad \n", - "1826671 19853111 62763 4 vad \n", + " ticket_id customer_id product_id event_type_id supplier_name \\\n", + "0 13070859 48187 225251 4 vente en ligne \n", + "1 13070855 48187 225251 4 vente en ligne \n", + "2 13070856 48187 225251 4 vente en ligne \n", + "3 13070857 48187 225251 4 vente en ligne \n", + "4 13070858 48187 225251 4 vente en ligne \n", "\n", - " purchase_date type_of_ticket_name amount \\\n", - "0 2018-12-28 14:47:50+00:00 Atelier 8.0 \n", - "1 2018-12-28 14:47:50+00:00 Atelier 8.0 \n", - "2 2018-12-28 14:47:50+00:00 Atelier 8.0 \n", - "3 2018-12-28 14:47:50+00:00 Atelier 8.0 \n", - "4 2018-12-28 14:47:50+00:00 Atelier 8.0 \n", - "... ... ... ... \n", - "1826667 2022-08-02 12:18:16+00:00 Billet en nombre 11.0 \n", - "1826668 2022-08-02 12:18:16+00:00 Billet en nombre 11.0 \n", - "1826669 2022-08-02 12:18:16+00:00 Billet en nombre 11.0 \n", - "1826670 2022-08-02 12:18:16+00:00 Billet en nombre 11.0 \n", - "1826671 2022-11-04 14:25:42+00:00 Billet en nombre 0.0 \n", + " purchase_date type_of_ticket_name amount children \\\n", + "0 2018-12-28 14:47:50+00:00 Atelier 8.0 pricing_formula \n", + "1 2018-12-28 14:47:50+00:00 Atelier 8.0 pricing_formula \n", + "2 2018-12-28 14:47:50+00:00 Atelier 8.0 pricing_formula \n", + "3 2018-12-28 14:47:50+00:00 Atelier 8.0 pricing_formula \n", + "4 2018-12-28 14:47:50+00:00 Atelier 8.0 pricing_formula \n", "\n", - " children is_full_price name_event_types name_facilities \\\n", - "0 pricing_formula False spectacle vivant mucem \n", - "1 pricing_formula False spectacle vivant mucem \n", - "2 pricing_formula False spectacle vivant mucem \n", - "3 pricing_formula False spectacle vivant mucem \n", - "4 pricing_formula False spectacle vivant mucem \n", - "... ... ... ... ... \n", - "1826667 pricing_formula False spectacle vivant mucem \n", - "1826668 pricing_formula False spectacle vivant mucem \n", - "1826669 pricing_formula False spectacle vivant mucem \n", - "1826670 pricing_formula False spectacle vivant mucem \n", - "1826671 pricing_formula False spectacle vivant mucem \n", + " is_full_price name_event_types name_facilities name_categories \\\n", + "0 False spectacle vivant mucem indiv prog enfant \n", + "1 False spectacle vivant mucem indiv prog enfant \n", + "2 False spectacle vivant mucem indiv prog enfant \n", + "3 False spectacle vivant mucem indiv prog enfant \n", + "4 False spectacle vivant mucem indiv prog enfant \n", "\n", - " name_categories name_events name_seasons \n", - "0 indiv prog enfant l'école des magiciens 2018 \n", - "1 indiv prog enfant l'école des magiciens 2018 \n", - "2 indiv prog enfant l'école des magiciens 2018 \n", - "3 indiv prog enfant l'école des magiciens 2018 \n", - "4 indiv prog enfant l'école des magiciens 2018 \n", - "... ... ... ... \n", - "1826667 en nb entrées tr NaN 2022 \n", - "1826668 en nb entrées tr NaN 2022 \n", - "1826669 en nb entrées tr NaN 2022 \n", - "1826670 en nb entrées tr NaN 2022 \n", - "1826671 indiv entrées gr NaN 2022 \n", - "\n", - "[1826672 rows x 14 columns]" + " name_events name_seasons \n", + "0 l'école des magiciens 2018 \n", + "1 l'école des magiciens 2018 \n", + "2 l'école des magiciens 2018 \n", + "3 l'école des magiciens 2018 \n", + "4 l'école des magiciens 2018 " ] }, - "execution_count": 53, + "execution_count": 141, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Importance des suppliers\n", - "df1_products_purchased_reduced" + "df1_products_purchased_reduced.head()" + ] + }, + { + "cell_type": "markdown", + "id": "9354b283-9e00-4aa9-a017-d7dd11fdf745", + "metadata": {}, + "source": [ + "## Alexis' work" ] }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 142, + "id": "cfbeaf0b-64ea-4abf-b785-57e43e651108", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
event_type_idavg_amount
026.150659
147.762474
254.452618
366.439463
\n", + "
" + ], + "text/plain": [ + " event_type_id avg_amount\n", + "0 2 6.150659\n", + "1 4 7.762474\n", + "2 5 4.452618\n", + "3 6 6.439463" + ] + }, + "execution_count": 142, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "avg_amount = (df1_products_purchased_reduced.groupby([\"event_type_id\"])\n", + " .agg({\"amount\" : \"mean\"}).reset_index()\n", + " .rename(columns = {'amount' : 'avg_amount'}))\n", + "\n", + "avg_amount" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "id": "0805e41f-bb43-46a2-ac65-1a379936b3d8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
customer_idevent_type_idnb_ticketsavg_amount
0123842266.150659
1144532427.762474
2152017504.452618
3162173566.439463
4221436.150659
\n", + "
" + ], + "text/plain": [ + " customer_id event_type_id nb_tickets avg_amount\n", + "0 1 2 384226 6.150659\n", + "1 1 4 453242 7.762474\n", + "2 1 5 201750 4.452618\n", + "3 1 6 217356 6.439463\n", + "4 2 2 143 6.150659" + ] + }, + "execution_count": 143, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nb_tickets = (df1_products_purchased_reduced.groupby([\"customer_id\", \"event_type_id\"])\n", + " .agg({\"ticket_id\" : \"count\"}).reset_index()\n", + " .rename(columns = {'ticket_id' : 'nb_tickets'})\n", + " .merge(avg_amount, how='left', on='event_type_id'))\n", + "nb_tickets.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "id": "28fd3b8c-0caf-4d4e-9c39-9c1cd2bab126", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
customer_idbirthdatestreet_idis_partnergenderis_email_trueopt_instructure_idprofessionlanguagemcp_contact_idlast_buying_datemax_priceticket_sumaverage_pricefidelityaverage_purchase_delayaverage_price_basketaverage_ticket_baskettotal_pricepurchase_countfirst_buying_datecountryagetenant_idnb_campaignsnb_campaigns_openedtime_to_open
012751NaN2False1TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaT
112825NaN2False2TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaT
211261NaN2False1TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaT
313071NaN2False2TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaT
4653061NaN10False2TrueFalseNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTNaNNaN131180.02.00 days 19:53:02.500000
\n", + "
" + ], + "text/plain": [ + " customer_id birthdate street_id is_partner gender is_email_true \\\n", + "0 12751 NaN 2 False 1 True \n", + "1 12825 NaN 2 False 2 True \n", + "2 11261 NaN 2 False 1 True \n", + "3 13071 NaN 2 False 2 True \n", + "4 653061 NaN 10 False 2 True \n", + "\n", + " opt_in structure_id profession language mcp_contact_id last_buying_date \\\n", + "0 True NaN NaN NaN NaN NaN \n", + "1 True NaN NaN NaN NaN NaN \n", + "2 True NaN NaN NaN NaN NaN \n", + "3 True NaN NaN NaN NaN NaN \n", + "4 False NaN NaN NaN NaN NaN \n", + "\n", + " max_price ticket_sum average_price fidelity average_purchase_delay \\\n", + "0 NaN 0 0.0 0 NaN \n", + "1 NaN 0 0.0 0 NaN \n", + "2 NaN 0 0.0 0 NaN \n", + "3 NaN 0 0.0 0 NaN \n", + "4 NaN 0 0.0 0 NaN \n", + "\n", + " average_price_basket average_ticket_basket total_price purchase_count \\\n", + "0 NaN NaN NaN 0 \n", + "1 NaN NaN NaN 0 \n", + "2 NaN NaN NaN 0 \n", + "3 NaN NaN NaN 0 \n", + "4 NaN NaN NaN 0 \n", + "\n", + " first_buying_date country age tenant_id nb_campaigns \\\n", + "0 NaT fr NaN 1311 NaN \n", + "1 NaT fr NaN 1311 NaN \n", + "2 NaT fr NaN 1311 NaN \n", + "3 NaT fr NaN 1311 NaN \n", + "4 NaT NaN NaN 1311 80.0 \n", + "\n", + " nb_campaigns_opened time_to_open \n", + "0 NaN NaT \n", + "1 NaN NaT \n", + "2 NaN NaT \n", + "3 NaN NaT \n", + "4 2.0 0 days 19:53:02.500000 " + ] + }, + "execution_count": 144, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Fusion avec KPI campaigns liés au customer\n", + "df1_customer = pd.merge(df1_customerplus_clean, df1_campaigns_kpi, on = 'customer_id', how = 'left')\n", + "df1_customer.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "id": "b438c563-e6c1-4b10-bedf-3b251f97018d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "shape : (156289, 31)\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
customer_idbirthdatestreet_idis_partnergenderis_email_trueopt_instructure_idprofessionlanguagemcp_contact_idlast_buying_datemax_priceticket_sumaverage_pricefidelityaverage_purchase_delayaverage_price_basketaverage_ticket_baskettotal_pricepurchase_countfirst_buying_datecountryagetenant_idnb_campaignsnb_campaigns_openedtime_to_openevent_type_idnb_ticketsavg_amount
012751NaN2False1TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaTNaNNaNNaN
112825NaN2False2TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaTNaNNaNNaN
211261NaN2False1TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaTNaNNaNNaN
313071NaN2False2TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaTNaNNaNNaN
4653061NaN10False2TrueFalseNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTNaNNaN131180.02.00 days 19:53:02.500000NaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " customer_id birthdate street_id is_partner gender is_email_true \\\n", + "0 12751 NaN 2 False 1 True \n", + "1 12825 NaN 2 False 2 True \n", + "2 11261 NaN 2 False 1 True \n", + "3 13071 NaN 2 False 2 True \n", + "4 653061 NaN 10 False 2 True \n", + "\n", + " opt_in structure_id profession language mcp_contact_id last_buying_date \\\n", + "0 True NaN NaN NaN NaN NaN \n", + "1 True NaN NaN NaN NaN NaN \n", + "2 True NaN NaN NaN NaN NaN \n", + "3 True NaN NaN NaN NaN NaN \n", + "4 False NaN NaN NaN NaN NaN \n", + "\n", + " max_price ticket_sum average_price fidelity average_purchase_delay \\\n", + "0 NaN 0 0.0 0 NaN \n", + "1 NaN 0 0.0 0 NaN \n", + "2 NaN 0 0.0 0 NaN \n", + "3 NaN 0 0.0 0 NaN \n", + "4 NaN 0 0.0 0 NaN \n", + "\n", + " average_price_basket average_ticket_basket total_price purchase_count \\\n", + "0 NaN NaN NaN 0 \n", + "1 NaN NaN NaN 0 \n", + "2 NaN NaN NaN 0 \n", + "3 NaN NaN NaN 0 \n", + "4 NaN NaN NaN 0 \n", + "\n", + " first_buying_date country age tenant_id nb_campaigns \\\n", + "0 NaT fr NaN 1311 NaN \n", + "1 NaT fr NaN 1311 NaN \n", + "2 NaT fr NaN 1311 NaN \n", + "3 NaT fr NaN 1311 NaN \n", + "4 NaT NaN NaN 1311 80.0 \n", + "\n", + " nb_campaigns_opened time_to_open event_type_id nb_tickets \\\n", + "0 NaN NaT NaN NaN \n", + "1 NaN NaT NaN NaN \n", + "2 NaN NaT NaN NaN \n", + "3 NaN NaT NaN NaN \n", + "4 2.0 0 days 19:53:02.500000 NaN NaN \n", + "\n", + " avg_amount \n", + "0 NaN \n", + "1 NaN \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN " + ] + }, + "execution_count": 146, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df1_customer_product = pd.merge(df1_customer, nb_tickets, on = 'customer_id', how = 'left')\n", + "print(\"shape : \", df1_customer_product.shape)\n", + "df1_customer_product.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "id": "afcfe12d-f840-4886-a08b-13a69f022f4c", + "metadata": {}, + "outputs": [], + "source": [ + "df1_customer_product.to_csv(\"customer_product.csv\", index = False)" + ] + }, + { + "cell_type": "markdown", + "id": "8e763591-1802-4f5b-8285-1cf980de541a", + "metadata": {}, + "source": [ + "## End of Alexis' work" + ] + }, + { + "cell_type": "code", + "execution_count": 36, "id": "2bda0b97-b28b-4070-a57d-aeab0e2f7dfe", "metadata": {}, "outputs": [], @@ -2284,7 +3207,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 37, "id": "043303fe-e90f-4689-a2a9-5d690555a045", "metadata": {}, "outputs": [], @@ -2315,7 +3238,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 38, "id": "5882234a-1ed5-4269-87a6-0d75613476e3", "metadata": {}, "outputs": [], @@ -2325,7 +3248,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 39, "id": "a7a452a6-cd5e-4c8b-b250-8a7d26e48fad", "metadata": {}, "outputs": [ @@ -2762,7 +3685,7 @@ "36478 1973 days 22:16:24 " ] }, - "execution_count": 52, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -2781,7 +3704,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "id": "46de1912-4a66-46e5-8b9e-7768b2d2723b", "metadata": {}, "outputs": [], @@ -2792,7 +3715,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "id": "9740d64a-e5eb-4967-a534-ca6177546465", "metadata": {}, "outputs": [ @@ -2998,7 +3921,7 @@ "[5 rows x 28 columns]" ] }, - "execution_count": 40, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -3009,7 +3932,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 42, "id": "b5c4418c-ad2e-4bb9-bd5c-3b769e9c87d4", "metadata": {}, "outputs": [ @@ -3120,7 +4043,7 @@ "58201 1311 NaN NaN NaT " ] }, - "execution_count": 49, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -3134,13 +4057,495 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 43, + "id": "2b161dfb-1593-4f1e-870b-de24735e4968", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
customer_idbirthdatestreet_id_xis_partnergenderis_email_trueopt_instructure_idprofessionlanguagemcp_contact_idlast_buying_datemax_priceticket_sumaverage_pricefidelityaverage_purchase_delayaverage_price_basketaverage_ticket_baskettotal_pricepurchase_countfirst_buying_datecountryagetenant_idnb_campaignsnb_campaigns_openedtime_to_openticket_idproduct_idis_from_subscriptionsupplier_nametype_of_ticket_namechildrenpurchase_dateid_productsrepresentation_idpricing_formula_idcategory_idproducts_group_idproduct_pack_idevent_idid_representation_capseason_idfacility_idevent_type_idevent_type_key_idfacility_key_idstreet_id_yamountis_full_pricename_categoriesname_eventsname_seasonsname_event_typesname_facilities
012751NaN2False1TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaTNaNNaNNaNNaNNaNNaNNaTNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
112825NaN2False2TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaTNaNNaNNaNNaNNaNNaNNaTNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
211261NaN2False1TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaTNaNNaNNaNNaNNaNNaNNaTNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
313071NaN2False2TrueTrueNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTfrNaN1311NaNNaNNaTNaNNaNNaNNaNNaNNaNNaTNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4653061NaN10False2TrueFalseNaNNaNNaNNaNNaNNaN00.00NaNNaNNaNNaN0NaTNaNNaN131180.02.00 days 19:53:02.500000NaNNaNNaNNaNNaNNaNNaTNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " customer_id birthdate street_id_x is_partner gender is_email_true \\\n", + "0 12751 NaN 2 False 1 True \n", + "1 12825 NaN 2 False 2 True \n", + "2 11261 NaN 2 False 1 True \n", + "3 13071 NaN 2 False 2 True \n", + "4 653061 NaN 10 False 2 True \n", + "\n", + " opt_in structure_id profession language mcp_contact_id last_buying_date \\\n", + "0 True NaN NaN NaN NaN NaN \n", + "1 True NaN NaN NaN NaN NaN \n", + "2 True NaN NaN NaN NaN NaN \n", + "3 True NaN NaN NaN NaN NaN \n", + "4 False NaN NaN NaN NaN NaN \n", + "\n", + " max_price ticket_sum average_price fidelity average_purchase_delay \\\n", + "0 NaN 0 0.0 0 NaN \n", + "1 NaN 0 0.0 0 NaN \n", + "2 NaN 0 0.0 0 NaN \n", + "3 NaN 0 0.0 0 NaN \n", + "4 NaN 0 0.0 0 NaN \n", + "\n", + " average_price_basket average_ticket_basket total_price purchase_count \\\n", + "0 NaN NaN NaN 0 \n", + "1 NaN NaN NaN 0 \n", + "2 NaN NaN NaN 0 \n", + "3 NaN NaN NaN 0 \n", + "4 NaN NaN NaN 0 \n", + "\n", + " first_buying_date country age tenant_id nb_campaigns \\\n", + "0 NaT fr NaN 1311 NaN \n", + "1 NaT fr NaN 1311 NaN \n", + "2 NaT fr NaN 1311 NaN \n", + "3 NaT fr NaN 1311 NaN \n", + "4 NaT NaN NaN 1311 80.0 \n", + "\n", + " nb_campaigns_opened time_to_open ticket_id product_id \\\n", + "0 NaN NaT NaN NaN \n", + "1 NaN NaT NaN NaN \n", + "2 NaN NaT NaN NaN \n", + "3 NaN NaT NaN NaN \n", + "4 2.0 0 days 19:53:02.500000 NaN NaN \n", + "\n", + " is_from_subscription supplier_name type_of_ticket_name children \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN \n", + "\n", + " purchase_date id_products representation_id pricing_formula_id \\\n", + "0 NaT NaN NaN NaN \n", + "1 NaT NaN NaN NaN \n", + "2 NaT NaN NaN NaN \n", + "3 NaT NaN NaN NaN \n", + "4 NaT NaN NaN NaN \n", + "\n", + " category_id products_group_id product_pack_id event_id \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN \n", + "\n", + " id_representation_cap season_id facility_id event_type_id \\\n", + "0 NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN \n", + "\n", + " event_type_key_id facility_key_id street_id_y amount is_full_price \\\n", + "0 NaN NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN NaN \n", + "\n", + " name_categories name_events name_seasons name_event_types name_facilities \n", + "0 NaN NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN NaN \n", + "2 NaN NaN NaN NaN NaN \n", + "3 NaN NaN NaN NaN NaN \n", + "4 NaN NaN NaN NaN NaN " + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Fusion avec KPI liés au comportement d'achat,\n", + "df1_customer_product = pd.merge(df1_customer, df1_products_purchased, on = 'customer_id', how = 'left')\n", + "df1_customer_product.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, "id": "1e42a790-b215-4107-a969-85005da06ebd", "metadata": {}, "outputs": [], "source": [ "# Fusion avec KPI liés au comportement d'achat\n", - "# df1_customer_product = pd.merge(df1_products_purchased_reduced, df1_products_purchased, on = 'customer_id', how = 'outer')" + "#df1_customer_product = pd.merge(df1_products_purchased_reduced, df1_products_purchased, on = 'customer_id', how = 'outer')" ] }, { @@ -3150,7 +4555,7 @@ "metadata": {}, "outputs": [], "source": [ - "# df1_customer_product" + "#df1_customer_product.head()" ] } ], diff --git a/Notebook_AR.ipynb b/Notebook_AR.ipynb index c808ce7..0ad1826 100644 --- a/Notebook_AR.ipynb +++ b/Notebook_AR.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 274, "id": "20eeb149-6618-4ef2-9cfd-ff062950f36c", "metadata": {}, "outputs": [], @@ -22,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 99, + "execution_count": 275, "id": "30494c5e-9649-4fff-8708-617544188b20", "metadata": {}, "outputs": [ @@ -46,7 +46,7 @@ " 'bdc2324-data/9']" ] }, - "execution_count": 99, + "execution_count": 275, "metadata": {}, "output_type": "execute_result" } @@ -78,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 276, "id": "f1cce705-46e1-42de-8e93-2ee15312d288", "metadata": {}, "outputs": [], @@ -88,7 +88,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 277, "id": "82d4db0e-0cd5-49af-a4d3-f17f54b1c03c", "metadata": {}, "outputs": [ @@ -136,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 278, "id": "65cb38ad-52ae-4266-85d8-c47d81b00283", "metadata": {}, "outputs": [], @@ -165,7 +165,7 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 279, "id": "0214d30d-5f83-498f-867f-e67b5793b731", "metadata": {}, "outputs": [ @@ -316,7 +316,7 @@ "4 e11943a6031a0e6114ae69c257617980 2022-01-27 00:00:00+01:00 " ] }, - "execution_count": 103, + "execution_count": 279, "metadata": {}, "output_type": "execute_result" } @@ -328,7 +328,7 @@ }, { "cell_type": "code", - "execution_count": 104, + "execution_count": 280, "id": "e7982be4-2c42-4a91-be5a-329a999644cc", "metadata": {}, "outputs": [ @@ -454,7 +454,7 @@ "4 2022-02-02 17:19:36.557473+01:00 " ] }, - "execution_count": 104, + "execution_count": 280, "metadata": {}, "output_type": "execute_result" } @@ -482,7 +482,7 @@ }, { "cell_type": "code", - "execution_count": 105, + "execution_count": 281, "id": "e973575b-4ed6-4b23-8024-f383ac82e87c", "metadata": {}, "outputs": [ @@ -589,7 +589,7 @@ "4 2022-02-02 17:34:22.300427+01:00 2022-02-02 17:34:22.300427+01:00 " ] }, - "execution_count": 105, + "execution_count": 281, "metadata": {}, "output_type": "execute_result" } @@ -609,7 +609,7 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 282, "id": "3b523575-c779-451c-a12e-a36fb4ad232c", "metadata": {}, "outputs": [ @@ -624,7 +624,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/tmp/ipykernel_703/2210053343.py:5: DtypeWarning: Columns (20) have mixed types. Specify dtype option on import or set low_memory=False.\n", + "/tmp/ipykernel_548/2210053343.py:5: DtypeWarning: Columns (20) have mixed types. Specify dtype option on import or set low_memory=False.\n", " customersplus = pd.read_csv(file_in, sep=\",\")\n" ] }, @@ -837,7 +837,7 @@ "[5 rows x 43 columns]" ] }, - "execution_count": 106, + "execution_count": 282, "metadata": {}, "output_type": "execute_result" } @@ -862,7 +862,7 @@ }, { "cell_type": "code", - "execution_count": 107, + "execution_count": 283, "id": "87d801fc-d19a-4c45-9b21-9b6d7a8451fd", "metadata": {}, "outputs": [ @@ -904,7 +904,7 @@ }, { "cell_type": "code", - "execution_count": 108, + "execution_count": 284, "id": "b6e4c3ea-5ccf-4aec-bd2d-79a5a1194178", "metadata": {}, "outputs": [ @@ -1017,7 +1017,7 @@ "4 2021-09-17 20:20:24.703110+02:00 NaN NaN " ] }, - "execution_count": 108, + "execution_count": 284, "metadata": {}, "output_type": "execute_result" } @@ -1039,7 +1039,7 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 285, "id": "6e81a35c-3c6f-403d-9ebd-e8399ecd4263", "metadata": {}, "outputs": [ @@ -1140,7 +1140,7 @@ "4 2021-09-17 18:10:40.945476+02:00 2021-09-17 18:10:40.945476+02:00 " ] }, - "execution_count": 109, + "execution_count": 285, "metadata": {}, "output_type": "execute_result" } @@ -1162,7 +1162,7 @@ }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 286, "id": "85696d74-3b2f-4368-9045-44db5322b60d", "metadata": {}, "outputs": [ @@ -1258,7 +1258,7 @@ "3 2022-05-06 14:26:01.923160+02:00 12213df2ce68a624e4c0070521437bac " ] }, - "execution_count": 110, + "execution_count": 286, "metadata": {}, "output_type": "execute_result" } @@ -1298,7 +1298,7 @@ }, { "cell_type": "code", - "execution_count": 111, + "execution_count": 287, "id": "7c57529b-2ffb-4039-9795-b27c6fbd54a4", "metadata": {}, "outputs": [ @@ -1418,7 +1418,7 @@ "4 193e41eae8ee078537107a569c0426ef " ] }, - "execution_count": 111, + "execution_count": 287, "metadata": {}, "output_type": "execute_result" } @@ -1430,7 +1430,7 @@ }, { "cell_type": "code", - "execution_count": 112, + "execution_count": 288, "id": "903321fb-99f8-475d-b4a6-c70ec2efe190", "metadata": {}, "outputs": [ @@ -1581,7 +1581,7 @@ "4 1a6342ad2c213b626aa55e5374cd661a " ] }, - "execution_count": 112, + "execution_count": 288, "metadata": {}, "output_type": "execute_result" } @@ -1593,7 +1593,7 @@ }, { "cell_type": "code", - "execution_count": 113, + "execution_count": 289, "id": "243e6942-0233-4cd5-b32b-e005457131d2", "metadata": {}, "outputs": [ @@ -1725,7 +1725,7 @@ "4 NaN b144dd617807b02e0d9002fac6c61768 " ] }, - "execution_count": 113, + "execution_count": 289, "metadata": {}, "output_type": "execute_result" } @@ -1745,7 +1745,7 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 290, "id": "6b82efce-1dee-4d89-8585-28c4ad477eef", "metadata": {}, "outputs": [ @@ -1914,7 +1914,7 @@ "4 NaN 07a5dd9e125345b9458651ab73605255 " ] }, - "execution_count": 114, + "execution_count": 290, "metadata": {}, "output_type": "execute_result" } @@ -1942,7 +1942,7 @@ }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 291, "id": "daf37bff-a26d-4ff5-ad50-c90f917164bd", "metadata": {}, "outputs": [ @@ -2056,7 +2056,7 @@ "4 478eb63c71ba35d8d3d64c8637dafdee " ] }, - "execution_count": 115, + "execution_count": 291, "metadata": {}, "output_type": "execute_result" } @@ -2068,7 +2068,7 @@ }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 292, "id": "cdb14488-b093-4b39-84fa-1c2b4576208f", "metadata": {}, "outputs": [ @@ -2175,7 +2175,7 @@ "4 2021-09-03 14:18:03.616081+02:00 0a2b941c46b31258c03b316aa064e86a " ] }, - "execution_count": 116, + "execution_count": 292, "metadata": {}, "output_type": "execute_result" } @@ -2203,7 +2203,7 @@ }, { "cell_type": "code", - "execution_count": 117, + "execution_count": 293, "id": "6582694d-5339-4f33-a943-c73033121a90", "metadata": {}, "outputs": [ @@ -2323,7 +2323,7 @@ "4 349e6a59585d78d80d46acbc6a520c50 " ] }, - "execution_count": 117, + "execution_count": 293, "metadata": {}, "output_type": "execute_result" } @@ -2335,7 +2335,7 @@ }, { "cell_type": "code", - "execution_count": 118, + "execution_count": 294, "id": "589076df-1958-42de-9941-1aff9fa8536f", "metadata": {}, "outputs": [ @@ -2442,7 +2442,7 @@ "4 2021-09-02 17:35:37.396740+02:00 c05b0061d2a875adbc35d3dfa6a50a12 " ] }, - "execution_count": 118, + "execution_count": 294, "metadata": {}, "output_type": "execute_result" } @@ -2472,7 +2472,7 @@ }, { "cell_type": "code", - "execution_count": 119, + "execution_count": 295, "id": "6f06d72a-5725-4eee-8e4c-e9ef5820f346", "metadata": {}, "outputs": [ @@ -2585,7 +2585,7 @@ "4 9 23 NaN NaN " ] }, - "execution_count": 119, + "execution_count": 295, "metadata": {}, "output_type": "execute_result" } @@ -2597,7 +2597,7 @@ }, { "cell_type": "code", - "execution_count": 120, + "execution_count": 296, "id": "bd405913-033d-4f15-a5b9-103d577baaff", "metadata": {}, "outputs": [ @@ -2785,7 +2785,7 @@ "4 733104286519c0614b2d45470eb180a1 " ] }, - "execution_count": 120, + "execution_count": 296, "metadata": {}, "output_type": "execute_result" } @@ -2797,7 +2797,7 @@ }, { "cell_type": "code", - "execution_count": 121, + "execution_count": 297, "id": "0f2c7ea3-6964-48fd-9411-17547b2c3a3f", "metadata": {}, "outputs": [], @@ -2823,7 +2823,7 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": 298, "id": "cba22ee2-338d-4ce1-a1e8-829a11a94bcf", "metadata": {}, "outputs": [ @@ -2980,7 +2980,7 @@ "4 17b91f19c71ff6287ffc1f44af952576 " ] }, - "execution_count": 122, + "execution_count": 298, "metadata": {}, "output_type": "execute_result" } @@ -2992,7 +2992,7 @@ }, { "cell_type": "code", - "execution_count": 123, + "execution_count": 299, "id": "3db00b9d-2187-4cb6-980d-8ac6ab9eb460", "metadata": {}, "outputs": [ @@ -3106,7 +3106,7 @@ "4 732cfdcf2065fa0005faf42793ddd76c " ] }, - "execution_count": 123, + "execution_count": 299, "metadata": {}, "output_type": "execute_result" } @@ -3118,7 +3118,7 @@ }, { "cell_type": "code", - "execution_count": 124, + "execution_count": 300, "id": "cba0ee58-6280-45fe-99b3-0be09db5922b", "metadata": {}, "outputs": [ @@ -3232,7 +3232,7 @@ "4 7ccc51049a85e0df9b80662e45b6ddb8 " ] }, - "execution_count": 124, + "execution_count": 300, "metadata": {}, "output_type": "execute_result" } @@ -3244,7 +3244,7 @@ }, { "cell_type": "code", - "execution_count": 125, + "execution_count": 301, "id": "6fa82fd7-d6d3-4857-af24-ea573b1129d0", "metadata": {}, "outputs": [ @@ -3364,7 +3364,7 @@ "4 89feffd283ebdabdc3b81fb62ea4f6f0 " ] }, - "execution_count": 125, + "execution_count": 301, "metadata": {}, "output_type": "execute_result" } @@ -3408,7 +3408,7 @@ }, { "cell_type": "code", - "execution_count": 126, + "execution_count": 302, "id": "c240b811-48a6-4501-9e70-bc51d69e3ac4", "metadata": {}, "outputs": [], @@ -3424,7 +3424,7 @@ }, { "cell_type": "code", - "execution_count": 127, + "execution_count": 303, "id": "54057367-9df9-42f4-aa07-bf524bb76462", "metadata": {}, "outputs": [ @@ -3445,7 +3445,7 @@ }, { "cell_type": "code", - "execution_count": 128, + "execution_count": 304, "id": "63914e20-9efc-4088-877b-edab5f225d00", "metadata": {}, "outputs": [ @@ -3493,7 +3493,7 @@ }, { "cell_type": "code", - "execution_count": 129, + "execution_count": 305, "id": "590a132a-4f57-4ea3-a282-2ef913e4b753", "metadata": {}, "outputs": [], @@ -3503,7 +3503,7 @@ }, { "cell_type": "code", - "execution_count": 130, + "execution_count": 306, "id": "0fbebfb7-a827-46b1-890b-86c9def7cdbb", "metadata": {}, "outputs": [], @@ -3513,7 +3513,7 @@ }, { "cell_type": "code", - "execution_count": 131, + "execution_count": 307, "id": "b8aa5f8f-845e-4ee5-b80d-38b7061a94a2", "metadata": {}, "outputs": [], @@ -3528,7 +3528,7 @@ }, { "cell_type": "code", - "execution_count": 132, + "execution_count": 308, "id": "2c478213-09ae-44ef-8c7c-125bcb571642", "metadata": {}, "outputs": [], @@ -3546,7 +3546,7 @@ }, { "cell_type": "code", - "execution_count": 133, + "execution_count": 309, "id": "327e44b0-eb99-4022-b4ca-79548072f0f0", "metadata": {}, "outputs": [], @@ -3561,7 +3561,7 @@ }, { "cell_type": "code", - "execution_count": 134, + "execution_count": 310, "id": "10926def-267f-4e86-b2c9-72e27ff9a9df", "metadata": {}, "outputs": [], @@ -3585,7 +3585,7 @@ }, { "cell_type": "code", - "execution_count": 135, + "execution_count": 311, "id": "862a7658-0602-4d94-bb58-d23774c00d32", "metadata": {}, "outputs": [ @@ -3755,7 +3755,7 @@ "4 NaN f1c4689bc47dee6f60b56d74b593dd46 " ] }, - "execution_count": 135, + "execution_count": 311, "metadata": {}, "output_type": "execute_result" } @@ -3768,7 +3768,7 @@ }, { "cell_type": "code", - "execution_count": 136, + "execution_count": 312, "id": "f0db8c51-2792-4d49-9b1a-d98ce0d9ea28", "metadata": {}, "outputs": [ @@ -3921,7 +3921,7 @@ "4 8.5 False 0.0 NaN NaN " ] }, - "execution_count": 136, + "execution_count": 312, "metadata": {}, "output_type": "execute_result" } @@ -3936,7 +3936,7 @@ }, { "cell_type": "code", - "execution_count": 137, + "execution_count": 313, "id": "a383474f-7da9-422c-bb69-3f0cc0b7053f", "metadata": {}, "outputs": [ @@ -3966,7 +3966,7 @@ }, { "cell_type": "code", - "execution_count": 138, + "execution_count": 314, "id": "460749ac-aa26-4216-8667-518546f72f72", "metadata": {}, "outputs": [ @@ -4005,7 +4005,7 @@ }, { "cell_type": "code", - "execution_count": 139, + "execution_count": 315, "id": "3efce2b6-2d2f-4da9-98ed-1aae17da624c", "metadata": {}, "outputs": [], @@ -4015,7 +4015,7 @@ }, { "cell_type": "code", - "execution_count": 140, + "execution_count": 316, "id": "38aa39fd-58af-4fb8-98f2-4269dbaf35de", "metadata": {}, "outputs": [ @@ -4136,7 +4136,7 @@ "4 ff48df4b2dd5a14116bf4d280b31621e " ] }, - "execution_count": 140, + "execution_count": 316, "metadata": {}, "output_type": "execute_result" } @@ -4149,7 +4149,7 @@ }, { "cell_type": "code", - "execution_count": 141, + "execution_count": 317, "id": "99eb6d14-8b4b-4d55-8fc7-ddf2726096f4", "metadata": {}, "outputs": [ @@ -4256,7 +4256,7 @@ "4 NaN NaN " ] }, - "execution_count": 141, + "execution_count": 317, "metadata": {}, "output_type": "execute_result" } @@ -4268,7 +4268,7 @@ }, { "cell_type": "code", - "execution_count": 142, + "execution_count": 318, "id": "c5f39cc9-dff8-452c-9a3e-9f7df81a8a19", "metadata": {}, "outputs": [ @@ -4283,7 +4283,7 @@ "dtype: object" ] }, - "execution_count": 142, + "execution_count": 318, "metadata": {}, "output_type": "execute_result" } @@ -4326,7 +4326,7 @@ }, { "cell_type": "code", - "execution_count": 143, + "execution_count": 319, "id": "2d52d6da-cca5-4abd-be05-2f00fd3eca8e", "metadata": {}, "outputs": [], @@ -4336,7 +4336,7 @@ }, { "cell_type": "code", - "execution_count": 144, + "execution_count": 320, "id": "6cab507d-8b11-404d-9286-5cc205228af9", "metadata": {}, "outputs": [ @@ -4494,7 +4494,7 @@ "4 1 bfa22f5a2364a2dacfc45cca1c8d3215 " ] }, - "execution_count": 144, + "execution_count": 320, "metadata": {}, "output_type": "execute_result" } @@ -4507,7 +4507,7 @@ }, { "cell_type": "code", - "execution_count": 145, + "execution_count": 321, "id": "9fe57873-8108-44c9-b8a5-f58d3cbb6d17", "metadata": {}, "outputs": [ @@ -4658,7 +4658,7 @@ "4 jeff koons épisodes 4 False True " ] }, - "execution_count": 145, + "execution_count": 321, "metadata": {}, "output_type": "execute_result" } @@ -4670,7 +4670,7 @@ }, { "cell_type": "code", - "execution_count": 146, + "execution_count": 322, "id": "7fd9e5bd-baac-4b3b-9ffb-5a9baa18399b", "metadata": {}, "outputs": [ @@ -4690,7 +4690,7 @@ "dtype: object" ] }, - "execution_count": 146, + "execution_count": 322, "metadata": {}, "output_type": "execute_result" } @@ -4709,7 +4709,7 @@ }, { "cell_type": "code", - "execution_count": 147, + "execution_count": 323, "id": "90ab62d4-a086-4469-961c-67eefb375388", "metadata": {}, "outputs": [], @@ -4719,7 +4719,7 @@ }, { "cell_type": "code", - "execution_count": 148, + "execution_count": 324, "id": "58db1751-fd56-4c28-b49e-bc8235bb0dc8", "metadata": {}, "outputs": [ @@ -4834,7 +4834,7 @@ "4 d41d8cd98f00b204e9800998ecf8427e " ] }, - "execution_count": 148, + "execution_count": 324, "metadata": {}, "output_type": "execute_result" } @@ -4847,7 +4847,7 @@ }, { "cell_type": "code", - "execution_count": 149, + "execution_count": 325, "id": "ac93382c-0b5f-462d-8021-0dd1e7201b8c", "metadata": {}, "outputs": [ @@ -4940,7 +4940,7 @@ "4 2723 36 d41d8cd98f00b204e9800998ecf8427e NaN" ] }, - "execution_count": 149, + "execution_count": 325, "metadata": {}, "output_type": "execute_result" } @@ -4952,7 +4952,7 @@ }, { "cell_type": "code", - "execution_count": 150, + "execution_count": 326, "id": "18cbd630-3c7d-49e1-932b-9460badf3758", "metadata": {}, "outputs": [ @@ -4966,7 +4966,7 @@ "dtype: object" ] }, - "execution_count": 150, + "execution_count": 326, "metadata": {}, "output_type": "execute_result" } @@ -4985,7 +4985,7 @@ }, { "cell_type": "code", - "execution_count": 151, + "execution_count": 327, "id": "ae544dcc-f23d-4216-bb5b-597cc1b3765e", "metadata": {}, "outputs": [], @@ -4995,7 +4995,7 @@ }, { "cell_type": "code", - "execution_count": 152, + "execution_count": 328, "id": "1ac97963-9208-4329-be41-d71a5797487f", "metadata": {}, "outputs": [ @@ -5110,7 +5110,7 @@ "4 8d8818c8e140c64c743113f563cf750f " ] }, - "execution_count": 152, + "execution_count": 328, "metadata": {}, "output_type": "execute_result" } @@ -5123,7 +5123,7 @@ }, { "cell_type": "code", - "execution_count": 153, + "execution_count": 329, "id": "b4593d46-105c-47dd-aa71-babd8e63e65b", "metadata": {}, "outputs": [ @@ -5216,7 +5216,7 @@ "4 4 8d8818c8e140c64c743113f563cf750f 2017 NaN" ] }, - "execution_count": 153, + "execution_count": 329, "metadata": {}, "output_type": "execute_result" } @@ -5228,7 +5228,7 @@ }, { "cell_type": "code", - "execution_count": 154, + "execution_count": 330, "id": "5d3b096d-8e73-4514-94e5-f2dcd4d0a89c", "metadata": {}, "outputs": [ @@ -5242,7 +5242,7 @@ "dtype: object" ] }, - "execution_count": 154, + "execution_count": 330, "metadata": {}, "output_type": "execute_result" } @@ -5261,7 +5261,7 @@ }, { "cell_type": "code", - "execution_count": 155, + "execution_count": 331, "id": "d95ef015-d44c-4353-8761-771b910d21c9", "metadata": {}, "outputs": [], @@ -5271,7 +5271,7 @@ }, { "cell_type": "code", - "execution_count": 156, + "execution_count": 332, "id": "ef5fe794-8df7-4f27-8554-ecdc4074ac0b", "metadata": {}, "outputs": [ @@ -5353,7 +5353,7 @@ "1 702bd76fe3dd5dbcf118a6965a946f54 " ] }, - "execution_count": 156, + "execution_count": 332, "metadata": {}, "output_type": "execute_result" } @@ -5366,7 +5366,7 @@ }, { "cell_type": "code", - "execution_count": 157, + "execution_count": 333, "id": "e3621201-fab9-49fd-95c1-0b9d5da76e50", "metadata": {}, "outputs": [ @@ -5439,7 +5439,7 @@ "1 1 1 702bd76fe3dd5dbcf118a6965a946f54 mucem NaN" ] }, - "execution_count": 157, + "execution_count": 333, "metadata": {}, "output_type": "execute_result" } @@ -5451,7 +5451,7 @@ }, { "cell_type": "code", - "execution_count": 158, + "execution_count": 334, "id": "1b198b92-8654-4531-a0dd-8f2e01c2e6c1", "metadata": {}, "outputs": [ @@ -5466,7 +5466,7 @@ "dtype: object" ] }, - "execution_count": 158, + "execution_count": 334, "metadata": {}, "output_type": "execute_result" } @@ -5485,7 +5485,7 @@ }, { "cell_type": "code", - "execution_count": 159, + "execution_count": 335, "id": "43576244-c8cf-4ca0-b056-7aea1fbf0bc7", "metadata": {}, "outputs": [], @@ -5500,7 +5500,7 @@ }, { "cell_type": "code", - "execution_count": 160, + "execution_count": 336, "id": "0fad097e-474c-4af7-b1e1-7d8dda3f09ea", "metadata": {}, "outputs": [], @@ -5526,7 +5526,7 @@ }, { "cell_type": "code", - "execution_count": 161, + "execution_count": 337, "id": "6213b1eb-c5f8-49dd-ab69-366542380e80", "metadata": {}, "outputs": [], @@ -5563,7 +5563,7 @@ }, { "cell_type": "code", - "execution_count": 162, + "execution_count": 338, "id": "b853e020-f73d-44e8-b086-e5548ce21011", "metadata": {}, "outputs": [ @@ -5716,7 +5716,7 @@ "4 indiv entrées tp " ] }, - "execution_count": 162, + "execution_count": 338, "metadata": {}, "output_type": "execute_result" } @@ -5736,7 +5736,7 @@ }, { "cell_type": "code", - "execution_count": 163, + "execution_count": 339, "id": "6ed0ad20-8315-4112-9a85-10e5f04ef852", "metadata": {}, "outputs": [], @@ -5779,7 +5779,7 @@ }, { "cell_type": "code", - "execution_count": 164, + "execution_count": 340, "id": "98ef0636-8c45-4a23-a62a-1fbe1544f8ce", "metadata": {}, "outputs": [ @@ -5949,7 +5949,7 @@ "4 spectacle vivant mucem " ] }, - "execution_count": 164, + "execution_count": 340, "metadata": {}, "output_type": "execute_result" } @@ -5969,7 +5969,7 @@ }, { "cell_type": "code", - "execution_count": 165, + "execution_count": 341, "id": "481dddd6-80a8-4b9e-a05e-ed06fa3ed7a6", "metadata": {}, "outputs": [], @@ -5994,7 +5994,7 @@ }, { "cell_type": "code", - "execution_count": 166, + "execution_count": 342, "id": "677f4ed8-ef58-45f2-9056-ede0898c6a64", "metadata": {}, "outputs": [ @@ -6093,7 +6093,7 @@ "4 37 383 269 1" ] }, - "execution_count": 166, + "execution_count": 342, "metadata": {}, "output_type": "execute_result" } @@ -6113,7 +6113,7 @@ }, { "cell_type": "code", - "execution_count": 167, + "execution_count": 343, "id": "c52621e7-01de-48dc-b572-2974542a8be5", "metadata": {}, "outputs": [ @@ -6169,7 +6169,7 @@ "0 1 NaN 0" ] }, - "execution_count": 167, + "execution_count": 343, "metadata": {}, "output_type": "execute_result" } @@ -6181,7 +6181,7 @@ }, { "cell_type": "code", - "execution_count": 168, + "execution_count": 344, "id": "9e4f60ab-9a2c-4090-b0c4-f9a1530b2d39", "metadata": {}, "outputs": [ @@ -6265,7 +6265,7 @@ "4 1496 billet nb famille mecene 1a NaN" ] }, - "execution_count": 168, + "execution_count": 344, "metadata": {}, "output_type": "execute_result" } @@ -6277,7 +6277,7 @@ }, { "cell_type": "code", - "execution_count": 169, + "execution_count": 345, "id": "247b5c45-a18a-4cfd-86b4-d3453e157bcd", "metadata": {}, "outputs": [ @@ -6361,7 +6361,7 @@ "4 5 1 7" ] }, - "execution_count": 169, + "execution_count": 345, "metadata": {}, "output_type": "execute_result" } @@ -6373,7 +6373,7 @@ }, { "cell_type": "code", - "execution_count": 170, + "execution_count": 346, "id": "4b48f7b3-0f06-4ef6-9355-5016af82f49c", "metadata": {}, "outputs": [ @@ -6490,7 +6490,7 @@ "4 0.0 0.0 " ] }, - "execution_count": 170, + "execution_count": 346, "metadata": {}, "output_type": "execute_result" } @@ -6510,7 +6510,7 @@ }, { "cell_type": "code", - "execution_count": 171, + "execution_count": 347, "id": "b26f4e7e-134d-4e32-a615-4b0e6bb80b25", "metadata": {}, "outputs": [ @@ -6542,7 +6542,7 @@ }, { "cell_type": "code", - "execution_count": 172, + "execution_count": 348, "id": "d40b1e3b-b1f3-4915-8ebc-6bb7856da42a", "metadata": {}, "outputs": [ @@ -6684,7 +6684,7 @@ "4 indiv entrées tp 8 21 " ] }, - "execution_count": 172, + "execution_count": 348, "metadata": {}, "output_type": "execute_result" } @@ -6699,7 +6699,7 @@ }, { "cell_type": "code", - "execution_count": 173, + "execution_count": 349, "id": "78d75a08-e959-429c-847a-7d70a2804806", "metadata": {}, "outputs": [ @@ -6919,7 +6919,7 @@ "[5 rows x 22 columns]" ] }, - "execution_count": 173, + "execution_count": 349, "metadata": {}, "output_type": "execute_result" } @@ -6933,7 +6933,7 @@ }, { "cell_type": "code", - "execution_count": 174, + "execution_count": 350, "id": "4a6950e8-4818-4df2-afa9-562e0921698c", "metadata": {}, "outputs": [ @@ -6949,7 +6949,7 @@ " dtype='object')" ] }, - "execution_count": 174, + "execution_count": 350, "metadata": {}, "output_type": "execute_result" } @@ -6960,7 +6960,7 @@ }, { "cell_type": "code", - "execution_count": 175, + "execution_count": 351, "id": "b18f6428-90e0-4b1b-9b8d-bad995fb6c98", "metadata": {}, "outputs": [ @@ -6970,7 +6970,7 @@ "(94803, 22)" ] }, - "execution_count": 175, + "execution_count": 351, "metadata": {}, "output_type": "execute_result" } @@ -6989,7 +6989,7 @@ }, { "cell_type": "code", - "execution_count": 176, + "execution_count": 352, "id": "33ee07a2-d871-4436-9860-9be389bc4902", "metadata": {}, "outputs": [ @@ -7021,7 +7021,7 @@ "dtype: int64" ] }, - "execution_count": 176, + "execution_count": 352, "metadata": {}, "output_type": "execute_result" } @@ -7032,7 +7032,7 @@ }, { "cell_type": "code", - "execution_count": 177, + "execution_count": 353, "id": "557fc475-4417-4d9f-8d4e-8c49bc42367f", "metadata": {}, "outputs": [ @@ -7043,7 +7043,7 @@ " 'offre muséale groupe', 'formule adhésion'], dtype=object)" ] }, - "execution_count": 177, + "execution_count": 353, "metadata": {}, "output_type": "execute_result" } @@ -7056,7 +7056,7 @@ }, { "cell_type": "code", - "execution_count": 178, + "execution_count": 354, "id": "a9b9a23c-b0de-4685-97e5-d52dd78349f5", "metadata": {}, "outputs": [ @@ -7066,7 +7066,7 @@ "644" ] }, - "execution_count": 178, + "execution_count": 354, "metadata": {}, "output_type": "execute_result" } @@ -7079,7 +7079,7 @@ }, { "cell_type": "code", - "execution_count": 179, + "execution_count": 355, "id": "fb374c72-58ca-404d-a86b-e834a2fc4a34", "metadata": {}, "outputs": [ @@ -7099,7 +7099,7 @@ " 'groupe forfait etudiant'], dtype=object)" ] }, - "execution_count": 179, + "execution_count": 355, "metadata": {}, "output_type": "execute_result" } @@ -7111,7 +7111,7 @@ }, { "cell_type": "code", - "execution_count": 180, + "execution_count": 356, "id": "11f89771-8d50-4ef4-b34e-53e4f6b419bb", "metadata": {}, "outputs": [ @@ -7121,7 +7121,7 @@ "27" ] }, - "execution_count": 180, + "execution_count": 356, "metadata": {}, "output_type": "execute_result" } @@ -7132,7 +7132,7 @@ }, { "cell_type": "code", - "execution_count": 181, + "execution_count": 357, "id": "8add1ff2-b7e8-4381-90d8-d18d8660ed39", "metadata": {}, "outputs": [], @@ -7169,7 +7169,7 @@ }, { "cell_type": "code", - "execution_count": 182, + "execution_count": 358, "id": "1fd9dcb0-164a-4fd0-90c3-2fd9e7b44016", "metadata": {}, "outputs": [ @@ -7395,7 +7395,7 @@ "[5 rows x 40 columns]" ] }, - "execution_count": 182, + "execution_count": 358, "metadata": {}, "output_type": "execute_result" } @@ -7407,7 +7407,7 @@ }, { "cell_type": "code", - "execution_count": 183, + "execution_count": 359, "id": "e4a5f890-d5aa-40d7-a70c-8d8a254a5c9a", "metadata": {}, "outputs": [ @@ -7457,7 +7457,7 @@ "dtype: int64" ] }, - "execution_count": 183, + "execution_count": 359, "metadata": {}, "output_type": "execute_result" } @@ -7476,7 +7476,7 @@ }, { "cell_type": "code", - "execution_count": 211, + "execution_count": 360, "id": "de370d66-852e-46a1-8fb4-5c1e5756f5cd", "metadata": {}, "outputs": [], @@ -7486,7 +7486,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 361, "id": "088a1f50-cf5d-4d1a-891d-4e9df7e1c35b", "metadata": {}, "outputs": [ @@ -7513,7 +7513,7 @@ " \n", " customer_id\n", " birthdate\n", - " street_id_x\n", + " street_id\n", " is_partner\n", " gender\n", " is_email_true\n", @@ -7522,16 +7522,16 @@ " profession\n", " language\n", " ...\n", - " season_id\n", - " facility_id\n", + " first_buying_date\n", + " country\n", + " age\n", + " tenant_id\n", + " nb_campaigns\n", + " nb_campaigns_opened\n", + " time_to_open\n", " event_type_id\n", - " event_type_key_id\n", - " facility_key_id\n", - " street_id_y\n", - " amount\n", - " is_full_price\n", - " name_event_types\n", - " name_facilities\n", + " nb_tickets\n", + " avg_amount\n", " \n", " \n", " \n", @@ -7549,9 +7549,9 @@ " NaN\n", " ...\n", " NaN\n", + " fr\n", " NaN\n", - " NaN\n", - " NaN\n", + " 1311\n", " NaN\n", " NaN\n", " NaN\n", @@ -7573,9 +7573,9 @@ " NaN\n", " ...\n", " NaN\n", + " fr\n", " NaN\n", - " NaN\n", - " NaN\n", + " 1311\n", " NaN\n", " NaN\n", " NaN\n", @@ -7597,9 +7597,9 @@ " NaN\n", " ...\n", " NaN\n", + " fr\n", " NaN\n", - " NaN\n", - " NaN\n", + " 1311\n", " NaN\n", " NaN\n", " NaN\n", @@ -7621,9 +7621,9 @@ " NaN\n", " ...\n", " NaN\n", + " fr\n", " NaN\n", - " NaN\n", - " NaN\n", + " 1311\n", " NaN\n", " NaN\n", " NaN\n", @@ -7647,52 +7647,52 @@ " NaN\n", " NaN\n", " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", + " 1311\n", + " 80.0\n", + " 2.0\n", + " 0 days 19:53:02.500000\n", " NaN\n", " NaN\n", " NaN\n", " \n", " \n", "\n", - "

5 rows × 52 columns

\n", + "

5 rows × 31 columns

\n", "" ], "text/plain": [ - " customer_id birthdate street_id_x is_partner gender is_email_true \\\n", - "0 12751 NaN 2 False 1 True \n", - "1 12825 NaN 2 False 2 True \n", - "2 11261 NaN 2 False 1 True \n", - "3 13071 NaN 2 False 2 True \n", - "4 653061 NaN 10 False 2 True \n", + " customer_id birthdate street_id is_partner gender is_email_true \\\n", + "0 12751 NaN 2 False 1 True \n", + "1 12825 NaN 2 False 2 True \n", + "2 11261 NaN 2 False 1 True \n", + "3 13071 NaN 2 False 2 True \n", + "4 653061 NaN 10 False 2 True \n", "\n", - " opt_in structure_id profession language ... season_id facility_id \\\n", - "0 True NaN NaN NaN ... NaN NaN \n", - "1 True NaN NaN NaN ... NaN NaN \n", - "2 True NaN NaN NaN ... NaN NaN \n", - "3 True NaN NaN NaN ... NaN NaN \n", - "4 False NaN NaN NaN ... NaN NaN \n", + " opt_in structure_id profession language ... first_buying_date country \\\n", + "0 True NaN NaN NaN ... NaN fr \n", + "1 True NaN NaN NaN ... NaN fr \n", + "2 True NaN NaN NaN ... NaN fr \n", + "3 True NaN NaN NaN ... NaN fr \n", + "4 False NaN NaN NaN ... NaN NaN \n", "\n", - " event_type_id event_type_key_id facility_key_id street_id_y amount \\\n", - "0 NaN NaN NaN NaN NaN \n", - "1 NaN NaN NaN NaN NaN \n", - "2 NaN NaN NaN NaN NaN \n", - "3 NaN NaN NaN NaN NaN \n", - "4 NaN NaN NaN NaN NaN \n", + " age tenant_id nb_campaigns nb_campaigns_opened time_to_open \\\n", + "0 NaN 1311 NaN NaN NaN \n", + "1 NaN 1311 NaN NaN NaN \n", + "2 NaN 1311 NaN NaN NaN \n", + "3 NaN 1311 NaN NaN NaN \n", + "4 NaN 1311 80.0 2.0 0 days 19:53:02.500000 \n", "\n", - " is_full_price name_event_types name_facilities \n", - "0 NaN NaN NaN \n", - "1 NaN NaN NaN \n", - "2 NaN NaN NaN \n", - "3 NaN NaN NaN \n", - "4 NaN NaN NaN \n", + " event_type_id nb_tickets avg_amount \n", + "0 NaN NaN NaN \n", + "1 NaN NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 NaN NaN NaN \n", "\n", - "[5 rows x 52 columns]" + "[5 rows x 31 columns]" ] }, - "execution_count": 8, + "execution_count": 361, "metadata": {}, "output_type": "execute_result" } @@ -7704,7 +7704,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 362, "id": "bdd582af-0cf1-4e04-90ad-7165b8a36ac8", "metadata": {}, "outputs": [ @@ -7712,21 +7712,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "(206713, 52)\n", - "Index(['customer_id', 'birthdate', 'street_id_x', 'is_partner', 'gender',\n", + "(156289, 31)\n", + "Index(['customer_id', 'birthdate', 'street_id', 'is_partner', 'gender',\n", " 'is_email_true', 'opt_in', 'structure_id', 'profession', 'language',\n", " 'mcp_contact_id', 'last_buying_date', 'max_price', 'ticket_sum',\n", " 'average_price', 'fidelity', 'average_purchase_delay',\n", " 'average_price_basket', 'average_ticket_basket', 'total_price',\n", " 'purchase_count', 'first_buying_date', 'country', 'age', 'tenant_id',\n", - " 'nb_campaigns', 'nb_campaigns_opened', 'time_to_open', 'product_id',\n", - " 'nb_tickets', 'nb_suppliers', 'purchase_date_max', 'purchase_date_min',\n", - " 'time_between_purchase', 'id_products', 'representation_id',\n", - " 'pricing_formula_id', 'category_id', 'products_group_id',\n", - " 'product_pack_id', 'event_id', 'id_representation_cap', 'season_id',\n", - " 'facility_id', 'event_type_id', 'event_type_key_id', 'facility_key_id',\n", - " 'street_id_y', 'amount', 'is_full_price', 'name_event_types',\n", - " 'name_facilities'],\n", + " 'nb_campaigns', 'nb_campaigns_opened', 'time_to_open', 'event_type_id',\n", + " 'nb_tickets', 'avg_amount'],\n", " dtype='object')\n" ] } @@ -7740,7 +7734,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 363, "id": "55fa2361-ebde-4472-b8d2-521a20be766d", "metadata": {}, "outputs": [ @@ -7748,61 +7742,40 @@ "data": { "text/plain": [ "customer_id 0\n", - "birthdate 195073\n", - "street_id_x 0\n", + "birthdate 149375\n", + "street_id 0\n", "is_partner 0\n", "gender 0\n", "is_email_true 0\n", "opt_in 0\n", - "structure_id 171660\n", - "profession 199762\n", - "language 205574\n", - "mcp_contact_id 81495\n", - "last_buying_date 78450\n", - "max_price 78450\n", + "structure_id 136867\n", + "profession 150004\n", + "language 155184\n", + "mcp_contact_id 53519\n", + "last_buying_date 78445\n", + "max_price 78445\n", "ticket_sum 0\n", - "average_price 13122\n", + "average_price 13120\n", "fidelity 0\n", - "average_purchase_delay 78450\n", - "average_price_basket 78450\n", - "average_ticket_basket 78450\n", - "total_price 65328\n", + "average_purchase_delay 78445\n", + "average_price_basket 78445\n", + "average_ticket_basket 78445\n", + "total_price 65325\n", "purchase_count 0\n", - "first_buying_date 78450\n", - "country 8490\n", - "age 195073\n", + "first_buying_date 78445\n", + "country 8304\n", + "age 149375\n", "tenant_id 0\n", - "nb_campaigns 46315\n", - "nb_campaigns_opened 46315\n", - "time_to_open 100811\n", - "product_id 78355\n", - "nb_tickets 78355\n", - "nb_suppliers 78355\n", - "purchase_date_max 78355\n", - "purchase_date_min 78355\n", - "time_between_purchase 78355\n", - "id_products 78355\n", - "representation_id 78355\n", - "pricing_formula_id 78355\n", - "category_id 78355\n", - "products_group_id 78355\n", - "product_pack_id 78355\n", - "event_id 78355\n", - "id_representation_cap 78355\n", - "season_id 78355\n", - "facility_id 78355\n", + "nb_campaigns 21623\n", + "nb_campaigns_opened 21623\n", + "time_to_open 69017\n", "event_type_id 78355\n", - "event_type_key_id 78355\n", - "facility_key_id 78355\n", - "street_id_y 78355\n", - "amount 78355\n", - "is_full_price 78355\n", - "name_event_types 78355\n", - "name_facilities 78355\n", + "nb_tickets 78355\n", + "avg_amount 78355\n", "dtype: int64" ] }, - "execution_count": 10, + "execution_count": 363, "metadata": {}, "output_type": "execute_result" } @@ -7815,8 +7788,8 @@ }, { "cell_type": "code", - "execution_count": 234, - "id": "76fbd8d5-443c-43b7-976d-b0028cd90d5e", + "execution_count": 364, + "id": "2e228eb6-8cc7-4fd7-8e17-2b818095cb96", "metadata": {}, "outputs": [ { @@ -7847,13 +7820,11 @@ " nb_campaigns\n", " nb_campaigns_opened\n", " fidelity\n", - " product_id\n", " nb_tickets\n", " ticket_sum\n", " average_price\n", - " amount\n", + " avg_amount\n", " event_type_id\n", - " name_event_types\n", " \n", " \n", " \n", @@ -7867,12 +7838,10 @@ " NaN\n", " 0\n", " NaN\n", - " NaN\n", " 0\n", " 0.0\n", " NaN\n", " NaN\n", - " NaN\n", " \n", " \n", " 1\n", @@ -7884,12 +7853,10 @@ " NaN\n", " 0\n", " NaN\n", - " NaN\n", " 0\n", " 0.0\n", " NaN\n", " NaN\n", - " NaN\n", " \n", " \n", " 2\n", @@ -7901,12 +7868,10 @@ " NaN\n", " 0\n", " NaN\n", - " NaN\n", " 0\n", " 0.0\n", " NaN\n", " NaN\n", - " NaN\n", " \n", " \n", " 3\n", @@ -7918,12 +7883,10 @@ " NaN\n", " 0\n", " NaN\n", - " NaN\n", " 0\n", " 0.0\n", " NaN\n", " NaN\n", - " NaN\n", " \n", " \n", " 4\n", @@ -7935,12 +7898,10 @@ " 2.0\n", " 0\n", " NaN\n", - " NaN\n", " 0\n", " 0.0\n", " NaN\n", " NaN\n", - " NaN\n", " \n", " \n", "\n", @@ -7954,22 +7915,22 @@ "3 13071 2 False True NaN \n", "4 653061 2 False True 80.0 \n", "\n", - " nb_campaigns_opened fidelity product_id nb_tickets ticket_sum \\\n", - "0 NaN 0 NaN NaN 0 \n", - "1 NaN 0 NaN NaN 0 \n", - "2 NaN 0 NaN NaN 0 \n", - "3 NaN 0 NaN NaN 0 \n", - "4 2.0 0 NaN NaN 0 \n", + " nb_campaigns_opened fidelity nb_tickets ticket_sum average_price \\\n", + "0 NaN 0 NaN 0 0.0 \n", + "1 NaN 0 NaN 0 0.0 \n", + "2 NaN 0 NaN 0 0.0 \n", + "3 NaN 0 NaN 0 0.0 \n", + "4 2.0 0 NaN 0 0.0 \n", "\n", - " average_price amount event_type_id name_event_types \n", - "0 0.0 NaN NaN NaN \n", - "1 0.0 NaN NaN NaN \n", - "2 0.0 NaN NaN NaN \n", - "3 0.0 NaN NaN NaN \n", - "4 0.0 NaN NaN NaN " + " avg_amount event_type_id \n", + "0 NaN NaN \n", + "1 NaN NaN \n", + "2 NaN NaN \n", + "3 NaN NaN \n", + "4 NaN NaN " ] }, - "execution_count": 234, + "execution_count": 364, "metadata": {}, "output_type": "execute_result" } @@ -7977,14 +7938,14 @@ "source": [ "## Investigate a subset of variables\n", "\n", - "df = customer_product[[\"customer_id\", \"gender\", \"is_partner\", \"is_email_true\",\"nb_campaigns\", \"nb_campaigns_opened\", \"fidelity\", \"product_id\",\n", - " \"nb_tickets\", \"ticket_sum\", \"average_price\", \"amount\", \"event_type_id\", \"name_event_types\"]]\n", + "df = customer_product[[\"customer_id\", \"gender\", \"is_partner\", \"is_email_true\",\"nb_campaigns\", \"nb_campaigns_opened\", \"fidelity\",\n", + " \"nb_tickets\", \"ticket_sum\", \"average_price\", \"avg_amount\", \"event_type_id\"]]\n", "df.head()" ] }, { "cell_type": "code", - "execution_count": 235, + "execution_count": 368, "id": "80120f51-f91e-4d4d-9578-1dc88cd94754", "metadata": {}, "outputs": [ @@ -7992,42 +7953,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "shape : (206713, 14)\n", + "shape : (156289, 12)\n", "Nombre de customer unique : 151866\n", - "Nombre de ligne où produit est non nul : 128358\n" + "Nombre de ligne où nb_tickets est non nul : 77934\n" ] } ], "source": [ "print(\"shape : \", df.shape)\n", "print(\"Nombre de customer unique : \", len(df[\"customer_id\"].unique()))\n", - "print(\"Nombre de ligne où produit est non nul : \", df[\"product_id\"].count())" + "print(\"Nombre de ligne où nb_tickets est non nul : \", df[\"nb_tickets\"].count())" ] }, { "cell_type": "code", - "execution_count": 236, - "id": "ae277ede-cc97-4303-a2d4-3381ccb98a5c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "78355" - ] - }, - "execution_count": 236, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "206713-128358" - ] - }, - { - "cell_type": "code", - "execution_count": 237, + "execution_count": 370, "id": "0d56bfa9-c93c-42ee-bec2-96f0598fce2c", "metadata": {}, "outputs": [ @@ -8036,8 +7976,7 @@ "output_type": "stream", "text": [ "Nombre de consommateur unique : 73511\n", - "Nombre de type d'évènement : 4\n", - "Nombre de type d'évènement (nom) : 4\n" + "Nombre de type d'évènement : 4\n" ] }, { @@ -8068,13 +8007,11 @@ " nb_campaigns\n", " nb_campaigns_opened\n", " fidelity\n", - " product_id\n", " nb_tickets\n", " ticket_sum\n", " average_price\n", - " amount\n", + " avg_amount\n", " event_type_id\n", - " name_event_types\n", " \n", " \n", " \n", @@ -8087,13 +8024,11 @@ " 2.0\n", " 2.0\n", " 0\n", - " 264371.0\n", " 2.0\n", " 0\n", - " 0.0\n", - " 11.0\n", + " 0.000000\n", + " 7.762474\n", " 4.0\n", - " spectacle vivant\n", " \n", " \n", " 195\n", @@ -8104,50 +8039,14 @@ " 133.0\n", " 19.0\n", " 0\n", - " 222125.0\n", - " 1.0\n", + " 5.0\n", " 5\n", - " 2.8\n", - " 6.0\n", + " 2.800000\n", + " 7.762474\n", " 4.0\n", - " spectacle vivant\n", - " \n", - " \n", - " 196\n", - " 7772\n", - " 0\n", - " False\n", - " True\n", - " 133.0\n", - " 19.0\n", - " 0\n", - " 222126.0\n", - " 2.0\n", - " 5\n", - " 2.8\n", - " 4.0\n", - " 4.0\n", - " spectacle vivant\n", " \n", " \n", " 197\n", - " 7772\n", - " 0\n", - " False\n", - " True\n", - " 133.0\n", - " 19.0\n", - " 0\n", - " 222571.0\n", - " 2.0\n", - " 5\n", - " 2.8\n", - " 0.0\n", - " 4.0\n", - " spectacle vivant\n", - " \n", - " \n", - " 199\n", " 280009\n", " 0\n", " False\n", @@ -8155,13 +8054,41 @@ " 116.0\n", " 32.0\n", " 1\n", - " 266306.0\n", " 1.0\n", " 1\n", - " 11.0\n", - " 11.0\n", + " 11.000000\n", + " 7.762474\n", " 4.0\n", - " spectacle vivant\n", + " \n", + " \n", + " 199\n", + " 1556\n", + " 0\n", + " False\n", + " True\n", + " 9.0\n", + " 8.0\n", + " 1\n", + " 2.0\n", + " 3\n", + " 23.333333\n", + " 6.150659\n", + " 2.0\n", + " \n", + " \n", + " 200\n", + " 1556\n", + " 0\n", + " False\n", + " True\n", + " 9.0\n", + " 8.0\n", + " 1\n", + " 1.0\n", + " 3\n", + " 23.333333\n", + " 6.439463\n", + " 6.0\n", " \n", " \n", " ...\n", @@ -8177,11 +8104,39 @@ " ...\n", " ...\n", " ...\n", - " ...\n", - " ...\n", " \n", " \n", - " 206703\n", + " 156245\n", + " 293753\n", + " 2\n", + " False\n", + " True\n", + " 94.0\n", + " 34.0\n", + " 1\n", + " 1.0\n", + " 1\n", + " 11.000000\n", + " 7.762474\n", + " 4.0\n", + " \n", + " \n", + " 156246\n", + " 293798\n", + " 2\n", + " False\n", + " True\n", + " 7.0\n", + " 0.0\n", + " 2\n", + " 2.0\n", + " 2\n", + " 12.000000\n", + " 7.762474\n", + " 4.0\n", + " \n", + " \n", + " 156281\n", " 295224\n", " 2\n", " False\n", @@ -8189,50 +8144,14 @@ " 10.0\n", " 0.0\n", " 1\n", - " 340286.0\n", - " 3.0\n", + " 98.0\n", " 98\n", - " 0.0\n", - " 0.0\n", + " 0.000000\n", + " 6.150659\n", " 2.0\n", - " offre muséale individuel\n", " \n", " \n", - " 206704\n", - " 295224\n", - " 2\n", - " False\n", - " True\n", - " 10.0\n", - " 0.0\n", - " 1\n", - " 340287.0\n", - " 62.0\n", - " 98\n", - " 0.0\n", - " 0.0\n", - " 2.0\n", - " offre muséale individuel\n", - " \n", - " \n", - " 206705\n", - " 295224\n", - " 2\n", - " False\n", - " True\n", - " 10.0\n", - " 0.0\n", - " 1\n", - " 340288.0\n", - " 33.0\n", - " 98\n", - " 0.0\n", - " 0.0\n", - " 2.0\n", - " offre muséale individuel\n", - " \n", - " \n", - " 206711\n", + " 156287\n", " 295366\n", " 2\n", " False\n", @@ -8240,16 +8159,14 @@ " 5.0\n", " 0.0\n", " 1\n", - " 216060.0\n", " 3.0\n", " 3\n", - " 11.0\n", - " 11.0\n", + " 11.000000\n", + " 7.762474\n", " 4.0\n", - " spectacle vivant\n", " \n", " \n", - " 206712\n", + " 156288\n", " 295368\n", " 2\n", " False\n", @@ -8257,63 +8174,61 @@ " 5.0\n", " 0.0\n", " 1\n", - " 264331.0\n", " 2.0\n", " 2\n", - " 11.0\n", - " 11.0\n", + " 11.000000\n", + " 7.762474\n", " 4.0\n", - " spectacle vivant\n", " \n", " \n", "\n", - "

128358 rows × 14 columns

\n", + "

77934 rows × 12 columns

\n", "" ], "text/plain": [ " customer_id gender is_partner is_email_true nb_campaigns \\\n", "162 309255 2 False True 2.0 \n", "195 7772 0 False True 133.0 \n", - "196 7772 0 False True 133.0 \n", - "197 7772 0 False True 133.0 \n", - "199 280009 0 False True 116.0 \n", + "197 280009 0 False True 116.0 \n", + "199 1556 0 False True 9.0 \n", + "200 1556 0 False True 9.0 \n", "... ... ... ... ... ... \n", - "206703 295224 2 False True 10.0 \n", - "206704 295224 2 False True 10.0 \n", - "206705 295224 2 False True 10.0 \n", - "206711 295366 2 False True 5.0 \n", - "206712 295368 2 False True 5.0 \n", + "156245 293753 2 False True 94.0 \n", + "156246 293798 2 False True 7.0 \n", + "156281 295224 2 False True 10.0 \n", + "156287 295366 2 False True 5.0 \n", + "156288 295368 2 False True 5.0 \n", "\n", - " nb_campaigns_opened fidelity product_id nb_tickets ticket_sum \\\n", - "162 2.0 0 264371.0 2.0 0 \n", - "195 19.0 0 222125.0 1.0 5 \n", - "196 19.0 0 222126.0 2.0 5 \n", - "197 19.0 0 222571.0 2.0 5 \n", - "199 32.0 1 266306.0 1.0 1 \n", - "... ... ... ... ... ... \n", - "206703 0.0 1 340286.0 3.0 98 \n", - "206704 0.0 1 340287.0 62.0 98 \n", - "206705 0.0 1 340288.0 33.0 98 \n", - "206711 0.0 1 216060.0 3.0 3 \n", - "206712 0.0 1 264331.0 2.0 2 \n", + " nb_campaigns_opened fidelity nb_tickets ticket_sum average_price \\\n", + "162 2.0 0 2.0 0 0.000000 \n", + "195 19.0 0 5.0 5 2.800000 \n", + "197 32.0 1 1.0 1 11.000000 \n", + "199 8.0 1 2.0 3 23.333333 \n", + "200 8.0 1 1.0 3 23.333333 \n", + "... ... ... ... ... ... \n", + "156245 34.0 1 1.0 1 11.000000 \n", + "156246 0.0 2 2.0 2 12.000000 \n", + "156281 0.0 1 98.0 98 0.000000 \n", + "156287 0.0 1 3.0 3 11.000000 \n", + "156288 0.0 1 2.0 2 11.000000 \n", "\n", - " average_price amount event_type_id name_event_types \n", - "162 0.0 11.0 4.0 spectacle vivant \n", - "195 2.8 6.0 4.0 spectacle vivant \n", - "196 2.8 4.0 4.0 spectacle vivant \n", - "197 2.8 0.0 4.0 spectacle vivant \n", - "199 11.0 11.0 4.0 spectacle vivant \n", - "... ... ... ... ... \n", - "206703 0.0 0.0 2.0 offre muséale individuel \n", - "206704 0.0 0.0 2.0 offre muséale individuel \n", - "206705 0.0 0.0 2.0 offre muséale individuel \n", - "206711 11.0 11.0 4.0 spectacle vivant \n", - "206712 11.0 11.0 4.0 spectacle vivant \n", + " avg_amount event_type_id \n", + "162 7.762474 4.0 \n", + "195 7.762474 4.0 \n", + "197 7.762474 4.0 \n", + "199 6.150659 2.0 \n", + "200 6.439463 6.0 \n", + "... ... ... \n", + "156245 7.762474 4.0 \n", + "156246 7.762474 4.0 \n", + "156281 6.150659 2.0 \n", + "156287 7.762474 4.0 \n", + "156288 7.762474 4.0 \n", "\n", - "[128358 rows x 14 columns]" + "[77934 rows x 12 columns]" ] }, - "execution_count": 237, + "execution_count": 370, "metadata": {}, "output_type": "execute_result" } @@ -8321,28 +8236,32 @@ "source": [ "# Filter only customer that buy tickets\n", "\n", - "df_purchase = df.dropna(subset= [\"product_id\"])\n", + "df_purchase = df.dropna(subset= [\"nb_tickets\"])\n", "print(\"Nombre de consommateur unique : \", len(df_purchase[\"customer_id\"].unique()))\n", "print(\"Nombre de type d'évènement : \", len(df_purchase[\"event_type_id\"].unique()))\n", - "print(\"Nombre de type d'évènement (nom) : \", len(df_purchase[\"name_event_types\"].unique()))\n", + "#print(\"Nombre de type d'évènement (nom) : \", len(df_purchase[\"name_event_types\"].unique()))\n", "df_purchase" ] }, { "cell_type": "code", - "execution_count": 239, + "execution_count": 371, "id": "0cc96c4e-f3f3-43d2-94b5-a11719f09607", "metadata": {}, "outputs": [ { - "data": { - "image/png": "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Sfai6ezZsyhVqhRMTU3xxRdfYMuWLfD29gYAtGrVCqtXr8a+ffswa9YsnDx5Ek2bNkVubi4AIDU1FSYmJrCxsVHZp6OjI1JTU6U+Dg4Oas/r4OCg0sfR0VFlu42NDUxMTKQ+RZk6dao0T0qpVMLV1fX13wgiIiLSa7LOaQIALy8vxMXFITMzE5s2bUJ4eDgOHjwIb29v6ZAbAPj4+KBOnTpwc3PDjh070LFjx5fuUwgBhUIh3X/+32/S50UjR47EkCFDpPvZ2dksnIiIiEoo2UeaTExM4OnpiTp16mDq1KmoXr06fvjhhyL7Ojs7w83NDZcuXQIAODk54cmTJ8jIyFDpl5aWJo0cOTk54fbt22r7unPnjkqfF0eUMjIykJeXpzYC9TxTU1PpzL/CGxEREZVMshdNLxJCSIffXnTv3j0kJyfD2dkZAFC7dm0YGxtj9+7dUp+UlBScO3cOgYGBAICAgABkZWXhxIkTUp/jx48jKytLpc+5c+eQkpIi9YmOjoapqSlq166t89dIRERE7x5ZD8+NGjUKrVq1gqurK+7fv49169bhwIEDiIqKwoMHDzB+/Hh8/PHHcHZ2xtWrVzFq1CjY2dmhQ4cOAAClUolevXph6NChKFOmDGxtbREZGQlfX180b94cAFC1alW0bNkSffr0waJFiwA8W3IgJCQEXl5eAICgoCB4e3sjLCwMM2bMQHp6OiIjI9GnTx+OHhEREREAmYum27dvIywsDCkpKVAqlfDz80NUVBRatGiBR48e4ezZs1ixYgUyMzPh7OyMJk2aYP369bCyspL2MWfOHBgZGaFz58549OgRmjVrhmXLlklrNAHA6tWrERERIZ1l17ZtW/z444/SdkNDQ+zYsQP9+/dH/fr1YW5ujtDQUMycOfPtvRlERESk1/RunaZ3GddpIiIiXeA6TW/XO7dOExEREZE+Y9FEREREpAEWTUREREQaYNFEREREpAEWTUREREQaYNFEREREpAEWTUREREQaYNFEREREpAEWTUREREQaYNFEREREpAEWTUREREQaYNFEREREpAEWTUREREQaYNFEREREpAEWTUREREQaYNFEREREpAEWTUREREQaYNFEREREpAEWTUREREQaYNFEREREpAEWTUREREQaYNFEREREpAEWTUREREQaYNFEREREpAEWTUREREQaYNFEREREpAEW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69evx5o1a1BXV4fCwsJhc27ZsgWLFi3C1KlTkZSUBA8PD5w9exY//PAD3njjDQB3Vl2WL1+O999/HxcuXEBVVZV6vK+vLzIzM7Fx40YoioK5c+eio6MDNTU18Pb2drmQciXHSIzGvEFBQVAUBYcOHcLChQthMBjg4+Mz4kxE/wpaN1UR0T/T3Y3g/ZqamgSA5OTkDHgPgLz33nvyxBNPiE6nk6CgICkuLnYa09bWJlarVSZNmiQ6nU5CQ0Nl9erV6rfWBlNeXi5ms1l0Op3Ex8fL7t2779nEXFFRIRaLRQwGg5hMJomNjZUPP/zQacz58+cFgAQFBTk1mouI9PX1yTvvvCPh4eHi5eUl/v7+kpiYKN9++62IDN5IXV9fLwCkubnZ5RwApLS0VN1ubm4WAFJfX6/uG+xc9zuviIifn58UFBSo29u2bZMpU6aIoijy/PPPD3ktidyFIjKChgAioiEcO3YM8+bNw+XLl9Wm5X6KoqC0tBRLlizRJhwR0V/A23NENCq6u7vR2tqKV199Fc8888yAgomI6J+OTwQnolFRXFyM8PBwXL9+HTk5OVrHISIadbw9R0REROQCrjQRERERuYBFExEREZELWDQRERERuYBFExEREZELWDQRERERuYBFExEREZELWDQRERERuYBFExEREZELWDQRERERueA/rUgL/07s4KUAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "ename": "KeyError", + "evalue": "'name_event_types'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[371], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m event_counts \u001b[38;5;241m=\u001b[39m \u001b[43mdf_purchase\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroupby\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mname_event_types\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcustomer_id\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mnunique()\n\u001b[1;32m 3\u001b[0m event_counts\u001b[38;5;241m.\u001b[39mplot(kind\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mbar\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 4\u001b[0m plt\u001b[38;5;241m.\u001b[39mxlabel(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mType d\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mévènement\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m/opt/mamba/lib/python3.10/site-packages/pandas/core/frame.py:8869\u001b[0m, in \u001b[0;36mDataFrame.groupby\u001b[0;34m(self, by, axis, level, as_index, sort, group_keys, observed, dropna)\u001b[0m\n\u001b[1;32m 8866\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m level \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m by \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 8867\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mYou have to supply one of \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mby\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m and \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 8869\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mDataFrameGroupBy\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 8870\u001b[0m \u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8871\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mby\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8872\u001b[0m \u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8873\u001b[0m \u001b[43m \u001b[49m\u001b[43mlevel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlevel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8874\u001b[0m \u001b[43m \u001b[49m\u001b[43mas_index\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mas_index\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8875\u001b[0m \u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8876\u001b[0m \u001b[43m \u001b[49m\u001b[43mgroup_keys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup_keys\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8877\u001b[0m \u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mobserved\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8878\u001b[0m \u001b[43m \u001b[49m\u001b[43mdropna\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdropna\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8879\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m/opt/mamba/lib/python3.10/site-packages/pandas/core/groupby/groupby.py:1278\u001b[0m, in \u001b[0;36mGroupBy.__init__\u001b[0;34m(self, obj, keys, axis, level, grouper, exclusions, selection, as_index, sort, group_keys, observed, dropna)\u001b[0m\n\u001b[1;32m 1275\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdropna \u001b[38;5;241m=\u001b[39m dropna\n\u001b[1;32m 1277\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m grouper \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1278\u001b[0m grouper, exclusions, obj \u001b[38;5;241m=\u001b[39m \u001b[43mget_grouper\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1279\u001b[0m \u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1280\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeys\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1281\u001b[0m \u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1282\u001b[0m \u001b[43m \u001b[49m\u001b[43mlevel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlevel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1283\u001b[0m \u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1284\u001b[0m \u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mlib\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mno_default\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mobserved\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1285\u001b[0m \u001b[43m \u001b[49m\u001b[43mdropna\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdropna\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1286\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1288\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m observed \u001b[38;5;129;01mis\u001b[39;00m lib\u001b[38;5;241m.\u001b[39mno_default:\n\u001b[1;32m 1289\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28many\u001b[39m(ping\u001b[38;5;241m.\u001b[39m_passed_categorical \u001b[38;5;28;01mfor\u001b[39;00m ping \u001b[38;5;129;01min\u001b[39;00m grouper\u001b[38;5;241m.\u001b[39mgroupings):\n", + "File \u001b[0;32m/opt/mamba/lib/python3.10/site-packages/pandas/core/groupby/grouper.py:1009\u001b[0m, in \u001b[0;36mget_grouper\u001b[0;34m(obj, key, axis, level, sort, observed, validate, dropna)\u001b[0m\n\u001b[1;32m 1007\u001b[0m in_axis, level, gpr \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m, gpr, \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1008\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1009\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(gpr)\n\u001b[1;32m 1010\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(gpr, Grouper) \u001b[38;5;129;01mand\u001b[39;00m gpr\u001b[38;5;241m.\u001b[39mkey \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 1011\u001b[0m \u001b[38;5;66;03m# Add key to exclusions\u001b[39;00m\n\u001b[1;32m 1012\u001b[0m exclusions\u001b[38;5;241m.\u001b[39madd(gpr\u001b[38;5;241m.\u001b[39mkey)\n", + "\u001b[0;31mKeyError\u001b[0m: 'name_event_types'" + ] } ], "source": [ @@ -8357,21 +8276,10 @@ }, { "cell_type": "code", - "execution_count": 238, + "execution_count": null, "id": "e37ad847-7ea5-4afe-9c6d-e07a668d2a27", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Ly8vxMXFybcHDx6oOj4RERERqYHax/B+rj///BO3bt2Cn59fjrfV0tJCnTp1PtrDq6enBz09vdxEJCIiIqI8KN/08K5evRq1atVC9erVc7ytEAKXL1+GtbX1F0hGRERERHmZSnp44+PjceLECVSoUAGVKlXK0bYJCQm4c+eOfD8iIgKXL1+GmZkZSpYsKe9/x44d+O2337Ldh4eHB2xtbeHj4wMAmDJlCurXr49y5cohPj4eCxcuxOXLl7FkyRIlHyERERER5VdKFbxdunRB48aNMWTIELx58wa1a9fGvXv3IITAtm3bPjlHbmYXLlxAkyZN5PujRo0CAHh6emLdunUAgG3btkEIgW7dumW7j8jISGhp/ddZHRsbi/79+yM6OhomJiZwcnLCqVOnULduXSUeLRERERHlZ5IQQuR0IysrKxw9ehTVq1fHli1bMHnyZFy5cgXr16/HypUrPzkFWH4QHx8PExMTxMXFoUiRIuqOQ6Q2pcYfVHeEfOferLbqjkBEVCB8br2m1BjeuLg4mJmZAQCOHDkCd3d3GBoaom3bth89MYyIiIiI6GtTquC1s7NDaGgoEhMTceTIEbRs2RIA8PLlS16+l4iIiIjyFKXG8I4YMQI9evSAkZERSpYsCVdXVwDAqVOn4OjoqMp8RERERES5olTBO2jQINStWxcPHjxAixYt5BPGypQpg+nTp6s0IBERERFRbig9LVnt2rVRrVo1REREwMHBAdra2mjblidqEBEREVHeotQY3tevX6Nv374wNDRElSpVEBkZCQAYNmwYZs2apdKARERERES58VkF74oVK3Dx4kX5vpeXF65cuYKTJ08qnKTWvHlzpS79S0RERET0pXxWwVuxYkV06NABAQEBAIDdu3dj8eLF+OabbyBJkrxe5cqVcffu3S+TlIiIiIhICZ9V8Lq4uODUqVPw9vYGADx//hwWFhZZ1ktMTFQogImIiIiI1O2zx/CWLl0awcHBAIA6derg4MH/rr6UUeT+8ccfaNCggYojEhEREREpL0ezNOjo6AAAfHx80Lp1a1y/fh2pqan4/fffER4ejtDQULkoJiIiIiLKC5SapcHZ2RmnT5/G69ev4eDggICAAFhaWiI0NBS1atVSdUYiIiIiIqUpPQ+vo6Mj1q9fr8osREREREQqp1QPb6FChfD06dMs7TExMShUqFCuQxERERERqYpSBa8QItv25ORk6Orq5ioQEREREZEq5WhIw8KFCwG8m5Vh1apVMDIykpelpaXh1KlTqFixomoTEhERERHlQo4K3gULFgB418O7fPlyheELurq6KFWqFJYvX67ahEREREREuZCjgjciIgIA0KRJE/j7+6No0aJfJBQRERERkaooNYY3KCgIRYsWxdu3b3Hr1i2kpqaqOhcRERERkUooNS3ZmzdvMGTIEHlasn/++QdlypTBsGHDYGNjg/Hjx6s0JGVVavzBT69ECu7NaqvuCERERKQGSvXwjh8/HleuXMHJkyehr68vtzdv3hx+fn4qC0dERERElFtK9fDu2bMHfn5+qF+/PiRJktsrV66Mu3fvqiwcEREREVFuKdXD++zZM1hYWGRpT0xMVCiAiYiIiIjUTamCt06dOjh48L8xpBlF7h9//IEGDRqoJhkRERERkQooNaTBx8cHrVu3xvXr15Gamorff/8d4eHhCA0NRXBwsKozEhEREREpTakeXmdnZ5w+fRqvX7+Gg4MDAgICYGlpidDQUNSqVUvVGYmIiIiIlKZUDy8AODo6ytOSERERERHlVUoXvOnp6bhz5w6ePn2K9PR0hWWNGzfOdTAiIiIiIlVQquA9e/Ysunfvjvv370MIobBMkiSkpaWpJBwRERERUW4pVfD+/PPPqF27Ng4ePAhra2tORUZEREREeZZSBe/t27exc+dOlC1bVtV5iIiIiIhUSqlZGurVq4c7d+6oOgsRERERkcp9dg9vWFiY/P+hQ4di9OjRiI6OhqOjI3R0dBTWrVatmuoSEhERERHlwmcXvDVq1IAkSQonqfXp00f+f8YynrRGRERERHnJZw9piIiIwL///ouIiIhsbxnL/v333xwFOHXqFL799lvY2NhAkiTs2bNHYXmvXr0gSZLCrX79+p/c765du1C5cmXo6emhcuXK2L17d45yEREREZFm+OweXnt7+y8SIDExEdWrV0fv3r3h7u6e7TqtW7fG2rVr5fu6urof3WdoaCi6du2KadOmoWPHjti9eze6dOmCkJAQ1KtXT6X5iYiIiChvU2qWBh8fH1haWioMaQCANWvW4NmzZxg3btxn78vNzQ1ubm4fXUdPTw9WVlafvU9fX1+0aNECXl5eAAAvLy8EBwfD19cXW7du/ez9EBEREVH+p9QsDStWrEDFihWztFep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hYVh8+bNuHLlCgwMDNC7d29069YNOjo6qs5IRERERKQ0pQpeAChcuDD69++vyixERERERCr32QXvvn374ObmBh0dHXnmhA9p3759roMREREREalCji4tHB0dDQsLi49eZliSJKSlpakiGxERERFRrn12wZuenp7t/4mIiIiI8jKlpiXbsGEDkpOTs7S/ffsWGzZsyHUoIiIiIiJVUarg7d27t8IcvBlevXqF3r175zoUEREREZGqKFXwCiEgSVKW9ocPH8LExCTXoYiIiIiIVCVH05I5OTlBkiRIkoRmzZopXEY4LS0NERERaN26tcpDEhEREREpK0cFb8bsDJcvX0arVq1gZGQkL9PV1UWpUqXg7u6u0oBERERERLmRo4J38uTJAIBSpUqha9eu0NfX/yKhiIiIiL6UUuMPqjtCvnNvVlt1R8gVpa605unpqeocRERERERfhFInrRERERER5RcseImIiIhIo7HgJSIiIiKNlquC9+3bt7h16xZSU1NVlYeIiIiISKWUKnhfv36Nvn37wtDQEFWqVEFkZCQAYNiwYZg1a5ZKAxIRERER5YZSBa+XlxeuXLmCkydPKkxN1rx5c/j5+aksHBERERFRbik1LdmePXvg5+eH+vXrK1xiuHLlyrh7967KwhERERER5ZZSPbzPnj2DhYVFlvbExESFApiIiIiISN2UKnjr1KmDgwf/u0pJRpH7xx9/oEGDBqpJRkRERESkAkoNafDx8UHr1q1x/fp1pKam4vfff0d4eDhCQ0MRHBys6oxEREREREpTqofX2dkZp0+fxuvXr+Hg4ICAgABYWloiNDQUtWrVUnVGIiIiIiKlKdXDCwCOjo5Yv369KrMQEREREancZxe88fHxn73TIkWKKBWGiIiIiEjVPrvgNTU1/ewZGNLS0pQORERERESkSp9d8AYFBcn/v3fvHsaPH49evXrJszKEhoZi/fr18PHxUX1KIiIiIiIlfXbB6+LiIv9/6tSpmD9/Prp16ya3tW/fHo6Ojli5ciU8PT1Vm5KIiIiISElKzdIQGhqK2rVrZ2mvXbs2/vrrr1yHIiIiIiJSFaUKXjs7OyxfvjxL+4oVK2BnZ5frUEREREREqqLUtGQLFiyAu7s7jh49ivr16wMAzp49i7t372LXrl0qDUhERERElBtK9fC2adMGt2/fRocOHfDixQvExMSg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6yM+Pj5L+61bt2Bubp7rUEREREREqqJUwduhQwdMnToVKSkpAABJkhAZGYnx48fD3d1dpQGJiIiIiHJDqYJ33rx5ePbsGSwsLPDmzRu4uLigbNmyMDY2xowZM1SdkYiIiIhIaUrN0lCkSBGEhITgxIkTuHjxItLT01GzZk00b95c1fmIiIiIiHIlxwVvamoq9PX1cfnyZTRt2hRNmzb9ErmIiIiIiFQix0MatLW1YW9vj7S0tC+Rh4iIiIhIpZQawzthwgSFK6wREREREeVVSo3hXbhwIe7cuQMbGxvY29ujcOHCCssvXryoknBERERERLmlVMH73XffqTgGEREREdGXoVTBO3nyZFXnICIiIiL6IpQqeDNcuHABN27cgCRJqFSpEmrVqqWqXEREREREKqFUwfvw4UN069YNp0+fhqmpKQAgNjYWzs7O2Lp1K+zs7FSZkYiIiIhIaUrN0tCnTx+kpKTgxo0bePHiBV68eIEbN25ACIG+ffuqOiMRERERkdKU6uH9888/cebMGVSoUEFuq1ChAhYtWoSGDRuqLBwRERERUW4p1cNbsmRJpKSkZGlPTU2Fra1trkMREREREamKUgXvnDlzMHToUFy4cAFCCADvTmAbPnw45s2bp9KARERERES58dlDGooWLQpJkuT7iYmJqFevHrS13+0iNTUV2tra6NOnD+fpJSIiIqI847MLXl9f3y8Yg4iIiIjoy/jsgtfT0/NL5iAiIiIi+iJydeGJp0+f4unTp0hPT1dor1atWq5CERERERGpilIF799//w1PT0957t3MJElCWlqaSsIREREREeWWUgVv7969Ub58eaxevRqWlpYKJ7MREREREeUlShW8ERER8Pf3R9myZVWdh4iIiIhIpZSah7dZs2a4cuWKqrMQEREREamcUj28q1atgqenJ65du4aqVatCR0dHYXn79u1VEo6IiIiIKLeUKnjPnDmDkJAQHD58OMsynrRGRERERHmJUkMahg0bhp49eyIqKgrp6ekKNxa7RERERJSXKFXwxsTEYOTIkbC0tFR1HiIiIiIilVKq4P3+++8RFBSk6ixERERERCqn1Bje8uXLw8vLCyEhIXB0dMxy0tqwYcNUEg4AvL29MWXKFIU2S0tLREdHf3Cb4OBgjBo1CuHh4bCxscHYsWPx888/qywTEREREeUfSs/SYGRkhODgYAQHBysskyRJpQUvAFSpUgXHjh2T7xcqVOiD60ZERKBNmzbo168fNm3ahNOnT2PQoEEwNzeHu7u7SnMRERERUd6n9IUnviZtbW1YWVl91rrLly9HyZIl4evrCwCoVKkSLly4gHnz5rHgJSIiIiqAlBrDm5kQAkIIVWT5oNu3b8PGxgalS5fGDz/8gH///feD64aGhqJly5YKba1atcKFCxeQkpLywe2Sk5MRHx+vcCMiIiKi/E/pgnfDhg1wdHSEgYEBDAwMUK1aNWzcuFGV2QAA9erVw4YNG3D06FH88ccfiI6OhrOzM2JiYrJdPzo6OsvsEZaWlkhNTcXz588/+HN8fHxgYmIi3+zs7FT6OIiIiIhIPZQqeOfPn4+BAweiTZs22L59O/z8/NC6dWv8/PPPWLBggUoDurm5wd3dHY6OjmjevDkOHjwIAFi/fv0Ht5EkSeF+Rg/0++2ZeXl5IS4uTr49ePBABemJiIiISN2UGsO7aNEiLFu2DB4eHnJbhw4dUKVKFXh7e2PkyJEqC/i+woULw9HREbdv3852uZWVVZYZHJ4+fQptbW0UK1bsg/vV09ODnp6eSrMSERERkfop1cMbFRUFZ2fnLO3Ozs6IiorKdaiPSU5Oxo0bN2BtbZ3t8gYNGiAwMFChLSAgALVr184yfRoRERERaT6lCt6yZcti+/btWdr9/PxQrly5XIfKbMyYMQgODkZERATOnTuHTp06IT4+Hp6engDeDUXI3NP8888/4/79+xg1ahRu3LiBNWvWYPXq1RgzZoxKcxERERFR/qDUkIYpU6aga9euOHXqFBo2bAhJkhASEoLjx49nWwjnxsOHD9GtWzc8f/4c5ubmqF+/Ps6ePQt7e3sA73qbIyMj5fVLly6NQ4cOYeTIkViyZAlsbGywcOFCTklGREREVEApVfC6u7vj3LlzWLBgAfbs2QMhBCpXroy//voLTk5OKg24bdu2jy5ft25dljYXFxdcvHhRpTmIiIiIKH9SquAFgFq1amHTpk2qzEJEREREpHK5vvAEEREREVFelqMeXi0trY/OZQu8m+s2NTU1V6GIiIiIiFQlRwXv7t27P7jszJkzWLRo0Re/zDARERERUU7kqODt0KFDlrabN2/Cy8sL+/fvR48ePTBt2jSVhSMiIiIiyi2lx/A+fvwY/fr1Q7Vq1ZCamorLly9j/fr1KFmypCrzERERERHlSo4L3ri4OIwbNw5ly5ZFeHg4jh8/jv3796Nq1apfIh8RERERUa7kaEjDnDlzMHv2bFhZWWHr1q3ZDnEgIiIiIspLclTwjh8/HgYGBihbtizWr1+P9evXZ7uev7+/SsIREREREeVWjgpeDw+PT05LRkRERESUl+So4M3uMr5ERERERHkZr7RGRERERBqNBS8RERERaTQWvERERESk0VjwEhEREZFGY8FLRERERBqNBS8RERERaTQWvERERESk0VjwEhEREZFGY8FLRERERBqNBS8RERERaTQWvERERESk0VjwEhEREZFGY8FLRERERBqNBS8RERERaTQWvERERESk0VjwEhEREZFGY8FLRERERBqNBS8RERERaTQWvERERESk0VjwEhEREZFGY8FLRERERBqNBS8RERERaTQWvERERESk0fJ8wevj44M6derA2NgYFhYW+O6773Dr1q2PbnPy5ElIkpTldvPmza+UmoiIiIjyijxf8AYHB2Pw4ME4e/YsAgMDkZqaipYtWyIxMfGT2966dQtRUVHyrVy5cl8hMRERERHlJdrqDvApR44cUbi/du1aWFhY4O+//0bjxo0/uq2FhQVMTU2/YDoiIiIiyuvyfA/v++Li4gAAZmZmn1zXyckJ1tbWaNasGYKCgj66bnJyMuLj4xVuRERERJT/5auCVwiBUaNG4ZtvvkHVqlU/uJ61tTVWrlyJXbt2wd/fHxUqVECzZs1w6tSpD27j4+MDExMT+WZnZ/clHgIRERERfWV5fkhDZkOGDEFYWBhCQkI+ul6FChVQoUIF+X6DBg3w4MEDzJs374PDILy8vDBq1Cj5fnx8PIteIiIiIg2Qb3p4hw4din379iEoKAglSpTI8fb169fH7du3P7hcT08PRYoUUbgRERERUf6X53t4hRAYOnQodu/ejZMnT6J06dJK7efSpUuwtrZWcToiIiIiyuvyfME7ePBgbNmyBXv37oWxsTGio6MBACYmJjAwMADwbjjCo0ePsGHDBgCAr68vSpUqhSpVquDt27fYtGkTdu3ahV27dqntcRARERGReuT5gnfZsmUAAFdXV4X2tWvXolevXgCAqKgoREZGysvevn2LMWPG4NGjRzAwMECVKlVw8OBBtGnT5mvFJiIiIqI8Is8XvEKIT66zbt06hftjx47F2LFjv1AiIiIiIspP8s1Ja0REREREymDBS0REREQajQUvEREREWk0FrxEREREpNFY8BIRERGRRmPBS0REREQajQUvEREREWk0FrxEREREpNFY8BIRERGRRmPBS0REREQajQUvEREREWk0FrxEREREpNFY8BIRERGRRmPBS0REREQajQUvEREREWk0FrxEREREpNFY8BIRERGRRmPBS0REREQajQUvEREREWk0FrxEREREpNFY8BIRERGRRmPBS0REREQajQUvEREREWk0FrxEREREpNFY8BIRERGRRmPBS0REREQajQUvEREREWk0FrxEREREpNFY8BIRERGRRmPBS0REREQajQUvEREREWk0FrxEREREpNFY8BIRERGRRmPBS0REREQaLd8UvEuXLkXp0qWhr6+PWrVq4c8///zo+sHBwahVqxb09fVRpkwZLF++/CslJSIiIqK8JF8UvH5+fhgxYgR+/fVXXLp0CY0aNYKbmxsiIyOzXT8iIgJt2rRBo0aNcOnSJfzyyy8YNmwYdu3a9ZWTExEREZG65YuCd/78+ejbty9++uknVKpUCb6+vrCzs8OyZcuyXX/58uUoWbIkfH19UalSJfz000/o06cP5s2b95WTExEREZG6aas7wKe8ffsWf//9N8aPH6/Q3rJlS5w5cybbbUJDQ9GyZUuFtlatWmH16tVISUmBjo5Olm2Sk5ORnJws34+LiwMAxMfH5/YhfBHpya/VHSHfyauvZV7HYy3neKwph8dazvFYUw6PtZzLq8daRi4hxEfXy/MF7/Pnz5GWlgZLS0uFdktLS0RHR2e7TXR0dLbrp6am4vnz57C2ts6yjY+PD6ZMmZKl3c7OLhfpKS8x8VV3AiooeKzR18Jjjb6WvH6svXr1CiYmJh9cnucL3gySJCncF0JkafvU+tm1Z/Dy8sKoUaPk++np6Xjx4gWKFSv20Z9D/4mPj4ednR0ePHiAIkWKqDsOaTAea/S18Fijr4XHmnKEEHj16hVsbGw+ul6eL3iLFy+OQoUKZenNffr0aZZe3AxWVlbZrq+trY1ixYplu42enh709PQU2kxNTZUPXoAVKVKEb1b6Knis0dfCY42+Fh5rOfexnt0Mef6kNV1dXdSqVQuBgYEK7YGBgXB2ds52mwYNGmRZPyAgALVr1852/C4RERERaa48X/ACwKhRo7Bq1SqsWbMGN27c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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "average_tickets_by_event = df_purchase.groupby('name_event_types')['nb_tickets'].mean()\n", "\n", @@ -8385,39 +8293,22 @@ }, { "cell_type": "code", - "execution_count": 241, + "execution_count": null, "id": "e02b260a-fcb7-418b-87a8-de2bb4e6eb0a", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "customer_id 0\n", - "gender 0\n", - "is_partner 0\n", - "is_email_true 0\n", - "nb_campaigns 34417\n", - "nb_campaigns_opened 34417\n", - "fidelity 0\n", - "product_id 0\n", - "nb_tickets 0\n", - "ticket_sum 0\n", - "average_price 22\n", - "amount 0\n", - "event_type_id 0\n", - "name_event_types 0\n", - "dtype: int64" - ] - }, - "execution_count": 241, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df_purchase.isna().sum()" ] }, + { + "cell_type": "markdown", + "id": "26fa888d-dd33-4990-89bd-6a9c1391098b", + "metadata": {}, + "source": [ + "## Modelisation K-means" + ] + }, { "cell_type": "code", "execution_count": 242,