BDC-team-1/1_Descriptive_Statistics.ipynb

543 lines
38 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "3f41343f-7205-41d9-89dd-88039e301413",
"metadata": {},
"source": [
"# Statistiques descriptives"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "abfaf341-7b35-4407-9133-d21336c04027",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import os\n",
"import s3fs\n",
"import re\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "7fb72fa3-7940-496f-ac78-c2837f65eefa",
"metadata": {},
"outputs": [],
"source": [
"# Access Key to Minio\n",
"fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': 'https://'+'minio-simple.lab.groupe-genes.fr'},key ='WKTGH4YGUBAT3TR0OSUR', secret = 'g8ozi6ZUrBy8DzaAip4F7zOizbr4DKf4RgYNseqU', token = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiJXS1RHSDRZR1VCQVQzVFIwT1NVUiIsImFjciI6IjAiLCJhbGxvd2VkLW9yaWdpbnMiOlsiaHR0cHM6Ly9vbnl4aWEubGFiLmdyb3VwZS1nZW5lcy5mciJdLCJhdWQiOlsibWluaW8iLCJhY2NvdW50Il0sImF1dGhfdGltZSI6MTcwNzU4NjUwMCwiYXpwIjoib255eGlhLW1pbmlvIiwiZW1haWwiOiJhbnRvaW5lLmpvdWJyZWxAZW5zYWUuZnIiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZXhwIjoxNzA3NjczMDQ3LCJmYW1pbHlfbmFtZSI6IkpPVUJSRUwiLCJnaXZlbl9uYW1lIjoiQW50b2luZSIsImdyb3VwcyI6WyJiZGMyMzI0LXRlYW0xIl0sImlhdCI6MTcwNzU4NjY0NywiaXNzIjoiaHR0cHM6Ly9hdXRoLmdyb3VwZS1nZW5lcy5mci9yZWFsbXMvZ2VuZXMiLCJqdGkiOiI1MjQ2MDZmMS1lYWM3LTQxZDgtYTEzMy04MGZjMDk0MGVlNzEiLCJuYW1lIjoiQW50b2luZSBKT1VCUkVMIiwicG9saWN5Ijoic3Rzb25seSIsInByZWZlcnJlZF91c2VybmFtZSI6ImFqb3VicmVsLWVuc2FlIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwiZGVmYXVsdC1yb2xlcy1nZW5lcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCIsInNlc3Npb25fc3RhdGUiOiI1OTk2MWNkYy0xNmFiLTQ4MTAtYWE4Zi1iZGUyMjkwNjhiNzUiLCJzaWQiOiI1OTk2MWNkYy0xNmFiLTQ4MTAtYWE4Zi1iZGUyMjkwNjhiNzUiLCJzdWIiOiIwNWYwZDk3Mi1jNWM4LTQyNmYtODAwZC00NmQ0OGU4NjkwMzUiLCJ0eXAiOiJCZWFyZXIifQ.-imw-N4bk1uCcQGobkxhsRoeBAqxC9rT7PifElbC7ODOStnwIulc7HRR2fmtiqI2PdyrfnVvzfmIPK1g056HbA')"
]
},
{
"cell_type": "markdown",
"id": "45d5261f-4d46-49cb-8582-dd2121122b05",
"metadata": {},
"source": [
"# 1 - Comportement d'achat"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "9376af51-4320-44b6-8f30-1e1234371556",
"metadata": {},
"outputs": [],
"source": [
"# Chargement des données temporaires\n",
"BUCKET = \"projet-bdc2324-team1\"\n",
"FILE_KEY_S3 = \"0_Temp/Company 1 - Purchasing behaviour.csv\"\n",
"FILE_PATH_S3 = BUCKET + \"/\" + FILE_KEY_S3\n",
"\n",
"with fs.open(FILE_PATH_S3, mode=\"rb\") as file_in:\n",
" tickets_kpi = pd.read_csv(file_in, sep=\",\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "1855dcca-cfce-4c54-90ae-55d9a1ab5d45",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>customer_id</th>\n",
" <th>event_type_id</th>\n",
" <th>nb_tickets</th>\n",
" <th>total_amount</th>\n",
" <th>nb_suppliers</th>\n",
" <th>vente_internet_max</th>\n",
" <th>purchase_date_min</th>\n",
" <th>purchase_date_max</th>\n",
" <th>time_between_purchase</th>\n",
" <th>nb_tickets_internet</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>384226</td>\n",
" <td>2686540.5</td>\n",
" <td>7</td>\n",
" <td>1</td>\n",
" <td>2014-12-03 14:55:37+00:00</td>\n",
" <td>2023-11-04 15:12:16+00:00</td>\n",
" <td>3258 days 00:16:39</td>\n",
" <td>51.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>453242</td>\n",
" <td>3248965.5</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>2013-09-23 14:45:01+00:00</td>\n",
" <td>2023-11-03 14:11:01+00:00</td>\n",
" <td>3692 days 23:26:00</td>\n",
" <td>2988.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>201750</td>\n",
" <td>1459190.0</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>2013-06-10 10:37:58+00:00</td>\n",
" <td>2023-11-08 15:59:45+00:00</td>\n",
" <td>3803 days 05:21:47</td>\n",
" <td>9.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>217356</td>\n",
" <td>1435871.5</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>2017-01-01 02:20:08+00:00</td>\n",
" <td>2019-12-31 02:20:06+00:00</td>\n",
" <td>1093 days 23:59:58</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>143</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2018-04-07 12:55:07+00:00</td>\n",
" <td>2020-03-08 12:06:43+00:00</td>\n",
" <td>700 days 23:11:36</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" customer_id event_type_id nb_tickets total_amount nb_suppliers \\\n",
"0 1 2 384226 2686540.5 7 \n",
"1 1 4 453242 3248965.5 6 \n",
"2 1 5 201750 1459190.0 6 \n",
"3 1 6 217356 1435871.5 5 \n",
"4 2 2 143 0.0 1 \n",
"\n",
" vente_internet_max purchase_date_min purchase_date_max \\\n",
"0 1 2014-12-03 14:55:37+00:00 2023-11-04 15:12:16+00:00 \n",
"1 1 2013-09-23 14:45:01+00:00 2023-11-03 14:11:01+00:00 \n",
"2 1 2013-06-10 10:37:58+00:00 2023-11-08 15:59:45+00:00 \n",
"3 1 2017-01-01 02:20:08+00:00 2019-12-31 02:20:06+00:00 \n",
"4 0 2018-04-07 12:55:07+00:00 2020-03-08 12:06:43+00:00 \n",
"\n",
" time_between_purchase nb_tickets_internet \n",
"0 3258 days 00:16:39 51.0 \n",
"1 3692 days 23:26:00 2988.0 \n",
"2 3803 days 05:21:47 9.0 \n",
"3 1093 days 23:59:58 5.0 \n",
"4 700 days 23:11:36 0.0 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tickets_kpi.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "0e5d3b2e-1a75-4d46-80e6-c306e9f8de84",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['customer_id', 'event_type_id', 'nb_tickets', 'total_amount',\n",
" 'nb_suppliers', 'vente_internet_max', 'purchase_date_min',\n",
" 'purchase_date_max', 'time_between_purchase', 'nb_tickets_internet'],\n",
" dtype='object')"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tickets_kpi.columns"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "7667e8eb-9a1e-4216-96f4-bf987c6e30b5",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>customer_id</th>\n",
" <th>event_type_id</th>\n",
" <th>nb_tickets</th>\n",
" <th>total_amount</th>\n",
" <th>nb_suppliers</th>\n",
" <th>vente_internet_max</th>\n",
" <th>purchase_date_min</th>\n",
" <th>purchase_date_max</th>\n",
" <th>time_between_purchase</th>\n",
" <th>nb_tickets_internet</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>453242</td>\n",
" <td>3248965.5</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>2013-09-23 14:45:01+00:00</td>\n",
" <td>2023-11-03 14:11:01+00:00</td>\n",
" <td>3692 days 23:26:00</td>\n",
" <td>2988.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>384226</td>\n",
" <td>2686540.5</td>\n",
" <td>7</td>\n",
" <td>1</td>\n",
" <td>2014-12-03 14:55:37+00:00</td>\n",
" <td>2023-11-04 15:12:16+00:00</td>\n",
" <td>3258 days 00:16:39</td>\n",
" <td>51.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>217356</td>\n",
" <td>1435871.5</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>2017-01-01 02:20:08+00:00</td>\n",
" <td>2019-12-31 02:20:06+00:00</td>\n",
" <td>1093 days 23:59:58</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>201750</td>\n",
" <td>1459190.0</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>2013-06-10 10:37:58+00:00</td>\n",
" <td>2023-11-08 15:59:45+00:00</td>\n",
" <td>3803 days 05:21:47</td>\n",
" <td>9.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5032</th>\n",
" <td>6733</td>\n",
" <td>6</td>\n",
" <td>14208</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>2017-01-11 15:00:54+00:00</td>\n",
" <td>2019-11-27 09:47:06+00:00</td>\n",
" <td>1049 days 18:46:12</td>\n",
" <td>13497.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5029</th>\n",
" <td>6733</td>\n",
" <td>2</td>\n",
" <td>11656</td>\n",
" <td>471.0</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>2015-09-09 13:48:38+00:00</td>\n",
" <td>2022-07-07 07:37:12+00:00</td>\n",
" <td>2492 days 17:48:34</td>\n",
" <td>9815.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5030</th>\n",
" <td>6733</td>\n",
" <td>4</td>\n",
" <td>7440</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>2021-01-06 10:05:01+00:00</td>\n",
" <td>2022-09-08 14:39:40+00:00</td>\n",
" <td>610 days 04:34:39</td>\n",
" <td>7419.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>41</td>\n",
" <td>6</td>\n",
" <td>6583</td>\n",
" <td>12546.5</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>2017-01-02 11:23:53+00:00</td>\n",
" <td>2019-12-30 10:36:55+00:00</td>\n",
" <td>1091 days 23:13:02</td>\n",
" <td>6391.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>41</td>\n",
" <td>2</td>\n",
" <td>6514</td>\n",
" <td>22423.0</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>2014-01-23 16:56:57+00:00</td>\n",
" <td>2023-03-06 13:55:23+00:00</td>\n",
" <td>3328 days 20:58:26</td>\n",
" <td>5321.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36376</th>\n",
" <td>63488</td>\n",
" <td>4</td>\n",
" <td>5750</td>\n",
" <td>63250.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2021-06-04 12:20:39+00:00</td>\n",
" <td>2022-08-25 13:08:38+00:00</td>\n",
" <td>447 days 00:47:59</td>\n",
" <td>5750.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 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",
"5029 6733 2 11656 471.0 3 \n",
"5030 6733 4 7440 0.0 2 \n",
"60 41 6 6583 12546.5 4 \n",
"57 41 2 6514 22423.0 6 \n",
"36376 63488 4 5750 63250.0 1 \n",
"\n",
" vente_internet_max purchase_date_min \\\n",
"1 1 2013-09-23 14:45:01+00:00 \n",
"0 1 2014-12-03 14:55:37+00:00 \n",
"3 1 2017-01-01 02:20:08+00:00 \n",
"2 1 2013-06-10 10:37:58+00:00 \n",
"5032 1 2017-01-11 15:00:54+00:00 \n",
"5029 1 2015-09-09 13:48:38+00:00 \n",
"5030 1 2021-01-06 10:05:01+00:00 \n",
"60 1 2017-01-02 11:23:53+00:00 \n",
"57 1 2014-01-23 16:56:57+00:00 \n",
"36376 1 2021-06-04 12:20:39+00:00 \n",
"\n",
" purchase_date_max time_between_purchase nb_tickets_internet \n",
"1 2023-11-03 14:11:01+00:00 3692 days 23:26:00 2988.0 \n",
"0 2023-11-04 15:12:16+00:00 3258 days 00:16:39 51.0 \n",
"3 2019-12-31 02:20:06+00:00 1093 days 23:59:58 5.0 \n",
"2 2023-11-08 15:59:45+00:00 3803 days 05:21:47 9.0 \n",
"5032 2019-11-27 09:47:06+00:00 1049 days 18:46:12 13497.0 \n",
"5029 2022-07-07 07:37:12+00:00 2492 days 17:48:34 9815.0 \n",
"5030 2022-09-08 14:39:40+00:00 610 days 04:34:39 7419.0 \n",
"60 2019-12-30 10:36:55+00:00 1091 days 23:13:02 6391.0 \n",
"57 2023-03-06 13:55:23+00:00 3328 days 20:58:26 5321.0 \n",
"36376 2022-08-25 13:08:38+00:00 447 days 00:47:59 5750.0 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Présence d'outlier\n",
"tickets_kpi.sort_values(by = ['nb_tickets'], axis = 0, ascending = False).head(10)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "9b2e27f2-703d-465b-a0f9-76e996de617c",
"metadata": {},
"outputs": [],
"source": [
"# Part du CA par customer\n",
"total_amount_share = tickets_kpi.groupby('customer_id')['total_amount'].sum().reset_index()\n",
"total_amount_share['total_amount_entreprise'] = total_amount_share['total_amount'].sum()\n",
"total_amount_share['share_total_amount'] = total_amount_share['total_amount']/total_amount_share['total_amount_entreprise']\n",
"\n",
"total_amount_share_index = total_amount_share.set_index('customer_id')\n",
"df_circulaire = total_amount_share_index['total_amount'].sort_values(axis = 0, ascending = False)\n"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "36141803-8865-4210-bd39-0a980301fd0c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 300x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Costumer 1 vs others customers\n",
"coupure = 1\n",
"\n",
"top = df_circulaire[:coupure]\n",
"rest = df_circulaire[coupure:]\n",
"\n",
"# Calculez la somme du reste\n",
"rest_sum = rest.sum()\n",
"\n",
"# Créez une nouvelle série avec les cinq plus grandes parts et 'Autre'\n",
"new_series = pd.concat([top, pd.Series([rest_sum], index=['Autre'])])\n",
"\n",
"# Créez le graphique circulaire\n",
"plt.figure(figsize=(3, 3))\n",
"plt.pie(new_series, labels=new_series.index, autopct='%1.1f%%', startangle=140, pctdistance=0.5)\n",
"plt.axis('equal') # Assurez-vous que le graphique est un cercle\n",
"plt.title('Répartition des montants totaux')\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "94cf1a25-9ded-48f2-b1b2-75225bdaf49d",
"metadata": {},
"outputs": [],
"source": [
"tickets_kpi_filtered = tickets_kpi[tickets_kpi['customer_id'] != 1]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "31e4e6f1-efc4-410d-b1d3-bb49950ef58e",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}