diff --git a/0_Cleaning_and_merge.ipynb b/0_Cleaning_and_merge.ipynb
index aaaa80a..5077370 100644
--- a/0_Cleaning_and_merge.ipynb
+++ b/0_Cleaning_and_merge.ipynb
@@ -1702,7 +1702,7 @@
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 69,
"id": "043303fe-e90f-4689-a2a9-5d690555a045",
"metadata": {},
"outputs": [],
@@ -1718,6 +1718,12 @@
" # Proportion de vente en ligne\n",
" prop_vente_internet = tickets_information_copy[tickets_information_copy['vente_internet'] == 1].groupby(['customer_id', 'event_type_id'])['ticket_id'].count().reset_index()\n",
" prop_vente_internet.rename(columns = {'ticket_id' : 'nb_tickets_internet'}, inplace = True)\n",
+ "\n",
+ " # Average amount\n",
+ " avg_amount = (tickets_information_copy.groupby([\"event_type_id\", 'name_event_types'])\n",
+ " .agg({\"amount\" : \"mean\"}).reset_index()\n",
+ " .rename(columns = {'amount' : 'avg_amount'}))\n",
+ "\n",
" \n",
" tickets_kpi = (tickets_information_copy[['event_type_id', 'customer_id', 'purchase_id' ,'ticket_id','supplier_name', 'purchase_date', 'amount', 'vente_internet']]\n",
" .groupby(['customer_id', 'event_type_id']) \n",
@@ -1751,15 +1757,15 @@
" tickets_kpi = tickets_kpi.merge(prop_vente_internet, on = ['customer_id', 'event_type_id'], how = 'left')\n",
" tickets_kpi['nb_tickets_internet'] = tickets_kpi['nb_tickets_internet'].fillna(0)\n",
"\n",
- " \n",
- " \n",
+ " tickets_kpi = tickets_kpi.merge(avg_amount, how='left', on= 'event_type_id')\n",
+ "\n",
" return tickets_kpi\n",
" "
]
},
{
"cell_type": "code",
- "execution_count": 35,
+ "execution_count": 70,
"id": "5882234a-1ed5-4269-87a6-0d75613476e3",
"metadata": {},
"outputs": [],
@@ -1938,800 +1944,6 @@
"## Alexis' work"
]
},
- {
- "cell_type": "code",
- "execution_count": 39,
- "id": "273857e0-7112-4294-8ba6-3c39c5cbc13a",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " customer_id | \n",
- " event_type_id | \n",
- " nb_tickets | \n",
- " nb_purchases | \n",
- " total_amount | \n",
- " nb_suppliers | \n",
- " vente_internet_max | \n",
- " purchase_date_min | \n",
- " purchase_date_max | \n",
- " time_between_purchase | \n",
- " nb_tickets_internet | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 1 | \n",
- " 2 | \n",
- " 384226 | \n",
- " 194790 | \n",
- " 2686540.5 | \n",
- " 7 | \n",
- " 1 | \n",
- " 3262.190868 | \n",
- " 4.179306 | \n",
- " 3258.011562 | \n",
- " 51.0 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 1 | \n",
- " 4 | \n",
- " 453242 | \n",
- " 228945 | \n",
- " 3248965.5 | \n",
- " 6 | \n",
- " 1 | \n",
- " 3698.198229 | \n",
- " 5.221840 | \n",
- " 3692.976389 | \n",
- " 2988.0 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 1 | \n",
- " 5 | \n",
- " 201750 | \n",
- " 107110 | \n",
- " 1459190.0 | \n",
- " 6 | \n",
- " 1 | \n",
- " 3803.369792 | \n",
- " 0.146331 | \n",
- " 3803.223461 | \n",
- " 9.0 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 1 | \n",
- " 6 | \n",
- " 217356 | \n",
- " 111786 | \n",
- " 1435871.5 | \n",
- " 5 | \n",
- " 1 | \n",
- " 2502.715509 | \n",
- " 1408.715532 | \n",
- " 1093.999977 | \n",
- " 5.0 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 2 | \n",
- " 2 | \n",
- " 143 | \n",
- " 143 | \n",
- " 0.0 | \n",
- " 1 | \n",
- " 0 | \n",
- " 2041.274549 | \n",
- " 1340.308160 | \n",
- " 700.966389 | \n",
- " 0.0 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " customer_id event_type_id nb_tickets nb_purchases total_amount \\\n",
- "0 1 2 384226 194790 2686540.5 \n",
- "1 1 4 453242 228945 3248965.5 \n",
- "2 1 5 201750 107110 1459190.0 \n",
- "3 1 6 217356 111786 1435871.5 \n",
- "4 2 2 143 143 0.0 \n",
- "\n",
- " nb_suppliers vente_internet_max purchase_date_min purchase_date_max \\\n",
- "0 7 1 3262.190868 4.179306 \n",
- "1 6 1 3698.198229 5.221840 \n",
- "2 6 1 3803.369792 0.146331 \n",
- "3 5 1 2502.715509 1408.715532 \n",
- "4 1 0 2041.274549 1340.308160 \n",
- "\n",
- " time_between_purchase nb_tickets_internet \n",
- "0 3258.011562 51.0 \n",
- "1 3692.976389 2988.0 \n",
- "2 3803.223461 9.0 \n",
- "3 1093.999977 5.0 \n",
- "4 700.966389 0.0 "
- ]
- },
- "execution_count": 39,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "df1_tickets_kpi.head()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 40,
- "id": "449731f3-340f-4648-8210-4622c7dbc174",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " event_type_id | \n",
- " name_event_types | \n",
- " avg_amount | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 2 | \n",
- " offre muséale individuel | \n",
- " 6.150659 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 4 | \n",
- " spectacle vivant | \n",
- " 7.762474 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 5 | \n",
- " offre muséale groupe | \n",
- " 4.452618 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 6 | \n",
- " formule adhésion | \n",
- " 6.439463 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " event_type_id name_event_types avg_amount\n",
- "0 2 offre muséale individuel 6.150659\n",
- "1 4 spectacle vivant 7.762474\n",
- "2 5 offre muséale groupe 4.452618\n",
- "3 6 formule adhésion 6.439463"
- ]
- },
- "execution_count": 40,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "avg_amount = (df1_products_purchased_reduced.groupby([\"event_type_id\", 'name_event_types'])\n",
- " .agg({\"amount\" : \"mean\"}).reset_index()\n",
- " .rename(columns = {'amount' : 'avg_amount'}))\n",
- "\n",
- "avg_amount"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 41,
- "id": "b54bd9e8-3cad-453b-8e58-bf6d047912eb",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " customer_id | \n",
- " event_type_id | \n",
- " nb_tickets | \n",
- " nb_purchases | \n",
- " total_amount | \n",
- " nb_suppliers | \n",
- " vente_internet_max | \n",
- " purchase_date_min | \n",
- " purchase_date_max | \n",
- " time_between_purchase | \n",
- " nb_tickets_internet | \n",
- " name_event_types | \n",
- " avg_amount | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 1 | \n",
- " 2 | \n",
- " 384226 | \n",
- " 194790 | \n",
- " 2686540.5 | \n",
- " 7 | \n",
- " 1 | \n",
- " 3262.190868 | \n",
- " 4.179306 | \n",
- " 3258.011562 | \n",
- " 51.0 | \n",
- " offre muséale individuel | \n",
- " 6.150659 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 1 | \n",
- " 4 | \n",
- " 453242 | \n",
- " 228945 | \n",
- " 3248965.5 | \n",
- " 6 | \n",
- " 1 | \n",
- " 3698.198229 | \n",
- " 5.221840 | \n",
- " 3692.976389 | \n",
- " 2988.0 | \n",
- " spectacle vivant | \n",
- " 7.762474 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 1 | \n",
- " 5 | \n",
- " 201750 | \n",
- " 107110 | \n",
- " 1459190.0 | \n",
- " 6 | \n",
- " 1 | \n",
- " 3803.369792 | \n",
- " 0.146331 | \n",
- " 3803.223461 | \n",
- " 9.0 | \n",
- " offre muséale groupe | \n",
- " 4.452618 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 1 | \n",
- " 6 | \n",
- " 217356 | \n",
- " 111786 | \n",
- " 1435871.5 | \n",
- " 5 | \n",
- " 1 | \n",
- " 2502.715509 | \n",
- " 1408.715532 | \n",
- " 1093.999977 | \n",
- " 5.0 | \n",
- " formule adhésion | \n",
- " 6.439463 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 2 | \n",
- " 2 | \n",
- " 143 | \n",
- " 143 | \n",
- " 0.0 | \n",
- " 1 | \n",
- " 0 | \n",
- " 2041.274549 | \n",
- " 1340.308160 | \n",
- " 700.966389 | \n",
- " 0.0 | \n",
- " offre muséale individuel | \n",
- " 6.150659 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " customer_id event_type_id nb_tickets nb_purchases total_amount \\\n",
- "0 1 2 384226 194790 2686540.5 \n",
- "1 1 4 453242 228945 3248965.5 \n",
- "2 1 5 201750 107110 1459190.0 \n",
- "3 1 6 217356 111786 1435871.5 \n",
- "4 2 2 143 143 0.0 \n",
- "\n",
- " nb_suppliers vente_internet_max purchase_date_min purchase_date_max \\\n",
- "0 7 1 3262.190868 4.179306 \n",
- "1 6 1 3698.198229 5.221840 \n",
- "2 6 1 3803.369792 0.146331 \n",
- "3 5 1 2502.715509 1408.715532 \n",
- "4 1 0 2041.274549 1340.308160 \n",
- "\n",
- " time_between_purchase nb_tickets_internet name_event_types \\\n",
- "0 3258.011562 51.0 offre muséale individuel \n",
- "1 3692.976389 2988.0 spectacle vivant \n",
- "2 3803.223461 9.0 offre muséale groupe \n",
- "3 1093.999977 5.0 formule adhésion \n",
- "4 700.966389 0.0 offre muséale individuel \n",
- "\n",
- " avg_amount \n",
- "0 6.150659 \n",
- "1 7.762474 \n",
- "2 4.452618 \n",
- "3 6.439463 \n",
- "4 6.150659 "
- ]
- },
- "execution_count": 41,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "df1_tickets_kpi = df1_tickets_kpi.merge(avg_amount, how='left', on= 'event_type_id')\n",
- "df1_tickets_kpi.head()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 42,
- "id": "2d6afe74-2517-478b-a99c-da9c7bd2edd4",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " customer_id | \n",
- " birthdate | \n",
- " street_id | \n",
- " is_partner | \n",
- " gender | \n",
- " is_email_true | \n",
- " opt_in | \n",
- " structure_id | \n",
- " profession | \n",
- " language | \n",
- " ... | \n",
- " fidelity | \n",
- " average_purchase_delay | \n",
- " average_price_basket | \n",
- " average_ticket_basket | \n",
- " total_price | \n",
- " purchase_count | \n",
- " first_buying_date | \n",
- " country | \n",
- " age | \n",
- " tenant_id | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 12751 | \n",
- " NaN | \n",
- " 2 | \n",
- " False | \n",
- " 1 | \n",
- " True | \n",
- " True | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " ... | \n",
- " 0 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " 0 | \n",
- " NaT | \n",
- " fr | \n",
- " NaN | \n",
- " 1311 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 12825 | \n",
- " NaN | \n",
- " 2 | \n",
- " False | \n",
- " 2 | \n",
- " True | \n",
- " True | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " ... | \n",
- " 0 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " 0 | \n",
- " NaT | \n",
- " fr | \n",
- " NaN | \n",
- " 1311 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 11261 | \n",
- " NaN | \n",
- " 2 | \n",
- " False | \n",
- " 1 | \n",
- " True | \n",
- " True | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " ... | \n",
- " 0 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " 0 | \n",
- " NaT | \n",
- " fr | \n",
- " NaN | \n",
- " 1311 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 13071 | \n",
- " NaN | \n",
- " 2 | \n",
- " False | \n",
- " 2 | \n",
- " True | \n",
- " True | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " ... | \n",
- " 0 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " 0 | \n",
- " NaT | \n",
- " fr | \n",
- " NaN | \n",
- " 1311 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 653061 | \n",
- " NaN | \n",
- " 10 | \n",
- " False | \n",
- " 2 | \n",
- " True | \n",
- " False | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " ... | \n",
- " 0 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " 0 | \n",
- " NaT | \n",
- " NaN | \n",
- " NaN | \n",
- " 1311 | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 151861 | \n",
- " 295252 | \n",
- " NaN | \n",
- " 10 | \n",
- " False | \n",
- " 2 | \n",
- " True | \n",
- " False | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " ... | \n",
- " 0 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " 0 | \n",
- " NaT | \n",
- " NaN | \n",
- " NaN | \n",
- " 1311 | \n",
- "
\n",
- " \n",
- " 151862 | \n",
- " 295271 | \n",
- " NaN | \n",
- " 10 | \n",
- " False | \n",
- " 2 | \n",
- " True | \n",
- " False | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " ... | \n",
- " 0 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " 0 | \n",
- " NaT | \n",
- " NaN | \n",
- " NaN | \n",
- " 1311 | \n",
- "
\n",
- " \n",
- " 151863 | \n",
- " 295275 | \n",
- " NaN | \n",
- " 10 | \n",
- " False | \n",
- " 2 | \n",
- " True | \n",
- " False | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " ... | \n",
- " 0 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " 0 | \n",
- " NaT | \n",
- " NaN | \n",
- " NaN | \n",
- " 1311 | \n",
- "
\n",
- " \n",
- " 151864 | \n",
- " 295366 | \n",
- " NaN | \n",
- " 2 | \n",
- " False | \n",
- " 2 | \n",
- " True | \n",
- " False | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " ... | \n",
- " 1 | \n",
- " 3.0 | \n",
- " 33.0 | \n",
- " 3.0 | \n",
- " 33.0 | \n",
- " 1 | \n",
- " 2021-05-26 17:20:37+00:00 | \n",
- " fr | \n",
- " NaN | \n",
- " 1311 | \n",
- "
\n",
- " \n",
- " 151865 | \n",
- " 295368 | \n",
- " NaN | \n",
- " 2 | \n",
- " False | \n",
- " 2 | \n",
- " True | \n",
- " False | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " ... | \n",
- " 1 | \n",
- " 6.0 | \n",
- " 22.0 | \n",
- " 2.0 | \n",
- " 22.0 | \n",
- " 1 | \n",
- " 2021-05-26 17:35:38+00:00 | \n",
- " fr | \n",
- " NaN | \n",
- " 1311 | \n",
- "
\n",
- " \n",
- "
\n",
- "
151866 rows × 25 columns
\n",
- "
"
- ],
- "text/plain": [
- " customer_id birthdate street_id is_partner gender is_email_true \\\n",
- "0 12751 NaN 2 False 1 True \n",
- "1 12825 NaN 2 False 2 True \n",
- "2 11261 NaN 2 False 1 True \n",
- "3 13071 NaN 2 False 2 True \n",
- "4 653061 NaN 10 False 2 True \n",
- "... ... ... ... ... ... ... \n",
- "151861 295252 NaN 10 False 2 True \n",
- "151862 295271 NaN 10 False 2 True \n",
- "151863 295275 NaN 10 False 2 True \n",
- "151864 295366 NaN 2 False 2 True \n",
- "151865 295368 NaN 2 False 2 True \n",
- "\n",
- " opt_in structure_id profession language ... fidelity \\\n",
- "0 True NaN NaN NaN ... 0 \n",
- "1 True NaN NaN NaN ... 0 \n",
- "2 True NaN NaN NaN ... 0 \n",
- "3 True NaN NaN NaN ... 0 \n",
- "4 False NaN NaN NaN ... 0 \n",
- "... ... ... ... ... ... ... \n",
- "151861 False NaN NaN NaN ... 0 \n",
- "151862 False NaN NaN NaN ... 0 \n",
- "151863 False NaN NaN NaN ... 0 \n",
- "151864 False NaN NaN NaN ... 1 \n",
- "151865 False NaN NaN NaN ... 1 \n",
- "\n",
- " average_purchase_delay average_price_basket average_ticket_basket \\\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",
- "151861 NaN NaN NaN \n",
- "151862 NaN NaN NaN \n",
- "151863 NaN NaN NaN \n",
- "151864 3.0 33.0 3.0 \n",
- "151865 6.0 22.0 2.0 \n",
- "\n",
- " total_price purchase_count first_buying_date country age \\\n",
- "0 NaN 0 NaT fr NaN \n",
- "1 NaN 0 NaT fr NaN \n",
- "2 NaN 0 NaT fr NaN \n",
- "3 NaN 0 NaT fr NaN \n",
- "4 NaN 0 NaT NaN NaN \n",
- "... ... ... ... ... ... \n",
- "151861 NaN 0 NaT NaN NaN \n",
- "151862 NaN 0 NaT NaN NaN \n",
- "151863 NaN 0 NaT NaN NaN \n",
- "151864 33.0 1 2021-05-26 17:20:37+00:00 fr NaN \n",
- "151865 22.0 1 2021-05-26 17:35:38+00:00 fr NaN \n",
- "\n",
- " tenant_id \n",
- "0 1311 \n",
- "1 1311 \n",
- "2 1311 \n",
- "3 1311 \n",
- "4 1311 \n",
- "... ... \n",
- "151861 1311 \n",
- "151862 1311 \n",
- "151863 1311 \n",
- "151864 1311 \n",
- "151865 1311 \n",
- "\n",
- "[151866 rows x 25 columns]"
- ]
- },
- "execution_count": 42,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "df1_customerplus_clean"
- ]
- },
{
"cell_type": "code",
"execution_count": 43,