BDC-team-1/1_Descriptive_Statistics_Museum.ipynb
2024-03-04 22:30:25 +00:00

3801 lines
451 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"id": "3f41343f-7205-41d9-89dd-88039e301413",
"metadata": {},
"source": [
"# Statistiques descriptives"
]
},
{
"cell_type": "code",
"execution_count": 1,
"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\n",
"import matplotlib.dates as mdates\n",
"from datetime import datetime, date, timedelta\n",
"from dateutil.relativedelta import relativedelta\n",
"import warnings"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "7fb72fa3-7940-496f-ac78-c2837f65eefa",
"metadata": {},
"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})"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "c34e13f4-e043-43d6-ba8c-2e13d008647c",
"metadata": {},
"outputs": [],
"source": [
"# Import cleaning and merge functions\n",
"exec(open('0_KPI_functions.py').read())\n",
"\n",
"# Useful functions :\n",
" # display_databases(directory_path, file_name = ['customerplus_cleaned', 'target_information', 'campaigns_information', 'products_purchased_reduced'], datetime_col = None)\n",
" # campaigns_kpi_function(campaigns_information = None)\n",
" # tickets_kpi_function(tickets_information = None)\n",
" # customerplus_kpi_function(customerplus_clean = None)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "c60505f4-b95b-4c61-b842-26b27af7e280",
"metadata": {},
"outputs": [],
"source": [
"# set the max columns to none\n",
"pd.set_option('display.max_columns', None)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "aaffd291-2c88-44c8-a951-0ef1f8369ba3",
"metadata": {},
"outputs": [],
"source": [
"# Additional function to load initial \n",
"def load_dataset_2(directory_path, file_name):\n",
" \"\"\"\n",
" This function loads csv file\n",
" \"\"\"\n",
" file_path = \"bdc2324-data\" + \"/\" + directory_path + \"/\" + directory_path + file_name + \".csv\"\n",
" with fs.open(file_path, mode=\"rb\") as file_in:\n",
" df = pd.read_csv(file_in, sep=\",\")\n",
"\n",
" # drop na :\n",
" #df = df.dropna(axis=1, thresh=len(df))\n",
" # if identifier in table : delete it\n",
" if 'identifier' in df.columns:\n",
" df = df.drop(columns = 'identifier')\n",
" return df"
]
},
{
"cell_type": "markdown",
"id": "ae3c0c33-55a7-4a28-9a62-3ce13496917a",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"# 0 - Specificité de la company 101"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "f8a8dedc-2f67-407c-9bbf-f70d236fc783",
"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>id</th>\n",
" <th>name</th>\n",
" <th>created_at</th>\n",
" <th>updated_at</th>\n",
" <th>street_id</th>\n",
" <th>fixed_capacity</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>1</td>\n",
" <td>atelier des lumieres</td>\n",
" <td>2020-10-12 08:57:27.783770+02:00</td>\n",
" <td>2020-10-12 08:57:27.783770+02:00</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>14007</td>\n",
" <td>fabrique des lumieres</td>\n",
" <td>2022-05-17 09:11:19.416106+02:00</td>\n",
" <td>2022-05-17 09:11:19.416106+02:00</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>2</td>\n",
" <td>non défini</td>\n",
" <td>2020-10-12 08:57:27.785329+02:00</td>\n",
" <td>2020-10-12 08:57:27.785329+02:00</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>10755</td>\n",
" <td>NaN</td>\n",
" <td>2022-01-28 12:07:16.602885+01:00</td>\n",
" <td>2022-01-28 12:07:16.602885+01:00</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>13583</td>\n",
" <td>hôtel de caumont</td>\n",
" <td>2022-05-13 10:59:06.829576+02:00</td>\n",
" <td>2022-05-13 10:59:06.829576+02:00</td>\n",
" <td>859</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>16422</td>\n",
" <td>atelier des lumières - cézanne</td>\n",
" <td>2022-08-04 04:03:31.045648+02:00</td>\n",
" <td>2022-08-04 04:03:31.045648+02:00</td>\n",
" <td>859</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>21098</td>\n",
" <td>bassins des lumières - 2022 - venise</td>\n",
" <td>2023-04-08 03:49:46.916777+02:00</td>\n",
" <td>2023-04-08 03:49:46.916777+02:00</td>\n",
" <td>859</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>23460</td>\n",
" <td>immersive box</td>\n",
" <td>2023-08-29 17:39:55.188028+02:00</td>\n",
" <td>2023-08-29 17:39:55.188028+02:00</td>\n",
" <td>859</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>13584</td>\n",
" <td>bassins des lumières - venise</td>\n",
" <td>2022-05-13 11:00:14.943669+02:00</td>\n",
" <td>2022-05-13 11:00:14.943669+02:00</td>\n",
" <td>859</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>21096</td>\n",
" <td>atelier des lumières - 2022 - cézanne</td>\n",
" <td>2023-04-08 03:42:10.395124+02:00</td>\n",
" <td>2023-04-08 03:42:10.395124+02:00</td>\n",
" <td>859</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>260</td>\n",
" <td>musée jacquemart andré</td>\n",
" <td>2020-10-18 01:20:12.738229+02:00</td>\n",
" <td>2020-10-18 01:20:12.738229+02:00</td>\n",
" <td>3525</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>71</td>\n",
" <td>cité de l'automobile</td>\n",
" <td>2020-10-13 11:05:43.705639+02:00</td>\n",
" <td>2020-12-03 08:33:15.576065+01:00</td>\n",
" <td>449992</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>89</td>\n",
" <td>bassins de lumieres</td>\n",
" <td>2020-10-13 14:56:27.206958+02:00</td>\n",
" <td>2020-10-13 14:56:27.206958+02:00</td>\n",
" <td>460754</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>108</td>\n",
" <td>les baux de provence</td>\n",
" <td>2020-10-14 14:16:20.284658+02:00</td>\n",
" <td>2020-10-14 14:16:20.284658+02:00</td>\n",
" <td>481475</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>161</td>\n",
" <td>les carrières de lumières</td>\n",
" <td>2020-10-14 18:06:57.059828+02:00</td>\n",
" <td>2020-10-14 18:06:57.059828+02:00</td>\n",
" <td>483815</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>118</td>\n",
" <td>villa ephrussi de rothschild</td>\n",
" <td>2020-10-14 15:02:40.478501+02:00</td>\n",
" <td>2020-10-14 15:02:40.478501+02:00</td>\n",
" <td>485539</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>128</td>\n",
" <td>théâtre antique orange</td>\n",
" <td>2020-10-14 15:46:44.072307+02:00</td>\n",
" <td>2020-10-14 15:46:44.072307+02:00</td>\n",
" <td>499380</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>3875</td>\n",
" <td>carrieres de lumieres</td>\n",
" <td>2021-06-11 10:52:15.706030+02:00</td>\n",
" <td>2021-06-11 10:52:15.706030+02:00</td>\n",
" <td>535931</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>3866</td>\n",
" <td>baux-de-provence</td>\n",
" <td>2021-06-11 10:28:30.237144+02:00</td>\n",
" <td>2021-06-11 10:28:30.237144+02:00</td>\n",
" <td>569179</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>392</td>\n",
" <td>tour magne de nîmes</td>\n",
" <td>2020-10-19 17:51:45.915572+02:00</td>\n",
" <td>2020-10-19 17:51:45.915572+02:00</td>\n",
" <td>717981</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>263</td>\n",
" <td>musée maillol</td>\n",
" <td>2020-10-18 01:30:23.853673+02:00</td>\n",
" <td>2020-10-18 01:30:23.853673+02:00</td>\n",
" <td>852301</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>264</td>\n",
" <td>cinéma d'aigues mortes</td>\n",
" <td>2020-10-18 01:30:23.863631+02:00</td>\n",
" <td>2020-10-18 01:30:23.863631+02:00</td>\n",
" <td>852302</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>388</td>\n",
" <td>maison carrée de nîmes</td>\n",
" <td>2020-10-19 17:37:09.345955+02:00</td>\n",
" <td>2020-10-19 17:37:09.345955+02:00</td>\n",
" <td>867431</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>333</td>\n",
" <td>les arènes de nîmes</td>\n",
" <td>2020-10-19 10:17:55.757817+02:00</td>\n",
" <td>2020-10-19 10:17:55.757817+02:00</td>\n",
" <td>867431</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>170</td>\n",
" <td>caumont centre d'art</td>\n",
" <td>2020-10-14 19:13:55.213186+02:00</td>\n",
" <td>2022-10-14 06:21:53.310810+02:00</td>\n",
" <td>887751</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1665</td>\n",
" <td>cité de l'auto</td>\n",
" <td>2020-12-08 18:46:15.957997+01:00</td>\n",
" <td>2020-12-08 18:46:15.957997+01:00</td>\n",
" <td>1418086</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>11836</td>\n",
" <td>phoenix des lumières</td>\n",
" <td>2022-03-08 16:30:03.135537+01:00</td>\n",
" <td>2022-03-08 16:30:03.135537+01:00</td>\n",
" <td>3639035</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>13501</td>\n",
" <td>château de boutemont</td>\n",
" <td>2022-05-10 14:56:36.025562+02:00</td>\n",
" <td>2022-05-10 14:56:36.025562+02:00</td>\n",
" <td>4209418</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>13502</td>\n",
" <td>fabrique des lumières</td>\n",
" <td>2022-05-10 15:05:40.443121+02:00</td>\n",
" <td>2022-05-10 15:05:40.443121+02:00</td>\n",
" <td>4209419</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>22219</td>\n",
" <td>immersive box belgique</td>\n",
" <td>2023-06-13 16:17:37.818103+02:00</td>\n",
" <td>2023-06-13 16:17:37.818103+02:00</td>\n",
" <td>7335205</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>22512</td>\n",
" <td>hall des lumières</td>\n",
" <td>2023-06-29 09:31:23.575220+02:00</td>\n",
" <td>2023-06-29 09:31:23.575220+02:00</td>\n",
" <td>7364467</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>22348</td>\n",
" <td>hdl</td>\n",
" <td>2023-06-20 17:58:19.153019+02:00</td>\n",
" <td>2023-06-29 09:38:51.592547+02:00</td>\n",
" <td>7364467</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>22516</td>\n",
" <td>hall des lumieres</td>\n",
" <td>2023-06-29 09:46:44.718839+02:00</td>\n",
" <td>2023-06-29 09:46:44.718839+02:00</td>\n",
" <td>7364467</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>11835</td>\n",
" <td>hdl - ny</td>\n",
" <td>2022-03-08 16:00:20.821212+01:00</td>\n",
" <td>2023-06-29 09:27:59.256591+02:00</td>\n",
" <td>7446203</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id name \\\n",
"26 1 atelier des lumieres \n",
"17 14007 fabrique des lumieres \n",
"32 2 non défini \n",
"10 10755 NaN \n",
"16 13583 hôtel de caumont \n",
"2 16422 atelier des lumières - cézanne \n",
"20 21098 bassins des lumières - 2022 - venise \n",
"18 23460 immersive box \n",
"8 13584 bassins des lumières - venise \n",
"15 21096 atelier des lumières - 2022 - cézanne \n",
"27 260 musée jacquemart andré \n",
"33 71 cité de l'automobile \n",
"30 89 bassins de lumieres \n",
"7 108 les baux de provence \n",
"19 161 les carrières de lumières \n",
"24 118 villa ephrussi de rothschild \n",
"29 128 théâtre antique orange \n",
"28 3875 carrieres de lumieres \n",
"25 3866 baux-de-provence \n",
"22 392 tour magne de nîmes \n",
"3 263 musée maillol \n",
"6 264 cinéma d'aigues mortes \n",
"21 388 maison carrée de nîmes \n",
"23 333 les arènes de nîmes \n",
"31 170 caumont centre d'art \n",
"5 1665 cité de l'auto \n",
"14 11836 phoenix des lumières \n",
"1 13501 château de boutemont \n",
"4 13502 fabrique des lumières \n",
"12 22219 immersive box belgique \n",
"13 22512 hall des lumières \n",
"11 22348 hdl \n",
"0 22516 hall des lumieres \n",
"9 11835 hdl - ny \n",
"\n",
" created_at updated_at \\\n",
"26 2020-10-12 08:57:27.783770+02:00 2020-10-12 08:57:27.783770+02:00 \n",
"17 2022-05-17 09:11:19.416106+02:00 2022-05-17 09:11:19.416106+02:00 \n",
"32 2020-10-12 08:57:27.785329+02:00 2020-10-12 08:57:27.785329+02:00 \n",
"10 2022-01-28 12:07:16.602885+01:00 2022-01-28 12:07:16.602885+01:00 \n",
"16 2022-05-13 10:59:06.829576+02:00 2022-05-13 10:59:06.829576+02:00 \n",
"2 2022-08-04 04:03:31.045648+02:00 2022-08-04 04:03:31.045648+02:00 \n",
"20 2023-04-08 03:49:46.916777+02:00 2023-04-08 03:49:46.916777+02:00 \n",
"18 2023-08-29 17:39:55.188028+02:00 2023-08-29 17:39:55.188028+02:00 \n",
"8 2022-05-13 11:00:14.943669+02:00 2022-05-13 11:00:14.943669+02:00 \n",
"15 2023-04-08 03:42:10.395124+02:00 2023-04-08 03:42:10.395124+02:00 \n",
"27 2020-10-18 01:20:12.738229+02:00 2020-10-18 01:20:12.738229+02:00 \n",
"33 2020-10-13 11:05:43.705639+02:00 2020-12-03 08:33:15.576065+01:00 \n",
"30 2020-10-13 14:56:27.206958+02:00 2020-10-13 14:56:27.206958+02:00 \n",
"7 2020-10-14 14:16:20.284658+02:00 2020-10-14 14:16:20.284658+02:00 \n",
"19 2020-10-14 18:06:57.059828+02:00 2020-10-14 18:06:57.059828+02:00 \n",
"24 2020-10-14 15:02:40.478501+02:00 2020-10-14 15:02:40.478501+02:00 \n",
"29 2020-10-14 15:46:44.072307+02:00 2020-10-14 15:46:44.072307+02:00 \n",
"28 2021-06-11 10:52:15.706030+02:00 2021-06-11 10:52:15.706030+02:00 \n",
"25 2021-06-11 10:28:30.237144+02:00 2021-06-11 10:28:30.237144+02:00 \n",
"22 2020-10-19 17:51:45.915572+02:00 2020-10-19 17:51:45.915572+02:00 \n",
"3 2020-10-18 01:30:23.853673+02:00 2020-10-18 01:30:23.853673+02:00 \n",
"6 2020-10-18 01:30:23.863631+02:00 2020-10-18 01:30:23.863631+02:00 \n",
"21 2020-10-19 17:37:09.345955+02:00 2020-10-19 17:37:09.345955+02:00 \n",
"23 2020-10-19 10:17:55.757817+02:00 2020-10-19 10:17:55.757817+02:00 \n",
"31 2020-10-14 19:13:55.213186+02:00 2022-10-14 06:21:53.310810+02:00 \n",
"5 2020-12-08 18:46:15.957997+01:00 2020-12-08 18:46:15.957997+01:00 \n",
"14 2022-03-08 16:30:03.135537+01:00 2022-03-08 16:30:03.135537+01:00 \n",
"1 2022-05-10 14:56:36.025562+02:00 2022-05-10 14:56:36.025562+02:00 \n",
"4 2022-05-10 15:05:40.443121+02:00 2022-05-10 15:05:40.443121+02:00 \n",
"12 2023-06-13 16:17:37.818103+02:00 2023-06-13 16:17:37.818103+02:00 \n",
"13 2023-06-29 09:31:23.575220+02:00 2023-06-29 09:31:23.575220+02:00 \n",
"11 2023-06-20 17:58:19.153019+02:00 2023-06-29 09:38:51.592547+02:00 \n",
"0 2023-06-29 09:46:44.718839+02:00 2023-06-29 09:46:44.718839+02:00 \n",
"9 2022-03-08 16:00:20.821212+01:00 2023-06-29 09:27:59.256591+02:00 \n",
"\n",
" street_id fixed_capacity \n",
"26 1 NaN \n",
"17 2 NaN \n",
"32 2 NaN \n",
"10 2 NaN \n",
"16 859 NaN \n",
"2 859 NaN \n",
"20 859 NaN \n",
"18 859 NaN \n",
"8 859 NaN \n",
"15 859 NaN \n",
"27 3525 NaN \n",
"33 449992 NaN \n",
"30 460754 NaN \n",
"7 481475 NaN \n",
"19 483815 NaN \n",
"24 485539 NaN \n",
"29 499380 NaN \n",
"28 535931 NaN \n",
"25 569179 NaN \n",
"22 717981 NaN \n",
"3 852301 NaN \n",
"6 852302 NaN \n",
"21 867431 NaN \n",
"23 867431 NaN \n",
"31 887751 NaN \n",
"5 1418086 NaN \n",
"14 3639035 NaN \n",
"1 4209418 NaN \n",
"4 4209419 NaN \n",
"12 7335205 NaN \n",
"13 7364467 NaN \n",
"11 7364467 NaN \n",
"0 7364467 NaN \n",
"9 7446203 NaN "
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"company_number = '101'\n",
"\n",
"facilities = load_dataset_2(company_number, \"facilities\")\n",
"\n",
"facilities.sort_values(by = 'street_id')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "c8c8eea4-21a2-487b-b20a-15d73616a253",
"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>id_x</th>\n",
" <th>sent_at</th>\n",
" <th>software</th>\n",
" <th>satisfaction</th>\n",
" <th>extra_field</th>\n",
" <th>customer_id</th>\n",
" <th>contribution_site_id</th>\n",
" <th>created_at_x</th>\n",
" <th>updated_at_x</th>\n",
" <th>id_y</th>\n",
" <th>facility_id</th>\n",
" <th>created_at_y</th>\n",
" <th>updated_at_y</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>134910</td>\n",
" <td>2017-07-30 15:50:15+02:00</td>\n",
" <td>NaN</td>\n",
" <td>8.0</td>\n",
" <td>NaN</td>\n",
" <td>91936</td>\n",
" <td>70</td>\n",
" <td>2020-09-25 20:41:07.752795+02:00</td>\n",
" <td>2020-09-25 20:41:07.752795+02:00</td>\n",
" <td>70</td>\n",
" <td>438</td>\n",
" <td>2020-09-25 20:41:07.735280+02:00</td>\n",
" <td>2020-09-25 20:41:07.735280+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5848427</td>\n",
" <td>2020-03-04 16:18:13.597000+01:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>224450</td>\n",
" <td>3420</td>\n",
" <td>2022-01-21 02:44:34.857144+01:00</td>\n",
" <td>2022-01-21 02:44:34.857144+01:00</td>\n",
" <td>3420</td>\n",
" <td>6650</td>\n",
" <td>2022-01-21 02:44:34.690938+01:00</td>\n",
" <td>2022-01-21 02:44:34.690938+01:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>918383</td>\n",
" <td>2020-10-24 14:59:22.784000+02:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>397718</td>\n",
" <td>208</td>\n",
" <td>2020-10-25 02:06:54.048105+02:00</td>\n",
" <td>2020-10-25 02:06:54.048105+02:00</td>\n",
" <td>208</td>\n",
" <td>576</td>\n",
" <td>2020-09-27 18:05:14.671650+02:00</td>\n",
" <td>2020-09-27 18:05:14.671650+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>918384</td>\n",
" <td>2020-10-24 14:35:39.725000+02:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>397719</td>\n",
" <td>208</td>\n",
" <td>2020-10-25 02:06:54.050218+02:00</td>\n",
" <td>2020-10-25 02:06:54.050218+02:00</td>\n",
" <td>208</td>\n",
" <td>576</td>\n",
" <td>2020-09-27 18:05:14.671650+02:00</td>\n",
" <td>2020-09-27 18:05:14.671650+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>918385</td>\n",
" <td>2020-10-24 12:45:35.225000+02:00</td>\n",
" <td>NaN</td>\n",
" <td>10.0</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>208</td>\n",
" <td>2020-10-25 02:06:54.052201+02:00</td>\n",
" <td>2020-10-25 02:06:54.052201+02:00</td>\n",
" <td>208</td>\n",
" <td>576</td>\n",
" <td>2020-09-27 18:05:14.671650+02:00</td>\n",
" <td>2020-09-27 18:05:14.671650+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25454</th>\n",
" <td>1951</td>\n",
" <td>2018-03-20 09:34:09+01:00</td>\n",
" <td>NaN</td>\n",
" <td>8.0</td>\n",
" <td>NaN</td>\n",
" <td>69694</td>\n",
" <td>1</td>\n",
" <td>2020-09-25 20:06:37.138272+02:00</td>\n",
" <td>2020-09-25 20:06:37.138272+02:00</td>\n",
" <td>1</td>\n",
" <td>369</td>\n",
" <td>2020-09-25 20:06:35.964342+02:00</td>\n",
" <td>2020-09-25 20:06:35.964342+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25455</th>\n",
" <td>1952</td>\n",
" <td>2018-03-20 09:31:56+01:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>69694</td>\n",
" <td>1</td>\n",
" <td>2020-09-25 20:06:37.138874+02:00</td>\n",
" <td>2020-09-25 20:06:37.138874+02:00</td>\n",
" <td>1</td>\n",
" <td>369</td>\n",
" <td>2020-09-25 20:06:35.964342+02:00</td>\n",
" <td>2020-09-25 20:06:35.964342+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25456</th>\n",
" <td>1954</td>\n",
" <td>2018-03-20 09:30:44+01:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>69694</td>\n",
" <td>1</td>\n",
" <td>2020-09-25 20:06:37.140372+02:00</td>\n",
" <td>2020-09-25 20:06:37.140372+02:00</td>\n",
" <td>1</td>\n",
" <td>369</td>\n",
" <td>2020-09-25 20:06:35.964342+02:00</td>\n",
" <td>2020-09-25 20:06:35.964342+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25457</th>\n",
" <td>1955</td>\n",
" <td>2018-03-20 09:28:49+01:00</td>\n",
" <td>NaN</td>\n",
" <td>8.0</td>\n",
" <td>NaN</td>\n",
" <td>69695</td>\n",
" <td>1</td>\n",
" <td>2020-09-25 20:06:37.140966+02:00</td>\n",
" <td>2020-09-25 20:06:37.140966+02:00</td>\n",
" <td>1</td>\n",
" <td>369</td>\n",
" <td>2020-09-25 20:06:35.964342+02:00</td>\n",
" <td>2020-09-25 20:06:35.964342+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25458</th>\n",
" <td>1953</td>\n",
" <td>2018-03-20 09:31:23.361000+01:00</td>\n",
" <td>NaN</td>\n",
" <td>8.0</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>2020-09-25 20:06:37.139437+02:00</td>\n",
" <td>2020-09-25 20:06:37.139437+02:00</td>\n",
" <td>1</td>\n",
" <td>369</td>\n",
" <td>2020-09-25 20:06:35.964342+02:00</td>\n",
" <td>2020-09-25 20:06:35.964342+02:00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>25459 rows × 13 columns</p>\n",
"</div>"
],
"text/plain": [
" id_x sent_at software satisfaction \\\n",
"0 134910 2017-07-30 15:50:15+02:00 NaN 8.0 \n",
"1 5848427 2020-03-04 16:18:13.597000+01:00 NaN NaN \n",
"2 918383 2020-10-24 14:59:22.784000+02:00 NaN NaN \n",
"3 918384 2020-10-24 14:35:39.725000+02:00 NaN NaN \n",
"4 918385 2020-10-24 12:45:35.225000+02:00 NaN 10.0 \n",
"... ... ... ... ... \n",
"25454 1951 2018-03-20 09:34:09+01:00 NaN 8.0 \n",
"25455 1952 2018-03-20 09:31:56+01:00 NaN NaN \n",
"25456 1954 2018-03-20 09:30:44+01:00 NaN NaN \n",
"25457 1955 2018-03-20 09:28:49+01:00 NaN 8.0 \n",
"25458 1953 2018-03-20 09:31:23.361000+01:00 NaN 8.0 \n",
"\n",
" extra_field customer_id contribution_site_id \\\n",
"0 NaN 91936 70 \n",
"1 NaN 224450 3420 \n",
"2 NaN 397718 208 \n",
"3 NaN 397719 208 \n",
"4 NaN 2 208 \n",
"... ... ... ... \n",
"25454 NaN 69694 1 \n",
"25455 NaN 69694 1 \n",
"25456 NaN 69694 1 \n",
"25457 NaN 69695 1 \n",
"25458 NaN 2 1 \n",
"\n",
" created_at_x updated_at_x \\\n",
"0 2020-09-25 20:41:07.752795+02:00 2020-09-25 20:41:07.752795+02:00 \n",
"1 2022-01-21 02:44:34.857144+01:00 2022-01-21 02:44:34.857144+01:00 \n",
"2 2020-10-25 02:06:54.048105+02:00 2020-10-25 02:06:54.048105+02:00 \n",
"3 2020-10-25 02:06:54.050218+02:00 2020-10-25 02:06:54.050218+02:00 \n",
"4 2020-10-25 02:06:54.052201+02:00 2020-10-25 02:06:54.052201+02:00 \n",
"... ... ... \n",
"25454 2020-09-25 20:06:37.138272+02:00 2020-09-25 20:06:37.138272+02:00 \n",
"25455 2020-09-25 20:06:37.138874+02:00 2020-09-25 20:06:37.138874+02:00 \n",
"25456 2020-09-25 20:06:37.140372+02:00 2020-09-25 20:06:37.140372+02:00 \n",
"25457 2020-09-25 20:06:37.140966+02:00 2020-09-25 20:06:37.140966+02:00 \n",
"25458 2020-09-25 20:06:37.139437+02:00 2020-09-25 20:06:37.139437+02:00 \n",
"\n",
" id_y facility_id created_at_y \\\n",
"0 70 438 2020-09-25 20:41:07.735280+02:00 \n",
"1 3420 6650 2022-01-21 02:44:34.690938+01:00 \n",
"2 208 576 2020-09-27 18:05:14.671650+02:00 \n",
"3 208 576 2020-09-27 18:05:14.671650+02:00 \n",
"4 208 576 2020-09-27 18:05:14.671650+02:00 \n",
"... ... ... ... \n",
"25454 1 369 2020-09-25 20:06:35.964342+02:00 \n",
"25455 1 369 2020-09-25 20:06:35.964342+02:00 \n",
"25456 1 369 2020-09-25 20:06:35.964342+02:00 \n",
"25457 1 369 2020-09-25 20:06:35.964342+02:00 \n",
"25458 1 369 2020-09-25 20:06:35.964342+02:00 \n",
"\n",
" updated_at_y \n",
"0 2020-09-25 20:41:07.735280+02:00 \n",
"1 2022-01-21 02:44:34.690938+01:00 \n",
"2 2020-09-27 18:05:14.671650+02:00 \n",
"3 2020-09-27 18:05:14.671650+02:00 \n",
"4 2020-09-27 18:05:14.671650+02:00 \n",
"... ... \n",
"25454 2020-09-25 20:06:35.964342+02:00 \n",
"25455 2020-09-25 20:06:35.964342+02:00 \n",
"25456 2020-09-25 20:06:35.964342+02:00 \n",
"25457 2020-09-25 20:06:35.964342+02:00 \n",
"25458 2020-09-25 20:06:35.964342+02:00 \n",
"\n",
"[25459 rows x 13 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# contribution and contribution sites \n",
"contributions = load_dataset_2(company_number, \"contributions\")\n",
"contribution_sites = load_dataset_2(company_number, \"contribution_sites\")\n",
"\n",
"pd.merge(contributions, contribution_sites, left_on = 'contribution_site_id', right_on = 'id', how = 'inner')"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "85b70219-f753-422e-9f57-a26eb28e7481",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"id 0.000000\n",
"sent_at 0.000000\n",
"software 1.000000\n",
"satisfaction 0.430732\n",
"extra_field 1.000000\n",
"customer_id 0.000000\n",
"contribution_site_id 0.000000\n",
"created_at 0.000000\n",
"updated_at 0.000000\n",
"dtype: float64"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"contributions.isna().sum()/len(contributions)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "647920c8-da07-4e87-964b-304fd7ff79f5",
"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>id</th>\n",
" <th>name</th>\n",
" <th>created_at</th>\n",
" <th>updated_at</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>eur</td>\n",
" <td>2023-07-17 15:35:19.957203+02:00</td>\n",
" <td>2023-07-17 15:35:19.957203+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>usd</td>\n",
" <td>2023-07-17 15:35:21.132408+02:00</td>\n",
" <td>2023-07-17 15:35:21.132408+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>gbp</td>\n",
" <td>2023-07-17 15:35:21.843594+02:00</td>\n",
" <td>2023-07-17 15:35:21.843594+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>chf</td>\n",
" <td>2023-07-17 15:35:23.229322+02:00</td>\n",
" <td>2023-07-17 15:35:23.229322+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>cad</td>\n",
" <td>2023-07-17 15:35:24.262466+02:00</td>\n",
" <td>2023-07-17 15:35:24.262466+02:00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id name created_at updated_at\n",
"0 1 eur 2023-07-17 15:35:19.957203+02:00 2023-07-17 15:35:19.957203+02:00\n",
"1 2 usd 2023-07-17 15:35:21.132408+02:00 2023-07-17 15:35:21.132408+02:00\n",
"2 3 gbp 2023-07-17 15:35:21.843594+02:00 2023-07-17 15:35:21.843594+02:00\n",
"3 4 chf 2023-07-17 15:35:23.229322+02:00 2023-07-17 15:35:23.229322+02:00\n",
"4 5 cad 2023-07-17 15:35:24.262466+02:00 2023-07-17 15:35:24.262466+02:00"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"company_number = \"2\"\n",
"\n",
"load_dataset_2(company_number, \"currencies\")"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "bc1f3d28-7f0c-4e87-baf7-dddcf03a7145",
"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>id</th>\n",
" <th>percent_price</th>\n",
" <th>max_price</th>\n",
" <th>min_price</th>\n",
" <th>category_id</th>\n",
" <th>pricing_formula_id</th>\n",
" <th>representation_id</th>\n",
" <th>created_at</th>\n",
" <th>updated_at</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>100.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2023-10-13 13:02:32.517137+02:00</td>\n",
" <td>2023-10-13 13:02:32.517137+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>100.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>2023-10-13 13:02:32.531505+02:00</td>\n",
" <td>2023-10-13 13:02:32.531505+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>100.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2023-10-13 13:02:32.532172+02:00</td>\n",
" <td>2023-10-13 13:02:32.532172+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>100.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2023-10-13 13:02:32.532665+02:00</td>\n",
" <td>2023-10-13 13:02:32.532665+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>100.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>2023-10-13 13:02:32.533142+02:00</td>\n",
" <td>2023-10-13 13:02:32.533142+02:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>779980</th>\n",
" <td>810312</td>\n",
" <td>100.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>567254</td>\n",
" <td>2023-11-09 05:14:16.770130+01:00</td>\n",
" <td>2023-11-09 05:14:16.770130+01:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>779981</th>\n",
" <td>810313</td>\n",
" <td>100.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>567254</td>\n",
" <td>2023-11-09 05:14:16.770538+01:00</td>\n",
" <td>2023-11-09 05:14:16.770538+01:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>779982</th>\n",
" <td>810314</td>\n",
" <td>100.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>567255</td>\n",
" <td>2023-11-09 05:14:16.770916+01:00</td>\n",
" <td>2023-11-09 05:14:16.770916+01:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>779983</th>\n",
" <td>810315</td>\n",
" <td>100.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>567256</td>\n",
" <td>2023-11-09 05:14:16.771359+01:00</td>\n",
" <td>2023-11-09 05:14:16.771359+01:00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>779984</th>\n",
" <td>810316</td>\n",
" <td>100.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>567257</td>\n",
" <td>2023-11-09 05:14:16.771761+01:00</td>\n",
" <td>2023-11-09 05:14:16.771761+01:00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>779985 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" id percent_price max_price min_price category_id \\\n",
"0 1 100.0 0.0 0.0 1 \n",
"1 2 100.0 0.0 0.0 1 \n",
"2 3 100.0 0.0 0.0 1 \n",
"3 4 100.0 0.0 0.0 1 \n",
"4 5 100.0 0.0 0.0 1 \n",
"... ... ... ... ... ... \n",
"779980 810312 100.0 0.0 0.0 1 \n",
"779981 810313 100.0 0.0 0.0 1 \n",
"779982 810314 100.0 0.0 0.0 1 \n",
"779983 810315 100.0 0.0 0.0 1 \n",
"779984 810316 100.0 0.0 0.0 1 \n",
"\n",
" pricing_formula_id representation_id \\\n",
"0 1 1 \n",
"1 1 2 \n",
"2 1 3 \n",
"3 1 4 \n",
"4 1 5 \n",
"... ... ... \n",
"779980 1 567254 \n",
"779981 4 567254 \n",
"779982 1 567255 \n",
"779983 1 567256 \n",
"779984 1 567257 \n",
"\n",
" created_at updated_at \n",
"0 2023-10-13 13:02:32.517137+02:00 2023-10-13 13:02:32.517137+02:00 \n",
"1 2023-10-13 13:02:32.531505+02:00 2023-10-13 13:02:32.531505+02:00 \n",
"2 2023-10-13 13:02:32.532172+02:00 2023-10-13 13:02:32.532172+02:00 \n",
"3 2023-10-13 13:02:32.532665+02:00 2023-10-13 13:02:32.532665+02:00 \n",
"4 2023-10-13 13:02:32.533142+02:00 2023-10-13 13:02:32.533142+02:00 \n",
"... ... ... \n",
"779980 2023-11-09 05:14:16.770130+01:00 2023-11-09 05:14:16.770130+01:00 \n",
"779981 2023-11-09 05:14:16.770538+01:00 2023-11-09 05:14:16.770538+01:00 \n",
"779982 2023-11-09 05:14:16.770916+01:00 2023-11-09 05:14:16.770916+01:00 \n",
"779983 2023-11-09 05:14:16.771359+01:00 2023-11-09 05:14:16.771359+01:00 \n",
"779984 2023-11-09 05:14:16.771761+01:00 2023-11-09 05:14:16.771761+01:00 \n",
"\n",
"[779985 rows x 9 columns]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"load_dataset_2(company_number, \"products_groups\")"
]
},
{
"cell_type": "markdown",
"id": "45d5261f-4d46-49cb-8582-dd2121122b05",
"metadata": {},
"source": [
"# 1 - Comportement d'achat"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "8917cc1b-4728-460c-8432-a633de7f039b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"File path : projet-bdc2324-team1/0_Input/Company_1/products_purchased_reduced.csv\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"<string>:13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"File path : projet-bdc2324-team1/0_Input/Company_2/products_purchased_reduced.csv\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"<string>:13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"File path : projet-bdc2324-team1/0_Input/Company_3/products_purchased_reduced.csv\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"<string>:13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"File path : projet-bdc2324-team1/0_Input/Company_4/products_purchased_reduced.csv\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"<string>:13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n",
"<string>:13: DtypeWarning: Columns (12) have mixed types. Specify dtype option on import or set low_memory=False.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"File path : projet-bdc2324-team1/0_Input/Company_101/products_purchased_reduced.csv\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"<string>:13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"File path : projet-bdc2324-team1/0_Input/Company_101/products_purchased_reduced_1.csv\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"<string>:13: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n"
]
}
],
"source": [
"for company_number in ['1', '2', '3', '4', '101'] :\n",
" nom_dataframe = 'df'+ company_number +'_tickets'\n",
" globals()[nom_dataframe] = display_databases(company_number, file_name = 'products_purchased_reduced' , datetime_col = ['purchase_date'])\n",
"\n",
" if company_number == \"101\" :\n",
" df101_tickets_1 = display_databases(company_number, file_name = 'products_purchased_reduced_1' , datetime_col = ['purchase_date'])\n",
"\n",
" "
]
},
{
"cell_type": "markdown",
"id": "3479960c-0d23-45f1-8fff-d87395205731",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"## Outlier"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "9376af51-4320-44b6-8f30-1e1234371556",
"metadata": {},
"outputs": [],
"source": [
"def outlier_detection(directory_path = \"1\", coupure = 1):\n",
" nom_dataframe = 'df'+ directory_path +'_tickets'\n",
" df_tickets = globals()[nom_dataframe].copy()\n",
" df_tickets_kpi = tickets_kpi_function(df_tickets)\n",
"\n",
" if directory_path == \"101\" :\n",
" df_tickets_1 = df101_tickets_1.copy()\n",
" df_tickets_kpi_1 = tickets_kpi_function(df_tickets_1)\n",
"\n",
" df_tickets_kpi = pd.concat([df_tickets_kpi, df_tickets_kpi_1])\n",
" # Part du CA par customer\n",
" total_amount_share = df_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",
" \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": 14,
"id": "73211efc-b79f-4235-a250-c0699ea277bf",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 300x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"outlier_detection(directory_path = \"1\", coupure = 2)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "5c8e9bb7-a403-4898-b40b-47aa37237bc6",
"metadata": {
"scrolled": true
},
"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>id</th>\n",
" <th>lastname</th>\n",
" <th>firstname</th>\n",
" <th>birthdate</th>\n",
" <th>email</th>\n",
" <th>street_id</th>\n",
" <th>created_at</th>\n",
" <th>updated_at</th>\n",
" <th>civility</th>\n",
" <th>is_partner</th>\n",
" <th>extra</th>\n",
" <th>deleted_at</th>\n",
" <th>reference</th>\n",
" <th>gender</th>\n",
" <th>is_email_true</th>\n",
" <th>extra_field</th>\n",
" <th>opt_in</th>\n",
" <th>structure_id</th>\n",
" <th>note</th>\n",
" <th>profession</th>\n",
" <th>language</th>\n",
" <th>mcp_contact_id</th>\n",
" <th>need_reload</th>\n",
" <th>last_buying_date</th>\n",
" <th>max_price</th>\n",
" <th>ticket_sum</th>\n",
" <th>average_price</th>\n",
" <th>fidelity</th>\n",
" <th>average_purchase_delay</th>\n",
" <th>average_price_basket</th>\n",
" <th>average_ticket_basket</th>\n",
" <th>total_price</th>\n",
" <th>preferred_category</th>\n",
" <th>preferred_supplier</th>\n",
" <th>preferred_formula</th>\n",
" <th>purchase_count</th>\n",
" <th>first_buying_date</th>\n",
" <th>last_visiting_date</th>\n",
" <th>zipcode</th>\n",
" <th>country</th>\n",
" <th>age</th>\n",
" <th>tenant_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>58201</th>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>2020-09-03 13:11:25.569167+02:00</td>\n",
" <td>2023-03-04 13:27:42.761679+01:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>2023-11-08 03:20:07</td>\n",
" <td>45.0</td>\n",
" <td>1254775</td>\n",
" <td>7.030122</td>\n",
" <td>330831</td>\n",
" <td>-67.790969</td>\n",
" <td>13.75153</td>\n",
" <td>1.956087</td>\n",
" <td>8821221.5</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>641472</td>\n",
" <td>2013-06-10 12:37:58+02:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>fr</td>\n",
" <td>NaN</td>\n",
" <td>1311</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id lastname firstname birthdate email street_id \\\n",
"58201 1 NaN NaN NaN NaN 2 \n",
"\n",
" created_at updated_at \\\n",
"58201 2020-09-03 13:11:25.569167+02:00 2023-03-04 13:27:42.761679+01:00 \n",
"\n",
" civility is_partner extra deleted_at reference gender \\\n",
"58201 NaN False NaN NaN NaN 2 \n",
"\n",
" is_email_true extra_field opt_in structure_id note profession \\\n",
"58201 True NaN False NaN NaN NaN \n",
"\n",
" language mcp_contact_id need_reload last_buying_date max_price \\\n",
"58201 NaN NaN False 2023-11-08 03:20:07 45.0 \n",
"\n",
" ticket_sum average_price fidelity average_purchase_delay \\\n",
"58201 1254775 7.030122 330831 -67.790969 \n",
"\n",
" average_price_basket average_ticket_basket total_price \\\n",
"58201 13.75153 1.956087 8821221.5 \n",
"\n",
" preferred_category preferred_supplier preferred_formula \\\n",
"58201 NaN NaN NaN \n",
"\n",
" purchase_count first_buying_date last_visiting_date zipcode \\\n",
"58201 641472 2013-06-10 12:37:58+02:00 NaN NaN \n",
"\n",
" country age tenant_id \n",
"58201 fr NaN 1311 "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = load_dataset_2('1', 'customersplus')\n",
"df[df['id'] == 1]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "4455b6b9-8395-47ea-b976-d98a2d3c782c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 300x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"outlier_detection(directory_path = \"2\", coupure = 2)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "ee16cf31-18e1-4803-b003-ba1d1a3fc333",
"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>id</th>\n",
" <th>lastname</th>\n",
" <th>firstname</th>\n",
" <th>birthdate</th>\n",
" <th>email</th>\n",
" <th>street_id</th>\n",
" <th>created_at</th>\n",
" <th>updated_at</th>\n",
" <th>civility</th>\n",
" <th>is_partner</th>\n",
" <th>extra</th>\n",
" <th>deleted_at</th>\n",
" <th>reference</th>\n",
" <th>gender</th>\n",
" <th>is_email_true</th>\n",
" <th>extra_field</th>\n",
" <th>opt_in</th>\n",
" <th>structure_id</th>\n",
" <th>note</th>\n",
" <th>profession</th>\n",
" <th>language</th>\n",
" <th>mcp_contact_id</th>\n",
" <th>need_reload</th>\n",
" <th>last_buying_date</th>\n",
" <th>max_price</th>\n",
" <th>ticket_sum</th>\n",
" <th>average_price</th>\n",
" <th>fidelity</th>\n",
" <th>average_purchase_delay</th>\n",
" <th>average_price_basket</th>\n",
" <th>average_ticket_basket</th>\n",
" <th>total_price</th>\n",
" <th>preferred_category</th>\n",
" <th>preferred_supplier</th>\n",
" <th>preferred_formula</th>\n",
" <th>purchase_count</th>\n",
" <th>first_buying_date</th>\n",
" <th>last_visiting_date</th>\n",
" <th>zipcode</th>\n",
" <th>country</th>\n",
" <th>age</th>\n",
" <th>tenant_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>170246</th>\n",
" <td>12184</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3564</td>\n",
" <td>2023-10-12 12:25:15.438714+02:00</td>\n",
" <td>2023-11-09 05:14:01.944407+01:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>1275.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>2023-11-08 19:17:50.565000</td>\n",
" <td>75.0</td>\n",
" <td>512831</td>\n",
" <td>12.645438</td>\n",
" <td>197358</td>\n",
" <td>0.0</td>\n",
" <td>31.719577</td>\n",
" <td>2.508381</td>\n",
" <td>6484972.4</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>204447</td>\n",
" <td>2020-08-28 08:55:55.710000+02:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1879</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id lastname firstname birthdate email street_id \\\n",
"170246 12184 NaN NaN NaN NaN 3564 \n",
"\n",
" created_at updated_at \\\n",
"170246 2023-10-12 12:25:15.438714+02:00 2023-11-09 05:14:01.944407+01:00 \n",
"\n",
" civility is_partner extra deleted_at reference gender \\\n",
"170246 NaN False NaN NaN NaN 2 \n",
"\n",
" is_email_true extra_field opt_in structure_id note profession \\\n",
"170246 True NaN False 1275.0 NaN NaN \n",
"\n",
" language mcp_contact_id need_reload last_buying_date \\\n",
"170246 NaN NaN False 2023-11-08 19:17:50.565000 \n",
"\n",
" max_price ticket_sum average_price fidelity \\\n",
"170246 75.0 512831 12.645438 197358 \n",
"\n",
" average_purchase_delay average_price_basket average_ticket_basket \\\n",
"170246 0.0 31.719577 2.508381 \n",
"\n",
" total_price preferred_category preferred_supplier \\\n",
"170246 6484972.4 NaN NaN \n",
"\n",
" preferred_formula purchase_count first_buying_date \\\n",
"170246 NaN 204447 2020-08-28 08:55:55.710000+02:00 \n",
"\n",
" last_visiting_date zipcode country age tenant_id \n",
"170246 NaN NaN NaN NaN 1879 "
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = load_dataset_2('2', 'customersplus')\n",
"df[df['id'] == 12184]"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "4073c986-3e2c-4945-8601-220fea747c9c",
"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>id</th>\n",
" <th>lastname</th>\n",
" <th>firstname</th>\n",
" <th>birthdate</th>\n",
" <th>email</th>\n",
" <th>street_id</th>\n",
" <th>created_at</th>\n",
" <th>updated_at</th>\n",
" <th>civility</th>\n",
" <th>is_partner</th>\n",
" <th>extra</th>\n",
" <th>deleted_at</th>\n",
" <th>reference</th>\n",
" <th>gender</th>\n",
" <th>is_email_true</th>\n",
" <th>extra_field</th>\n",
" <th>opt_in</th>\n",
" <th>structure_id</th>\n",
" <th>note</th>\n",
" <th>profession</th>\n",
" <th>language</th>\n",
" <th>mcp_contact_id</th>\n",
" <th>need_reload</th>\n",
" <th>last_buying_date</th>\n",
" <th>max_price</th>\n",
" <th>ticket_sum</th>\n",
" <th>average_price</th>\n",
" <th>fidelity</th>\n",
" <th>average_purchase_delay</th>\n",
" <th>average_price_basket</th>\n",
" <th>average_ticket_basket</th>\n",
" <th>total_price</th>\n",
" <th>preferred_category</th>\n",
" <th>preferred_supplier</th>\n",
" <th>preferred_formula</th>\n",
" <th>purchase_count</th>\n",
" <th>first_buying_date</th>\n",
" <th>last_visiting_date</th>\n",
" <th>zipcode</th>\n",
" <th>country</th>\n",
" <th>age</th>\n",
" <th>tenant_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>102639</th>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>email1</td>\n",
" <td>1</td>\n",
" <td>2023-07-20 17:16:27.062822+02:00</td>\n",
" <td>2023-07-20 17:16:27.074952+02:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>fr</td>\n",
" <td>NaN</td>\n",
" <td>1879</td>\n",
" </tr>\n",
" <tr>\n",
" <th>224453</th>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>firstname2</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>2023-07-21 10:18:44.502496+02:00</td>\n",
" <td>2023-07-21 10:18:44.502496+02:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>josef</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>ch</td>\n",
" <td>NaN</td>\n",
" <td>1879</td>\n",
" </tr>\n",
" <tr>\n",
" <th>103013</th>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>firstname3</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>2023-07-21 10:18:44.503913+02:00</td>\n",
" <td>2023-07-21 10:18:44.503913+02:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>dominic</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>ch</td>\n",
" <td>NaN</td>\n",
" <td>1879</td>\n",
" </tr>\n",
" <tr>\n",
" <th>138386</th>\n",
" <td>4</td>\n",
" <td>NaN</td>\n",
" <td>firstname4</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>2023-07-21 10:18:44.504404+02:00</td>\n",
" <td>2023-07-21 10:18:44.504404+02:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>abigail</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>ch</td>\n",
" <td>NaN</td>\n",
" <td>1879</td>\n",
" </tr>\n",
" <tr>\n",
" <th>190087</th>\n",
" <td>5</td>\n",
" <td>NaN</td>\n",
" <td>firstname5</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>2023-07-21 10:18:44.504841+02:00</td>\n",
" <td>2023-07-21 10:18:44.504841+02:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>sophia</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>ch</td>\n",
" <td>NaN</td>\n",
" <td>1879</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>101868</th>\n",
" <td>601387</td>\n",
" <td>lastname601387</td>\n",
" <td>firstname601387</td>\n",
" <td>NaN</td>\n",
" <td>email601387</td>\n",
" <td>3550</td>\n",
" <td>2023-11-09 05:13:57.358715+01:00</td>\n",
" <td>2023-11-09 05:13:57.358715+01:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>de</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1879</td>\n",
" </tr>\n",
" <tr>\n",
" <th>205168</th>\n",
" <td>601388</td>\n",
" <td>lastname601388</td>\n",
" <td>firstname601388</td>\n",
" <td>NaN</td>\n",
" <td>email601388</td>\n",
" <td>3550</td>\n",
" <td>2023-11-09 05:13:57.359234+01:00</td>\n",
" <td>2023-11-09 05:13:57.359234+01:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>de</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>2023-11-09 00:25:24.716000</td>\n",
" <td>15.0</td>\n",
" <td>2</td>\n",
" <td>14.0</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>28.0</td>\n",
" <td>2.0</td>\n",
" <td>28.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>2023-11-09 00:25:24.716000+01:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1879</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67641</th>\n",
" <td>601389</td>\n",
" <td>lastname601389</td>\n",
" <td>firstname601389</td>\n",
" <td>NaN</td>\n",
" <td>email601389</td>\n",
" <td>3550</td>\n",
" <td>2023-11-09 05:13:57.360373+01:00</td>\n",
" <td>2023-11-09 05:13:57.360373+01:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>de</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>2023-11-09 00:28:07.511000</td>\n",
" <td>15.0</td>\n",
" <td>2</td>\n",
" <td>15.0</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>30.0</td>\n",
" <td>2.0</td>\n",
" <td>30.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>2023-11-09 00:28:07.511000+01:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1879</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67639</th>\n",
" <td>601390</td>\n",
" <td>lastname601390</td>\n",
" <td>firstname601390</td>\n",
" <td>NaN</td>\n",
" <td>email601390</td>\n",
" <td>3550</td>\n",
" <td>2023-11-09 05:13:57.360903+01:00</td>\n",
" <td>2023-11-09 05:13:57.360903+01:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1879</td>\n",
" </tr>\n",
" <tr>\n",
" <th>256450</th>\n",
" <td>601391</td>\n",
" <td>lastname601391</td>\n",
" <td>firstname601391</td>\n",
" <td>NaN</td>\n",
" <td>email601391</td>\n",
" <td>3550</td>\n",
" <td>2023-11-09 05:13:57.361432+01:00</td>\n",
" <td>2023-11-09 05:14:18.906054+01:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>True</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>2023-11-09 00:36:41.172000</td>\n",
" <td>15.0</td>\n",
" <td>2</td>\n",
" <td>15.0</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>30.0</td>\n",
" <td>2.0</td>\n",
" <td>30.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>2023-11-09 00:36:41.172000+01:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1879</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>275622 rows × 42 columns</p>\n",
"</div>"
],
"text/plain": [
" id lastname firstname birthdate email \\\n",
"102639 1 NaN NaN NaN email1 \n",
"224453 2 NaN firstname2 NaN NaN \n",
"103013 3 NaN firstname3 NaN NaN \n",
"138386 4 NaN firstname4 NaN NaN \n",
"190087 5 NaN firstname5 NaN NaN \n",
"... ... ... ... ... ... \n",
"101868 601387 lastname601387 firstname601387 NaN email601387 \n",
"205168 601388 lastname601388 firstname601388 NaN email601388 \n",
"67641 601389 lastname601389 firstname601389 NaN email601389 \n",
"67639 601390 lastname601390 firstname601390 NaN email601390 \n",
"256450 601391 lastname601391 firstname601391 NaN email601391 \n",
"\n",
" street_id created_at \\\n",
"102639 1 2023-07-20 17:16:27.062822+02:00 \n",
"224453 2 2023-07-21 10:18:44.502496+02:00 \n",
"103013 3 2023-07-21 10:18:44.503913+02:00 \n",
"138386 3 2023-07-21 10:18:44.504404+02:00 \n",
"190087 3 2023-07-21 10:18:44.504841+02:00 \n",
"... ... ... \n",
"101868 3550 2023-11-09 05:13:57.358715+01:00 \n",
"205168 3550 2023-11-09 05:13:57.359234+01:00 \n",
"67641 3550 2023-11-09 05:13:57.360373+01:00 \n",
"67639 3550 2023-11-09 05:13:57.360903+01:00 \n",
"256450 3550 2023-11-09 05:13:57.361432+01:00 \n",
"\n",
" updated_at civility is_partner extra \\\n",
"102639 2023-07-20 17:16:27.074952+02:00 NaN False NaN \n",
"224453 2023-07-21 10:18:44.502496+02:00 NaN False NaN \n",
"103013 2023-07-21 10:18:44.503913+02:00 NaN False NaN \n",
"138386 2023-07-21 10:18:44.504404+02:00 NaN False NaN \n",
"190087 2023-07-21 10:18:44.504841+02:00 NaN False NaN \n",
"... ... ... ... ... \n",
"101868 2023-11-09 05:13:57.358715+01:00 NaN False NaN \n",
"205168 2023-11-09 05:13:57.359234+01:00 NaN False NaN \n",
"67641 2023-11-09 05:13:57.360373+01:00 NaN False NaN \n",
"67639 2023-11-09 05:13:57.360903+01:00 NaN False NaN \n",
"256450 2023-11-09 05:14:18.906054+01:00 NaN False NaN \n",
"\n",
" deleted_at reference gender is_email_true extra_field opt_in \\\n",
"102639 NaN NaN 2 True NaN False \n",
"224453 NaN NaN 1 True NaN False \n",
"103013 NaN NaN 2 True NaN False \n",
"138386 NaN NaN 2 True NaN False \n",
"190087 NaN NaN 1 True NaN False \n",
"... ... ... ... ... ... ... \n",
"101868 NaN NaN 2 True NaN False \n",
"205168 NaN NaN 2 True NaN False \n",
"67641 NaN NaN 2 True NaN False \n",
"67639 NaN NaN 0 True NaN False \n",
"256450 NaN NaN 2 True NaN False \n",
"\n",
" structure_id note profession language mcp_contact_id need_reload \\\n",
"102639 NaN NaN NaN NaN 1.0 False \n",
"224453 NaN NaN NaN josef NaN False \n",
"103013 NaN NaN NaN dominic NaN False \n",
"138386 NaN NaN NaN abigail NaN False \n",
"190087 NaN NaN NaN sophia NaN False \n",
"... ... ... ... ... ... ... \n",
"101868 NaN NaN NaN de NaN False \n",
"205168 NaN NaN NaN de NaN False \n",
"67641 NaN NaN NaN de NaN False \n",
"67639 NaN NaN NaN NaN NaN False \n",
"256450 NaN NaN NaN NaN NaN False \n",
"\n",
" last_buying_date max_price ticket_sum average_price \\\n",
"102639 NaN NaN 0 NaN \n",
"224453 NaN NaN 0 NaN \n",
"103013 NaN NaN 0 NaN \n",
"138386 NaN NaN 0 NaN \n",
"190087 NaN NaN 0 NaN \n",
"... ... ... ... ... \n",
"101868 NaN NaN 0 NaN \n",
"205168 2023-11-09 00:25:24.716000 15.0 2 14.0 \n",
"67641 2023-11-09 00:28:07.511000 15.0 2 15.0 \n",
"67639 NaN NaN 0 NaN \n",
"256450 2023-11-09 00:36:41.172000 15.0 2 15.0 \n",
"\n",
" fidelity average_purchase_delay average_price_basket \\\n",
"102639 0 NaN NaN \n",
"224453 0 NaN NaN \n",
"103013 0 NaN NaN \n",
"138386 0 NaN NaN \n",
"190087 0 NaN NaN \n",
"... ... ... ... \n",
"101868 0 NaN NaN \n",
"205168 1 0.0 28.0 \n",
"67641 1 0.0 30.0 \n",
"67639 0 NaN NaN \n",
"256450 1 0.0 30.0 \n",
"\n",
" average_ticket_basket total_price preferred_category \\\n",
"102639 NaN 0.0 NaN \n",
"224453 NaN 0.0 NaN \n",
"103013 NaN 0.0 NaN \n",
"138386 NaN 0.0 NaN \n",
"190087 NaN 0.0 NaN \n",
"... ... ... ... \n",
"101868 NaN 0.0 NaN \n",
"205168 2.0 28.0 NaN \n",
"67641 2.0 30.0 NaN \n",
"67639 NaN 0.0 NaN \n",
"256450 2.0 30.0 NaN \n",
"\n",
" preferred_supplier preferred_formula purchase_count \\\n",
"102639 NaN NaN 0 \n",
"224453 NaN NaN 0 \n",
"103013 NaN NaN 0 \n",
"138386 NaN NaN 0 \n",
"190087 NaN NaN 0 \n",
"... ... ... ... \n",
"101868 NaN NaN 0 \n",
"205168 NaN NaN 1 \n",
"67641 NaN NaN 1 \n",
"67639 NaN NaN 0 \n",
"256450 NaN NaN 1 \n",
"\n",
" first_buying_date last_visiting_date zipcode country \\\n",
"102639 NaN NaN NaN fr \n",
"224453 NaN NaN NaN ch \n",
"103013 NaN NaN NaN ch \n",
"138386 NaN NaN NaN ch \n",
"190087 NaN NaN NaN ch \n",
"... ... ... ... ... \n",
"101868 NaN NaN NaN NaN \n",
"205168 2023-11-09 00:25:24.716000+01:00 NaN NaN NaN \n",
"67641 2023-11-09 00:28:07.511000+01:00 NaN NaN NaN \n",
"67639 NaN NaN NaN NaN \n",
"256450 2023-11-09 00:36:41.172000+01:00 NaN NaN NaN \n",
"\n",
" age tenant_id \n",
"102639 NaN 1879 \n",
"224453 NaN 1879 \n",
"103013 NaN 1879 \n",
"138386 NaN 1879 \n",
"190087 NaN 1879 \n",
"... ... ... \n",
"101868 NaN 1879 \n",
"205168 NaN 1879 \n",
"67641 NaN 1879 \n",
"67639 NaN 1879 \n",
"256450 NaN 1879 \n",
"\n",
"[275622 rows x 42 columns]"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.sort_values(by = 'id')"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "475030ad-6a69-4c91-9cd6-943a0edeaf01",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"File path : projet-bdc2324-team1/0_Input/Company_3/products_purchased_reduced.csv\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 300x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"outlier_detection(directory_path = \"3\", coupure = 2)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "b64d04db-1c3f-4538-9d05-8f7d62c7c046",
"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>id</th>\n",
" <th>lastname</th>\n",
" <th>firstname</th>\n",
" <th>birthdate</th>\n",
" <th>email</th>\n",
" <th>street_id</th>\n",
" <th>created_at</th>\n",
" <th>updated_at</th>\n",
" <th>civility</th>\n",
" <th>is_partner</th>\n",
" <th>extra</th>\n",
" <th>deleted_at</th>\n",
" <th>reference</th>\n",
" <th>gender</th>\n",
" <th>is_email_true</th>\n",
" <th>extra_field</th>\n",
" <th>opt_in</th>\n",
" <th>structure_id</th>\n",
" <th>note</th>\n",
" <th>profession</th>\n",
" <th>language</th>\n",
" <th>mcp_contact_id</th>\n",
" <th>need_reload</th>\n",
" <th>last_buying_date</th>\n",
" <th>max_price</th>\n",
" <th>ticket_sum</th>\n",
" <th>average_price</th>\n",
" <th>fidelity</th>\n",
" <th>average_purchase_delay</th>\n",
" <th>average_price_basket</th>\n",
" <th>average_ticket_basket</th>\n",
" <th>total_price</th>\n",
" <th>preferred_category</th>\n",
" <th>preferred_supplier</th>\n",
" <th>preferred_formula</th>\n",
" <th>purchase_count</th>\n",
" <th>first_buying_date</th>\n",
" <th>last_visiting_date</th>\n",
" <th>zipcode</th>\n",
" <th>country</th>\n",
" <th>age</th>\n",
" <th>tenant_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>105720</th>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1961-12-04</td>\n",
" <td>NaN</td>\n",
" <td>91159</td>\n",
" <td>2021-03-02 15:35:40.452065+01:00</td>\n",
" <td>2023-11-09 01:31:07.539604+01:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>19715.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>2023-11-06 16:57:19</td>\n",
" <td>7500.0</td>\n",
" <td>2297716</td>\n",
" <td>10.152196</td>\n",
" <td>14917</td>\n",
" <td>-39771.165147</td>\n",
" <td>27.514811</td>\n",
" <td>2.710232</td>\n",
" <td>2.332686e+07</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>847793</td>\n",
" <td>2016-01-01 10:23:36+01:00</td>\n",
" <td>2023-11-06 17:12:00</td>\n",
" <td>13090</td>\n",
" <td>fr</td>\n",
" <td>61.0</td>\n",
" <td>1512</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id lastname firstname birthdate email street_id \\\n",
"105720 1 NaN NaN 1961-12-04 NaN 91159 \n",
"\n",
" created_at updated_at \\\n",
"105720 2021-03-02 15:35:40.452065+01:00 2023-11-09 01:31:07.539604+01:00 \n",
"\n",
" civility is_partner extra deleted_at reference gender \\\n",
"105720 NaN False NaN NaN NaN 2 \n",
"\n",
" is_email_true extra_field opt_in structure_id note profession \\\n",
"105720 False NaN False 19715.0 NaN NaN \n",
"\n",
" language mcp_contact_id need_reload last_buying_date max_price \\\n",
"105720 NaN NaN False 2023-11-06 16:57:19 7500.0 \n",
"\n",
" ticket_sum average_price fidelity average_purchase_delay \\\n",
"105720 2297716 10.152196 14917 -39771.165147 \n",
"\n",
" average_price_basket average_ticket_basket total_price \\\n",
"105720 27.514811 2.710232 2.332686e+07 \n",
"\n",
" preferred_category preferred_supplier preferred_formula \\\n",
"105720 NaN NaN NaN \n",
"\n",
" purchase_count first_buying_date last_visiting_date \\\n",
"105720 847793 2016-01-01 10:23:36+01:00 2023-11-06 17:12:00 \n",
"\n",
" zipcode country age tenant_id \n",
"105720 13090 fr 61.0 1512 "
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = load_dataset_2('3', 'customersplus')\n",
"df[df['id'] == 1]"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "1d817bee-3ded-4066-9f91-6cf095591b0e",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"File path : projet-bdc2324-team1/0_Input/Company_4/products_purchased_reduced.csv\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 300x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"outlier_detection(directory_path = \"4\", coupure = 2)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "4cc07982-1070-439b-a579-fd3f351778b3",
"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>id</th>\n",
" <th>lastname</th>\n",
" <th>firstname</th>\n",
" <th>birthdate</th>\n",
" <th>email</th>\n",
" <th>street_id</th>\n",
" <th>created_at</th>\n",
" <th>updated_at</th>\n",
" <th>civility</th>\n",
" <th>is_partner</th>\n",
" <th>extra</th>\n",
" <th>deleted_at</th>\n",
" <th>reference</th>\n",
" <th>gender</th>\n",
" <th>is_email_true</th>\n",
" <th>extra_field</th>\n",
" <th>opt_in</th>\n",
" <th>structure_id</th>\n",
" <th>note</th>\n",
" <th>profession</th>\n",
" <th>language</th>\n",
" <th>mcp_contact_id</th>\n",
" <th>need_reload</th>\n",
" <th>last_buying_date</th>\n",
" <th>max_price</th>\n",
" <th>ticket_sum</th>\n",
" <th>average_price</th>\n",
" <th>fidelity</th>\n",
" <th>average_purchase_delay</th>\n",
" <th>average_price_basket</th>\n",
" <th>average_ticket_basket</th>\n",
" <th>total_price</th>\n",
" <th>preferred_category</th>\n",
" <th>preferred_supplier</th>\n",
" <th>preferred_formula</th>\n",
" <th>purchase_count</th>\n",
" <th>first_buying_date</th>\n",
" <th>last_visiting_date</th>\n",
" <th>zipcode</th>\n",
" <th>country</th>\n",
" <th>age</th>\n",
" <th>tenant_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>300754</th>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>2020-09-25 19:09:07.669208+02:00</td>\n",
" <td>2021-11-30 02:07:28.120188+01:00</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>False</td>\n",
" <td>2023-11-07 16:33:09</td>\n",
" <td>360.0</td>\n",
" <td>1237224</td>\n",
" <td>6.056248</td>\n",
" <td>236850</td>\n",
" <td>0.015528</td>\n",
" <td>13.493612</td>\n",
" <td>2.228048</td>\n",
" <td>7492935.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>555295</td>\n",
" <td>1901-01-01 00:09:21+00:09</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1342</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id lastname firstname birthdate email street_id \\\n",
"300754 2 NaN NaN NaN NaN 2 \n",
"\n",
" created_at updated_at \\\n",
"300754 2020-09-25 19:09:07.669208+02:00 2021-11-30 02:07:28.120188+01:00 \n",
"\n",
" civility is_partner extra deleted_at reference gender \\\n",
"300754 NaN False NaN NaN NaN 2 \n",
"\n",
" is_email_true extra_field opt_in structure_id note profession \\\n",
"300754 False NaN False NaN NaN NaN \n",
"\n",
" language mcp_contact_id need_reload last_buying_date max_price \\\n",
"300754 NaN NaN False 2023-11-07 16:33:09 360.0 \n",
"\n",
" ticket_sum average_price fidelity average_purchase_delay \\\n",
"300754 1237224 6.056248 236850 0.015528 \n",
"\n",
" average_price_basket average_ticket_basket total_price \\\n",
"300754 13.493612 2.228048 7492935.0 \n",
"\n",
" preferred_category preferred_supplier preferred_formula \\\n",
"300754 NaN NaN NaN \n",
"\n",
" purchase_count first_buying_date last_visiting_date zipcode \\\n",
"300754 555295 1901-01-01 00:09:21+00:09 NaN NaN \n",
"\n",
" country age tenant_id \n",
"300754 NaN NaN 1342 "
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = load_dataset_2('4', 'customersplus')\n",
"df[df['id'] == 2]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "f74a9e62-a0f7-41cf-9834-78a99204547c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 300x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"outlier_detection(directory_path = \"101\", coupure = 2)"
]
},
{
"cell_type": "markdown",
"id": "dbebfa92-310a-417b-a7fa-36ac3593db06",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"## Evolution des commandes"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "06137694-7f50-47ba-8749-68471ececc1e",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_448/3643128924.py:11: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n",
" purchases = pd.read_csv(file_in, sep=\",\", parse_dates = ['purchase_date'], date_parser=custom_date_parser)\n",
"/tmp/ipykernel_448/3643128924.py:19: FutureWarning: The argument 'date_parser' is deprecated and will be removed in a future version. Please use 'date_format' instead, or read your data in as 'object' dtype and then call 'to_datetime'.\n",
" campaigns = pd.read_csv(file_in, sep=\",\", parse_dates = ['sent_at'], date_parser=custom_date_parser)\n"
]
}
],
"source": [
"# Importation - Chargement des données temporaires\n",
"company_number = \"1\"\n",
"nom_dataframe = 'df'+ company_number +'_tickets'\n",
"purchases = globals()[nom_dataframe].copy()\n",
"\n",
"campaigns = display_databases(company_number,'campaigns_information', ['sent_at'])\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "e6b962d4-1a30-4133-ac0f-359f7afef42c",
"metadata": {},
"outputs": [],
"source": [
"# Mois du premier achat\n",
"purchase_min = purchases.groupby(['customer_id'])['purchase_date'].min().reset_index()\n",
"purchase_min.rename(columns = {'purchase_date' : 'first_purchase_event'}, inplace = True)\n",
"purchase_min['first_purchase_event'] = pd.to_datetime(purchase_min['first_purchase_event'])\n",
"purchase_min['first_purchase_month'] = pd.to_datetime(purchase_min['first_purchase_event'].dt.strftime('%Y-%m'))\n",
"\n",
"# Mois du premier mails\n",
"first_mail_received = campaigns.groupby('customer_id')['sent_at'].min().reset_index()\n",
"first_mail_received.rename(columns = {'sent_at' : 'first_email_reception'}, inplace = True)\n",
"first_mail_received['first_email_reception'] = pd.to_datetime(first_mail_received['first_email_reception'])\n",
"first_mail_received['first_email_month'] = pd.to_datetime(first_mail_received['first_email_reception'].dt.strftime('%Y-%m'))\n",
"\n",
"# Fusion \n",
"known_customer = pd.merge(purchase_min[['customer_id', 'first_purchase_month']], \n",
" first_mail_received[['customer_id', 'first_email_month']], on = 'customer_id', how = 'outer')\n",
"\n",
"# Mois à partir duquel le client est considere comme connu\n",
"known_customer['known_date'] = pd.to_datetime(known_customer[['first_email_month', 'first_purchase_month']].min(axis = 1), utc = True, format = 'ISO8601')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "9c56e5ac-cbf4-4343-80ba-be2ab8b60eab",
"metadata": {},
"outputs": [],
"source": [
"# Nombre de commande par mois\n",
"purchases_count = pd.merge(purchases[['customer_id', 'purchase_id', 'purchase_date']].drop_duplicates(), known_customer[['customer_id', 'known_date']], on = ['customer_id'], how = 'inner')\n",
"purchases_count['is_customer_known'] = purchases_count['purchase_date'] > purchases_count['known_date'] + pd.DateOffset(months=1)\n",
"purchases_count['purchase_date_month'] = pd.to_datetime(purchases_count['purchase_date'].dt.strftime('%Y-%m'))\n",
"purchases_count = purchases_count[purchases_count['customer_id'] != 1]\n",
"\n",
"# Nombre de commande par mois par type de client\n",
"nb_purchases_graph = purchases_count.groupby(['purchase_date_month', 'is_customer_known'])['purchase_id'].count().reset_index()\n",
"nb_purchases_graph.rename(columns = {'purchase_id' : 'nb_purchases'}, inplace = True)\n",
"\n",
"nb_purchases_graph_2 = purchases_count.groupby(['purchase_date_month', 'is_customer_known'])['customer_id'].nunique().reset_index()\n",
"nb_purchases_graph_2.rename(columns = {'customer_id' : 'nb_new_customer'}, inplace = True)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "8c1aed44-03d3-49f9-b96c-b06a0df03dde",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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6ZIUUxEDAwOYmZkpLURERNQw1elLZtOnT0ffvn3h6OiIjIwMzJ07F9nZ2Rg5ciRkMhnCwsIwb948tG7dGq1bt8a8efNgbGyM4OBgAIBcLseYMWMwbdo0WFpawsLCAtOnT4erq6t01xkRERFRnS6I7ty5g+HDh+PBgwdo2rQpPDw8cPLkSTg5OQEAZsyYgby8PEyYMAGZmZno2rUrDhw4ID2DCACWLFkCXV1dDBkyBHl5efD29sbGjRv5DCIiIiKS1OmCKDo6+oXrZTIZIiIiEBERUWGMoaEhli9fjuXLl2s4OyIiImoo6nRBRETl8enRVFepOjdv1HwaRFVSryZVExEREVUHFkRERESk9VgQERERkdZjQURERERajwURERERaT0WRERERKT1WBARERGR1mNBRERERFqPBRERERFpPRZEREREpPVYEBEREZHWY0FEREREWo8FEREREWk9FkRERESk9VgQERERkdZjQURERERajwURERERaT0WRERERKT1dGs7ASIiItIyEXIVbYqaz+MZHCEiIiIirceCiIiIiLQeL5kRERFRjXLOjyrXdqPm01DCESIiIiLSeiyIiIiISOuxICIiIiKtx4KIiIiItB4LIiIiItJ6LIiIiIhI67EgIiIiIq3HgoiIiIi0HgsiIiIi0nosiIiIiEjradWrO1auXInvvvsOaWlp6NChA5YuXYoePXrUdlqq3/oLvPzNv1XdjoiIiJRozQjRtm3bEBYWhi+//BLnzp1Djx49EBAQgFu3btV2akRERFTLtKYgWrx4McaMGYOPPvoI7dq1w9KlS+Hg4IBVq1bVdmpERERUy7TikllhYSGSkpIwc+ZMpXZfX18kJCTUUlavTtXbgoHaf2MwERFRfaMVBdGDBw9QUlICGxsbpXYbGxukp6er3KagoAAFBQXSZ4Xi6byc7OxsjefnovhRZfullxyrtOCJyvaX5cjt6u52lTm/ajJPbfyeVPV4DT3PuvZ9qQs5crua364qyvYrhHhxoNACf//9twAgEhISlNrnzp0r2rZtq3Kb2bNnCwBcuHDhwoULlwaw3L59+4W1glaMEFlZWUFHR6fcaFBGRka5UaMy4eHhmDp1qvS5tLQUjx49gqWlJWQyWbXmW1Oys7Ph4OCA27dvw8zMrLbT0Tj2r/5qyH0D2L/6qqH261kNsY9CCDx+/Bj29vYv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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Graphique en nombre de commande\n",
"purchases_graph = nb_purchases_graph\n",
"\n",
"purchases_graph_used = purchases_graph[purchases_graph[\"purchase_date_month\"] >= datetime(2021,3,1)]\n",
"purchases_graph_used_0 = purchases_graph_used[purchases_graph_used[\"is_customer_known\"]==False]\n",
"purchases_graph_used_1 = purchases_graph_used[purchases_graph_used[\"is_customer_known\"]==True]\n",
"\n",
"\n",
"# Création du barplot\n",
"plt.bar(purchases_graph_used_0[\"purchase_date_month\"], purchases_graph_used_0[\"nb_purchases\"], width=12, label = \"Nouveau client\")\n",
"plt.bar(purchases_graph_used_0[\"purchase_date_month\"], purchases_graph_used_1[\"nb_purchases\"], \n",
" bottom = purchases_graph_used_0[\"nb_purchases\"], width=12, label = \"Ancien client\")\n",
"\n",
"\n",
"# commande pr afficher slt\n",
"plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%b%y'))\n",
"\n",
"\n",
"# Ajout de titres et d'étiquettes\n",
"plt.xlabel('Mois')\n",
"plt.ylabel(\"Nombre d'achats\")\n",
"plt.title(\"Nombre d'achats - MUCEM\")\n",
"plt.legend()\n",
"\n",
"# Affichage du barplot\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "d312276c-4c46-4d29-b6d6-ed110f59890d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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IkhERERUQTERJCIiIqqgip0Ipqen486dO8jMzFRlPERERERUSpROBF+/fo0RI0ZAX18f9evXx8OHDwEAEydOxMKFC1UeIBERERGpxzsTwTVr1uDy5cvS8xkzZuDq1asIDg6Grq6uVN6xY0fs2rVLPVESERERkcq9MxGsU6cOevbsiePHjwMA9u3bh1WrVuHjjz9WuLlzvXr1cO/ePfVFSkREREQq9c5E0M3NDWfOnIGfnx8A4L///oOFhUWeesnJyQqJIRERERGVb0U6R9DR0REhISEAgObNm+Pw4f+7Z2xO8rdu3Tq4urqqIUQiIiIiUgfNolbU0tICACxYsAAeHh64desWMjMzsXLlSty8eROhoaFSskhERERE5Z/Ss4ZbtWqFc+fO4fXr16hRowaOHz8OS0tLhIaGomnTpuqIkYiIiIjUoMgjgm9zdnbG5s2bVR0LEREREZWiIiWCSUlJRV6hsbFxsYMhIiIiotJTpESwcuXKRZ4RnJWVVaKAiIiIiKh0FCkRPH36tPT3/fv3MX36dPj6+kqzhENDQ7F582YsWLBAPVESERERkcoVKRF0c3OT/v7++++xbNkyDBw4UCrr0aMHnJ2dsXbtWvj4+Kg+SiIiIiJSOaVnDYeGhqJZs2Z5yps1a4aLFy+qJCgiIiIiUj+lE0FbW1v8+uuvecrXrFkDW1tblQRFREREROqn9OVjli9fjr59++LYsWNo2bIlACAsLAz37t3D77//rvIAiYiIiEg9lB4R7NatG+7evYsePXogLi4OL168QM+ePfH333+jW7du6oiRiIiIiNSgWBeUrlatGubPn6/qWIiIiIioFBUrEUxISMDFixcRGxuL7OxshWVDhw5VSWBEREREpF5KJ4IHDx7E4MGDkZycDCMjI4ULTctkMiaCRERERO8Jpc8RnDJlCoYPH46XL18iISEB8fHx0iMuLk4dMRIRERGRGiidCD558gQTJ06Evr6+OuIhIiIiolKidCLYpUsXREREqCMWIiIiIipFSp8j2L17d3z11Ve4desWnJ2doaWlpbC8R48eKguOiIiIiNRH6URw1KhRAN7cczg3mUyGrKyskkdFRERERGqndCKY+3IxRERERPR+UvocQSIiIiL6MBTrgtLJyckICQnBw4cPkZ6errBs4sSJKgmMyjE/eT5liaUfBxEREZWI0onglStX0K1b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iKj8KdaIIBERERG9/5ROBH18fNQRBxERERGVMqUTwbelpKQgIyNDoczY2LhEARERERFR6VB61nBycjLGjx8PCwsLGBoawsTEROFBRERERO8HpRPBadOm4dSpU/jll1+go6OD3377DXPmzIGNjQ22bNmijhiJiIiISA2UPjR88OBBbNmyBe7u7hg+fDjatGmDmjVrwt7eHtu3b8fgwYPVEScRERERqZjSI4JxcXFwdHQE8OZ8wJzLxXz88cc4c+aMaqMjIiIiIrVROhGsXr067t+/DwCoV68edu/eDeDNSGHlypVVGRsRERERqZHSieCwYcNw9epVAMCMGTOkcwW//PJLfPXVVyoPkIiIiIjUQ+lzBL/88kvp73bt2uGvv/5CREQEatSogYYNG6o0OCIiIiJSH6UTwaioKOkcQQCws7ODnZ2dSoMiIiIiIvVT+tBwzZo10a5dO2zbtg2pqanqiImIiIiISoHSieDVq1fRuHFjTJkyBVZWVhgzZgwuXLigjtiIiIiISI2UTgQbNGiAZcuW4cmTJ9i4cSNiYmLQpk0b1K9fH8uWLcPz58/VEScRERERqZjSiWAOTU1N9O7dG7t378aiRYtw7949TJ06FdWqVcPQoUMRHR2tyjiJiIiISMWKnQhGRERg7NixsLa2xrJlyzB16lTcu3cPp06dwpMnT9CzZ09VxklEREREKqb0rOFly5Zh48aNuHPnDrp164YtW7agW7duqFTpTU7p6OiINWvWoE6dOioPloiIiIhUR+lEcPXq1Rg+fDiGDRsGKyurfOvY2dlh/fr1JQ6OiIiIiNRH6UTw7t2776yjra0NHx+fYgVERERERKVD6UQwx+vXr/Hw4UOkp6crlLu4uJQ4KCIiIiJSP6UTwefPn8PX1xeBgYH5Ls/KyipxUEREKuMnL6A8sXTjICIqh5SeNTxp0iQkJCQgLCwMenp6CAwMxObNm1GrVi0cOHBAHTESERERkRooPSJ46tQp/PHHH2jevDkqVaoEe3t7dOrUCcbGxliwYAG6d++ujjiJiIiISMWUHhFMTk6GhYUFAMDU1FS6k4izszMuX76s2uiIiIiISG2UTgSdnJxw584dAECjRo2wZs0aPHnyBL/++iusra1VHiARERERqUexzhHMuX3c7NmzERgYCDs7O/z000+YP3++UutasGABmjdvDiMjI1hYWKBX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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# graphique en nombre de client ayant commandé\n",
"purchases_graph = nb_purchases_graph_2\n",
"\n",
"purchases_graph_used = purchases_graph[purchases_graph[\"purchase_date_month\"] >= datetime(2021,4,1)]\n",
"purchases_graph_used_0 = purchases_graph_used[purchases_graph_used[\"is_customer_known\"]==False]\n",
"purchases_graph_used_1 = purchases_graph_used[purchases_graph_used[\"is_customer_known\"]==True]\n",
"\n",
"\n",
"# Création du barplot\n",
"plt.bar(purchases_graph_used_0[\"purchase_date_month\"], purchases_graph_used_0[\"nb_new_customer\"], width=12, label = \"Nouveau client\")\n",
"plt.bar(purchases_graph_used_0[\"purchase_date_month\"], purchases_graph_used_1[\"nb_new_customer\"], \n",
" bottom = purchases_graph_used_0[\"nb_new_customer\"], width=12, label = \"Ancien client\")\n",
"\n",
"\n",
"# commande pr afficher slt\n",
"plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%b%y'))\n",
"\n",
"\n",
"# Ajout de titres et d'étiquettes\n",
"plt.xlabel('Mois')\n",
"plt.ylabel(\"Nombre de client ayant commandé\")\n",
"plt.title(\"Nombre de client ayant commandé un ticket pour l'offre 'muséale groupe'\")\n",
"plt.legend()\n",
"\n",
"# Affichage du barplot\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "82895dfc-e5ca-4be0-af24-93c1be8f6248",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"## Proportion de tickets de prix 0"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "10828dd8-8ec9-49eb-b450-acca741964c7",
"metadata": {},
"outputs": [],
"source": [
"barplot_prop_free_price = pd.DataFrame()\n",
"for company_number in ['1', '2', '3', '4', '101'] : # \n",
" nom_dataframe = 'df'+ company_number +'_tickets'\n",
" df_tickets = globals()[nom_dataframe].copy()\n",
" df_free_tickets = df_tickets[df_tickets['amount'] == 0 | df_tickets['amount'].isna()]\n",
"\n",
" if company_number == '101' :\n",
" df_free_tickets_1 = df101_tickets_1[df101_tickets_1['amount'] == 0]\n",
" nb_tickets = len(df_tickets) + len(df101_tickets_1)\n",
" nb_free_tickets = len(df_free_tickets) + len(df_free_tickets_1)\n",
" \n",
" graph_dataframe = pd.DataFrame({'company_number' : [company_number], \n",
" 'prop_free_tickets' : [nb_free_tickets / nb_tickets],\n",
" 'nb_tickets' : [nb_tickets]})\n",
" \n",
" else : \n",
" graph_dataframe = pd.DataFrame({'company_number' : [company_number], \n",
" 'prop_free_tickets' : [len(df_free_tickets) / len(df_tickets)],\n",
" 'nb_tickets' : [len(df_tickets)]})\n",
"\n",
" barplot_prop_free_price = pd.concat([barplot_prop_free_price, graph_dataframe])"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "065576ef-2515-43eb-a65d-21f07f228c9e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1cAAAIiCAYAAAAkWjI2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABeMUlEQVR4nO3deVxV1f7/8fcRhKMIKA6giUCaAzkhmqIXzQzQzKtZV8pCvWrmTXOg+iaZKTag3pui5vitJBuU+jk0aClWTkmTgg1q01Uxg5xBHFBg//7w4fl2PKjn5MYj+no+HufxcK+z9tqffdgm79be61gMwzAEAAAAALgildxdAAAAAABcDwhXAAAAAGACwhUAAAAAmIBwBQAAAAAmIFwBAAAAgAkIVwAAAABgAsIVAAAAAJiAcAUAAAAAJiBcAQAAAIAJCFcAAABusGbNGlWuXFkrV650dykATEK4AnBNSUtLk8Visb08PT1Vv359/fOf/9T+/fvdXd5ftmPHDk2aNEl79uxxeG/QoEEKDQ296jVdzJ49e2SxWJSWlmbqeP/5z38u2/f8z//Pn1NZn09oaKgGDRr0l+p58cUXK/Qvs2+//bZSU1OvaIxJkybJYrHYtc2dO9e0nzku77ffftNDDz2kmTNnqk+fPu4uB4BJCFcArkmLFi1SZmamMjIy9PDDD2vJkiWKjo7WiRMn3F3aX7Jjxw4lJyeXGa4mTJigFStWXP2irkE9e/ZUZmam6tatW27HIFxJQ4cOVWZmpl0b4erqKS4uVnx8vIYNG6ZHH33U3eUAMJGnuwsAgLI0b95cbdu2lSR17dpVJSUleu6557Ry5Uo9+OCDZe5z8uRJVa1a9WqWeVlnz551mCG4UMOGDa9SNde+2rVrq3bt2u4u46o6deqUqlSpclWPWb9+fdWvX/+qHrO8nDp1Slar9bJ/z64lnp6e+vzzz91dBoBywMwVgAqhQ4cOkqS9e/dKOnerWLVq1fTdd98pNjZWvr6+6tatmyTpyJEjevTRR3XTTTfJy8tLN998s8aPH6+ioiK7MS0Wi0aOHKkFCxaocePG8vb2Vnh4uJYuXepw/O+//169e/dWjRo1ZLVa1bp1a73++ut2fdavXy+LxaI33nhDjz/+uG666SZ5e3vrlVde0T/+8Q9J54Li+Vsez88SlHXb2+nTp5WUlKSwsDB5eXnppptu0ogRI3Ts2DG7fqGhobr77rv18ccfq02bNqpSpYqaNm2q1157zanP9ffff1e/fv3k6+srf39/xcfHKy8vr8y+33zzjf7+978rICBAVqtVEREReuedd5w6jiSVlpbqhRdeUIMGDWS1WtW2bVt98skndn3Kui3QWQUFBXriiSfsPrMxY8bYzXZaLBadOHFCr7/+uu3ncPvtt0s6F87P72+1WhUQEKC2bdtqyZIllz325s2bFRUVJavVqptuukkTJkzQK6+84nAu539ey5cvV0REhKxWq5KTkyVJc+bMUefOnVWnTh35+PioRYsWmjZtms6ePWvb//bbb9eqVau0d+9eu9tnpf+7/tavX29XW1m3eV54W2BoaKh++OEHbdiwwTbm+WuytLRUzz//vJo0aaIqVaqoevXqatmypWbOnHnJz+R8PW+++aYSExMVFBSkKlWqqEuXLsrKyrLr+8033+j+++9XaGioqlSpotDQUD3wwAO2v+/nnb8+1q5dq8GDB6t27dqqWrWqw9/tC2t4++239dRTT6lu3bqqVq2aevXqpT/++EPHjx/XsGHDVKtWLdWqVUv//Oc/VVhYeMnP7jyLxaJJkybZtg8ePKhhw4YpODhY3t7eql27tjp16qR169bZ7bdu3Tp169ZNfn5+qlq1qjp16uTw90CSfv75Z/Xv31916tSRt7e3mjVrpjlz5lzyMwfgfsxcAagQfvnlF0mym9U4c+aM/v73v+uRRx7RuHHjVFxcrNOnT6tr16769ddflZycrJYtW2rTpk1KSUlRdna2Vq1aZTfu+++/r88++0yTJ0+Wj4+P5s6dqwceeECenp667777JEk//vijOnbsqDp16mjWrFmqWbOm3nzzTQ0aNEh//PGH/ud//sduzKSkJEVFRWn+/PmqVKmS2rZtq6NHj+rpp5/WnDlz1KZNG0kXn7EyDEN9+vTRJ598oqSkJEVHR+vbb7/VxIkTlZmZqczMTHl7e9v6b9++XY8//rjGjRunwMBAvfLKKxoyZIgaNWqkzp07X/QzPXXqlO688079/vvvSklJUePGjbVq1SrFx8c79P3ss8/UvXt3tW/fXvPnz5e/v7+WLl2q+Ph4nTx50qnnn15++WWFhIQoNTVVpaWlmjZtmnr06KENGzYoKirqsvtfysmTJ9WlSxf99ttvevrpp9WyZUv98MMPevbZZ/Xdd99p3bp1slgsyszM1B133KGuXbtqwoQJkiQ/Pz9JUmJiot544w09//zzioiI0IkTJ/T999/r8OHDlzz2t99+q5iYGDVu3Fivv/66qlatqvnz5+vNN98ss/+2bdu0c+dOPfPMMwoLC5OPj48k6ddff1X//v1t4XD79u164YUXtGvXLltYnjt3roYNG6Zff/3V1FtJV6xYofvuu0/+/v6aO3euJNmusWnTpmnSpEl65pln1LlzZ509e1a7du1yCPoX8/TTT6tNmzZ65ZVXlJ+fr0mTJun2229XVlaWbr75ZknnQkyTJk10//33KyAgQLm5uZo3b57atWunHTt2qFatWnZjDh48WD179tQbb7yhEydOqHLlypetoWvXrkpLS9OePXv0xBNP2P6et2rVSkuWLFFWVpaefvpp+fr6atasWS5+glJCQoK2bdumF154QY0bN9axY8e0bds2u+vnzTff1IABA9S7d2+9/vrrqly5shYsWKC4uDitWbPG9j+IduzYoY4dO6pBgwZ66aWXFBQUpDVr1mjUqFE6dOiQJk6c6HJ9AK4SAwCuIYsWLTIkGV988YVx9uxZ4/jx48aHH35o1K5d2/D19TXy8vIMwzCMgQMHGpKM1157zW7/+fPnG5KMd955x6596tSphiRj7dq1tjZJRpUqVWxjGoZhFBcXG02bNjUaNWpka7v//vsNb29vIycnx27MHj16GFWrVjWOHTtmGIZhfPbZZ4Yko3Pnzg7n9e677xqSjM8++8zhvYEDBxohISG27Y8//tiQZEybNs2uX3p6uiHJWLhwoa0tJCTEsFqtxt69e21tp06dMgICAoxHHnnE4Vh/Nm/ePEOS8d5779m1P/zww4YkY9GiRba2pk2bGhEREcbZs2ft+t59991G3bp1jZKSkoseZ/fu3YYko169esapU6ds7QUFBUZAQIBx55132trO//x3795ta7vw8zl/3gMHDrRtp6SkGJUqVTK+/vpru37/7//9P0OSsXr1alubj4+P3b7nNW/e3OjTp89Fz+Ni/vGPfxg+Pj7GwYMHbW0lJSVGeHi4w7mEhIQYHh4exo8//njJMUtKSoyzZ88aixcvNjw8PIwjR47Y3uvZs6fD52EY/3f9XXiNnf/8//zznDhxonHhrwC33nqr0aVLF4dx7777bqN169aXrLcs5+tp06aNUVpaamvfs2ePUblyZWPo0KEX3be4uNgoLCw0fHx8jJkzZ9raz18fAwYMcKmGXr162bWPGTPGkGSMGjXKrr1Pnz5GQECAbbusz+48ScbEiRNt29WqVTPGjBlz0VpOnDhhBAQEONRSUlJitGrVyrjttttsbXFxcUb9+vWN/Px8u74jR440rFar3fUA4NrCbYEArkkdOnRQ5cqV5evrq7vvvltBQUH66KOPFBgYaNfv3nvvtdv+9NNP5ePjY5t1Ou/8zMqFt99069bNbkwPDw/Fx8frl19+0W+//WYbs1u3bgoODnYY8+TJkw4LA1xYk6s+/fRTu5rP+8c//iEfHx+Hc2jdurUaNGhg27ZarWrcuLHDLVUX+uyzz+Tr66u///3vdu39+/e32/7ll1+0a9cu27NuxcXFttddd92l3Nxc/fjjj5c9r759+8pqtdq2fX191atXL23cuFElJSWX3f9SPvzwQzVv3lytW7e2qy8uLq7MW+XKctttt+mjjz7SuHHjtH79ep06dcqpY2/YsEF33HGH3exKpUqV1K9fvzL7t2zZUo0bN3Zoz8rK0t///nfVrFlTHh4eqly5sgYMGKCSkhL99NNPTtVSHm677TZt375djz76qNasWaOCggKX9u/fv7/dLYghISHq2LGjPvvsM1tbYWGhnnrqKTVq1Eienp7y9PRUtWrVdOLECe3cudNhTFf/jt199912282aNZN0bgGVC9uPHDlid2ugs2677TalpaXp+eef1xdffGF3O6ckbdmyRUeOHNHAgQPtrtHS0lJ1795dX3/9tU6cOKHTp0/rk08+0T333KOqVas6/H07ffq0vvjiC5frA3B1cFsggGvS4sWL1axZM3l6eiowMLDM1eOqVq1qu6XrvMOHDysoKMjh4fY6derI09PT4RavoKAgh3HPtx0+fFj169fX4cOHyzx+vXr1bP3+7EpXujt8+LA8PT0dFnawWCwKCgpyOF7NmjUdxvD29r5sODh8+LBDWJUcP5M//vhDkvTEE0/oiSeeKHOsQ4cOXfJYZY17vu3MmTMqLCyUv7//Zce4mD/++EO//PLLRW8Pc6a+WbNmqX79+kpPT9fUqVNltVoVFxenf//737rlllsuut/FPsey2qSyr4+cnBxFR0erSZMmmjlzpkJDQ2W1WvXVV19pxIgRTge98pCUlCQfHx+9+eabmj9/vjw8PNS5c2dNnTrVtujMpVzs5759+3bbdv/+/fXJJ59owoQJateunfz8/GSxWHTXXXeVee6u/h0LCAiw2/by8rpk++nTp1WtWjWXjpGenq7nn39er7zyiiZMmKBq1arpnnvu0bRp0xQUFGT7e3Th//j5syNHjqhSpUoqLi7W7NmzNXv27DL7OXM9A3APwhWAa1KzZs0u+4tbWauD1axZU19++aUMw7B7/8CBAyouLnZ4dqOsxRvOt50PLTVr1lRubq5Dv99//12SHMa80lXLatasqeLiYh08eNAuYBmGoby8PLVr1+6Kxv/zcb766iuH9gs/k/Pnl5SUpL59+5Y5VpMmTS57vIt91l5eXi7/InuhWrVqqUqVKhddyOPCn1FZfHx8lJycrOTkZP3xxx+2WaxevXpp165dF92vZs2atl+c/+xiC4OUdX2sXLlSJ06c0PLlyxUSEmJrz87Ovmzd552fFbxwcYcr/UXc09NTiYmJSkxM1LFjx7Ru3To9/fTTiouL0759+y67QufFfu7n/37l5+frww8/1MSJEzVu3Dhbn6KiIh05cqTMMa/WyoAX+0zLeg6vVq1aSk1NVWpqqnJycvT+++9r3LhxOnDggD7++GPbNTh79mzbAj0XCgwMVHFxsTw8PJSQkKARI0aU2S8sLOxKTgtAOeK2QADXlW7duqmwsNDhe4wWL15se//PPvnkE7tfjEtKSpSenq6GDRvalqru1q2bPv30U1uY+vOYVatWvegvSn92fnEAZ2Ygztd44YIIy5Yt04kTJxzO4a/q2rWrjh8/rvfff9+u/e2337bbbtKkiW655RZt375dbdu2LfPl6+t72eMtX75cp0+ftm0fP35cH3zwgaKjo+Xh4XFF53L33Xfr119/Vc2aNcus78+rMTozqxcYGKhBgwbpgQce0I8//qiTJ09etG+XLl306aef2oWY0tJSvfvuu07Xfz4s/HmhEsMw9L//+78OfS9W//lz/Pbbb+3aL/z5Xowzn0v16tV13333acSIETpy5IhTqzouWbJEhmHYtvfu3astW7bYVmm0WCwyDMPu3CXplVdeueLbRa9UYGCgrFarw2f63nvvXXK/Bg0aaOTIkYqJidG2bdskSZ06dVL16tW1Y8eOi/498vLyUtWqVdW1a1dlZWWpZcuWZfYra7YawLWBmSsA15UBAwZozpw5GjhwoPbs2aMWLVpo8+bNevHFF3XXXXfpzjvvtOtfq1Yt3XHHHZowYYJttcBdu3bZLcc+ceJEffjhh+rataueffZZBQQE6K233tKqVas0bdo0p25na968uSRp4cKF8vX1ldVqVVhYWJm/JMXExCguLk5PPfWUCgoK1KlTJ9tqgREREUpISLjCT+mcAQMGaMaMGRowYIBeeOEF3XLLLVq9erXWrFnj0HfBggXq0aOH4uLiNGjQIN100006cuSIdu7cqW3btjkVJDw8PBQTE6PExESVlpZq6tSpKigosC1FfiXGjBmjZcuWqXPnzho7dqxatmyp0tJS5eTkaO3atXr88cfVvn17SVKLFi20fv16ffDBB6pbt658fX3VpEkTtW/fXnfffbdatmypGjVqaOfOnXrjjTcUFRV1ydmZ8ePH64MPPlC3bt00fvx4ValSRfPnz7ctAV+p0uX/P2ZMTIy8vLz0wAMP6H/+5390+vRpzZs3T0ePHnXo26JFCy1fvlzz5s1TZGSkbUXKoKAg3XnnnUpJSVGNGjUUEhKiTz75RMuXL3fqM2zRooWWLl2q9PR03XzzzbJarWrRooV69epl+9652rVra+/evUpNTVVISMglb5c878CBA7rnnnv08MMPKz8/XxMnTpTValVSUpKkc6s1du7cWf/+979Vq1YthYaGasOGDXr11VdVvXp1p2ovLxaLRQ899JBee+01NWzYUK1atdJXX33l8D8g8vPz1bVrV/Xv319NmzaVr6+vvv76a3388ce22d5q1app9uzZGjhwoI4cOaL77rtPderU0cGDB7V9+3YdPHhQ8+bNkyTNnDlTf/vb3xQdHa1//etfCg0N1fHjx/XLL7/ogw8+sD2XCeAa5NblNADgAudXA7tw1bcLDRw40PDx8SnzvcOHDxvDhw836tata3h6ehohISFGUlKScfr0abt+kowRI0YYc+fONRo2bGhUrlzZaNq0qfHWW285jPndd98ZvXr1Mvz9/Q0vLy+jVatWDiuInV+Z7N133y2zrtTUVCMsLMzw8PCwW4GsrNXwTp06ZTz11FNGSEiIUblyZaNu3brGv/71L+Po0aN2/UJCQoyePXs6HKtLly5lrvx2od9++8249957jWrVqhm+vr7Gvffea2zZsqXMFdK2b99u9OvXz6hTp45RuXJlIygoyLjjjjuM+fPnX/IY51dcmzp1qpGcnGzU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+vzzz1WpUqWLzuCEh4c7LC/+xRdfONTzww8/qFGjRq6dyJ9s2rRJc+fO1V133SXp3LNehw4duux+ERERioiIUFJSkqKiovT222+rQ4cOatasmTZv3qwBAwbY+m7ZskXNmjWTJLVs2VK//fabfvrpJ6dmr9q0aaMff/zxkudYuXJllZSUuLwfANzouC0QAGDTokULPfjggw7Lot9+++06ePCgpk2bpl9//VVz5szRRx99dMXHe/DBB1WrVi317t1bmzZt0u7du7VhwwaNHj36kotrPPjgg7JarRo4cKC+//57ffbZZ3rssceUkJCgwMDAMvcZPny4fv31VyUmJurHH3/U22+/rbS0NLs+Tz31lDIzMzVixAhlZ2fr559/1vvvv6/HHnvM6XNq1KiR3njjDe3cuVNffvmlHnzwwUvOLu3evVtJSUnKzMzU3r17tXbtWv3000+28PTkk08qLS1N8+fP188//6zp06dr+fLleuKJJyRJXbp0UefOnXXvvfcqIyNDu3fv1kcffaSPP/64zOM9++yzWrx4sSZNmqQffvhBO3futM2WnRcaGqpPPvlEeXl5Onr0qNP7AcCNjnAFALDz3HPPOdxC16xZM82dO1dz5sxRq1at9NVXX9l+ub8SVatW1caNG9WgQQP17dtXzZo10+DBg3Xq1KlLzmRVrVpVa9as0ZEjR9SuXTvdd9996tatm15++eWL7tOgQQMtW7ZMH3zwgVq1aqX58+frxRdftOvTsmVLbdiwQT///LOio6MVERGhCRMmqG7duk6f02uvvaajR48qIiJCCQkJGjVqlOrUqXPJc9m1a5fuvfdeNW7cWMOGDdPIkSP1yCOPSJL69OmjmTNn6t///rduvfVWLViwQIsWLdLtt99uG2PZsmVq166dHnjgAYWHh+t//ud/HGaezouLi9OHH36ojIwMtWvXTh06dND06dMVEhJi6/PSSy8pIyNDwcHBioiIcHo/ALjRWQxnbkIHAAAAAFwSM1cAAAAAYALCFQAAAACYgHAFAAAAACYgXAEAAACACQhXAAAAAGACwhUAAAAAmIBwBQAAAAAmIFwBAAAAgAkIVwAAAABgAsIVAAAAAJiAcAUAAAAAJvj/AGRTMA9vKVsAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"barplot_prop_free_price\n",
"\n",
"df = barplot_prop_free_price.sort_values( by = 'prop_free_tickets')\n",
"\n",
"# Création du barplot\n",
"plt.figure(figsize=(10, 6))\n",
"plt.bar(df['company_number'], df['prop_free_tickets'])\n",
"plt.xlabel('Numéro de la société')\n",
"plt.ylabel('Proportion de billets gratuits')\n",
"plt.title('Proportion de billets gratuits par musée')\n",
"plt.xticks(df['company_number'])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "d6de664a-a303-48f5-bca6-1e9e9d17c461",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"## Répartition des prix de vente"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "150825c6-08b5-44ad-a02e-98ee44192d94",
"metadata": {},
"outputs": [],
"source": [
"boxplot_amount = {} \n",
"\n",
"for company_number in ['1', '2', '3', '4', '101'] :\n",
" nom_dataframe = 'df'+ company_number +'_tickets'\n",
" df_tickets = globals()[nom_dataframe].copy()\n",
" df_notfree_tickets = df_tickets[df_tickets['amount'] > 0]\n",
" \n",
" boxplot_amount[company_number] = df_notfree_tickets['amount']\n",
"\n",
"amount_df = pd.DataFrame(boxplot_amount)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "c6ce46c8-5ad1-42c0-9b9a-a84df52a3411",
"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>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>101</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1.062722e+06</td>\n",
" <td>1.475197e+06</td>\n",
" <td>3.051426e+06</td>\n",
" <td>1.280045e+06</td>\n",
" <td>1.133556e+07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>1.076436e+01</td>\n",
" <td>1.519766e+01</td>\n",
" <td>1.285360e+01</td>\n",
" <td>1.139475e+01</td>\n",
" <td>1.350509e+01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>9.243106e+00</td>\n",
" <td>5.714467e+00</td>\n",
" <td>1.445236e+01</td>\n",
" <td>1.657010e+01</td>\n",
" <td>1.492325e+01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>2.500000e+00</td>\n",
" <td>5.000000e+00</td>\n",
" <td>3.000000e-01</td>\n",
" <td>1.000000e+00</td>\n",
" <td>2.000000e-02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>9.500000e+00</td>\n",
" <td>1.300000e+01</td>\n",
" <td>6.000000e+00</td>\n",
" <td>6.000000e+00</td>\n",
" <td>1.000000e+01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.100000e+01</td>\n",
" <td>1.500000e+01</td>\n",
" <td>1.350000e+01</td>\n",
" <td>1.000000e+01</td>\n",
" <td>1.300000e+01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>1.100000e+01</td>\n",
" <td>1.500000e+01</td>\n",
" <td>1.700000e+01</td>\n",
" <td>1.200000e+01</td>\n",
" <td>1.450000e+01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.200000e+02</td>\n",
" <td>3.000000e+02</td>\n",
" <td>7.500000e+03</td>\n",
" <td>1.500000e+03</td>\n",
" <td>1.633000e+03</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 1 2 3 4 101\n",
"count 1.062722e+06 1.475197e+06 3.051426e+06 1.280045e+06 1.133556e+07\n",
"mean 1.076436e+01 1.519766e+01 1.285360e+01 1.139475e+01 1.350509e+01\n",
"std 9.243106e+00 5.714467e+00 1.445236e+01 1.657010e+01 1.492325e+01\n",
"min 2.500000e+00 5.000000e+00 3.000000e-01 1.000000e+00 2.000000e-02\n",
"25% 9.500000e+00 1.300000e+01 6.000000e+00 6.000000e+00 1.000000e+01\n",
"50% 1.100000e+01 1.500000e+01 1.350000e+01 1.000000e+01 1.300000e+01\n",
"75% 1.100000e+01 1.500000e+01 1.700000e+01 1.200000e+01 1.450000e+01\n",
"max 3.200000e+02 3.000000e+02 7.500000e+03 1.500000e+03 1.633000e+03"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"amount_df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "a54269c1-9aec-4e49-91ba-d39fa5ece850",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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c+ZMSdKCBQs0a9YsPfnkk7r22muVn5+v3bt3l/vSnxkzZqhr16567bXXlJGRoVmzZqlfv37697//rZYtWzra2e123XzzzRo3bpwef/xxtzBS7Pbbb1daWpqmTJmiq666St27d9fXX3+tOXPmaMaMGRowYECZ9dx///166623NHXqVA0YMEA//fSThg8frqysLKd26enp6tGjh2rVqqWnn35aCQkJ2rhxo+bMmaODBw/qjTfekHQhuI0fP14PP/ywFi5cqFq1amnfvn3auXNnuV6fJUuWqHnz5lq8eLEjMAwePFhpaWnq1atXubZRmpycHPXt21dHjx7VjBkz1KlTJ+3YsUNPP/20tm/fri+//FIWi0UbN27Uddddp/79+zsuL61bt64kafLkyXr77bc1Z84cdenSRdnZ2frpp590+vTpctUwduxYDRkyxPHeffTRR3X33Xfr66+/drTxxXujqKhIN910k7Zs2aJZs2apa9eu2rhxo2688cZSf8Z1HyFdCC9t2rTR7bffrgYNGuj48eNatmyZrrzySu3cuVMNGzbUkCFDNHfuXM2YMUMvv/yyunbtKklVPjs6duxYnTlzRi+99JJWr17t2De1a9dOBw8e1JAhQ9SnTx+9/vrrqlevnn7++Wd9/vnnstvtPj8bBlxyDAAowxtvvGFIMjZt2mTk5+cbWVlZxueff27ExMQY1157rZGfn+9om5iYaHTp0sVpmWEYxtChQ43Y2FijsLDQaZu/+93vnNr961//MiQZc+bM8VhLUVGRkZ+fbxw6dMiQZHz88ceOdTNnzjQkGU8//bTbz02YMMEobXfXvHlzY9SoUY7HmzdvNiQZb7zxhlvb4ucotmvXLkOSMX78eKd23377rSHJmDFjhmNZ3759DUnGt99+69S2Xbt2xqBBgzzWVuyzzz4zJBkvvvii0/JnnnnGkGTMnDnTsWzQoEFGkyZNjIyMDKe2Dz30kFG7dm3jzJkzhmFc+Jt07ty5zOf1ZO3atYYko2vXrkZRUZFj+cGDB42QkBBj7NixjmWjRo0yJBmvv/6623ZGjRplNG/e3GnZ+fPnjS5duhjx8fHGzp07jejoaKNv375GQUFBmTUV/x0mTZrktPydd94xJDn9fceNG2fUqVPHOHTokFPbhQsXGpKMHTt2GIZx4fWqV69emc/ryYEDBwxJRlxcnJGbm+tY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V61aVe5tWCwWGYbhtp957bXX3C6TLGv/0KJFC/34449Oy/7zn/+4XXLsSXn2O0FBQerZs6djBMvvv//+otsFUDWcUQJQKfXr19f06dM1bdo0vfvuu7r77rv1yiuvaPDgwRo0aJBGjx6tyy67TGfOnNGuXbv0/fff6/3333faxpYtWzR27Fj9/ve/15EjR/TEE0/osssuc1yql5iYqISEBD3++OMyDEMNGjTQJ598Uu7Ln4p17NhRkjR//nwNHjxYQUFB6tSpk6xWq1vbhIQEhYaG6p133lHbtm1Vp04dxcXFeTyAbtOmjf7nf/5HL730kmrVqqXBgwc7RvZq2rSpJk2aVKE6SzNw4EBde+21mjZtmrKzs9W9e3f961//0ttvv+3W9sUXX9Q111yjPn366MEHH1SLFi2UlZWlffv26ZNPPnGMSnbTTTc55sZq1KiRDh06pMWLF6t58+Zq3br1RWs6efKkfve73+n+++9XRkaGZs6cqdq1a2v69OmV+h2zs7N12223KT4+XkuXLpXVatV7772nrl27asyYMWVOmtq2bVvdfffdWrx4sUJCQnTDDTfop59+0sKFC90u+/vTn/6k1NRU9e7dW4888ojatGmj8+fP6+DBg0pJSdHy5cvVpEkT3X///QoNDdXVV1+t2NhYpaena968eYqMjHQMIV+WoKAgDRgwQJMnT1ZRUZHmz5+vzMzMUic+roiJEyfqww8/1LXXXqtJkyapU6dOKioq0uHDh7VmzRpNmTLFcRauY8eOWrdunT755BPFxsYqIiJCbdq0Uc+ePTV06FB16tRJ9evX165du/T222+rV69eXhlJzVfvjRtvvFFXX321pkyZoszMTHXr1k0bN27UW2+9JUmqVevinwfXrVtX1157rZ577jk1bNhQLVq0UFpamv761786Rt8s1qFDB0nSq6++qoiICNWuXVvx8fGKiorSPffco7vvvlvjx4/XrbfeqkOHDmnBggXlmiureB/14osvatSoUQoJCVGbNm30zjvv6Ouvv9aQIUPUrFkznT9/3nEm8YYbbqjISwWgMkwdSgKA3yse5cp1hC3DMIzc3FyjWbNmRuvWrR0jk/3www/GbbfdZjRu3NgICQkxYmJijOuuu85Yvny52zbXrFlj3HPPPUa9evWM0NBQIykpydi7d6/Tc+zcudMYMGCAERERYdSvX9/4/e9/bxw+fLjUEa1++eUXtzrz8vKMsWPHGo0aNTIsFovT6FKeRqpauXKlkZiYaISEhDg9j+uod4ZhGIWFhcb8+fONyy+/3AgJCTEaNmxo3H333caRI0ec2vXt29do3769W22eRjnz5OzZs8a9995r1KtXzwgLCzMGDBhg7N692+11MIwLo2rde++9xmWXXWaEhIQYjRo1Mnr37u00muDzzz9v9O7d22jYsKFhtVqNZs2aGffdd59x8ODBMusoHvXu7bffNh555BGjUaNGhs1mM/r06WNs2bLF7XcLDw/3uB3X3/vuu+82wsLCHKPOFSseZeyFF14os668vDxjypQpRuPGjY3atWsbV111lbFx40aPf99ffvnFeOSRR4z4+HgjJCTEaNCggdGtWzfjiSeeMM6dO2cYhmGsWLHC6N+/vxEdHW1YrVYjLi7OuO2224wff/yxzDqKRzSbP3++MXv2bKNJkyaG1Wo1unTpYnzxxRdObSs76p1hGMa5c+eMJ5980mjTpo1htVqNyMhIo2PHjsakSZOM9PR0R7tt27YZV199tREWFmZIcoy+9vjjjxvdu3c36tevb9hsNqNly5bGpEmTjFOnTpX5+5W2PyjuFyVHg/PVe+PMmTPGmDFjnN4bmzZtchspsqx9xNGjR41bb73VqF+/vhEREWHceOONxk8//eTxtV+8eLERHx9vBAUFOY1eV1RUZCxYsMBo2bKlUbt2baN79+7G119/Xa5R7wzDMKZPn27ExcUZtWrVcryWGzduNH73u98ZzZs3N2w2mxEVFWX07dvX+Pvf/37R1wVA1VkMo8S1EwDgA2+++abGjBmjzZs3O+57Qs2wbt069e/fX++//75GjBhhdjmAR++++67uuusu/etf/1Lv3r3NLgdADcWldwAAoMZauXKlfv75Z3Xs2FG1atXSpk2b9Nxzz+naa68lJAGoEoISAACosSIiIrRq1SrNmTNH2dnZio2N1ejRozVnzhyzSwNQw3HpHQAAAAC4MHV48FmzZslisTh9lZykzzAMzZo1S3FxcQoNDVW/fv3KNSwrAAAAAFSF6fMotW/fXsePH3d8bd++3bFuwYIFWrRokZYsWaLNmzcrJiZGAwYMUFZWlokVAwAAAAh0pgel4OBgxcTEOL6K5xswDEOLFy/WE088oeHDh6tDhw5asWKFcnJy3CZZBAAAAABv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WzEEJQAAAABwwT1KAAAAAOCCoAQAAAAALghKAAAAAOCCoAQAAAAALghKAAAAAOCCoAQAAAAALghKAAAAAOCCoAQAAAAALghKAABUkxYtWmjx4sVmlwEAqASCEgCgWqSnp+vhhx9Wy5YtZbPZ1LRpU91000366quvzC7NZzZv3qz/+Z//MbsMAEAlWAzDMMwuAgAQWA4ePKirr75a9erV0+zZs9WpUyfl5+friy++0Kuvvqrdu3ebXSIAAGXijBIAwOvGjx8vi8Wi7777TiNGjNDll1+u9u3ba/Lkydq0aZMk6fDhw7rllltUp04d1a1bV7fddptOnDjh2MasWbPUuXNnvf7662rWrJnq1KmjBx98UIWFhVqwYIFiYmLUuHFjPfPMM07PbbFYtGzZMg0ePFihoaGKj4/X+++/79Tmscce0+WXX66wsDC1bNlSTz31lPLz853azJkzR40bN1ZERITGjh2rxx9/XJ07d3asHz16tIYNG6aFCxcqNjZWUVFRmjBhgtN2XC+9y8jI0P/8z/+ocePGqlu3rq677jr98MMPVX25AQDVgKAEAPCqM2fO6PPPP9eECRMUHh7utr5evXoyDEPDhg3TmTNnlJaWptTUVO3fv18jR450art//3599tln+vzzz7Vy5Uq9/vrrGjJkiI4ePaq0tDTNnz9fTz75pCN8FXvqqad066236ocfftDdd9+tO+64Q7t27XKsj4iI0JtvvqmdO3fqxRdf1F/+8he98MILjvXvvPOOnnnmGc2fP19bt25Vs2bNtGzZMrffZe3atdq/f7/Wrl2rFStW6M0339Sbb77p8XUxDENDhgxRenq6UlJStHXrVnXt2lXXX3+9zpw5U5GXGADgCwYAAF707bffGpKM1atXl9pmzZo1RlBQkHH48GHHsh07dhiSjO+++84wDMOYOXOmERYWZmRmZjraDBo0yGjRooVRWFjoWNamTRtj3rx5jseSjAceeMDp+Xr27Gk8+OCDpdazYMECo1u3bk7tJ0yY4NTm6quvNq644grH41GjRhnNmzc3CgoKHMt+//vfGyNHjnQ8bt68ufHCCy8YhmEYX331lVG3bl3j/PnzTttNSEgwXnnllVJrAwCYgzNKAACvMv7v1leLxVJqm127dqlp06Zq2rSpY1m7du1Ur149pzM/LVq0UEREhONxdHS02rVrp1q1ajktO3nypNP2e/Xq5fa45HY/+OADXXPNNYqJiVGdOnX01FNP6fDhw471e/bsUY8ePZy24fpYktq3b6+goCDH49jYWLdaim3dulXnzp1TVFSU6tSp4/g6cOCA9u/f7/FnAADmCTa7AABAYGndurUsFot27dqlYcOGeWxjGIbHIOW6PCQkxGm9xWLxuKyoqOiidRVvd9OmTbr99ts1e/ZsDRo0SJGRkVq1apWef/55j+1L1uaqIrUUFRUpNjZW69atc1tXr169i9YPAPAtzigBALyqQYMGGjRokF5++WVlZ2e7rT979qzatWunw4cP68iRI47lO3fuVEZGhtq2bVvlGlzvWdq0aZMSExMlSf/617/UvHlzPfHEE+revbtat26tQ4cOObVv06aNvvvuO6dlW7ZsqVJNXbt2VXp6uoKDg9WqVSunr4YNG1Zp2wAA7yMoAQC8bunSpSosLFSPHj304Ycfau/evdq1a5f+/Oc/q1evXrrhhhvUqVMn3XXXXfr+++/13Xff6Q9/+IP69u2r7t27V/n533//fb3++uv6z3/+o5kzZ+q7777TQw89JElq1aqVDh8+rFWrVmn//v3685//rI8++sjp5x9++GH99a9/1YoVK7R3717NmTNHP/74Y5mXE17MDTfcoF69emnYsGH64osvdPDgQW3YsEFPPvlklUMYAMD7CEoAAK+Lj4/X999/r/79+2vKlCnq0KGDBgwYoK+++krLli2TxWJRcnKy6tevr2uvvVY33HCDWrZsqb/97W9eef7Zs2dr1apV6tSpk1asWKF33nlH7dq1kyTdcsstmjRpkh566CF17txZGzZs0FNPPeX083fddZemT5+uqVOnqmvXrjpw4IBGjx6t2rVrV7omi8WilJQUXXvttbr33nt1+eWX6/bbb9fBgwcVHR1dpd8XAOB9TDgLAAgoFotFH330Uan3R1XWgAEDFBMTo7ffftur2wUA+CcGcwAAwEVOTo6WL1+uQYMGKSgoSCtXrtSXX36p1NRUs0sDAPgIQQkAABfFl8nNmTNHeXl5atOmjT788EPdcMMNZpcGAPARLr0DAAAAABcM5gAAAAAALghKAAAAAOCCoAQAAAAALghKAAAAAOCCoAQAAAAALghKAAAAAOCCoAQAAAAALghKAAAAAODi/wPhVsuoHJ5ijwAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"means = amount_df.mean()\n",
"\n",
"plt.figure(figsize=(10, 6))\n",
"amount_df.boxplot()\n",
"plt.scatter(x=range(1, len(means) + 1), y=means, marker='D', color='red', s=100)\n",
"plt.title('Répartition des prix des billets non gratuits')\n",
"plt.ylabel('Montant')\n",
"plt.xlabel('Compagnie')\n",
"plt.ylim(0, 50) \n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "b41b5434-0e5b-495b-bede-23f5cb45272c",
"metadata": {
"scrolled": true
},
"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>purchase_id</th>\n",
" <th>ticket_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>73518.000000</td>\n",
" <td>7.351800e+04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>10.096167</td>\n",
" <td>2.484660e+01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>2367.702603</td>\n",
" <td>4.636993e+03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1.000000</td>\n",
" <td>1.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>1.000000</td>\n",
" <td>1.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.000000</td>\n",
" <td>2.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>1.000000</td>\n",
" <td>3.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>641981.000000</td>\n",
" <td>1.256574e+06</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" purchase_id ticket_id\n",
"count 73518.000000 7.351800e+04\n",
"mean 10.096167 2.484660e+01\n",
"std 2367.702603 4.636993e+03\n",
"min 1.000000 1.000000e+00\n",
"25% 1.000000 1.000000e+00\n",
"50% 1.000000 2.000000e+00\n",
"75% 1.000000 3.000000e+00\n",
"max 641981.000000 1.256574e+06"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"purchases.groupby('customer_id')[['purchase_id', 'ticket_id']].nunique().describe()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "d1212b10-3933-450a-b001-9e2cbf308f79",
"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>ticket_id</th>\n",
" <th>customer_id</th>\n",
" <th>purchase_id</th>\n",
" <th>event_type_id</th>\n",
" <th>supplier_name</th>\n",
" <th>purchase_date</th>\n",
" <th>type_of_ticket_name</th>\n",
" <th>amount</th>\n",
" <th>children</th>\n",
" <th>is_full_price</th>\n",
" <th>name_event_types</th>\n",
" <th>name_facilities</th>\n",
" <th>name_categories</th>\n",
" <th>name_events</th>\n",
" <th>name_seasons</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>13070859</td>\n",
" <td>48187</td>\n",
" <td>5107462</td>\n",
" <td>4</td>\n",
" <td>vente en ligne</td>\n",
" <td>2018-12-28 14:47:50+00:00</td>\n",
" <td>Atelier</td>\n",
" <td>8.0</td>\n",
" <td>pricing_formula</td>\n",
" <td>False</td>\n",
" <td>spectacle vivant</td>\n",
" <td>mucem</td>\n",
" <td>indiv prog enfant</td>\n",
" <td>l'école des magiciens</td>\n",
" <td>2018</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>13070860</td>\n",
" <td>48187</td>\n",
" <td>5107462</td>\n",
" <td>4</td>\n",
" <td>vente en ligne</td>\n",
" <td>2018-12-28 14:47:50+00:00</td>\n",
" <td>Atelier</td>\n",
" <td>4.0</td>\n",
" <td>pricing_formula</td>\n",
" <td>False</td>\n",
" <td>spectacle vivant</td>\n",
" <td>mucem</td>\n",
" <td>indiv prog enfant</td>\n",
" <td>l'école des magiciens</td>\n",
" <td>2018</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>13070861</td>\n",
" <td>48187</td>\n",
" <td>5107462</td>\n",
" <td>4</td>\n",
" <td>vente en ligne</td>\n",
" <td>2018-12-28 14:47:50+00:00</td>\n",
" <td>Atelier</td>\n",
" <td>4.0</td>\n",
" <td>pricing_formula</td>\n",
" <td>False</td>\n",
" <td>spectacle vivant</td>\n",
" <td>mucem</td>\n",
" <td>indiv prog enfant</td>\n",
" <td>l'école des magiciens</td>\n",
" <td>2018</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>13070862</td>\n",
" <td>48187</td>\n",
" <td>5107462</td>\n",
" <td>4</td>\n",
" <td>vente en ligne</td>\n",
" <td>2018-12-28 14:47:50+00:00</td>\n",
" <td>Atelier</td>\n",
" <td>4.0</td>\n",
" <td>pricing_formula</td>\n",
" <td>False</td>\n",
" <td>spectacle vivant</td>\n",
" <td>mucem</td>\n",
" <td>indiv prog enfant</td>\n",
" <td>l'école des magiciens</td>\n",
" <td>2018</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>13070863</td>\n",
" <td>48187</td>\n",
" <td>5107462</td>\n",
" <td>4</td>\n",
" <td>vente en ligne</td>\n",
" <td>2018-12-28 14:47:50+00:00</td>\n",
" <td>Atelier</td>\n",
" <td>4.0</td>\n",
" <td>pricing_formula</td>\n",
" <td>False</td>\n",
" <td>spectacle vivant</td>\n",
" <td>mucem</td>\n",
" <td>indiv prog enfant</td>\n",
" <td>l'école des magiciens</td>\n",
" <td>2018</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1826667</th>\n",
" <td>20662815</td>\n",
" <td>1256135</td>\n",
" <td>8007697</td>\n",
" <td>5</td>\n",
" <td>vente en ligne</td>\n",
" <td>2023-11-08 17:23:54+00:00</td>\n",
" <td>Atelier</td>\n",
" <td>11.0</td>\n",
" <td>pricing_formula</td>\n",
" <td>False</td>\n",
" <td>offre muséale groupe</td>\n",
" <td>mucem</td>\n",
" <td>indiv entrées tp</td>\n",
" <td>NaN</td>\n",
" <td>2023</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1826668</th>\n",
" <td>20662816</td>\n",
" <td>1256136</td>\n",
" <td>8007698</td>\n",
" <td>5</td>\n",
" <td>vente en ligne</td>\n",
" <td>2023-11-08 18:32:18+00:00</td>\n",
" <td>Atelier</td>\n",
" <td>11.0</td>\n",
" <td>pricing_formula</td>\n",
" <td>False</td>\n",
" <td>offre muséale groupe</td>\n",
" <td>mucem</td>\n",
" <td>indiv entrées tp</td>\n",
" <td>NaN</td>\n",
" <td>2023</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1826669</th>\n",
" <td>20662817</td>\n",
" <td>1256136</td>\n",
" <td>8007698</td>\n",
" <td>5</td>\n",
" <td>vente en ligne</td>\n",
" <td>2023-11-08 18:32:18+00:00</td>\n",
" <td>Atelier</td>\n",
" <td>11.0</td>\n",
" <td>pricing_formula</td>\n",
" <td>False</td>\n",
" <td>offre muséale groupe</td>\n",
" <td>mucem</td>\n",
" <td>indiv entrées tp</td>\n",
" <td>NaN</td>\n",
" <td>2023</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1826670</th>\n",
" <td>20662818</td>\n",
" <td>1256137</td>\n",
" <td>8007699</td>\n",
" <td>5</td>\n",
" <td>vente en ligne</td>\n",
" <td>2023-11-08 19:30:28+00:00</td>\n",
" <td>Atelier</td>\n",
" <td>11.0</td>\n",
" <td>pricing_formula</td>\n",
" <td>False</td>\n",
" <td>offre muséale groupe</td>\n",
" <td>mucem</td>\n",
" <td>indiv entrées tp</td>\n",
" <td>NaN</td>\n",
" <td>2023</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1826671</th>\n",
" <td>20662819</td>\n",
" <td>1256137</td>\n",
" <td>8007699</td>\n",
" <td>5</td>\n",
" <td>vente en ligne</td>\n",
" <td>2023-11-08 19:30:28+00:00</td>\n",
" <td>Atelier</td>\n",
" <td>11.0</td>\n",
" <td>pricing_formula</td>\n",
" <td>False</td>\n",
" <td>offre muséale groupe</td>\n",
" <td>mucem</td>\n",
" <td>indiv entrées tp</td>\n",
" <td>NaN</td>\n",
" <td>2023</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1826672 rows × 15 columns</p>\n",
"</div>"
],
"text/plain": [
" ticket_id customer_id purchase_id event_type_id supplier_name \\\n",
"0 13070859 48187 5107462 4 vente en ligne \n",
"1 13070860 48187 5107462 4 vente en ligne \n",
"2 13070861 48187 5107462 4 vente en ligne \n",
"3 13070862 48187 5107462 4 vente en ligne \n",
"4 13070863 48187 5107462 4 vente en ligne \n",
"... ... ... ... ... ... \n",
"1826667 20662815 1256135 8007697 5 vente en ligne \n",
"1826668 20662816 1256136 8007698 5 vente en ligne \n",
"1826669 20662817 1256136 8007698 5 vente en ligne \n",
"1826670 20662818 1256137 8007699 5 vente en ligne \n",
"1826671 20662819 1256137 8007699 5 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 4.0 \n",
"2 2018-12-28 14:47:50+00:00 Atelier 4.0 \n",
"3 2018-12-28 14:47:50+00:00 Atelier 4.0 \n",
"4 2018-12-28 14:47:50+00:00 Atelier 4.0 \n",
"... ... ... ... \n",
"1826667 2023-11-08 17:23:54+00:00 Atelier 11.0 \n",
"1826668 2023-11-08 18:32:18+00:00 Atelier 11.0 \n",
"1826669 2023-11-08 18:32:18+00:00 Atelier 11.0 \n",
"1826670 2023-11-08 19:30:28+00:00 Atelier 11.0 \n",
"1826671 2023-11-08 19:30:28+00:00 Atelier 11.0 \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 offre muséale groupe mucem \n",
"1826668 pricing_formula False offre muséale groupe mucem \n",
"1826669 pricing_formula False offre muséale groupe mucem \n",
"1826670 pricing_formula False offre muséale groupe mucem \n",
"1826671 pricing_formula False offre muséale groupe mucem \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 indiv entrées tp NaN 2023 \n",
"1826668 indiv entrées tp NaN 2023 \n",
"1826669 indiv entrées tp NaN 2023 \n",
"1826670 indiv entrées tp NaN 2023 \n",
"1826671 indiv entrées tp NaN 2023 \n",
"\n",
"[1826672 rows x 15 columns]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"purchases"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "49d5fd2d-9bc1-43ac-9270-1efd73759854",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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V1e6Xbt2bQD/+179559/cP36dek79c2MMTExuHHjhtJjenp6Kt3O+a7u2LFjrvY392lVPocP+XmtUqUKzM3NMWbMGCxZsgRXr159730KAwvpT8TXX3+N+vXr46effso13wkA4uPjoaenJ83VyyGTyWBra4v4+HildgsLC6Xbcrn8ne1paWlK7Xp6erC0tFRqs7W1lbK8rkyZMrmyZmVlYcGCBdDX11f616FDBwBQ+0s/57nffE4AsLOzQ3Z2NhISEt75GCkpKfj8889x4sQJTJs2DYcOHcKpU6ekJY5SU1PVypTz/rzuzbbHjx8jMTERcrk813sTGxurkWIox5MnT/J9Vn5ERAQeP36MAQMG5Frh5PHjxxBCwMbGJlfm6OjofGX28fHBypUrcffuXXTt2hXW1tZwcXFBRETEO+938uRJtGnTBsCrL/yjR4/i1KlT+OmnnwD877PKmfuXn9f75n4NAAYGBkqf++PHj3Hx4sVcr9fU1BRCiHy95sePH2P37t25HqNmzZoA/vczoO57o+793iWvnytV5ef9fZvHjx8DALp165brfZs1axaEEHj27Fm+Muf3c87PZ6Sutx0TXj+Gent7Y+HChRgwYAD++usvnDx5EqdOnULp0qXzfM808RkBgI2NDb766iuEhIRAoVDg4sWLOHLkCL777rs8++b1OoD/Hf8+5NimyjE0r/vm9/tGT08PPj4+2L59u3Ru0erVq1GmTBm0bdtWeszHjx9j3759MDQ0VPpXt25dpcfL8ea+lrMyT87nl7Nfjxo1KlfGIUOG5PmYqnyHv/79rern8CE/r2ZmZoiMjETdunXx448/ombNmrCzs0NgYGCedUxh4aodnwiZTIZZs2bBw8MDS5cuzbXd0tISWVlZePLkiVIxLYRAbGwsGjVqpNE8WVlZiI+PV/ohi42NlbK8mf115ubm0NXVhY+Pz1tHCB0cHNTKlfPcMTExubY9evQIOjo6SqPjefn777/x6NEjHDp0SBqFBqD2etM5mXLen9e92WZlZQVLS0uEhYXl+VimpqZqZchL6dKl833Cxw8//IB///0XvXv3RlZWFnr37i1ts7Kygkwmw5EjR/Jcui2/y7n17dsXffv2xYsXL3D48GEEBgbC09MTN2/ezDXykyM0NBT6+vrYs2cPDA0NpfY3123O+ZnIuYjCh7KysoKRkVGeJ6fl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lOvy3ERERESkfe7fv//OK02ykP7ITE1NAbz6YEqWLFnIaYiIiIjoTcnJyShfvrxUt70NC+mPLGc6R8mSJVlIExEREWmx903D5cmGRERERERqYCFNRERERKQGFtJERERERGpgIU1EREREpAYW0kREREREamAhTURERESkBhbSRERERERqYCFNRERERKQGFtJERERERGpgIU1EREREpAYW0kREREREamAhTURERESkBhbSRERERERqYCFNRERERKQGFtJERERERGrQK+wAREREREVdxbF7CztCkXRnZsfCjvBBOCJNRERERKQGFtJERERERGpgIU1EREREpAYW0kREREREamAhTURERESkBhbSRERERERq4PJ3RPTRcZko9RT1ZaKIiIobjkgTEREREamBhTQRERERkRpYSBMRERERqYGFNBERERGRGlhIExERERGpgYU0EREREZEaWEgTEREREamBhTQRERERkRpYSBMRERERqYGFNBERERGRGlhIExERERGpgYU0EREREZEaCrWQPnz4ML744gvY2dlBJpNhx44dStuFEJg0aRLs7OxgZGQEd3d3XLlyRalPeno6hg0bBisrK5iYmMDLywsPHjxQ6pOQkAAfHx+YmZnBzMwMPj4+SExMVOpz7949fPHFFzAxMYGVlRX8/f2RkZGh1OfSpUtwc3ODkZERypYtiylTpkAIobH3g4iIiIiKDpUL6cOHDyMrKytXe1ZWFg4fPqzSY7148QJ16tTBwoUL89weHByMuXPnYuHChTh16hRsbW3h4eGB58+fS30CAgKwfft2hIaGIioqCikpKfD09IRCoZD6eHt74/z58wgLC0NYWBjOnz8PHx8fabtCoUDHjh3x4sULREVFITQ0FFu3bsXIkSOlPsnJyfDw8ICdnR1OnTqFBQsWYM6cOZg7d65Kr5mIiIiIigeZUHFIVVdXFzExMbC2tlZqj4+Ph7W1tVIBq1IQmQzbt29Hp06dALwajbazs0NAQADGjBkD4NXos42NDWbNmoVBgwYhKSkJpUuXxtq1a/HVV18BAB49eoTy5ctj3759aNu2La5duwYnJydER0fDxcUFABAdHY2mTZvi+vXrcHR0xJ9//glPT0/cv38fdnZ2AIDQ0FD06dMHcXFxKFmyJBYvXoxx48bh8ePHMDAwAADMnDkTCxYswIMHDyCTyfL1OpOTk2FmZoakpCSULFlSrfeKqKirOHZvYUcoku7M7FjYEYjoLXhcU4+2HtfyW6+pPCIthMizaIyPj4eJiYmqD/dWt2/fRmxsLNq0aSO1GRgYwM3NDceOHQMAnDlzBpmZmUp97OzsUKtWLanP8ePHYWZmJhXRANCkSROYmZkp9alVq5ZURANA27ZtkZ6ejjNnzkh93NzcpCI6p8+jR49w586dt76O9PR0JCcnK/0jIiIioqJPL78du3TpAuDVyHGfPn2UCkqFQoGLFy/C1dVVY8FiY2MBADY2NkrtNjY2uHv3rtRHLpfD3Nw8V5+c+8fGxuYaPQcAa2trpT5vPo+5uTnkcrlSn4oVK+Z6npxtDg4Oeb6OGTNmYPLkye99vURERERUtOS7kDYzMwPwakTa1NQURkZG0ja5XI4mTZrAz89P4wHfHP1+24j4u/rk1V8TfXJmxbwrz7hx4zBixAjpdnJyMsqXL//O/ERERESk/fJdSK9atQoAULFiRYwaNUqj0zjyYmtrC+DVaG+ZMmWk9ri4OGkk2NbWFhkZGUhISFAalY6Li5NGx21tbfH48eNcj//kyROlxzlx4oTS9oSEBGRmZir1yRmdfv15gNyj5q8zMDBQGr0nIiIiouJB5TnSgYGBMDAwwP79+xESEiKtoPHo0SOkpKRoLJiDgwNsbW0REREhtWVkZCAyMlIqkhs0aAB9fX2lPjExMbh8+bLUp2nTpkhKSsLJkyelPidOnEBSUpJSn8uXLyMmJkbqEx4eDgMDAzRo0EDqc/jwYaUl8cLDw2FnZ5drygcRERERFX/5HpHOcffuXbRr1w737t1Deno6PDw8YGpqiuDgYKSlpWHJkiX5fqyUlBT8888/0u3bt2/j/PnzsLCwQIUKFRAQEICgoCBUrVoVVatWRVBQEIyNjeHt7Q3g1XST/v37Y+TIkbC0tISFhQVGjRoFZ2dntG7dGgBQo0YNtGvXDn5+fggJCQEADBw4EJ6ennB0dAQAtGnTBk5OTvDx8cHs2bPx7NkzjBo1Cn5+ftKZmt7e3pg8eTL69OmDH3/8Ebdu3UJQUBAmTpyY7xU7iIiIiKj4ULmQHj58OBo2bIgLFy7A0tJSau/cuTMGDBig0mOdPn0aLVq0kG7nzCX29fXF6tWrMXr0aKSmpmLIkCFISEiAi4sLwsPDYWpqKt1n3rx50NPTQ48ePZCamopWrVph9erV0NXVlfqsX78e/v7+0uoeXl5eSmtX6+rqYu/evRgyZAiaNWsGIyMjeHt7Y86cOVIfMzMzREREYOjQoWjYsCHMzc0xYsQIpfnPRERERPTpUHkdaSsrKxw9ehSOjo4wNTXFhQsXUKlSJdy5cwdOTk54+fJlQWUtFriONBHXW1WXtq63SkQ8rqlLW49rBbaOdHZ2dp4XXXnw4IHSSDERERERUXGmciHt4eGB+fPnS7dlMhlSUlIQGBiIDh06aDIbEREREZHWUnmO9Lx589CiRQs4OTkhLS0N3t7euHXrFqysrLBx48aCyEhEREREpHVULqTt7Oxw/vx5bNy4EWfPnkV2djb69++PXr16KV2khYiIiIioOFO5kAYAIyMj9OvXD/369dN0HiIiIiKiIkGtQvrmzZs4dOgQ4uLikJ2drbRt4sSJGglGRERERKTNVC6kly1bhsGDB8PKygq2trZKFyORyWQspImIiIjok6ByIT1t2jRMnz4dY8aMKYg8RERERERFgsrL3yUkJKB79+4FkYWIiIiIqMhQuZDu3r07wsPDCyILEREREVGRofLUjipVqmDChAmIjo6Gs7Mz9PX1lbb7+/trLBwRERERkbZSuZBeunQpSpQogcjISERGRiptk8lkLKSJiIiI6JOgUiEthMDBgwdhbW0NY2PjgspERERERKT1VJojLYRAtWrV8PDhw4LKQ0RERERUJKhUSOvo6KBq1aqIj48vqDxEREREREWCyqt2BAcH44cffsDly5cLIg8RERERUZGg8smG33zzDV6+fIk6depALpfDyMhIafuzZ880Fo6IiIiISFupXEjPnz+/AGIQERERERUtKhfSvr6+BZGDiIiIiKhIUXmONAD8+++/GD9+PHr27Im4uDgAQFhYGK5cuaLRcERERERE2krlQjoyMhLOzs44ceIEtm3bhpSUFADAxYsXERgYqPGARERERETaSOVCeuzYsZg2bRoiIiIgl8ul9hYtWuD48eMaDUdEREREpK1ULqQvXbqEzp0752ovXbo015cmIiIiok+GyoV0qVKlEBMTk6v93LlzKFu2rEZCERERERFpO5ULaW9vb4wZMwaxsbGQyWTIzs7G0aNHMWrUKPTu3bsgMhIRERERaR2VC+np06ejQoUKKFu2LFJSUuDk5ITmzZvD1dUV48ePL4iMRERERERa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",
"text/plain": [
"<Figure size 800x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Nombre Total de tickets achetés sur Internet par Type d'évènements\n",
"\n",
"nb_tickets_internet = customer.groupby('name_event_types')['nb_tickets_internet'].sum()\n",
"nb_tickets_internet.plot(kind='bar', figsize=(8, 5))\n",
"plt.xlabel(\"Type d'évènements\")\n",
"plt.ylabel('Nombre Total de tickets achetés sur Internet')\n",
"plt.title(\"Nombre Total de tickets achetés sur Internet par Type d'évènements\")\n",
"plt.xticks(rotation=45)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "dc071992-cf4d-4b9f-9c3b-3f0e98e20eff",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}