diff --git a/0_Cleaning_and_merge.ipynb b/0_Cleaning_and_merge.ipynb
index 8b723e0..89910f7 100644
--- a/0_Cleaning_and_merge.ipynb
+++ b/0_Cleaning_and_merge.ipynb
@@ -38,8 +38,7 @@
"outputs": [],
"source": [
"# Create filesystem object\n",
- "S3_ENDPOINT_URL = \"https://\" + os.environ[\"AWS_S3_ENDPOINT\"]\n",
- "fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': S3_ENDPOINT_URL})"
+ "fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': 'https://'+'minio-simple.lab.groupe-genes.fr'},key ='WKTGH4YGUBAT3TR0OSUR', secret = 'g8ozi6ZUrBy8DzaAip4F7zOizbr4DKf4RgYNseqU', token = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiJXS1RHSDRZR1VCQVQzVFIwT1NVUiIsImFjciI6IjAiLCJhbGxvd2VkLW9yaWdpbnMiOlsiaHR0cHM6Ly9vbnl4aWEubGFiLmdyb3VwZS1nZW5lcy5mciJdLCJhdWQiOlsibWluaW8iLCJhY2NvdW50Il0sImF1dGhfdGltZSI6MTcwNzU4NjUwMCwiYXpwIjoib255eGlhLW1pbmlvIiwiZW1haWwiOiJhbnRvaW5lLmpvdWJyZWxAZW5zYWUuZnIiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZXhwIjoxNzA3NjczMDQ3LCJmYW1pbHlfbmFtZSI6IkpPVUJSRUwiLCJnaXZlbl9uYW1lIjoiQW50b2luZSIsImdyb3VwcyI6WyJiZGMyMzI0LXRlYW0xIl0sImlhdCI6MTcwNzU4NjY0NywiaXNzIjoiaHR0cHM6Ly9hdXRoLmdyb3VwZS1nZW5lcy5mci9yZWFsbXMvZ2VuZXMiLCJqdGkiOiI1MjQ2MDZmMS1lYWM3LTQxZDgtYTEzMy04MGZjMDk0MGVlNzEiLCJuYW1lIjoiQW50b2luZSBKT1VCUkVMIiwicG9saWN5Ijoic3Rzb25seSIsInByZWZlcnJlZF91c2VybmFtZSI6ImFqb3VicmVsLWVuc2FlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwiZGVmYXVsdC1yb2xlcy1nZW5lcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCIsInNlc3Npb25fc3RhdGUiOiI1OTk2MWNkYy0xNmFiLTQ4MTAtYWE4Zi1iZGUyMjkwNjhiNzUiLCJzaWQiOiI1OTk2MWNkYy0xNmFiLTQ4MTAtYWE4Zi1iZGUyMjkwNjhiNzUiLCJzdWIiOiIwNWYwZDk3Mi1jNWM4LTQyNmYtODAwZC00NmQ0OGU4NjkwMzUiLCJ0eXAiOiJCZWFyZXIifQ.-imw-N4bk1uCcQGobkxhsRoeBAqxC9rT7PifElbC7ODOStnwIulc7HRR2fmtiqI2PdyrfnVvzfmIPK1g056HbA')"
]
},
{
@@ -60,7 +59,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 93,
"id": "699664b9-eee4-4f8d-a207-e524526560c5",
"metadata": {},
"outputs": [],
@@ -810,153 +809,6 @@
"df1_campaigns_information.head()"
]
},
- {
- "cell_type": "code",
- "execution_count": 18,
- "id": "e2c88552-b863-47a2-be23-8d2898fb28bc",
- "metadata": {},
- "outputs": [],
- "source": [
- "def campaigns_kpi_function(campaigns_information = None):\n",
- " # Nombre de campagnes de mails\n",
- " nb_campaigns = campaigns_information[['customer_id', 'campaign_name']].groupby('customer_id').count().reset_index()\n",
- " nb_campaigns.rename(columns = {'campaign_name' : 'nb_campaigns'}, inplace = True)\n",
- " # Temps d'ouverture en min moyen \n",
- " campaigns_information['time_to_open'] = campaigns_information['opened_at'] - campaigns_information['delivered_at']\n",
- " time_to_open = campaigns_information[['customer_id', 'time_to_open']].groupby('customer_id').mean().reset_index()\n",
- "\n",
- " # Nombre de mail ouvert \n",
- " opened_campaign = campaigns_information[['customer_id', 'campaign_name', 'opened_at']]\n",
- " opened_campaign.dropna(subset=['opened_at'], inplace=True)\n",
- " opened_campaign = opened_campaign[['customer_id', 'campaign_name']].groupby('customer_id').count().reset_index()\n",
- " opened_campaign.rename(columns = {'campaign_name' : 'nb_campaigns_opened' }, inplace = True)\n",
- "\n",
- " # Fusion des indicateurs\n",
- " campaigns_reduced = pd.merge(nb_campaigns, opened_campaign, on = 'customer_id', how = 'left')\n",
- " campaigns_reduced = pd.merge(campaigns_reduced, time_to_open, on = 'customer_id', how = 'left')\n",
- "\n",
- " # Remplir les NaN : nb_campaigns_opened\n",
- " campaigns_reduced['nb_campaigns_opened'].fillna(0, inplace=True)\n",
- "\n",
- " # Remplir les NaT : time_to_open (??)\n",
- "\n",
- " return campaigns_reduced\n",
- " "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "id": "24537647-bc29-4777-9848-ac4120a4aa60",
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/tmp/ipykernel_8302/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",
- " opened_campaign.dropna(subset=['opened_at'], inplace=True)\n"
- ]
- }
- ],
- "source": [
- "df1_campaigns_kpi = campaigns_kpi_function(campaigns_information = df1_campaigns_information) "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 20,
- "id": "6be2a9a6-056b-4e19-8c26-a18ba3df36b3",
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " customer_id | \n",
- " nb_campaigns | \n",
- " nb_campaigns_opened | \n",
- " time_to_open | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 2 | \n",
- " 4 | \n",
- " 0.0 | \n",
- " NaT | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 3 | \n",
- " 222 | \n",
- " 124.0 | \n",
- " 1 days 00:28:30.169354838 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 4 | \n",
- " 7 | \n",
- " 7.0 | \n",
- " 1 days 04:31:01.428571428 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 5 | \n",
- " 4 | \n",
- " 0.0 | \n",
- " NaT | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 6 | \n",
- " 20 | \n",
- " 0.0 | \n",
- " NaT | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " customer_id nb_campaigns nb_campaigns_opened time_to_open\n",
- "0 2 4 0.0 NaT\n",
- "1 3 222 124.0 1 days 00:28:30.169354838\n",
- "2 4 7 7.0 1 days 04:31:01.428571428\n",
- "3 5 4 0.0 NaT\n",
- "4 6 20 0.0 NaT"
- ]
- },
- "execution_count": 20,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "df1_campaigns_kpi.head()"
- ]
- },
{
"cell_type": "markdown",
"id": "56520a97-ede8-4920-a211-3b5b136af33d",
@@ -1899,20 +1751,175 @@
"df1_products_purchased = pd.merge(df1_ticket_information, products_global, left_on = 'product_id', right_on = 'id_products', how = 'inner')"
]
},
+ {
+ "cell_type": "markdown",
+ "id": "d7c3668a-c016-4bd0-837e-04af328ff14f",
+ "metadata": {},
+ "source": [
+ "# Construction des variables explicatives"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "314f1b7f-ae48-4c6f-8469-9ce879043243",
+ "metadata": {},
+ "source": [
+ "## KPI campaigns"
+ ]
+ },
{
"cell_type": "code",
- "execution_count": null,
- "id": "52db7bcb-3fb7-48e5-b612-4e22bdab4a94",
+ "execution_count": 18,
+ "id": "e2c88552-b863-47a2-be23-8d2898fb28bc",
"metadata": {},
"outputs": [],
- "source": []
+ "source": [
+ "def campaigns_kpi_function(campaigns_information = None):\n",
+ " # Nombre de campagnes de mails\n",
+ " nb_campaigns = campaigns_information[['customer_id', 'campaign_name']].groupby('customer_id').count().reset_index()\n",
+ " nb_campaigns.rename(columns = {'campaign_name' : 'nb_campaigns'}, inplace = True)\n",
+ " # Temps d'ouverture en min moyen \n",
+ " campaigns_information['time_to_open'] = campaigns_information['opened_at'] - campaigns_information['delivered_at']\n",
+ " time_to_open = campaigns_information[['customer_id', 'time_to_open']].groupby('customer_id').mean().reset_index()\n",
+ "\n",
+ " # Nombre de mail ouvert \n",
+ " opened_campaign = campaigns_information[['customer_id', 'campaign_name', 'opened_at']]\n",
+ " opened_campaign.dropna(subset=['opened_at'], inplace=True)\n",
+ " opened_campaign = opened_campaign[['customer_id', 'campaign_name']].groupby('customer_id').count().reset_index()\n",
+ " opened_campaign.rename(columns = {'campaign_name' : 'nb_campaigns_opened' }, inplace = True)\n",
+ "\n",
+ " # Fusion des indicateurs\n",
+ " campaigns_reduced = pd.merge(nb_campaigns, opened_campaign, on = 'customer_id', how = 'left')\n",
+ " campaigns_reduced = pd.merge(campaigns_reduced, time_to_open, on = 'customer_id', how = 'left')\n",
+ "\n",
+ " # Remplir les NaN : nb_campaigns_opened\n",
+ " campaigns_reduced['nb_campaigns_opened'].fillna(0, inplace=True)\n",
+ "\n",
+ " # Remplir les NaT : time_to_open (??)\n",
+ "\n",
+ " return campaigns_reduced\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "24537647-bc29-4777-9848-ac4120a4aa60",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/tmp/ipykernel_8302/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",
+ " opened_campaign.dropna(subset=['opened_at'], inplace=True)\n"
+ ]
+ }
+ ],
+ "source": [
+ "df1_campaigns_kpi = campaigns_kpi_function(campaigns_information = df1_campaigns_information) "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "6be2a9a6-056b-4e19-8c26-a18ba3df36b3",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " customer_id | \n",
+ " nb_campaigns | \n",
+ " nb_campaigns_opened | \n",
+ " time_to_open | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 4 | \n",
+ " 0.0 | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 3 | \n",
+ " 222 | \n",
+ " 124.0 | \n",
+ " 1 days 00:28:30.169354838 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 4 | \n",
+ " 7 | \n",
+ " 7.0 | \n",
+ " 1 days 04:31:01.428571428 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 4 | \n",
+ " 0.0 | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 20 | \n",
+ " 0.0 | \n",
+ " NaT | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " customer_id nb_campaigns nb_campaigns_opened time_to_open\n",
+ "0 2 4 0.0 NaT\n",
+ "1 3 222 124.0 1 days 00:28:30.169354838\n",
+ "2 4 7 7.0 1 days 04:31:01.428571428\n",
+ "3 5 4 0.0 NaT\n",
+ "4 6 20 0.0 NaT"
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df1_campaigns_kpi.head()"
+ ]
},
{
"cell_type": "markdown",
"id": "d4dcfbe0-c6ce-497e-b75e-dc9e938801b2",
"metadata": {},
"source": [
- "### KPI tickets"
+ "## KPI tickets"
]
},
{
@@ -1978,7 +1985,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 78,
"id": "3d8b0875-b409-44ce-b688-d9d6758782d3",
"metadata": {},
"outputs": [
@@ -2105,177 +2112,48 @@
" 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 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",
- " 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": 33,
+ "execution_count": 78,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Importance des suppliers\n",
- "df1_products_purchased_reduced"
+ "df1_products_purchased_reduced.head()"
]
},
{
@@ -2291,7 +2169,7 @@
},
{
"cell_type": "code",
- "execution_count": 74,
+ "execution_count": 82,
"id": "043303fe-e90f-4689-a2a9-5d690555a045",
"metadata": {},
"outputs": [],
@@ -2305,11 +2183,11 @@
" tickets_information_copy['vente_internet'] = tickets_information_copy['supplier_name'].str.contains('|'.join(liste_mots), case=False).astype(int)\n",
"\n",
" # Proportion de vente en ligne\n",
- " prop_vente_internet = tickets_information_copy[tickets_information_copy['vente_internet'] == 1].groupby('customer_id')['ticket_id'].count().reset_index()\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",
" tickets_kpi = (tickets_information_copy[['event_type_id', 'customer_id', 'ticket_id','supplier_name', 'purchase_date', 'amount', 'vente_internet']]\n",
- " .groupby([ 'customer_id']) # 'event_type_id',\n",
+ " .groupby(['customer_id', 'event_type_id']) \n",
" .agg({'ticket_id': 'count', \n",
" 'amount' : 'sum',\n",
" 'supplier_name': 'nunique',\n",
@@ -2322,11 +2200,12 @@
" tickets_kpi.rename(columns = {'ticket_id_count' : 'nb_tickets', \n",
" 'amount_sum' : 'total_amount',\n",
" 'supplier_name_nunique' : 'nb_suppliers', \n",
- " 'customer_id_' : 'customer_id'}, inplace = True)\n",
+ " 'customer_id_' : 'customer_id',\n",
+ " 'event_type_id_' : 'event_type_id'}, inplace = True)\n",
" \n",
" tickets_kpi['time_between_purchase'] = tickets_kpi['purchase_date_max'] - tickets_kpi['purchase_date_min']\n",
"\n",
- " tickets_kpi = tickets_kpi.merge(prop_vente_internet, on = 'customer_id', how = 'left')\n",
+ " 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",
" return tickets_kpi\n",
@@ -2335,7 +2214,7 @@
},
{
"cell_type": "code",
- "execution_count": 75,
+ "execution_count": 83,
"id": "5882234a-1ed5-4269-87a6-0d75613476e3",
"metadata": {},
"outputs": [],
@@ -2343,9 +2222,33 @@
"df1_tickets_kpi = tickets_kpi_function(tickets_information = df1_products_purchased_reduced)"
]
},
+ {
+ "cell_type": "markdown",
+ "id": "597b241e-a83d-4b7c-8ad7-eec50295dff2",
+ "metadata": {},
+ "source": [
+ "#### Exportation"
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 77,
+ "execution_count": 92,
+ "id": "a4a2311d-8a72-4030-afd5-218004d5d2a5",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Exportation vers 'projet-bdc2324-team1'\n",
+ "BUCKET_OUT = \"projet-bdc2324-team1\"\n",
+ "FILE_KEY_OUT_S3 = \"0_Temp/Company 1 - Purchasing behaviour.csv\"\n",
+ "FILE_PATH_OUT_S3 = BUCKET_OUT + \"/\" + FILE_KEY_OUT_S3\n",
+ "\n",
+ "with fs.open(FILE_PATH_OUT_S3, 'w') as file_out:\n",
+ " df1_tickets_kpi.to_csv(file_out)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 84,
"id": "a7a452a6-cd5e-4c8b-b250-8a7d26e48fad",
"metadata": {},
"outputs": [
@@ -2371,6 +2274,7 @@
" \n",
" | \n",
" customer_id | \n",
+ " event_type_id | \n",
" nb_tickets | \n",
" total_amount | \n",
" nb_suppliers | \n",
@@ -2383,474 +2287,104 @@
" \n",
"
\n",
" \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 4 | \n",
+ " 453242 | \n",
+ " 3248965.5 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 2013-09-23 14:45:01+00:00 | \n",
+ " 2023-11-03 14:11:01+00:00 | \n",
+ " 3692 days 23:26:00 | \n",
+ " 2988.0 | \n",
+ "
\n",
+ " \n",
" 0 | \n",
" 1 | \n",
- " 1256574 | \n",
- " 8830567.5 | \n",
+ " 2 | \n",
+ " 384226 | \n",
+ " 2686540.5 | \n",
" 7 | \n",
" 1 | \n",
+ " 2014-12-03 14:55:37+00:00 | \n",
+ " 2023-11-04 15:12:16+00:00 | \n",
+ " 3258 days 00:16:39 | \n",
+ " 51.0 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 217356 | \n",
+ " 1435871.5 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 2017-01-01 02:20:08+00:00 | \n",
+ " 2019-12-31 02:20:06+00:00 | \n",
+ " 1093 days 23:59:58 | \n",
+ " 5.0 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 5 | \n",
+ " 201750 | \n",
+ " 1459190.0 | \n",
+ " 6 | \n",
+ " 1 | \n",
" 2013-06-10 10:37:58+00:00 | \n",
" 2023-11-08 15:59:45+00:00 | \n",
" 3803 days 05:21:47 | \n",
- " 3053.0 | \n",
+ " 9.0 | \n",
"
\n",
" \n",
- " 3615 | \n",
+ " 5032 | \n",
" 6733 | \n",
- " 35527 | \n",
- " 1188.0 | \n",
- " 4 | \n",
- " 1 | \n",
- " 2015-09-09 13:48:38+00:00 | \n",
- " 2023-11-03 09:42:40+00:00 | \n",
- " 2976 days 19:54:02 | \n",
- " 30896.0 | \n",
- "
\n",
- " \n",
- " 39 | \n",
- " 41 | \n",
- " 16263 | \n",
- " 37642.0 | \n",
" 6 | \n",
- " 1 | \n",
- " 2014-01-23 16:56:57+00:00 | \n",
- " 2023-10-25 09:13:16+00:00 | \n",
- " 3561 days 16:16:19 | \n",
- " 13993.0 | \n",
- "
\n",
- " \n",
- " 11 | \n",
- " 12 | \n",
- " 5871 | \n",
- " 38767.0 | \n",
- " 2 | \n",
- " 1 | \n",
- " 2018-04-04 07:46:31+00:00 | \n",
- " 2023-11-04 13:46:59+00:00 | \n",
- " 2040 days 06:00:28 | \n",
- " 167.0 | \n",
- "
\n",
- " \n",
- " 32809 | \n",
- " 63488 | \n",
- " 5851 | \n",
- " 64350.0 | \n",
- " 1 | \n",
- " 1 | \n",
- " 2020-08-18 08:32:57+00:00 | \n",
- " 2022-08-25 13:08:38+00:00 | \n",
- " 737 days 04:35:41 | \n",
- " 5851.0 | \n",
- "
\n",
- " \n",
- " 3708 | \n",
- " 6916 | \n",
- " 5482 | \n",
- " 51489.5 | \n",
- " 2 | \n",
- " 1 | \n",
- " 2018-03-26 11:13:43+00:00 | \n",
- " 2021-08-26 12:49:17+00:00 | \n",
- " 1249 days 01:35:34 | \n",
- " 5481.0 | \n",
- "
\n",
- " \n",
- " 32616 | \n",
- " 63194 | \n",
- " 4507 | \n",
- " 13232.0 | \n",
+ " 14208 | \n",
+ " 0.0 | \n",
" 3 | \n",
" 1 | \n",
- " 2017-11-28 13:52:15+00:00 | \n",
- " 2022-09-07 12:55:33+00:00 | \n",
- " 1743 days 23:03:18 | \n",
- " 826.0 | \n",
- "
\n",
- " \n",
- " 78 | \n",
- " 81 | \n",
- " 3562 | \n",
- " 38746.0 | \n",
- " 1 | \n",
- " 1 | \n",
- " 2017-01-05 13:04:58+00:00 | \n",
- " 2022-08-30 11:51:34+00:00 | \n",
- " 2062 days 22:46:36 | \n",
- " 3562.0 | \n",
- "
\n",
- " \n",
- " 35295 | \n",
- " 84002 | \n",
- " 3403 | \n",
- " 19830.0 | \n",
- " 4 | \n",
- " 1 | \n",
- " 2021-05-28 10:22:33+00:00 | \n",
- " 2023-11-06 15:59:22+00:00 | \n",
- " 892 days 05:36:49 | \n",
- " 869.0 | \n",
- "
\n",
- " \n",
- " 3377 | \n",
- " 5618 | \n",
- " 3294 | \n",
- " 31684.5 | \n",
- " 1 | \n",
- " 1 | \n",
- " 2018-10-25 11:04:24+00:00 | \n",
- " 2022-02-24 07:47:20+00:00 | \n",
- " 1217 days 20:42:56 | \n",
- " 3294.0 | \n",
- "
\n",
- " \n",
- " 30011 | \n",
- " 59259 | \n",
- " 2591 | \n",
- " 4350.0 | \n",
- " 3 | \n",
- " 1 | \n",
- " 2019-11-25 08:52:48+00:00 | \n",
- " 2023-06-12 14:05:19+00:00 | \n",
- " 1295 days 05:12:31 | \n",
- " 52.0 | \n",
- "
\n",
- " \n",
- " 34937 | \n",
- " 74876 | \n",
- " 2571 | \n",
- " 2600.0 | \n",
- " 2 | \n",
- " 1 | \n",
- " 2018-02-08 12:54:01+00:00 | \n",
- " 2023-10-02 08:13:05+00:00 | \n",
- " 2061 days 19:19:04 | \n",
- " 448.0 | \n",
- "
\n",
- " \n",
- " 270 | \n",
- " 295 | \n",
- " 2570 | \n",
- " 17678.5 | \n",
- " 6 | \n",
- " 1 | \n",
- " 2014-01-24 15:16:17+00:00 | \n",
- " 2023-10-16 10:19:22+00:00 | \n",
- " 3551 days 19:03:05 | \n",
- " 1479.0 | \n",
- "
\n",
- " \n",
- " 866 | \n",
- " 1221 | \n",
- " 2320 | \n",
- " 9652.0 | \n",
- " 2 | \n",
- " 1 | \n",
- " 2017-03-29 08:00:09+00:00 | \n",
- " 2022-09-19 12:55:15+00:00 | \n",
- " 2000 days 04:55:06 | \n",
- " 104.0 | \n",
- "
\n",
- " \n",
- " 1022 | \n",
- " 1429 | \n",
- " 2249 | \n",
- " 3500.0 | \n",
- " 4 | \n",
- " 1 | \n",
- " 2014-12-03 14:56:38+00:00 | \n",
- " 2023-11-06 08:30:37+00:00 | \n",
- " 3259 days 17:33:59 | \n",
- " 690.0 | \n",
- "
\n",
- " \n",
- " 3922 | \n",
- " 7249 | \n",
- " 1827 | \n",
- " 13385.0 | \n",
- " 1 | \n",
- " 1 | \n",
- " 2019-05-07 12:34:56+00:00 | \n",
- " 2021-10-26 12:28:40+00:00 | \n",
- " 902 days 23:53:44 | \n",
- " 1827.0 | \n",
- "
\n",
- " \n",
- " 54425 | \n",
- " 1070539 | \n",
- " 1800 | \n",
- " 19800.0 | \n",
- " 1 | \n",
- " 1 | \n",
- " 2022-05-02 16:09:03+00:00 | \n",
- " 2022-07-25 12:49:27+00:00 | \n",
- " 83 days 20:40:24 | \n",
- " 1800.0 | \n",
- "
\n",
- " \n",
- " 69520 | \n",
- " 1216801 | \n",
- " 1623 | \n",
- " 12562.0 | \n",
- " 2 | \n",
- " 0 | \n",
- " 2023-06-16 14:16:04+00:00 | \n",
- " 2023-09-29 16:34:38+00:00 | \n",
- " 105 days 02:18:34 | \n",
- " 0.0 | \n",
- "
\n",
- " \n",
- " 30056 | \n",
- " 59330 | \n",
- " 1551 | \n",
- " 0.0 | \n",
- " 1 | \n",
- " 0 | \n",
- " 2018-02-02 08:53:51+00:00 | \n",
- " 2023-11-06 10:22:14+00:00 | \n",
- " 2103 days 01:28:23 | \n",
- " 0.0 | \n",
- "
\n",
- " \n",
- " 3243 | \n",
- " 5441 | \n",
- " 1544 | \n",
- " 14133.0 | \n",
- " 2 | \n",
- " 1 | \n",
- " 2017-12-14 12:50:23+00:00 | \n",
- " 2022-09-22 08:21:47+00:00 | \n",
- " 1742 days 19:31:24 | \n",
- " 1384.0 | \n",
- "
\n",
- " \n",
- " 55195 | \n",
- " 1084435 | \n",
- " 1500 | \n",
- " 16500.0 | \n",
- " 1 | \n",
- " 1 | \n",
- " 2022-05-18 08:04:41+00:00 | \n",
- " 2022-09-27 14:32:13+00:00 | \n",
- " 132 days 06:27:32 | \n",
- " 1500.0 | \n",
- "
\n",
- " \n",
- " 28983 | \n",
- " 57816 | \n",
- " 1485 | \n",
- " 0.0 | \n",
- " 2 | \n",
- " 1 | \n",
- " 2019-01-21 14:19:18+00:00 | \n",
- " 2023-05-22 07:30:55+00:00 | \n",
- " 1581 days 17:11:37 | \n",
- " 357.0 | \n",
- "
\n",
- " \n",
- " 2231 | \n",
- " 2942 | \n",
- " 1307 | \n",
- " 100.0 | \n",
- " 2 | \n",
- " 1 | \n",
- " 2017-10-25 15:06:58+00:00 | \n",
- " 2023-06-29 09:33:58+00:00 | \n",
- " 2072 days 18:27:00 | \n",
- " 676.0 | \n",
- "
\n",
- " \n",
- " 23 | \n",
- " 24 | \n",
- " 1266 | \n",
- " 0.0 | \n",
- " 2 | \n",
- " 1 | \n",
- " 2015-09-30 16:07:52+00:00 | \n",
- " 2023-10-19 07:20:48+00:00 | \n",
- " 2940 days 15:12:56 | \n",
- " 556.0 | \n",
- "
\n",
- " \n",
- " 4513 | \n",
- " 9592 | \n",
- " 1211 | \n",
- " 62.0 | \n",
- " 4 | \n",
- " 1 | \n",
- " 2018-02-25 07:17:19+00:00 | \n",
- " 2023-10-17 09:39:40+00:00 | \n",
- " 2060 days 02:22:21 | \n",
- " 353.0 | \n",
- "
\n",
- " \n",
- " 2936 | \n",
- " 5059 | \n",
- " 1186 | \n",
- " 6308.0 | \n",
- " 3 | \n",
- " 1 | \n",
- " 2018-02-01 11:16:51+00:00 | \n",
- " 2023-05-22 13:41:22+00:00 | \n",
- " 1936 days 02:24:31 | \n",
- " 1182.0 | \n",
- "
\n",
- " \n",
- " 11484 | \n",
- " 25100 | \n",
- " 1123 | \n",
- " 0.0 | \n",
- " 1 | \n",
- " 1 | \n",
- " 2015-12-21 15:38:05+00:00 | \n",
- " 2021-07-13 07:39:57+00:00 | \n",
- " 2030 days 16:01:52 | \n",
- " 1123.0 | \n",
- "
\n",
- " \n",
- " 934 | \n",
- " 1326 | \n",
- " 1098 | \n",
- " 798.0 | \n",
- " 3 | \n",
- " 1 | \n",
- " 2018-02-13 13:13:48+00:00 | \n",
- " 2023-02-01 08:39:45+00:00 | \n",
- " 1813 days 19:25:57 | \n",
- " 266.0 | \n",
- "
\n",
- " \n",
- " 30156 | \n",
- " 59490 | \n",
- " 1088 | \n",
- " 0.0 | \n",
- " 1 | \n",
- " 0 | \n",
- " 2019-12-06 12:59:20+00:00 | \n",
- " 2023-10-05 08:23:50+00:00 | \n",
- " 1398 days 19:24:30 | \n",
- " 0.0 | \n",
- "
\n",
- " \n",
- " 36478 | \n",
- " 251268 | \n",
- " 1086 | \n",
- " 0.0 | \n",
- " 2 | \n",
- " 1 | \n",
- " 2018-02-02 09:06:22+00:00 | \n",
- " 2023-06-30 07:22:46+00:00 | \n",
- " 1973 days 22:16:24 | \n",
- " 279.0 | \n",
+ " 2017-01-11 15:00:54+00:00 | \n",
+ " 2019-11-27 09:47:06+00:00 | \n",
+ " 1049 days 18:46:12 | \n",
+ " 13497.0 | \n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " customer_id nb_tickets total_amount nb_suppliers \\\n",
- "0 1 1256574 8830567.5 7 \n",
- "3615 6733 35527 1188.0 4 \n",
- "39 41 16263 37642.0 6 \n",
- "11 12 5871 38767.0 2 \n",
- "32809 63488 5851 64350.0 1 \n",
- "3708 6916 5482 51489.5 2 \n",
- "32616 63194 4507 13232.0 3 \n",
- "78 81 3562 38746.0 1 \n",
- "35295 84002 3403 19830.0 4 \n",
- "3377 5618 3294 31684.5 1 \n",
- "30011 59259 2591 4350.0 3 \n",
- "34937 74876 2571 2600.0 2 \n",
- "270 295 2570 17678.5 6 \n",
- "866 1221 2320 9652.0 2 \n",
- "1022 1429 2249 3500.0 4 \n",
- "3922 7249 1827 13385.0 1 \n",
- "54425 1070539 1800 19800.0 1 \n",
- "69520 1216801 1623 12562.0 2 \n",
- "30056 59330 1551 0.0 1 \n",
- "3243 5441 1544 14133.0 2 \n",
- "55195 1084435 1500 16500.0 1 \n",
- "28983 57816 1485 0.0 2 \n",
- "2231 2942 1307 100.0 2 \n",
- "23 24 1266 0.0 2 \n",
- "4513 9592 1211 62.0 4 \n",
- "2936 5059 1186 6308.0 3 \n",
- "11484 25100 1123 0.0 1 \n",
- "934 1326 1098 798.0 3 \n",
- "30156 59490 1088 0.0 1 \n",
- "36478 251268 1086 0.0 2 \n",
+ " customer_id event_type_id nb_tickets total_amount nb_suppliers \\\n",
+ "1 1 4 453242 3248965.5 6 \n",
+ "0 1 2 384226 2686540.5 7 \n",
+ "3 1 6 217356 1435871.5 5 \n",
+ "2 1 5 201750 1459190.0 6 \n",
+ "5032 6733 6 14208 0.0 3 \n",
"\n",
- " vente_internet_max purchase_date_min purchase_date_max \\\n",
- "0 1 2013-06-10 10:37:58+00:00 2023-11-08 15:59:45+00:00 \n",
- "3615 1 2015-09-09 13:48:38+00:00 2023-11-03 09:42:40+00:00 \n",
- "39 1 2014-01-23 16:56:57+00:00 2023-10-25 09:13:16+00:00 \n",
- "11 1 2018-04-04 07:46:31+00:00 2023-11-04 13:46:59+00:00 \n",
- "32809 1 2020-08-18 08:32:57+00:00 2022-08-25 13:08:38+00:00 \n",
- "3708 1 2018-03-26 11:13:43+00:00 2021-08-26 12:49:17+00:00 \n",
- "32616 1 2017-11-28 13:52:15+00:00 2022-09-07 12:55:33+00:00 \n",
- "78 1 2017-01-05 13:04:58+00:00 2022-08-30 11:51:34+00:00 \n",
- "35295 1 2021-05-28 10:22:33+00:00 2023-11-06 15:59:22+00:00 \n",
- "3377 1 2018-10-25 11:04:24+00:00 2022-02-24 07:47:20+00:00 \n",
- "30011 1 2019-11-25 08:52:48+00:00 2023-06-12 14:05:19+00:00 \n",
- "34937 1 2018-02-08 12:54:01+00:00 2023-10-02 08:13:05+00:00 \n",
- "270 1 2014-01-24 15:16:17+00:00 2023-10-16 10:19:22+00:00 \n",
- "866 1 2017-03-29 08:00:09+00:00 2022-09-19 12:55:15+00:00 \n",
- "1022 1 2014-12-03 14:56:38+00:00 2023-11-06 08:30:37+00:00 \n",
- "3922 1 2019-05-07 12:34:56+00:00 2021-10-26 12:28:40+00:00 \n",
- "54425 1 2022-05-02 16:09:03+00:00 2022-07-25 12:49:27+00:00 \n",
- "69520 0 2023-06-16 14:16:04+00:00 2023-09-29 16:34:38+00:00 \n",
- "30056 0 2018-02-02 08:53:51+00:00 2023-11-06 10:22:14+00:00 \n",
- "3243 1 2017-12-14 12:50:23+00:00 2022-09-22 08:21:47+00:00 \n",
- "55195 1 2022-05-18 08:04:41+00:00 2022-09-27 14:32:13+00:00 \n",
- "28983 1 2019-01-21 14:19:18+00:00 2023-05-22 07:30:55+00:00 \n",
- "2231 1 2017-10-25 15:06:58+00:00 2023-06-29 09:33:58+00:00 \n",
- "23 1 2015-09-30 16:07:52+00:00 2023-10-19 07:20:48+00:00 \n",
- "4513 1 2018-02-25 07:17:19+00:00 2023-10-17 09:39:40+00:00 \n",
- "2936 1 2018-02-01 11:16:51+00:00 2023-05-22 13:41:22+00:00 \n",
- "11484 1 2015-12-21 15:38:05+00:00 2021-07-13 07:39:57+00:00 \n",
- "934 1 2018-02-13 13:13:48+00:00 2023-02-01 08:39:45+00:00 \n",
- "30156 0 2019-12-06 12:59:20+00:00 2023-10-05 08:23:50+00:00 \n",
- "36478 1 2018-02-02 09:06:22+00:00 2023-06-30 07:22:46+00:00 \n",
+ " vente_internet_max purchase_date_min purchase_date_max \\\n",
+ "1 1 2013-09-23 14:45:01+00:00 2023-11-03 14:11:01+00:00 \n",
+ "0 1 2014-12-03 14:55:37+00:00 2023-11-04 15:12:16+00:00 \n",
+ "3 1 2017-01-01 02:20:08+00:00 2019-12-31 02:20:06+00:00 \n",
+ "2 1 2013-06-10 10:37:58+00:00 2023-11-08 15:59:45+00:00 \n",
+ "5032 1 2017-01-11 15:00:54+00:00 2019-11-27 09:47:06+00:00 \n",
"\n",
- " time_between_purchase nb_tickets_internet \n",
- "0 3803 days 05:21:47 3053.0 \n",
- "3615 2976 days 19:54:02 30896.0 \n",
- "39 3561 days 16:16:19 13993.0 \n",
- "11 2040 days 06:00:28 167.0 \n",
- "32809 737 days 04:35:41 5851.0 \n",
- "3708 1249 days 01:35:34 5481.0 \n",
- "32616 1743 days 23:03:18 826.0 \n",
- "78 2062 days 22:46:36 3562.0 \n",
- "35295 892 days 05:36:49 869.0 \n",
- "3377 1217 days 20:42:56 3294.0 \n",
- "30011 1295 days 05:12:31 52.0 \n",
- "34937 2061 days 19:19:04 448.0 \n",
- "270 3551 days 19:03:05 1479.0 \n",
- "866 2000 days 04:55:06 104.0 \n",
- "1022 3259 days 17:33:59 690.0 \n",
- "3922 902 days 23:53:44 1827.0 \n",
- "54425 83 days 20:40:24 1800.0 \n",
- "69520 105 days 02:18:34 0.0 \n",
- "30056 2103 days 01:28:23 0.0 \n",
- "3243 1742 days 19:31:24 1384.0 \n",
- "55195 132 days 06:27:32 1500.0 \n",
- "28983 1581 days 17:11:37 357.0 \n",
- "2231 2072 days 18:27:00 676.0 \n",
- "23 2940 days 15:12:56 556.0 \n",
- "4513 2060 days 02:22:21 353.0 \n",
- "2936 1936 days 02:24:31 1182.0 \n",
- "11484 2030 days 16:01:52 1123.0 \n",
- "934 1813 days 19:25:57 266.0 \n",
- "30156 1398 days 19:24:30 0.0 \n",
- "36478 1973 days 22:16:24 279.0 "
+ " time_between_purchase nb_tickets_internet \n",
+ "1 3692 days 23:26:00 2988.0 \n",
+ "0 3258 days 00:16:39 51.0 \n",
+ "3 1093 days 23:59:58 5.0 \n",
+ "2 3803 days 05:21:47 9.0 \n",
+ "5032 1049 days 18:46:12 13497.0 "
]
},
- "execution_count": 77,
+ "execution_count": 84,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "df1_tickets_kpi.sort_values(by='nb_tickets', ascending=False).head(30)"
+ "df1_tickets_kpi.sort_values(by='nb_tickets', ascending=False).head(5)"
]
},
{
@@ -2882,19 +2416,6 @@
"df1_customer.head()"
]
},
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "b5c4418c-ad2e-4bb9-bd5c-3b769e9c87d4",
- "metadata": {},
- "outputs": [],
- "source": [
- "pd.set_option('display.max_columns', None)\n",
- "\n",
- "\n",
- "df1_customer[df1_customer['customer_id'] == 1]"
- ]
- },
{
"cell_type": "code",
"execution_count": null,