diff --git a/Spectacle/Stat_desc.ipynb b/Spectacle/Stat_desc.ipynb index 731d84e..8abf0c9 100644 --- a/Spectacle/Stat_desc.ipynb +++ b/Spectacle/Stat_desc.ipynb @@ -1822,7 +1822,7 @@ }, { "cell_type": "code", - "execution_count": 166, + "execution_count": 208, "id": "cccee90c-67d1-4e14-8410-1210a5ef97d9", "metadata": {}, "outputs": [], @@ -1865,7 +1865,7 @@ " \n", " # Affichage du plot - la proportion de français est la même selon qu'il y ait achat sur la période ou non\n", " # sauf compagnie 12, et peut-être 13\n", - " plt.show()" + " # plt.show()" ] }, { @@ -2755,9 +2755,7 @@ { "cell_type": "markdown", "id": "b44054b3-d850-4bc9-bc73-feb9979908bc", - "metadata": { - "jp-MarkdownHeadingCollapsed": true - }, + "metadata": {}, "source": [ "#### Nombre de clients de la compagnie" ] @@ -2834,50 +2832,6 @@ "plt.show()\n" ] }, - { - "cell_type": "code", - "execution_count": 104, - "id": "983190f7-8bb1-4416-95f9-1dcf66a2e72e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 104, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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2LGyjoOIiIio3ClRouTh4VHWcRARERGVOyVKlC5fvgxnZ2dUqlQJly9fLrKuq6urWgIjIiIi0rQSJUqNGjVCQkICrKys0KhRI8hkMhQ2oTfHKBEREVFFUqJEKSYmBlWrVpX+TURERPQ+KFGiVLNmzUL/TURERFSRlShRyu/ff//FqVOnkJiYiNzcXIV148aNU0tgRERERJqmcqK0fv16jBgxAjo6OrC0tFSYX0kmkzFRIiIiogpD5URp+vTpmD59OgICAlCpUqWyiImIiIioXFA503nx4gX69u3LJImIiIgqPJWznSFDhmD79u1lEQsRERFRuaLypbe5c+eic+fO2L9/P1xcXKCtra2wfuHChWoLjoiIiEiTVE6UgoODceDAAdStWxcACgzmJiIiIqooVE6UFi5ciHXr1mHQoEFlEA4RERFR+aHyGCVdXV24u7uXRSxERERE5YrKidLXX3+NZcuWlUUsREREROWKypfezp07h6NHj2LPnj1o0KBBgcHcO3fuVFtwRERERJqkcqJkZmaGHj16lEUsREREROVKqR5hQkRERPQ+4PTaREREREpoNFEKDAyETCZTeMnlcmm9EAKBgYGwtbWFvr4+PD09ER0drbCPjIwMjB07FlWqVIGhoSG6du2KBw8evO1DISIiogpI4z1KDRo0QHx8vPS6cuWKtG7evHlYuHAhli9fjoiICMjlcnh7e+P58+dSHT8/P+zatQtbt27FyZMnkZqais6dOyMnJ0cTh0NEREQViMpjlNQegJaWQi9SHiEEFi9ejKlTp0qDxzds2ABra2ts3rwZw4cPR3JyMtauXYuNGzfCy8sLALBp0ybY2dnh8OHD8PHxeavHQkRERBWLxnuUbt26BVtbWzg4OKBv3764e/cuACAmJgYJCQlo166dVFdXVxceHh4IDw8HAERGRiIrK0uhjq2tLZydnaU6hcnIyEBKSorCi4iIiCi/UvUoHTlyBEeOHEFiYiJyc3MV1q1bt67E+2nevDl++eUXODk54eHDh5g9ezZatmyJ6OhoJCQkAACsra0VtrG2tkZcXBwAICEhATo6OjA3Ny9QJ2/7wsydOxdBQUEljpOIiIjeTyonSkFBQZg5cyaaNm0KGxubN3oQbocOHaR/u7i4oEWLFqhduzY2bNiAjz76CEDBB+0KIYpts7g6AQEBmDBhgrSckpICOzu7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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Création du barplot\n", - "plt.bar(nb_customers_purchasing_spectacle[\"number_compagny\"], nb_customers_purchasing_spectacle[\"customer_id\"]/1000, label = \"clients ayant acheté\")\n", - "plt.bar(nb_customers_no_purchase_spectacle[\"number_compagny\"], nb_customers_no_purchase_spectacle[\"customer_id\"]/1000, \n", - " bottom = nb_customers_purchasing_spectacle[\"customer_id\"]/1000, label = \"clients ciblés par un mail\")\n", - "\n", - "\n", - "# Ajout de titres et d'étiquettes\n", - "plt.xlabel('Compagnie')\n", - "plt.ylabel(\"Nombre de clients (en milliers)\")\n", - "plt.title(\"Nombre de clients identifiés pour les compagnies de spectacle\")\n", - "plt.legend()\n", - "\n", - "# Affichage du barplot\n", - "# plt.savefig(\"nbre_clients_musique.png\")" - ] - }, { "cell_type": "code", "execution_count": 112, @@ -3999,7 +3953,7 @@ }, { "cell_type": "code", - "execution_count": 168, + "execution_count": 209, "id": "a5e79beb-9ba0-4c89-b084-e27ff0d65dcc", "metadata": {}, "outputs": [ @@ -4108,7 +4062,7 @@ "9 14 True 0.308859" ] }, - "execution_count": 168, + "execution_count": 209, "metadata": {}, "output_type": "execute_result" } @@ -4120,7 +4074,7 @@ }, { "cell_type": "code", - "execution_count": 169, + "execution_count": 210, "id": "5be56c41-7697-481a-84ea-f77a2041484b", "metadata": {}, "outputs": [ @@ -4162,27 +4116,6 @@ "ax.set_xticklabels(categories)\n", "ax.legend()\n", "\n", - "# Affichage du plot\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 117, - "id": "af4d0d9c-0233-4af4-8fdf-83aa71c3ce9e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ "# sauvegarde dans le MinIO\n", "\n", "FILE_NAME = \"consent_customers_music.png\"\n", @@ -4194,7 +4127,7 @@ }, { "cell_type": "code", - "execution_count": 170, + "execution_count": 211, "id": "91b743c4-5473-41e1-b97e-cf06904f0fa8", "metadata": { "scrolled": true @@ -4305,7 +4238,7 @@ "9 14 1.0 26.682793" ] }, - "execution_count": 170, + "execution_count": 211, "metadata": {}, "output_type": "execute_result" } @@ -4404,7 +4337,7 @@ }, { "cell_type": "code", - "execution_count": 171, + "execution_count": 214, "id": "43deeeb5-8092-42fc-b80b-59d2c58093de", "metadata": {}, "outputs": [ @@ -4424,12 +4357,20 @@ "multiple_barplot(df_graph, x=\"number_company\", y=\"opt_in\", var_labels=\"y_has_purchased\",\n", " dico_labels = {0 : \"aucun achat\", 1 : \"achat durant la période\"},\n", " xlabel = \"Numéro de compagnie\", ylabel = \"Part de consentement (%)\", \n", - " title = \"Part de consentement au mailing selon les compagnies (train set)\")" + " title = \"Part de consentement au mailing selon les compagnies (train set)\")\n", + "\n", + "# save in the s3\n", + "\n", + "FILE_NAME = \"consent_customers_train_set_music.png\"\n", + "FILE_PATH_OUT_S3 = FILE_PATH + FILE_NAME\n", + "\n", + "with fs.open(FILE_PATH_OUT_S3, 'wb') as file_out:\n", + " plt.savefig(file_out)" ] }, { "cell_type": "code", - "execution_count": 172, + "execution_count": 213, "id": "360047fc-70a4-4876-b0f1-c0af5cc93e17", "metadata": {}, "outputs": [ @@ -4443,15 +4384,7 @@ "output_type": "display_data" } ], - "source": [ - "# save in the s3\n", - "\n", - "FILE_NAME = \"consent_customers_train_set_music.png\"\n", - "FILE_PATH_OUT_S3 = FILE_PATH + FILE_NAME\n", - "\n", - "with fs.open(FILE_PATH_OUT_S3, 'wb') as file_out:\n", - " plt.savefig(file_out)" - ] + "source": [] }, { "cell_type": "markdown", @@ -4463,7 +4396,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 216, "id": "32960530-cb46-4eeb-a6d2-1dcf5fb640d8", "metadata": {}, "outputs": [ @@ -4498,30 +4431,30 @@ " \n", " 0\n", " 10\n", - " 0.181580\n", - " 0.343837\n", - " 0.474583\n", + " 0.181582\n", + " 0.343840\n", + " 0.474578\n", " \n", " \n", " 1\n", " 11\n", - " 0.179520\n", - " 0.314443\n", - " 0.506037\n", + " 0.179522\n", + " 0.314448\n", + " 0.506030\n", " \n", " \n", " 2\n", " 12\n", - " 0.346380\n", - " 0.454036\n", - " 0.199584\n", + " 0.346381\n", + " 0.454038\n", + " 0.199581\n", " \n", " \n", " 3\n", " 13\n", " 0.318108\n", - " 0.503092\n", - " 0.178800\n", + " 0.503093\n", + " 0.178799\n", " \n", " \n", " 4\n", @@ -4536,14 +4469,14 @@ ], "text/plain": [ " number_compagny gender_male gender_female gender_other\n", - "0 10 0.181580 0.343837 0.474583\n", - "1 11 0.179520 0.314443 0.506037\n", - "2 12 0.346380 0.454036 0.199584\n", - "3 13 0.318108 0.503092 0.178800\n", + "0 10 0.181582 0.343840 0.474578\n", + "1 11 0.179522 0.314448 0.506030\n", + "2 12 0.346381 0.454038 0.199581\n", + "3 13 0.318108 0.503093 0.178799\n", "4 14 0.331954 0.316181 0.351865" ] }, - "execution_count": 79, + "execution_count": 216, "metadata": {}, "output_type": "execute_result" } @@ -4557,7 +4490,7 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 217, "id": "1b4a49d7-7bfe-4e80-aa7e-c9c6d4bc46e2", "metadata": {}, "outputs": [ @@ -4591,7 +4524,7 @@ }, { "cell_type": "code", - "execution_count": 174, + "execution_count": 218, "id": "c7348c95-e506-4002-90d9-d3b6768af985", "metadata": {}, "outputs": [ @@ -4745,12 +4678,13 @@ "9 49.155702 " ] }, - "execution_count": 174, + "execution_count": 218, "metadata": {}, "output_type": "execute_result" } ], "source": [ + "# sur le train set \n", "company_genders = train_set_spectacle.groupby([\"number_company\", \"y_has_purchased\"])[[\"gender_male\", \"gender_female\", \"gender_other\"]].mean().reset_index()\n", "company_genders[\"share_of_women\"] = 100 * (company_genders[\"gender_female\"]/(1-company_genders[\"gender_other\"]))\n", "company_genders" @@ -4758,7 +4692,7 @@ }, { "cell_type": "code", - "execution_count": 175, + "execution_count": 219, "id": "b36e5a8f-45dc-4b74-8137-80b7e916aa84", "metadata": {}, "outputs": [ @@ -4779,26 +4713,8 @@ "multiple_barplot(company_genders, x=\"number_company\", y=\"share_of_women\", var_labels=\"y_has_purchased\",\n", " dico_labels = {0 : \"aucun achat\", 1 : \"achat durant la période\"},\n", " xlabel = \"Numéro de compagnie\", ylabel = \"Part de femmes (%)\", \n", - " title = \"Part de femmes selon les compagnies de spectacle (train set)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 176, - "id": "17992ceb-b68b-4035-8d48-279b645bc425", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ + " title = \"Part de femmes selon les compagnies de spectacle (train set)\")\n", + "\n", "# save in the s3\n", "\n", "FILE_NAME = \"gender_train_set_music.png\"\n", @@ -4818,7 +4734,7 @@ }, { "cell_type": "code", - "execution_count": 177, + "execution_count": 220, "id": "ed6374e5-f36c-4f8e-9dba-602715b726f1", "metadata": {}, "outputs": [ @@ -4886,7 +4802,7 @@ "4 14 0.993978" ] }, - "execution_count": 177, + "execution_count": 220, "metadata": {}, "output_type": "execute_result" } @@ -4900,7 +4816,7 @@ }, { "cell_type": "code", - "execution_count": 178, + "execution_count": 221, "id": "8d95cdd9-2ab3-4c9a-8442-bb9b98e0dd18", "metadata": {}, "outputs": [ @@ -4930,7 +4846,7 @@ }, { "cell_type": "code", - "execution_count": 179, + "execution_count": 222, "id": "b459f81f-6d30-44fa-ad65-e85acbf12fd2", "metadata": {}, "outputs": [ @@ -5039,7 +4955,7 @@ "9 14 1.0 99.032154" ] }, - "execution_count": 179, + "execution_count": 222, "metadata": {}, "output_type": "execute_result" } @@ -5054,7 +4970,7 @@ }, { "cell_type": "code", - "execution_count": 180, + "execution_count": 223, "id": "4a037b48-1d65-4ed3-a012-7d6f5a312533", "metadata": {}, "outputs": [ @@ -5075,26 +4991,8 @@ "multiple_barplot(company_country_fr, x=\"number_company\", y=\"country_fr\", var_labels=\"y_has_purchased\",\n", " dico_labels = {0 : \"aucun achat\", 1 : \"achat durant la période\"},\n", " xlabel = \"Numéro de compagnie\", ylabel = \"Part de clients français (%)\", \n", - " title = \"Part de clients français des compagnies de spectacle (train set)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 181, - "id": "01897a11-675e-49bf-aee2-44e2dd1f6c36", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ + " title = \"Part de clients français des compagnies de spectacle (train set)\")\n", + "\n", "# save in the s3\n", "\n", "FILE_NAME = \"nationality_fr_train_set_music.png\"\n", @@ -5157,7 +5055,7 @@ }, { "cell_type": "code", - "execution_count": 182, + "execution_count": 224, "id": "de1ecaac-25bb-4853-b8ab-3ef2ca6917ed", "metadata": {}, "outputs": [ @@ -5325,7 +5223,7 @@ "[688953 rows x 6 columns]" ] }, - "execution_count": 182, + "execution_count": 224, "metadata": {}, "output_type": "execute_result" } @@ -5339,7 +5237,7 @@ }, { "cell_type": "code", - "execution_count": 183, + "execution_count": 225, "id": "b5a0060f-a9dd-435b-844f-b24674b8bc27", "metadata": {}, "outputs": [ @@ -5407,7 +5305,7 @@ "4 14 0.428148" ] }, - "execution_count": 183, + "execution_count": 225, "metadata": {}, "output_type": "execute_result" } @@ -5419,7 +5317,7 @@ }, { "cell_type": "code", - "execution_count": 184, + "execution_count": 226, "id": "788c90e0-f13a-4804-ace7-e5159fddd7fd", "metadata": {}, "outputs": [ @@ -5457,7 +5355,7 @@ }, { "cell_type": "code", - "execution_count": 185, + "execution_count": 227, "id": "c48015c2-6451-4089-93b7-6d55d3b2e553", "metadata": {}, "outputs": [ @@ -5537,7 +5435,7 @@ "4 14 2427043 723846.0 0.298242" ] }, - "execution_count": 185, + "execution_count": 227, "metadata": {}, "output_type": "execute_result" } @@ -5552,7 +5450,7 @@ }, { "cell_type": "code", - "execution_count": 186, + "execution_count": 228, "id": "d06ab865-4832-4fe9-918b-e5ff72bebee4", "metadata": {}, "outputs": [ @@ -5582,7 +5480,7 @@ }, { "cell_type": "code", - "execution_count": 187, + "execution_count": 230, "id": "5c37e063-a717-4a8c-828e-b386b87e8409", "metadata": {}, "outputs": [ @@ -5616,27 +5514,6 @@ "plt.title('Lien entre taux d ouverture des mails et nombre de clients actifs')\n", "plt.legend()\n", "\n", - "# Affichage du graphique\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 188, - "id": "f1b1e6fe-9006-487a-a8a6-9dd8ce15ace1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ "# save in the s3\n", "\n", "FILE_NAME = \"stats_mail_opening_music.png\"\n", @@ -5656,7 +5533,7 @@ }, { "cell_type": "code", - "execution_count": 189, + "execution_count": 231, "id": "4fdf4134-d32c-42c3-ab4f-36ad4783332c", "metadata": {}, "outputs": [ @@ -5692,7 +5569,6 @@ " time_between_purchase\n", " nb_tickets_internet\n", " ...\n", - " gender_label\n", " gender_female\n", " gender_male\n", " gender_other\n", @@ -5702,6 +5578,7 @@ " time_to_open\n", " y_has_purchased\n", " number_company\n", + " no_campaign_opened\n", " \n", " \n", " \n", @@ -5718,7 +5595,6 @@ " -1.0\n", " 0.0\n", " ...\n", - " female\n", " 1\n", " 0\n", " 0\n", @@ -5728,6 +5604,7 @@ " 8 days 04:08:27\n", " 0.0\n", " 10\n", + " False\n", " \n", " \n", " 1\n", @@ -5742,7 +5619,6 @@ " -1.0\n", " 0.0\n", " ...\n", - " other\n", " 0\n", " 0\n", " 1\n", @@ -5752,6 +5628,7 @@ " 0 days 01:39:58.555555555\n", " 0.0\n", " 10\n", + " False\n", " \n", " \n", " 2\n", @@ -5766,7 +5643,6 @@ " -1.0\n", " 0.0\n", " ...\n", - " male\n", " 0\n", " 1\n", " 0\n", @@ -5776,6 +5652,7 @@ " NaN\n", " 0.0\n", " 10\n", + " True\n", " \n", " \n", " 3\n", @@ -5790,7 +5667,6 @@ " -1.0\n", " 0.0\n", " ...\n", - " other\n", " 0\n", " 0\n", " 1\n", @@ -5800,6 +5676,7 @@ " NaN\n", " 0.0\n", " 10\n", + " True\n", " \n", " \n", " 4\n", @@ -5814,7 +5691,6 @@ " -1.0\n", " 0.0\n", " ...\n", - " other\n", " 0\n", " 0\n", " 1\n", @@ -5824,10 +5700,11 @@ " NaN\n", " 0.0\n", " 10\n", + " True\n", " \n", " \n", "\n", - "

5 rows × 41 columns

\n", + "

5 rows × 42 columns

\n", "" ], "text/plain": [ @@ -5845,38 +5722,38 @@ "3 0.0 550.0 550.0 \n", "4 0.0 550.0 550.0 \n", "\n", - " time_between_purchase nb_tickets_internet ... gender_label \\\n", - "0 -1.0 0.0 ... female \n", - "1 -1.0 0.0 ... other \n", - "2 -1.0 0.0 ... male \n", - "3 -1.0 0.0 ... other \n", - "4 -1.0 0.0 ... other \n", + " time_between_purchase nb_tickets_internet ... gender_female \\\n", + "0 -1.0 0.0 ... 1 \n", + "1 -1.0 0.0 ... 0 \n", + "2 -1.0 0.0 ... 0 \n", + "3 -1.0 0.0 ... 0 \n", + "4 -1.0 0.0 ... 0 \n", "\n", - " gender_female gender_male gender_other country_fr nb_campaigns \\\n", - "0 1 0 0 1.0 13.0 \n", - "1 0 0 1 1.0 10.0 \n", - "2 0 1 0 1.0 14.0 \n", - "3 0 0 1 NaN 9.0 \n", - "4 0 0 1 NaN 4.0 \n", + " gender_male gender_other country_fr nb_campaigns nb_campaigns_opened \\\n", + "0 0 0 1.0 13.0 4.0 \n", + "1 0 1 1.0 10.0 9.0 \n", + "2 1 0 1.0 14.0 0.0 \n", + "3 0 1 NaN 9.0 0.0 \n", + "4 0 1 NaN 4.0 0.0 \n", "\n", - " nb_campaigns_opened time_to_open y_has_purchased \\\n", - "0 4.0 8 days 04:08:27 0.0 \n", - "1 9.0 0 days 01:39:58.555555555 0.0 \n", - "2 0.0 NaN 0.0 \n", - "3 0.0 NaN 0.0 \n", - "4 0.0 NaN 0.0 \n", + " time_to_open y_has_purchased number_company \\\n", + "0 8 days 04:08:27 0.0 10 \n", + "1 0 days 01:39:58.555555555 0.0 10 \n", + "2 NaN 0.0 10 \n", + "3 NaN 0.0 10 \n", + "4 NaN 0.0 10 \n", "\n", - " number_company \n", - "0 10 \n", - "1 10 \n", - "2 10 \n", - "3 10 \n", - "4 10 \n", + " no_campaign_opened \n", + "0 False \n", + "1 False \n", + "2 True \n", + "3 True \n", + "4 True \n", "\n", - "[5 rows x 41 columns]" + "[5 rows x 42 columns]" ] }, - "execution_count": 189, + "execution_count": 231, "metadata": {}, "output_type": "execute_result" } @@ -5897,7 +5774,7 @@ }, { "cell_type": "code", - "execution_count": 190, + "execution_count": 232, "id": "14ff9886-742c-4a60-8824-5d31f7c76aea", "metadata": {}, "outputs": [], @@ -5907,7 +5784,7 @@ }, { "cell_type": "code", - "execution_count": 191, + "execution_count": 235, "id": "16285593-a0fa-461c-aeb8-c64ffdf9a0d6", "metadata": {}, "outputs": [ @@ -6016,7 +5893,7 @@ "9 14 1.0 28.807320" ] }, - "execution_count": 191, + "execution_count": 235, "metadata": {}, "output_type": "execute_result" } @@ -6029,7 +5906,7 @@ }, { "cell_type": "code", - "execution_count": 195, + "execution_count": 236, "id": "d35f00e3-b9b0-42b3-9dce-785c1ad5506c", "metadata": {}, "outputs": [ @@ -6050,26 +5927,8 @@ "multiple_barplot(company_lazy_customers, x=\"number_company\", y=\"no_campaign_opened\", var_labels=\"y_has_purchased\",\n", " dico_labels = {0 : \"aucun achat\", 1 : \"achat durant la période\"},\n", " xlabel = \"Compagnie\", ylabel = \"Part de clients n'ayant ouvert aucun mail (%)\", \n", - " title = \"Part de clients des compagnies de spectacle n'ouvrant aucun mail (train set)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 196, - "id": "1a6e969e-10c1-4593-a16f-82c9f83a517e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ + " title = \"Part de clients des compagnies de spectacle n'ouvrant aucun mail (train set)\")\n", + "\n", "# save in the s3\n", "\n", "FILE_NAME = \"no_mail_opened_train_set_music.png\"\n", @@ -6089,7 +5948,7 @@ }, { "cell_type": "code", - "execution_count": 111, + "execution_count": 237, "id": "b391f5b2-2424-4758-8ae5-f0fdacdfae66", "metadata": {}, "outputs": [ @@ -6140,70 +5999,70 @@ " \n", " \n", " 0\n", - " 10_299341\n", + " 10_492779\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", - " NaN\n", - " NaN\n", - " NaN\n", + " 550.000000\n", + " 550.000000\n", + " -1.000000\n", " 0.0\n", " ...\n", - " 0\n", " 1\n", " 0\n", + " 0\n", " 1.0\n", - " 12.0\n", - " 3.0\n", - " 0 days 05:47:26.333333333\n", + " 13.0\n", + " 4.0\n", + " 8 days 04:08:27\n", " 0.0\n", " 10\n", " False\n", " \n", " \n", " 1\n", - " 10_63788\n", - " 3.0\n", - " 2.0\n", - " 62.0\n", - " 1.0\n", - " 1.0\n", - " 393.205891\n", - " 281.017639\n", - " 112.188252\n", - " 3.0\n", + " 10_563424\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 550.000000\n", + " 550.000000\n", + " -1.000000\n", + " 0.0\n", " ...\n", + " 0\n", + " 0\n", " 1\n", - " 0\n", - " 0\n", - " 1.0\n", - " 3.0\n", - " 1.0\n", - " 0 days 05:13:51\n", " 1.0\n", + " 10.0\n", + " 9.0\n", + " 0 days 01:39:58.555555555\n", + " 0.0\n", " 10\n", " False\n", " \n", " \n", " 2\n", - " 10_759946\n", + " 10_44369\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", - " NaN\n", - " NaN\n", - " NaN\n", + " 550.000000\n", + " 550.000000\n", + " -1.000000\n", " 0.0\n", " ...\n", " 0\n", - " 0\n", " 1\n", - " NaN\n", - " 0.0\n", + " 0\n", + " 1.0\n", + " 14.0\n", " 0.0\n", " NaN\n", " 0.0\n", @@ -6212,46 +6071,46 @@ " \n", " \n", " 3\n", - " 10_20653\n", + " 10_620271\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", - " NaN\n", - " NaN\n", - " NaN\n", + " 550.000000\n", + " 550.000000\n", + " -1.000000\n", " 0.0\n", " ...\n", " 0\n", - " 1\n", " 0\n", - " 1.0\n", - " 11.0\n", - " 10.0\n", - " 1 days 00:45:54\n", + " 1\n", + " NaN\n", + " 9.0\n", + " 0.0\n", + " NaN\n", " 0.0\n", " 10\n", - " False\n", + " True\n", " \n", " \n", " 4\n", - " 10_824705\n", + " 10_687644\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", - " NaN\n", - " NaN\n", - " NaN\n", + " 550.000000\n", + " 550.000000\n", + " -1.000000\n", " 0.0\n", " ...\n", " 0\n", " 0\n", " 1\n", " NaN\n", - " 0.0\n", + " 4.0\n", " 0.0\n", " NaN\n", " 0.0\n", @@ -6283,23 +6142,23 @@ " ...\n", " \n", " \n", - " 697292\n", - " 14_119950\n", + " 354360\n", + " 14_4685578\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", - " NaN\n", - " NaN\n", - " NaN\n", + " 550.000000\n", + " 550.000000\n", + " -1.000000\n", " 0.0\n", " ...\n", " 0\n", - " 1\n", " 0\n", - " 1.0\n", - " 0.0\n", + " 1\n", + " NaN\n", + " 7.0\n", " 0.0\n", " NaN\n", " 0.0\n", @@ -6307,71 +6166,71 @@ " True\n", " \n", " \n", - " 697293\n", - " 14_938\n", + " 354361\n", + " 14_4652175\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", - " NaN\n", - " NaN\n", - " NaN\n", - " 0.0\n", - " ...\n", - " 0\n", - " 1\n", - " 0\n", - " 1.0\n", - " 0.0\n", - " 0.0\n", - " NaN\n", - " 0.0\n", - " 14\n", - " True\n", - " \n", - " \n", - " 697294\n", - " 14_5004707\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " NaN\n", - " NaN\n", - " NaN\n", + " 550.000000\n", + " 550.000000\n", + " -1.000000\n", " 0.0\n", " ...\n", " 0\n", " 1\n", " 0\n", " 1.0\n", + " 11.0\n", " 2.0\n", - " 1.0\n", - " 2 days 16:42:51\n", + " 3 days 06:21:17\n", " 0.0\n", " 14\n", " False\n", " \n", " \n", - " 697295\n", - " 14_108184\n", + " 354362\n", + " 14_4736169\n", + " 2.0\n", + " 2.0\n", + " 50.0\n", + " 1.0\n", " 0.0\n", + " 91.030556\n", + " 91.020139\n", + " 0.010417\n", " 0.0\n", + " ...\n", + " 1\n", + " 0\n", + " 0\n", + " 1.0\n", + " 6.0\n", + " 6.0\n", + " 0 days 17:30:10.166666666\n", + " 1.0\n", + " 14\n", + " False\n", + " \n", + " \n", + " 354363\n", + " 14_4957203\n", + " 1.0\n", + " 1.0\n", + " 55.0\n", + " 1.0\n", " 0.0\n", - " 0.0\n", - " 0.0\n", - " NaN\n", - " NaN\n", - " NaN\n", + " 52.284028\n", + " 52.284028\n", + " 0.000000\n", " 0.0\n", " ...\n", " 0\n", - " 0\n", " 1\n", + " 0\n", " 1.0\n", - " 0.0\n", + " 3.0\n", " 0.0\n", " NaN\n", " 0.0\n", @@ -6379,23 +6238,23 @@ " True\n", " \n", " \n", - " 697296\n", - " 14_4663981\n", + " 354364\n", + " 14_4690653\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", " 0.0\n", - " NaN\n", - " NaN\n", - " NaN\n", + " 550.000000\n", + " 550.000000\n", + " -1.000000\n", " 0.0\n", " ...\n", " 0\n", - " 0\n", " 1\n", + " 0\n", " NaN\n", - " 0.0\n", + " 7.0\n", " 0.0\n", " NaN\n", " 0.0\n", @@ -6404,92 +6263,92 @@ " \n", " \n", "\n", - "

697297 rows × 42 columns

\n", + "

354365 rows × 42 columns

\n", "" ], "text/plain": [ " customer_id nb_tickets nb_purchases total_amount nb_suppliers \\\n", - "0 10_299341 0.0 0.0 0.0 0.0 \n", - "1 10_63788 3.0 2.0 62.0 1.0 \n", - "2 10_759946 0.0 0.0 0.0 0.0 \n", - "3 10_20653 0.0 0.0 0.0 0.0 \n", - "4 10_824705 0.0 0.0 0.0 0.0 \n", + "0 10_492779 0.0 0.0 0.0 0.0 \n", + "1 10_563424 0.0 0.0 0.0 0.0 \n", + "2 10_44369 0.0 0.0 0.0 0.0 \n", + "3 10_620271 0.0 0.0 0.0 0.0 \n", + "4 10_687644 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... ... \n", - "697292 14_119950 0.0 0.0 0.0 0.0 \n", - "697293 14_938 0.0 0.0 0.0 0.0 \n", - "697294 14_5004707 0.0 0.0 0.0 0.0 \n", - "697295 14_108184 0.0 0.0 0.0 0.0 \n", - "697296 14_4663981 0.0 0.0 0.0 0.0 \n", + "354360 14_4685578 0.0 0.0 0.0 0.0 \n", + "354361 14_4652175 0.0 0.0 0.0 0.0 \n", + "354362 14_4736169 2.0 2.0 50.0 1.0 \n", + "354363 14_4957203 1.0 1.0 55.0 1.0 \n", + "354364 14_4690653 0.0 0.0 0.0 0.0 \n", "\n", " vente_internet_max purchase_date_min purchase_date_max \\\n", - "0 0.0 NaN NaN \n", - "1 1.0 393.205891 281.017639 \n", - "2 0.0 NaN NaN \n", - "3 0.0 NaN NaN \n", - "4 0.0 NaN NaN \n", + "0 0.0 550.000000 550.000000 \n", + "1 0.0 550.000000 550.000000 \n", + "2 0.0 550.000000 550.000000 \n", + "3 0.0 550.000000 550.000000 \n", + "4 0.0 550.000000 550.000000 \n", "... ... ... ... \n", - "697292 0.0 NaN NaN \n", - "697293 0.0 NaN NaN \n", - "697294 0.0 NaN NaN \n", - "697295 0.0 NaN NaN \n", - "697296 0.0 NaN NaN \n", + "354360 0.0 550.000000 550.000000 \n", + "354361 0.0 550.000000 550.000000 \n", + "354362 0.0 91.030556 91.020139 \n", + "354363 0.0 52.284028 52.284028 \n", + "354364 0.0 550.000000 550.000000 \n", "\n", " time_between_purchase nb_tickets_internet ... gender_female \\\n", - "0 NaN 0.0 ... 0 \n", - "1 112.188252 3.0 ... 1 \n", - "2 NaN 0.0 ... 0 \n", - "3 NaN 0.0 ... 0 \n", - "4 NaN 0.0 ... 0 \n", + "0 -1.000000 0.0 ... 1 \n", + "1 -1.000000 0.0 ... 0 \n", + "2 -1.000000 0.0 ... 0 \n", + "3 -1.000000 0.0 ... 0 \n", + "4 -1.000000 0.0 ... 0 \n", "... ... ... ... ... \n", - "697292 NaN 0.0 ... 0 \n", - "697293 NaN 0.0 ... 0 \n", - "697294 NaN 0.0 ... 0 \n", - "697295 NaN 0.0 ... 0 \n", - "697296 NaN 0.0 ... 0 \n", + "354360 -1.000000 0.0 ... 0 \n", + "354361 -1.000000 0.0 ... 0 \n", + "354362 0.010417 0.0 ... 1 \n", + "354363 0.000000 0.0 ... 0 \n", + "354364 -1.000000 0.0 ... 0 \n", "\n", " gender_male gender_other country_fr nb_campaigns \\\n", - "0 1 0 1.0 12.0 \n", - "1 0 0 1.0 3.0 \n", - "2 0 1 NaN 0.0 \n", - "3 1 0 1.0 11.0 \n", - "4 0 1 NaN 0.0 \n", + "0 0 0 1.0 13.0 \n", + "1 0 1 1.0 10.0 \n", + "2 1 0 1.0 14.0 \n", + "3 0 1 NaN 9.0 \n", + "4 0 1 NaN 4.0 \n", "... ... ... ... ... \n", - "697292 1 0 1.0 0.0 \n", - "697293 1 0 1.0 0.0 \n", - "697294 1 0 1.0 2.0 \n", - "697295 0 1 1.0 0.0 \n", - "697296 0 1 NaN 0.0 \n", + "354360 0 1 NaN 7.0 \n", + "354361 1 0 1.0 11.0 \n", + "354362 0 0 1.0 6.0 \n", + "354363 1 0 1.0 3.0 \n", + "354364 1 0 NaN 7.0 \n", "\n", " nb_campaigns_opened time_to_open y_has_purchased \\\n", - "0 3.0 0 days 05:47:26.333333333 0.0 \n", - "1 1.0 0 days 05:13:51 1.0 \n", + "0 4.0 8 days 04:08:27 0.0 \n", + "1 9.0 0 days 01:39:58.555555555 0.0 \n", "2 0.0 NaN 0.0 \n", - "3 10.0 1 days 00:45:54 0.0 \n", + "3 0.0 NaN 0.0 \n", "4 0.0 NaN 0.0 \n", "... ... ... ... \n", - "697292 0.0 NaN 0.0 \n", - "697293 0.0 NaN 0.0 \n", - "697294 1.0 2 days 16:42:51 0.0 \n", - "697295 0.0 NaN 0.0 \n", - "697296 0.0 NaN 0.0 \n", + "354360 0.0 NaN 0.0 \n", + "354361 2.0 3 days 06:21:17 0.0 \n", + "354362 6.0 0 days 17:30:10.166666666 1.0 \n", + "354363 0.0 NaN 0.0 \n", + "354364 0.0 NaN 0.0 \n", "\n", " number_company no_campaign_opened \n", "0 10 False \n", "1 10 False \n", "2 10 True \n", - "3 10 False \n", + "3 10 True \n", "4 10 True \n", "... ... ... \n", - "697292 14 True \n", - "697293 14 True \n", - "697294 14 False \n", - "697295 14 True \n", - "697296 14 True \n", + "354360 14 True \n", + "354361 14 False \n", + "354362 14 False \n", + "354363 14 True \n", + "354364 14 True \n", "\n", - "[697297 rows x 42 columns]" + "[354365 rows x 42 columns]" ] }, - "execution_count": 111, + "execution_count": 237, "metadata": {}, "output_type": "execute_result" } @@ -6502,7 +6361,7 @@ }, { "cell_type": "code", - "execution_count": 197, + "execution_count": 238, "id": "dc8cfd36-0eb2-4ef3-877d-626fd0a9ced4", "metadata": {}, "outputs": [ @@ -6582,7 +6441,7 @@ "4 14 2427043 723846.0 0.298242" ] }, - "execution_count": 197, + "execution_count": 238, "metadata": {}, "output_type": "execute_result" } @@ -6597,7 +6456,7 @@ }, { "cell_type": "code", - "execution_count": 198, + "execution_count": 239, "id": "30b28426-088a-4153-b2aa-c20f11b2b771", "metadata": {}, "outputs": [ @@ -6740,7 +6599,7 @@ "9 37.194758 " ] }, - "execution_count": 198, + "execution_count": 239, "metadata": {}, "output_type": "execute_result" } @@ -6753,7 +6612,7 @@ }, { "cell_type": "code", - "execution_count": 199, + "execution_count": 240, "id": "9cebe912-fce1-4f4f-9d87-9649605296c8", "metadata": {}, "outputs": [ @@ -6876,7 +6735,7 @@ "9 37.194758 " ] }, - "execution_count": 199, + "execution_count": 240, "metadata": {}, "output_type": "execute_result" } @@ -6888,8 +6747,8 @@ }, { "cell_type": "code", - "execution_count": 201, - "id": "8418531b-4f30-4d96-8035-f3630c789d6f", + "execution_count": 241, + "id": "1c32cd86-e08d-4b8a-90f1-27ad0df0ffeb", "metadata": {}, "outputs": [ { @@ -6906,33 +6765,15 @@ "source": [ "# graphic - overall rate of opened mails (train set for music companies)\n", "\n", + "FILE_NAME = \"overall_mail_opening_train_set_music.png\"\n", + "FILE_PATH_OUT_S3 = FILE_PATH + FILE_NAME\n", + "\n", "multiple_barplot(company_campaigns_stats, x=\"number_company\", y=\"perc_campaigns_opened\", var_labels=\"y_has_purchased\",\n", " dico_labels = {0 : \"clients n'ayant pas acheté\", 1 : \"clients ayant acheté sur la période\"},\n", " xlabel = \"Compagnie\", ylabel = \"Part de mails ouverts (%)\", \n", - " title = \"Taux d'ouverture global des mails envoyés par les compagnies de spectacle (train set)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 202, - "id": "1c32cd86-e08d-4b8a-90f1-27ad0df0ffeb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# save in the s3\n", + " title = \"Taux d'ouverture global des mails envoyés par les compagnies de spectacle (train set)\")\n", "\n", - "FILE_NAME = \"overall_mail_opening_train_set_music.png\"\n", - "FILE_PATH_OUT_S3 = FILE_PATH + FILE_NAME\n", + "# save in the s3\n", "\n", "with fs.open(FILE_PATH_OUT_S3, 'wb') as file_out:\n", " plt.savefig(file_out)"