"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Code source : https://www.geeksforgeeks.org/how-to-annotate-bars-in-barplot-with-matplotlib-in-python/\n",
"# Defining the plot size\n",
"plt.figure(figsize=(8, 8))\n",
" \n",
"# Defining the values for x-axis, y-axis\n",
"# and from which dataframe the values are to be picked\n",
"plots = sns.barplot(x=\"customer_category\", y=\"CLV\", data=df_cat)\n",
" \n",
"# Iterating over the bars one-by-one\n",
"for bar in plots.patches:\n",
" \n",
" # Using Matplotlib's annotate function and\n",
" # passing the coordinates where the annotation shall be done\n",
" # x-coordinate: bar.get_x() + bar.get_width() / 2\n",
" # y-coordinate: bar.get_height()\n",
" # free space to be left to make graph pleasing: (0, 8)\n",
" # ha and va stand for the horizontal and vertical alignment\n",
" plots.annotate(format(bar.get_height(), '.2f'),\n",
" (bar.get_x() + bar.get_width() / 2,\n",
" bar.get_height()), ha='center', va='center',\n",
" size=15, xytext=(0, 8),textcoords='offset points')\n",
"\n",
"plt.xlabel(\"Customer category\", size=14)\n",
" \n",
"# Setting the label for y-axis\n",
"plt.ylabel(\"CLV\", size=14)\n",
" \n",
"# Setting the title for the graph\n",
"plt.title(\"CLV per category\")\n",
" \n",
"# Finally showing the plot\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 679,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
customer_category
\n",
"
CLV
\n",
"
contribution
\n",
"
contribution_to_CLV
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
Bronze
\n",
"
395.086399
\n",
"
0.678901
\n",
"
0.678901
\n",
"
\n",
"
\n",
"
1
\n",
"
Diamond
\n",
"
37242.654944
\n",
"
63.996367
\n",
"
63.996367
\n",
"
\n",
"
\n",
"
2
\n",
"
Gold
\n",
"
16019.649621
\n",
"
27.527559
\n",
"
27.527559
\n",
"
\n",
"
\n",
"
3
\n",
"
Silver
\n",
"
4537.561030
\n",
"
7.797173
\n",
"
7.797173
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" customer_category CLV contribution contribution_to_CLV\n",
"0 Bronze 395.086399 0.678901 0.678901\n",
"1 Diamond 37242.654944 63.996367 63.996367\n",
"2 Gold 16019.649621 27.527559 27.527559\n",
"3 Silver 4537.561030 7.797173 7.797173"
]
},
"execution_count": 679,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Computing the contribution of each category to the total CLV of the next six months\n",
"df_cat[\"contribution_to_CLV\"] = df_cat['CLV']/df_cat['CLV'].sum()*100"
]
},
{
"cell_type": "code",
"execution_count": 683,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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LhdPRERUaugssDMyMiCEQEhIiDTM1dUVwcHB+OCDDzB69Gj8+eefqFu3rq5KICIiKjV0dkj82rVrSE9Px4gRIzBkyBCcOXMGKpUKNWrUgEKhgIuLCyIjI3W1eCIiolJFZz1sU1NTjBw5En379sXt27cxatQolCtXThpvbm6O+Pj4Qtu5fPmyrkokeqdER0eXdAlE9C/oLLBr1aqFmjVrQqFQoFatWihbtiySk5Ol8ampqbkCXBsHBweYmJjoqkx6S8Qc3F/SJZR6TZo0KekSiKgQGRkZWjuqOjskHhoaisWLFwMAEhISkJ6eDjMzM9y5cwdCCJw4cQKOjo66WjwREVGporMedp8+fTBjxgwMHDgQCoUCAQEBMDAwwNSpU5GVlQUXFxc0bNhQV4snIiIqVXQW2MbGxli+fHme4T/88IOuFklERFRq8cYpREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZYGATERHJAAObiIhIBhjYREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZYGATERHJAAObiIhIBhjYREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZYGATERHJAAObiIhIBhjYREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZYGATERHJAAObiIhIBhjYREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZYGATERHJAAObiIhIBooc2JGRkejWrRs6duyI8PBwXdZERERErzHUNiIzMxNGRkbS6y1btkhB3bt3b/Tq1Uv31RERERGAAnrY7u7uOHbsmPTa1NQUv/76K37//XcYGxvrpTgiIiLKpjWwN2zYgIiICHh4eCA+Ph6zZ89GbGwsYmJisHz5cn3WSERE9M7Teki8XLly8PX1xbVr1+Dn54f69etj3LhxMDU11Wd9REREhAJ62FlZWTh27BiSkpKwceNGWFtbY+jQofj111/1WR8RERGhgB72pEmTUKlSJaSnp+PAgQOYO3cuOnTogK+//hqhoaH45ptv9FknERHRO01rYMfHx+Orr74CALi5uQEALCws4O3tjdjYWL0UR0RERNm0BnbdunUxatQoZGRkoG3btrnG2djY6LouIiIieoXWwF60aBGuX78OY2Nj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xf30008xadIkAIAQAkqlEleuXIGTkxMAoHXr1oiMjNTFoomIiEolnfSwzc3NAQApKSmYOHEivLy8EBgYCIVCIY1/8eJFkdq6fPmyLkokeudER0eXdAn0L3D/kU4CGwAePHgADw8PDBo0CN27d8fSpUulcampqShXrlyR2nFwcICJiYmuyqS3RMzB/SVdQqnXpEkTnbV9T2ctUw5d7j96e2RkZGjtqOrkkPjjx48xYsQITJs2DX369AEA1K1bF1FRUQCAiIgIODo66mLRREREpZJOAnvdunV4/vw51qxZA3d3d7i7u8PLywvBwcHo378/MjMz0blzZ10smoiIqFTSySHx2bNnY/bs2XmGb9myRReLIyIiKvX4Q2giIiIZYGATERHJAAObiIhIBhjYREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZYGATERHJAAObiIhIBhjYREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZYGATERHJAAObiIhIBhjYREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZYGATERHJAAObiIhIBhjYREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZYGATERHJAAObiIhIBhjYREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZYGATERHJAAObiIhIBhjYREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZYGATERHJAAObiIhIBhjYREREMsDAJiIikgEGNhERkQwwsImIiGSAgU1ERCQDDGwiIiIZ0GlgX7x4Ee7u7gCAuLg4DBw4EIMGDYKfnx80Go0uF01ERFSq6Cyw//vf/2L27NnIyMgAACxatAheXl7Ytm0bhBA4dOiQrhZNRERU6ugssGvUqIHg4GDp9ZUrV+Dk5AQAaN26NSIjI3W1aCIiolLHUFcNd+7cGXfv3pVeCyGgUCgAAObm5njx4kWR2rl8+bJO6iN610RHR5d0CfQvlMb99+eff2LBggX5jqtbty5mz56dZ/iVK1ewfft23Lt3D+XLl0eHDh3QrVs3KV8yMjKwefNmnDlzBhqNBs7OznB3d4epqalO10UfdBbYrzMw+P/OfGpqKsqVK1ek+RwcHGBiYqKr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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Code source : https://www.geeksforgeeks.org/how-to-annotate-bars-in-barplot-with-matplotlib-in-python/\n",
"# Defining the plot size\n",
"plt.figure(figsize=(8, 8))\n",
" \n",
"# Defining the values for x-axis, y-axis\n",
"# and from which dataframe the values are to be picked\n",
"plots = sns.barplot(x=\"customer_category\", y=\"contribution_to_CLV\", data=df_cat)\n",
" \n",
"# Iterating over the bars one-by-one\n",
"for bar in plots.patches:\n",
" \n",
" # Using Matplotlib's annotate function and\n",
" # passing the coordinates where the annotation shall be done\n",
" # x-coordinate: bar.get_x() + bar.get_width() / 2\n",
" # y-coordinate: bar.get_height()\n",
" # free space to be left to make graph pleasing: (0, 8)\n",
" # ha and va stand for the horizontal and vertical alignment\n",
" plots.annotate(format(bar.get_height(), '.2f'),\n",
" (bar.get_x() + bar.get_width() / 2,\n",
" bar.get_height()), ha='center', va='center',\n",
" size=15, xytext=(0, 8),textcoords='offset points')\n",
"\n",
"plt.xlabel(\"Customer category\", size=12)\n",
"\n",
"# Setting the label for y-axis\n",
"plt.ylabel(\"contribution to CLV in %\", size=12)\n",
" \n",
"# Setting the title for the graph\n",
"plt.title(\"The contribution of each category to the total CLV of the next six months\")\n",
" \n",
"# Finally showing the plot\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Analyzing the frequency__"
]
},
{
"cell_type": "code",
"execution_count": 575,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.displot(df_rfmt['frequency'])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 608,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"df_freq = pd.DataFrame(df_rfmt.groupby(['customer_category'])['frequency'].mean().reset_index())"
]
},
{
"cell_type": "code",
"execution_count": 609,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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ku4G9N69eyVJnp6eqly5shYsWCDpbvB16tRJW7ZseWAdtWrV0tdff62EhASlpKRo3LhxWr9+vSSpS5cuWrx4sYwxqlixYrrbX7t2TTt27JAkfffdd3J3d5eXl5d8fX21atUqxcTESLp7Tn/48OF/+rm8+OKL2rx5s327WbNmaeHChfr+++/16quvql27dipevLi+++47JScnS7obqklJSZKk2rVra/369bpy5YokadmyZfbz9vXq1dOqVaskSdevX9e3334rm82mSpUq6eTJkzp48KAk6dixY/rpp59Uo0aNdGts166dvv32Wx0+fFhNmjT50zEBzsIMHMgEWbJk0ezZs/Xee+/pk08+UVJSkgYNGqSqVatKkrp166bOnTsra9asevbZZ+3b+fn56e2331bTpk1VuHDhVCEzZcoUTZgwQa1atVJCQoJatmypV155Jd2Z6j0dO3bU+fPn1aZNGxljVKNGDftFZWXLllXu3LkfOMu890vIlClTlC1bNn300UdydXVVu3btdPnyZbVv3142m02FChXS+++//6efS7169XT8+HF16tRJklSqVClNmDBBERERGjNmjMLCwuTq6qoKFSooMjJS0t1fQgYMGCB3d3cFBQXpX//6l3r06CGbzSZPT099+OGHstlsGjVqlAIDA+0z+H/84x/Kli2b8uXLpxkzZmjChAmKi4uTzWZTcHCwihcvrv3796epMX/+/PL29lbJkiVTHR0BHjU2Y3icKOBMmzZt0tKlSxUaGurQ9z1z5oz8/Py0adMm+2H53zt37pxatWqVbsg9ipYuXary5curSpUqSkhIUOfOnTVgwAD7tQEZde3aNbVt21ZLly5VoUKFMqla4O9jBg48gWbMmKEVK1Zo9OjR6Ya3Fd2bzaekpCgxMVHNmjX7y+G9YsUKTZs2TX369CG88chjBg4AgAVxERsAABZEgAMAYEGWOQeekpKi2NhYubu7p/oeKQAAjytjjBITE+Xh4ZHqIUqShQI8NjbW/rUSAACeJF5eXsqZM2eqNssE+L3vY3p5eSlLlixOrgYAgMyXkJCgyMjIdO9JYJkAv3fYPEuWLMqaNauTqwEAwHHSO3XMRWwAAFgQAQ4AgAUR4AAAWBABDsDSLl26pIEDB6pGjRqqVq2ahgwZosuXL0u6+/XTBQsWqGnTpqpSpYq6detmf9rb/Rw+fFjdu3dXtWrV5Ovrq9GjR9ufry5JMTExGjNmjHx9fVWjRg29/fbb+u233zJziEC6CHAAlmWM0RtvvKHo6GgtXrxYS5YsUVRUlPr27StJmj9/vkJCQtSjRw+FhYWpevXq6tq1q3799dd0+7t8+bL8/f1VuHBhffHFF5oxY4YOHjyowYMH29cZNGiQ/vOf/yg4OFhLly7V7du31a1bNyUkJDhiyMB/GYuIi4sze/fuNXFxcc4uBcAj4sqVK2bw4MHm7Nmz9rbNmzcbLy8vc+PGDVOtWjUzbdq0VNt0797djBw5Mt3+FixYYGrXrm2SkpLsbT/99JPx8vIy58+fN0eOHDFeXl5m586d9uUxMTGmWrVqJiws7CGPDnhw9jEDB2BZTz/9tEJCQlS4cGFJdw+nf/HFF/Lx8VFycrKio6NVrVq1VNuUK1dOP/74Y7r9NWzYUNOnT5erq6u97d7Xd6Kjo3Xq1ClJsj/XXZI8PDxUrFix+/YJZBaHfg/8t99+U5s2bfTZZ5/Jzc1NI0eOlM1mU+nSpTV27Ng0t4kDgIx68803tWXLFuXOnVuLFy9W7ty5lSVLFl26dCnVeufPn9e1a9fS7aNo0aIqWrRoqrb58+erQIECKl26tGJjYyXd/UWhWLFikqTk5GRdunRJ+fPnz4RRAffnsMRMTEzUmDFjlC1bNklScHCwBg8erM8//1zGGG3ZssVRpQB4DA0aNEgrV67U888/L39/f129elUtW7bURx99pPDwcCUnJ2vTpk3aunWrEhMTM9TnlClTtG3bNo0dO1aurq7y8fFRiRIlNHbsWF25ckVxcXGaOnWqrl+/nuE+gYfFYQH+wQcfqGPHjnrmmWck3b3Ss0aNGpKkunXrateuXY4qBcBjqEyZMqpYsaJCQkKUkpKiNWvWKCAgQFWqVFG7du3k7e2t0NBQdevWTZ6eng/sKzk5WWPHjtUnn3yicePGqVGjRpLu3gnyww8/VHR0tOrUqaNq1arp+vXrqlu37p/2CTxsDjmEHhYWpnz58qlOnTr6+OOPJd29evTeuSUPDw/dunUrQ3392VdAADw5bt68qcOHD+vFF19M1Z4vXz6Fh4crMjJSXbt2Vbt27RQfH69cuXIpNDRU+fPn1759+9LtMyEhQTNnztSBAwf05ptvqnTp0mnWHT16tG7duiU3Nzdlz55dAQEB8vHxuW+fQGZwSICvXr1aNptNu3fv1tGjRzVixIhU56BiY2OVK1euDPXl7e3NvdABSJIOHjyoDz/8UPXr15ePj48k6datW7py5Yq6du2q1atXq3r16nr11Vcl3Z1Zjxo1Si1atEh1Ido9KSkpevPNN3X06FHNmzdPderUSbU8JiZGffr00ZgxY+zbnzt3TmfOnNG4cePS7RP4O+Lj4+87cXXIIfSlS5dqyZIlCg0NVbly5fTBBx+obt262rNnjyRpx44daa4UBYA/4+3trWrVqikwMFAHDx7UkSNHNHjwYOXLl0+tW7fW008/rRkzZmjv3r369ddf9dZbb9m/t31PVFSU/eK0ZcuWaevWrRo9erTKli2rqKgo+5/ExER5enoqOTlZEydO1PHjx3Xw4EH16dNHtWrVUq1atZz1MeAJ5bTLvkeMGKFZs2apQ4cOSkxMVNOmTZ1VCgCLcnFx0axZs1SuXDn17t1bXbt2lYeHh5YsWSIPDw/169dPTZo00aBBg9SuXTvFxcVpyZIlyps3r70PX19fffbZZ5KkdevWSZICAwPl6+ub6s+BAwckSSEhIcqRI4c6dOigvn37qnr16po1a5bjB48nns0YY5xdREbcO4zAIXQAwJPiQdnHF68BALAgAhwAAAsiwAEAsCCH3koVwJNhbckizi7hsffKibPOLgFOxgwcAAALIsABALAgAhwAAAsiwAEAsCACHAAACyLAAQCwIAIcAAALIsABALAgAhwAAAsiwAEAsCACHAAACyLAAQCwIAIcAAALIsABALAgAhwAAAsiwAEAsCACHAAACyLAAQCwIAIcAAALIsABALAgAhwAAAsiwAEAsCACHAAACyLAAQCwIAIcAAALIsABALAgAhwAAAsiwAEAsCACHAAACyLAAQCwIAIcAAALIsABALAgAhwAAAsiwAEAsCACHAAACyLAAQCwIAIcAAALIsABALAgAhwAAAsiwAEAsCACHAAAC3Jz1BslJycrMDBQJ0+elM1m0zvvvKOkpCT17t1bzz33nCSpU6dOat68uaNKAgDAshwW4Fu3bpUkLV++XHv27FFISIgaNmwof39/9ejRw1FlAADwWHBYgDdu3Fj169eXJF24cEG5cuVSeHi4Tp48qS1btqhYsWIKCAiQp6eno0oCAMCybMYY48g3HDFihDZv3qyZM2fq8uXLKlOmjLy9vTVnzhxFR0dr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ChcurLffflsRERHav3+/AgMD5eLi8sCZ9z2enp5q06aNJk6cqJ9//llHjhzR5MmTVbNmTeXJk0cuLi7asGGDzp8/r02bNtmvGL/3y46Hh4d+/fVX3bhxQ6+88ooSEhIUGBioEydOaOfOnRo/frz9Odxdu3bVv//9b61YsUInT55UcHCwzp8/L5vNJunuVfqff/65vvzyS508eVJTp05VRESE2rdvf9/6s2TJoiZNmmjBggUcPof1OPUMPPCYuHTpkgkKCjJ169Y1Pj4+5uWXXzaffvqpSUhIsK9z+PBh8+qrr5oKFSqYDh06mBUrVtgvYjPGmM8++8w0aNDAVKhQwbz88stm48aN9mXTp083Pj4+5r333jPGGLN79257X02aNDHLli2zrztixAjz1ltv2V+vWLEi1cVZx48fN15eXubixYvGGGPOnDljevfubSpVqmRq1KhhRo8ebW7dumWMSX2h3f3ExMSYUaNGmapVq5oaNWqYwMBAExsba4wxZvny5aZu3bqmUqVKpnXr1mbdunWmQoUK5qeffjLGGLNs2TJTuXJl069fP/tn1LVrV+Pj42Nq165tJk2aZL+Q795Y6tWrZypWrGiGDRtmOnbsaObOnWtfHhoaaho0aGC8vb1Nu3btzJ49e+zLfn/B3O99//33Gb4QEXiU2IzJwHEyAHCygwcPytPTUyVKlLC3tWjRQj179lSbNm3+536//PJLLV26NN3vuAOPMg6hA7CE/fv364033tD//d//6ezZs5o7d64uXryoOnXq/E/9nT17Vhs2bNBHH330wMPswKOKq9ABWEKXLl107tw5DRgwQLdu3VK5cuU0f/58Pf300/9Tf+fOnVNAQIDq1q37t2bwgLNwCB0AAAviEDoAABZEgAMAYEEEOAAAFkSAAwBgQQQ4AAAWRIADAGBB/w/VHp2rKlNhIQAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Code source : https://www.geeksforgeeks.org/how-to-annotate-bars-in-barplot-with-matplotlib-in-python/\n",
"# Defining the plot size\n",
"plt.figure(figsize=(8, 8))\n",
" \n",
"# Defining the values for x-axis, y-axis\n",
"# and from which dataframe the values are to be picked\n",
"plots = sns.barplot(x=\"customer_category\", y=\"frequency\", data=df_freq)\n",
" \n",
"# Iterating over the bars one-by-one\n",
"for bar in plots.patches:\n",
" \n",
" # Using Matplotlib's annotate function and\n",
" # passing the coordinates where the annotation shall be done\n",
" # x-coordinate: bar.get_x() + bar.get_width() / 2\n",
" # y-coordinate: bar.get_height()\n",
" # free space to be left to make graph pleasing: (0, 8)\n",
" # ha and va stand for the horizontal and vertical alignment\n",
" plots.annotate(format(bar.get_height(), '.2f'),\n",
" (bar.get_x() + bar.get_width() / 2,\n",
" bar.get_height()), ha='center', va='center',\n",
" size=15, xytext=(0, 8),textcoords='offset points')\n",
"\n",
"plt.xlabel(\"Customer category\", size=14)\n",
" \n",
"# Setting the label for y-axis\n",
"plt.ylabel(\"Frequency\", size=14)\n",
" \n",
"# Setting the title for the graph\n",
"plt.title(\"Frequency per category\")\n",
" \n",
"# Finally showing the plot\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Gold customers purchase more frequently from the company"
]
},
{
"cell_type": "code",
"execution_count": 576,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 2669.000000\n",
"mean 4.311353\n",
"std 6.598983\n",
"min 1.000000\n",
"25% 1.000000\n",
"50% 2.000000\n",
"75% 5.000000\n",
"max 128.000000\n",
"Name: frequency, dtype: float64"
]
},
"execution_count": 576,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_rfmt['frequency'].describe()"
]
},
{
"cell_type": "code",
"execution_count": 649,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.9037092544023979"
]
},
"execution_count": 649,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Getting the percentage of customers with a frequency less than 10.\n",
"\n",
"len(df_rfmt[df_rfmt['frequency'] < 10])/len(df_rfmt)"
]
},
{
"cell_type": "code",
"execution_count": 612,
"metadata": {},
"outputs": [],
"source": [
"# Getting the number of customers per category for those with a frequency greater than 10.\n",
"\n",
"df_freq_1 = pd.DataFrame(df_rfmt[df_rfmt['frequency'] > 10]\\\n",
" .groupby(['customer_category'])['customer_category']\\\n",
" .agg('count'))\n",
"\n",
"df_freq_1.columns = ['n_customers']\n",
"\n",
"df_freq_1 = df_freq_1.reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 613,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfYAAAHxCAYAAACf7p4EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABTQElEQVR4nO3deVxN+f8H8NdtE2XLUghjmSwlS1mLCNNYIsYa2ZcxZOxZKkSyZN/HMoiRnYZmGMbyRRoKI7KMtagsDW10q/v5/eHR+UnFjW43Z17Px2Me437OuZ/zPucur845n3uOQgghQERERLKgo+0CiIiIKP8w2ImIiGSEwU5ERCQjDHYiIiIZYbATERHJCIOdiIhIRhjsaoqOjkatWrWwZ8+eLO2bNm3C1KlT8205tWrVQnx8fL719yExMTHo3LkzunTpgsuXL2tsOZ6enoiIiNBY/3Lw999/w9vbW9tlZHH27Fm0adMG3333Hd68efNJfURFRcHd3R3A289Qw4YN87PEfBEXF4c+ffoA+PR6165di9atW2PatGkaq1ObHB0dce3atWzt165dw9ixYz/6fE18rw0ZMkTqM7f68lNMTAxatmyZZT0ePHgAV1dXdOzYET169MDdu3c1WoO6GOx5oKOjgwULFuD+/fvaLiVfhIaGomzZsggKCtLoF+758+fByyV82D///IO4uDhtl5HFkSNH0LNnT+zbtw+Ghoaf1MeTJ08K/efF1NQUgYGBAD693r1798Lf3x9+fn75XV6hVq9ePaxYsUIryz537lyBLevgwYPo168fnj59mqV90qRJ6Nu3L4KDg+Hu7o6xY8cWiu86PW0X8CUxNDTE4MGDMXHiRAQGBsLAwCDL9MTERMyePRs3b96EQqFAy5YtMWHCBOjp6aFevXoYNGgQTp06haSkJEyePBm///47bt++jfLly2PdunUoVqwYAGDZsmW4du0aVCoVxo0bhzZt2mD//v3Yu3cvXr9+DWNjYwQEBGDPnj3YuXMnVCoVSpUqBS8vL9SoUSNb3bt27UJAQAB0dHRQtmxZeHl5IS4uDsuWLUNiYiLc3NwQEBCQ5Tn379+Ht7c34uPjoaOjg1GjRqFjx45wdHTE8uXLUa9ePQCQHtepUwdz5sxBeHg49PX1YW5uDj8/P/z00094+vQpJk2ahIULF8LU1BSzZs3C48ePIYSAi4sLhg0bhujoaAwcOBDNmjXDlStXkJ6ejilTpmDXrl24d+8erKyssGTJEujo6CA8PBz+/v54/fo1FAoF3N3dc9xGS5YsgYeHB/79918AgIODA8aNG5dt+9StWxcDBw5EaGgoUlJSMGHCBHzzzTcAkOs2njp1Kl6+fImoqCi0bt0akydPztLn3r178fPPP0NHRwelS5fGggULYGpqinnz5uHq1atITk6GEAJz585FxYoVsWLFCiQmJmLatGnw8/PDn3/+ibVr1yItLQ2Ghobw8PBAw4YN8fr1a8ycORNXr15F8eLFUbNmTQDA/PnzcefOHfj4+ODly5dQKBQYMmQIXFxcEBoaCl9fXxQrVgwpKSmwtLREuXLlMGHCBABAUFAQjh49itWrV0v1b9y4ESdOnECRIkWQmJiICRMmYP78+QgJCYGuri6sra0xbdo0GBsbw9HREdbW1rh16xYmTJiA9u3bAwAyMjLg6emJuLg4DB06FLNnz0ZGRga8vb1x7do1JCQkYMqUKXByckJaWlqu/f/yyy8IDAyEvr4+ihQpAh8fH9SsWRNxcXHw8fFBTEwM0tLS0KlTJ3z//fdZXofjx49j06ZN2LlzJwDg22+/RYcOHfDjjz8iNjYWPXr0wM6dO9GlSxdcunRJ7XrfNW7cOMTFxWHGjBn48ccfsXPnTpQsWRL37t1D37594eLiAl9fX9y+fRtpaWlo3rw5pkyZAj09PRw9ehTLly+HoaEhHBwcsH79ety4cQP79+/H0aNHsX79egDI8lipVMLf3x8XL15ERkYG6tatC09PT+m16NatG0JCQhATE4MOHTpgypQpub4nV69eDRMTkw++F979Hpk5cybi4+PRtWtXjB8/HqGhoZgzZw4OHz6M+Ph4TJs2DY8ePUKpUqVQrlw5fP3119IRkJUrV+Lq1at4+fIlhg4din79+n3yZyzzyMjAgQPx008/5VqfSqXK8TNnY2ODqVOnwtjYGLdu3UJsbCyqV6+OJUuWwMjIKMt6x8XF4fjx4/jpp5/QqVOnLO337t2T2hwcHDB79mzcuHEDlpaW2bZfgRKklqioKNGgQQORkZEhXF1dxfz584UQQmzcuFF4eHgIIYSYMmWKmDNnjlCpVCI1NVUMGTJErF+/XgghhIWFhdi6dasQQoj169eLhg0bitjYWJGRkSG6desmgoKCpPkyn3Pr1i3RpEkT8eLFC7Fv3z7RuHFjkZiYKIQQIjQ0VLi6uoqUlBQhhBD/+9//RIcOHbLVff78edGuXTvx4sULIYQQ+/btEx06dBAqlUrs27dPjBgxIsf1dXFxEdu3bxdCCPHkyRPRtm1bkZiYKNq0aSP+/vtvab7MxxcvXhTffvutUKlUQgghFi5cKMLCwrLMI4QQ/fr1E5s3bxZCCJGQkCCcnZ3F4cOHRVRUlLCwsBDHjx8XQgjh7e0t2rRpIxITE8WbN2+EnZ2dCAsLEy9fvhTffPONiIqKEkIIERsbK1q1aiUeP36cbRutWrVKeHl5CSGESE5OFuPGjRMJCQnZ1tXCwkKsXbtWCCFEZGSksLGxES9evPjgNvbw8BADBw7McdtFRkaKpk2biidPngghhPj555+Fl5eXCA8PF+7u7iIjI0MI8fZ9MHLkSOl1yXwt7t+/Lzp37izi4+OFEELcvn1b2NnZieTkZOHv7y8mTJggMjIyRGJionB2dhYeHh4iLS1NtG3bVhw9elTaLi1bthTh4eHiwoULonbt2iI6OloIIcSNGzeEnZ2dSEtLE0II4erqKs6cOZNtPTw8PMTGjRuFEEIsX75cjBkzRiiVSpGRkSGmTp0qbds2bdqIVatW5bgtLly4IDp16iSEENJr/PvvvwshhDh27Jho27btB/tPT08XlpaWIi4uTgghxIEDB0RgYKAQQgg3Nzdx4sQJIYQQb968EW5ubuLIkSNZlv/69WvRqFEj8erVKxEVFSXs7OxE7969hRBCbN++XcycOVP6bOel3ve9+x7v37+/mDZtmjRt6tSpYtu2bUIIIdLT08WkSZPETz/9JOLi4kSjRo3EnTt3hBBCrFmzRlhYWAghRLbP5ruPV65cKebPny991hYvXixmzpwp1ZH53RQbGyvq1asnHj16lOt7Ut33Qps2bYSPj48QQoinT58KKysr8eTJkyzba/z48WLhwoVCCCHi4uKEnZ2dWLFihRDi7Wds06ZNQgghrl+/LqysrIRSqfzkz1hmn5nfa7nV96HPnIeHh+jdu7dITU0VSqVSuLi4iL179+a6vPeXefnyZeHk5JRlep8+faTvMG3iHnse6ejoYNGiRejWrRvs7e2zTDtz5gx27twJhUIBAwMD9OnTB1u3bsWIESMAQPpLv0qVKrCwsICpqSkAwNzcHK9evZL66du3LwDAwsICNWrUkM5/16pVC8bGxgCAU6dO4eHDh9K5QQB49eoVXr58iVKlSklt//vf/9CxY0eYmJgAALp37w5fX19ER0fnuo4vX77EzZs30bNnTwBAhQoVcPz48Q9uFwsLC+jq6qJnz56wt7eHk5MTrK2ts8yTkpKC8PBwbN68GQBQvHhxdO/eHWfOnEH9+vWhr68PR0dHaRs1bNhQWt/y5cvj1atXuHLlCp49e4bRo0dL/SoUCty6dSvbNmrZsiVGjBiBmJgYtGjRAhMnTkTx4sVzrL9///4AgNq1a8PCwgIXL17E1atXc93GAGBjY5NjXyEhIbC3t0eFChUAAIMGDZKmlSxZEoGBgYiKikJoaGi2vQPg7SHGp0+fZnmeQqHAo0ePcPr0aUybNg06OjowNjZGt27dcOvWLTx48ACpqanSkQZTU1N88803+N///oemTZuiQoUKqFSpEgCgTp06MDc3x6lTp1CtWjU8ffo023v5fWfOnMH48eOhr68PAHBzc8vyGtja2n7w+Zn09fWlz0Ht2rXx4sWLD/avq6uLb7/9Fn369EHr1q1hZ2cHZ2dnpKSk4OLFi3j16hWWL18O4O376+bNm+jYsaO0PENDQ7Ro0QLnzp3Dy5cv0bt3b+zatQuJiYn4888/MWzYsE+q92Pe3R6nTp3CtWvXsHfvXgCQxiuEh4ejVq1a0lGXfv36YdmyZR/t+9SpU0hMTMT58+cBAGlpaShTpow0vW3btgDevgfKlCmDV69e4eLFi7m+J9V9L3Tu3BkAUK5cOZQtWzbbtjh9+jQOHDgA4O3n9dtvv83x+XXq1IFSqURSUtIHv8eA3D9j6tbXsGHDD37mWrZsKR15tbCwyPI9/DEqlSrHdl1dXbX70BQG+yeoWLEiZs2aBQ8PD7i4uEjt77/QKpUK6enp0uPML633//0+HZ3/H/oghICe3tuXKfNQfWbfXbt2lQ5PqVQqPH36FCVLlszSl8jhfI8QIktd78tcnkKhkNru3buHihUrZutTqVQCAEqUKIFDhw4hPDwcFy5cwLhx4zBgwIAsXyAqlSpbPe9uI319/SzLzGkbZWRkoEaNGlkGMcbFxcHExAS//vprlm1kbW2NEydOICQkBBcuXEDPnj2xevVqNGrUKFu/734YVSoVdHV1P7qN313W+329ux5v3rzB48ePERUVBV9fXwwePBht27ZF9erVERQUlO35KpUKzZs3z/IlHxMTg/Lly0NPTy/LNsx8r+T0JfPu6/x+rf369cO+ffvw1VdfoVevXlnqzUlO7+20tDTpcW7b4n3vvqbvLvND/fv7++P27ds4f/48NmzYgL1792LRokUQQiAwMBBFixYFAMTHx6NIkSLZltm+fXucOXMGCQkJGDZsGO7du4fjx4/j9u3baNy4MWJjY/Nc78e8/1ldvny5dJosISEBCoUCYWFhWV7L95f17rR3t7VKpcL06dPh4OAAAEhOTkZqaqo0/d1tkNlPbu/JGjVqqP1eyPxeyKm+zOk5vTfff35m/0KIT/6MqVvfqVOnPviZe3fsSE7r9CEVK1bE8+fPIYSQ1ikuLg5mZmZq96EpHDz3iTp06IBWrVph69atUpu9vT127NgBIQSUSiV2796NFi1a5LnvzL96r1+/jocPH6J+/frZ5rGzs8ORI0ekwRw7d+7EwIEDs81nb2+P4OBgaSTnvn37UKpUKVStWjXX5RsbG8PS0hIHDx4E8DZU+vbti8TERJiYmEgj3DP3ngHg5MmTGDRoEBo2bAh3d3e4uLjg5s2bAN4GXXp6OoyNjVG/fn3s2LEDwNsxCQcPHszTNmrQoAEePnyIixcvAgAiIyPh5OSUbVAL8DYQ1qxZg3bt2mHGjBmoWbMmHjx4kGO/met6/fp13L9/H40bN1Z7G7+vadOmCAkJkZ4XGBiIRYsW4dy5c2jTpg1cXV1Rr149HD9+HBkZGVm2EQA0a9YM586dk0bYnj59Gl26dEFqaiocHBywb98+qFQqvH79GocPH4ZCoUC1atWgr6+PY8eOAXj7BXP06NFct62TkxMiIyNx7NgxfPfddx9dp5YtWyIwMBBpaWlQqVTYsWMH7OzsPvo8XV3dLKGU1/7j4+Ph4OCAUqVKYdCgQRg3bhxu3boFY2NjNGjQAD///DOAt2HZt29fnDhxIlvfrVu3RkhICCIjI2FtbQ07OzssX74crVq1yhIGeak3L+zt7bFlyxbpe2HUqFHYvn279F6+fv06gLfn0TOZmJjgzp07SE1NRXp6Ok6ePJmlvx07dkCpVEKlUsHLywtLliz5YA25vSeBvL8XcuPg4CAdlfj3339x/Pjxj/4x9KmfMSDrZyY3H/rMfS4zMzNUqVIFwcHBAN4eHdXR0YGFhUW+9P85uMf+GTw9PREWFpbl8dy5c+Hs7Iy0tDS0bNky22AedURFRcHFxQUKhQJLlizJcmg9U8uWLTF8+HAMGTIECoUCxsbGWLVqVbYPkp2dHQYNGoSBAwdCpVLBxMQE69evz/bX9PsWL16M2bNnIyAgAAqFAr6+vihXrhwmTZqEWbNmYdeuXbC0tJQGibRq1QpnzpxB586dUaxYMZQsWRJz5swBALRr1w7jx4/H3Llz4e/vDx8fH+zfvx9KpRLOzs7o3r07Hj9+rNa2MTExwYoVK7Bw4UKkpqZCCIGFCxdKh5nfNXDgQEydOhWdO3eGgYEBatWqJR2ue194eDh2794NlUqFpUuXomTJkmpv4/fVqlULkydPlg7zlitXDvPmzUNSUhImTZoEZ2dn6OrqwtbWFseOHYNKpULDhg2xbNkyjB49GqtXr4aPjw8mTJggHbFZu3YtihUrhpEjR8LHxwfOzs4oXrw4ypQpA0NDQ+jr62PNmjWYO3cuVq5ciYyMDIwePRrNmjVDaGhothoNDAzg5OSE58+fS6dpPmTUqFFYsGABXFxckJ6eDmtra3h5eX30eV9//TV0dXXRo0cPLF26NM/9lyhRAqNGjcKgQYNgaGgIXV1dzJ07F8DbP9zmzJkDZ2dnKJVK6aeb7ytRogRq1KiBokWLQldXF/b29pgxY4Z02uJT6s2LGTNmwNfXV/peaNGiBYYNGwZ9fX0sX74cXl5eEEKgVq1a0nPs7OzQuHFjdOjQAeXKlUPTpk2l000//PADFixYgG7duiEjIwN16tT56E9uc3tPAnl/L+Rm2rRp8PT0hLOzM0qVKoWKFSt+9NcUn/oZA94eiXF1dcWaNWtynadPnz65fubyw5IlS+Dl5YW1a9fCwMAAy5cv/+h3a0FQiLwceyCSoVq1aiEkJOSzvtQKypEjR2BsbAwHBweoVCq4u7vDzs4Orq6ueeonJSUF/fv3x8yZM3M8IkQFLz4+Hs2bN5cCvKDk13thx44dqFu3Lho2bAilUglXV1e4u7tLpwyo4Gj/TwsiUtvXX3+NtWvXomvXrujcuTPKly8vDXJU1//+9z+0bt0aTZs2Zaj/x+Xne6FmzZqYM2cOXFxc0K1bNzg4ODDUtYR77ERERDLCPXYiIiIZYbATERHJyBc/Kl6lUiE5OTnbb6CJiIjkSAiBtLQ0GBkZ5TgK/4sP9uTkZNy+fVvbZRARERUoCwuLHK+m+cUHe+bVmiwsLLLdlIWIiEhulEolbt++nesVTL/4YM88/G5gYJDj5SSJiIjkKLfTzxw8R0REJCMMdiIiIhlhsBMREcnIF3+OvbDy9vZGRkYGfH19AQCOjo653ujk5MmTqFixInbs2AEfH58s03R1dXHjxo1clxMUFITVq1cjJiYGtWvXhqenZ5b7oD98+BA+Pj4IDw9HiRIl4Obm9tF7UBMR0ZeLwZ7PhBBYsWIFdu3ahR49ekjte/fuzXK7wNevX2PAgAGwtbWV7nN++/ZtODo6Zgn3D/02//z585g+fTq8vLxga2uLn3/+GUOHDsXRo0dhYmICpVKJYcOGoU6dOtizZw8iIyOlO2b16tVLA2tPRETaxmDPR1FRUZg+fTru3LkjhXWm9+8cNnPmTOjq6kq3NgWAO3fuoFmzZihXrpxay9u0aRM6d+6M3r17AwB8fHxw4cIF7N69G99//z2OHTuG58+fw8/PD0ZGRqhZsyYePnyITZs2MdiJiGSK59jzUXh4OCpUqIBff/0V5ubmuc538+ZN7N69G97e3ihatKjU/s8//6BGjRpqLUulUiE8PBxNmjSR2nR0dNC4cWNcunQJAHDp0iVYWVnByMhImqdJkyZ48OABnj9/ntfVIyKiLwCDPR917doVCxcu/Oge98qVK2FjY5PlloZxcXF49eoVzpw5g2+//RYODg6YNGkS4uLicuwjISEBKSkpMDU1zdJevnx5xMbGAgBiY2NRvnz5bNMBICYmJs/rR0REhR+DvYBFRUXhzz//xMiRI7O037lzBwCgp6eHpUuXws/PDw8ePMCgQYPw5s2bbP1ktr1/UR59fX2kpqZK87w/PfPqfJnzEBGRvPAcewH79ddfUaFCBdjb22dpt7e3R0hISJZz8TVr1kSrVq1w+vRpODk5ZZk/M7CVSmWW9rS0NOnwvqGhYbbpmY+LFSuWPytERESFCvfYC9iJEyfQoUOHHEe7vz/Arnz58ihdunSOh81LlSqFYsWK4enTp1nanz59Kh2eNzMzw7Nnz7JNB5DtED4REckDg70ApaSkIDIyEs2aNcs2bdu2bbC3t0daWprU9vjxY8THx+Prr7/ONr9CoUDDhg1x8eJFqU2lUuHixYto3LgxAMDGxgYRERF4/fq1NE9oaCiqVauGMmXK5OeqERFRIcFgL0C3bt1CRkYGLCwssk1r3bo1kpOTMWPGDNy9exdhYWFwd3eHjY0N7OzsALy9Re27e+CDBg3CwYMHsWPHDty9exfe3t5ITEyUfj/fvn17lCxZEhMnTsTt27dx+PBhbNq0CSNGjCiYFSYiogLHYC9AmaFcqlSpbNOqVKmCn3/+GTExMejZsyd++OEH1KpVC2vXrpXm2bx5c5Zz861atYKPjw82b96Mbt264Z9//sHmzZulQ/qGhobYuHEjkpKS0KNHDyxevBjjx49H9+7dNbuiRESkNQohhCiohV29ehX+/v4ICAjA+PHjpd9SP378GPXr18fSpUsxatQo/Pvvv9DX10eRIkWwcePGD/aZmpqKiIgIWFlZ8batREQkex/LvQIbFb9hwwYEBQVJI7aXLl0KAHj16hUGDBiAadOmAXh7bfMjR4588FKqRERElLMCOxRfpUoVrFy5Mlv7ypUr0b9/f5QvXx7Pnz9HQkICvv/+e/Tt2xcnT54sqPKIiIhkocD22J2cnBAdHZ2l7cWLFwgJCZH21tPS0jBkyBAMGDAAr169Qt++fWFtbc0R3ERERGrS6gVqfv/9d3Tu3Bm6uroAgLJly6JPnz7Q09NDmTJlUKdOHdy/f1+tYI+IiFBrmR03n/msmunjgoe00nYJRET/WVoN9pCQEIwaNUp6fP78eWzfvh0bNmxAcnIy7ty5g+rVq6vVl9qD5xjsGmdjY6PtEoiIZCtz8FxutBrs9+/fR+XKlaXHDg4OOHv2LHr16gUdHR1MmDAh29XYiIiIKHcFGuzm5ubYvXu39PjIkSPZ5pkxY0ZBlkRERCQrvEANERGRjDDYiYiIZITBTkREJCMMdiIiIhlhsBMREckIg52IiEhGGOxEREQywmAnIiKSEQY7ERGRjDDYiYiIZITBTkREJCMMdiIiIhlhsBMREckIg52IiEhGGOxEREQywmAnIiKSEQY7ERGRjDDYiYiIZITBTkREJCMMdiIiIhlhsBMREckIg52IiEhGGOxEREQywmAnIiKSEQY7ERGRjDDYiYiIZITBTkREJCMMdiIiIhlhsBMREckIg52IiEhGGOxEREQywmAnIiKSEQY7ERGRjDDYiYiIZITBTkREJCMMdiIiIhlhsBMREckIg52IiEhGGOxEREQywmAnIiKSEQY7ERGRjDDYiYiIZITBTkREJCMMdiIiIhlhsBMREckIg52IiEhGGOxEREQywmAnIiKSEQY7ERGRjDDYiYiIZITBTkREJCMMdiIiIhkp0GC/evUq3NzcAAA3btxAy5Yt4ebmBjc3NwQHBwMAVq1ahR49eqBPnz74+++/C7I8IiKiL55eQS1ow4YNCAoKQtGiRQEA169fx+DBgzFkyBBpnuvXr+Ovv/7Cnj17EBMTA3d3d+zbt6+gSiQiIvriFdgee5UqVbBy5UrpcUREBE6dOoV+/fph+vTpSEpKQlhYGOzt7aFQKFCxYkVkZGQgPj6+oEokIiL64hXYHruTkxOio6Olx9bW1ujZsyesrKywdu1arF69GsWLF0epUqWkeYyMjJCYmAgTE5OP9h8REaGJsukThIWFabsEIqL/rAIL9ve1b98eJUqUkP49Z84ctG3bFsnJydI8ycnJKF68uFr9WVlZoUiRIh+fcfOZT6qX1GdjY6PtEoiIZCs1NfWDO7NaGxU/dOhQaXBcSEgILC0t0ahRI5w9exYqlQpPnjyBSqVSa2+diIiI3tLaHvusWbMwZ84c6Ovro2zZspgzZw6MjY1ha2uL3r17Q6VSwdvbW1vlERERfZEUQgih7SI+R+YhCXUPxZuOXloAVf23xa0er+0SiIhk62O5xwvUEBERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDKiV5ALu3r1Kvz9/REQEIDIyEjMmTMHurq6MDAwwIIFC1C2bFnMnTsX4eHhMDIyAgCsWbMGxYsXL8gyiYiIvlgFFuwbNmxAUFAQihYtCgDw9fWFl5cX6tSpg8DAQGzYsAHTpk3D9evXsXHjRpiYmBRUaURERLJRYIfiq1SpgpUrV0qPlyxZgjp16gAAMjIyUKRIEahUKjx8+BDe3t7o06cP9u7dW1DlERERyUKB7bE7OTkhOjpaely+fHkAQHh4OLZv344dO3YgJSUF/fv3x+DBg5GRkYEBAwbAysoKtWvX/mj/ERERGqud8iYsLEzbJRAR/WcV6Dn29wUHB2Pt2rX46aefYGJiIoV55uH6Zs2a4ebNm2oFu5WVFYoUKfLxhW4+87ll00fY2NhouwQiItlKTU394M6s1kbFHzp0CNu3b0dAQAAqV64MAHjw4AH69u2LjIwMpKWlITw8HJaWltoqkYiI6IujlT32jIwM+Pr6okKFCnB3dwcANG7cGGPHjkXXrl3Rq1cv6Ovro2vXrvj666+1USIREdEXSSGEENou4nNkHpJQ91C86eilBVDVf1vc6vHaLoGISLY+lnu8QA0REZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGM5CnYVSoVAODZs2f47bff8ODBA03URERERJ9IrWC/cuUKHBwccPHiRTx//hzfffcdZsyYgc6dO+OPP/7QdI1ERESkJrWCff78+Wjbti2srKywd+9e6Onp4cKFC5g5cyaWL1+u6RqJiIhITWoF+40bNzB06FAYGRnhzz//RNu2bWFgYIAWLVrg0aNHmq6RiIiI1KRWsJcqVQoxMTGIjo7GtWvX0Lp1awBAREQEypUrp8n6iIiIKA/Uuh/7d999h9GjR0NfXx9Vq1ZF8+bNsWPHDixatAjjxo3TcIlERESkLrWC3d3dHZaWloiOjkbnzp2ho6MDc3NzLF26FG3atNF0jURERKQmtYK9S5cu8Pf3R7t27aQ2BwcHjRVFREREn0atc+yvXr2Crq6upmshIiKiz6T2HvuQIUPg7OyMSpUqoUiRIlmm9+jRQyPFERERUd6oFey//fYb9PX18fvvv2ebplAoGOxERESFhFrB/ueff2q6DiIiIsoHal8r/vnz51i7di2mTp2KFy9eIDg4GLdu3dJkbURERJRHagX7tWvX4OTkhJCQEBw+fBgpKSkIDQ1Fz549cfbsWU3XSERERGpS+1rxI0aMwLZt26Cvrw8AmD17NkaMGIHFixdrtEAiIiJSn9rXiu/QoUO29q5du+LevXv5XhQRERF9GrWCvUyZMrh792629rCwMJQvXz7fiyIiIqJPo9ao+OHDh8PLywvDhw+HEALnzp1DTEwMtm3bhkmTJmm6RiIiIlKTWsHeu3dvlCtXDps2bYKhoSEWL16MatWqwdfXFx07dtR0jURERKQmtYIdABwdHeHo6KjJWoiIiOgzqRXsb968wb59+3Dv3j0olcps0+fMmZPvhREREVHeqRXs48ePx8WLF9GkSRMYGhpquiYiIiL6RGoF+4ULF7BhwwbY2tpquh4iIiL6DGr93K1atWrIyMjQdC1ERET0mdTaY58/fz5+/PFHdOrUCRUrVoSOTta/B1xcXDRRGxEREeWRWsF+4MAB3L9/HwEBAdnOsSsUCgY7ERFRIaFWsAcGBmLRokVwdnbWdD1ERET0GdQ6x166dGnUqlVL07UQERHRZ1Jrj93T0xMzZ87EDz/8AHNzc+jpZX1a5cqVNVIcERER5Y1awf7DDz8AeHvN+EwKhQJCCCgUCkRGRmqmOiIiIsoTtYL9xIkTmq6DiIiI8oFawV6pUiUIIXDmzBncu3cPGRkZqF69Ouzt7WFgYKDpGomIiEhNagX7kydPMGrUKDx69Ei6WM3Dhw9hZmaGrVu3wtTUVNN1EhERkRrUGhXv4+OD8uXL49SpU9i/fz8OHTqEkydPonLlyvD19dV0jURERKQmtfbYQ0NDsXv3bpQsWVJqK126NCZNmgRXV1eNFUdERER5o9Yee8mSJfHy5cts7S9fvoS+vn5+10RERESfSK1g79y5Mzw9PXH27FkkJCQgISEB//vf/+Dt7Y3OnTtrukYiIiJSk1qH4seOHYvnz59jxIgREEIAAHR1ddGnTx9MnjxZowUSERGR+tQKdgMDA8yfPx/Tp0/HgwcPUKRIEVSpUgVFixZFfHw8ihQpouk6iYiISA1qHYqvU6cO4uPjUaJECVhbW6NWrVooWrQooqOj0bZtW03XSERERGrKdY/9wIED2Lt3LwBACIFRo0Zlu0b8s2fPUL58ec1WSERERGrLNdidnJzw+PFjAEBYWBgaNWoEIyOjLPMYGRnhm2++0WyFREREpLZcg71YsWIYM2YMgLeXlO3UqdNnXz726tWr8Pf3R0BAAB4+fIipU6dCoVDg66+/xsyZM6Gjo4NVq1bh1KlT0NPTw/Tp02Ftbf1ZyyQiIvovUesce5cuXXDw4EE8efIEALBq1Sp06tQJHh4eSExMVGtBGzZsgKenJ1JTUwEAfn5+GDduHH755RcIIXDixAlcv34df/31F/bs2YMlS5Zg9uzZn7haRERE/01qBbu/vz+WL1+Oly9f4vTp01i3bh06d+6MR48eYe7cuWotqEqVKli5cqX0+Pr162jSpAkAoFWrVjh//jzCwsJgb28PhUKBihUrIiMjA/Hx8Z+wWkRERP9Nav3c7ddff8Xy5ctRt25dTJkyBc2bN8eoUaPg6OiI/v37q7UgJycnREdHS48z7+UOvD1Xn5iYiKSkJJQqVUqaJ7PdxMTko/1HRESoVQdpXlhYmLZLICL6z1Ir2JOTk1GhQgWoVCqcOXMG7u7ub5+sp9bTc6Sj8/8HC5KTk1GiRAkYGxsjOTk5S3vx4sXV6s/Kykq939NvPpPnWilvbGxstF0CEZFspaamfnBnVq1D8ZaWlli/fj2WL1+OhIQEtG3bFrGxsViyZAkaNGjwSYXVrVsXoaGhAIAzZ87A1tYWjRo1wtmzZ6FSqfDkyROoVCq19taJiIjoLbV2ub29vTFp0iQ8efIEkyZNgpmZGXx9fRETE4Ply5d/0oI9PDzg5eWFJUuWoHr16nBycoKuri5sbW3Ru3dvqFQqeHt7f1LfRERE/1UKkXnx9zxSKpWf/fO3/JB5SELdQ/Gmo5cWQFX/bXGrx2u7BCIi2fpY7qm1x555Bbrc9OjR49OqIyIionylVrCvWbMmy+OMjAy8ePECenp6aNSoEYOdiIiokFAr2P/8889sbSkpKZg5cyZq1KiR70URERHRp1FrVHxOMi85u3Xr1vysh4iIiD7DJwc7ANy4cQMqlSq/aiEiIqLPpNaheFdXV+kqcZmSk5Nx584dDB48WCOFERERUd6pFewtWrTI1mZgYIB69eqhefPm+V4UERERfRq1gn3MmDFISUlBQkICzMzMAABnz55FvXr1NFocERER5Y1a59ivXLmCNm3aYPv27VKbn58fvv32W0RGRmqsOCIiIsobtYJ93rx56NmzJyZOnCi1HTlyBF27dsWcOXM0VhwRERHljVrBfvv2bfTu3TvbALrevXvjxo0bGimMiIiI8k6tYDc3N8e5c+eytYeGhqJcuXL5XhQRERF9GrUGz40aNQoeHh4IDw+HpaUlACAyMhLBwcHw8fHRaIFERESkPrWCvVOnTjAxMUFgYCD27NkDfX19VK1aFVu2bEGjRo00XSMRERGpSa1gB4DmzZvzN+tERESF3GddUpaIiIgKFwY7ERGRjOQa7ElJSQVZBxEREeWDXIO9TZs2iImJAQBMmzaNQU9ERPQFyHXwnI6ODvbt2wcbGxscPHgQbdq0QfHixXOcl4PqiIiICodcg/3HH3/E0qVLsWrVKigUCowdOzbH+RQKBa8XT0REVEjkGuyurq5wdXUFANSuXRtnz55F2bJlC6wwIiIiyju1fsd+4sQJlClTBklJSXj48CFUKhWqVq2KEiVKaLo+IiIiygO1gr1cuXKYO3cuAgMDkZGR8faJenro1KkT5syZAwMDA40WSUREROpR63fsCxYswJkzZ7Bu3TpcunQJf/31F1avXo3Lly9j6dKlmq6RiIiI1KTWHvuRI0ewYsUKNGnSRGpzcHCAoaEhJkyYAA8PD40VSEREROpTa49dCIHSpUtnay9VqhRSUlLyvSgiIiL6NGoFe7NmzeDv74/ExESpLSEhAUuWLEHTpk01VhwRERHljVqH4qdPn44BAwagVatWqFKlCgDg0aNH+Oqrr7B69WqNFkhERETqUyvYTU1NcfjwYZw5cwb37t2DoaEhqlevjhYtWkChUGi6RiIiIlKT2vdj19fXR9u2bdG2bVtN1kNERESfgbdtJSIikhEGOxERkYyoFex37tzRdB1ERESUD9QK9gEDBiAiIkLTtRAREdFnUivYzczMEBcXp+laiIiI6DOpNSq+Vq1aGDt2LOrUqYNKlSqhSJEiWaYvXLhQI8URERFR3qgV7AqFAl26dNF0LURERPSZ1Ap2Pz8/TddBRERE+UDtn7udOnUKgwcPhqOjIx4/foxly5Zh165dmqyNiIiI8kitYD906BCmTJkCGxsbvHjxAiqVCuXKlcP8+fOxZcsWDZdIRERE6lIr2Ddu3IjZs2djzJgx0NF5+5R+/frBz88P27Zt02iBREREpD61gv3Ro0ewsrLK1l6nTh08f/4834siIiKiT6NWsFtYWOD06dPZ2vft24datWrle1FERET0adQaFe/h4YGRI0ciJCQEaWlpWLNmDR48eIDIyEisW7dO0zUSERGRmtTaY7e1tcXvv/8OCwsLODo6IiEhATY2NggODkazZs00XSMRERGpSe37sZcrVw4//vgj/v33X+jr68PY2FiTdREREdEnUCvYlUol1q5di8DAQLx8+RLA26AfMmQIBg0apMHyiIiIKC/UCvY5c+bg7Nmz8PDwQN26daFSqfD3339jxYoVePHiBSZOnKjpOomIiEgNagV7cHAw1q9fD1tbW6mtdu3aMDc3x/jx4xnsREREhYRag+eKFy8OPb3sfwMYGRlBX18/34siIiKiT5PrHntUVJT07/79+8PDwwPTp0+HlZUVFAoFbt++DV9fX7i7u3/ywvfv348DBw4AAFJTUxEZGYklS5ZgwYIFqFChAgDA3d0dTZo0+eRlEBER/ZcohBAipwm1a9eGQqEAALw7y/ttCoUCkZGRn13I7NmzUbt2bTx58gR169aFk5OTWs9LTU1FREQErKysst0nPiemo5d+bqn0EXGrx2u7BCIi2fpY7uW6x37ixAmNFvaua9eu4Z9//sHMmTMxbNgwREZGYuvWrbC2tsakSZNyPA1ARERE2eWamJUqVcrW9u+//0KpVOZ7EevXr8fo0aMBAHZ2dmjXrh3Mzc0xc+ZMBAYGon///h/tIyIiIt/rok8TFham7RKIiP6z1NoV/uOPP+Dt7S39hj2TEOKzD8UnJCTg/v370hXsvvvuO5QoUQIA0LZtWxw9elStftQ9FI/NZz65VlKPjY2NtksgIpKtzEPxuVEr2H19feHo6Ij+/furF555cPHiRTRv3hzA2z8UunTpgsDAQJiZmSEkJASWlpb5ujwiIiI5UyvYk5OTMWzYMFSrVi3fC7h//z7Mzc0BvB2IN3fuXIwZMwaGhoaoUaMGevXqle/LJCIikiu1gt3V1RVbt27FjBkz8v1368OGDcvy2N7eHvb29vm6DCIiov8KtYK9Q4cOGDBgAPbv34+yZctKP3nLVJAj6ImIiCh3agX75MmTUb16dXTu3Dnfz7ETERFR/lEr2KOiohAUFIQqVapouh4iIiL6DGpdK97R0RFnz57VdC1ERET0mdTaYzc1NcX8+fNx8OBBVK5cGbq6ulmmL1y4UCPFERERUd6oFewvX75Ep06dNF0LERERfSa1gt3Pz0/TdRAREVE+UCvYly9f/sHpP/74Y74UQ0RERJ9HrWC/dOlSlscZGRmIjo5GQkICOnTooJHCiIiIKO/UCvaAgIAc2xcsWID09PR8LYiIiIg+nVo/d8uNq6srDhw4kF+1EBER0Wf6rGA/efIkDA0N86sWIiIi+kxqHYp3cHDIdn345ORkJCUlwcPDQyOFERERUd6pFezjxo3L8lihUEBfXx9WVlaoWrWqJuoiIiKiT6BWsHfr1k3TdRAREVE+UPvKc5s2bcK1a9eQnp4OIUSW6Tt27NBIcURERJQ3agX7lClTcP36dTg7O8PY2FjTNREREdEnUivYL1y4gO3bt8Pa2lrT9RAREdFnUOvnbmZmZtlGxRMREVHho9Ye+6RJkzB79my4u7vD3NwcBgYGWaZXrlxZI8URERFR3qgV7GPHjgUAjBw5EgCkvXchBBQKBSIjIzVUHhEREeWFWsF+4sQJTddBRERE+UCtYK9UqZKm6yAiIqJ88FnXiiciIqLChcFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyYietgvo1q0bjI2NAQDm5ubo3bs3fH19oaurC3t7e4wZM0bLFRIREX05tBrsqampEEIgICBAauvatStWrlyJypUrY8SIEbhx4wbq1q2rxSqJiIi+HFo9FH/z5k28fv0aQ4YMwYABA3Dx4kUolUpUqVIFCoUC9vb2OH/+vDZLJCIi+qJodY/d0NAQQ4cORc+ePfHgwQMMHz4cJUqUkKYbGRkhKipKrb4iIiI0VSblUVhYmLZLICL6z9JqsFerVg1Vq1aFQqFAtWrVULx4cbx8+VKanpycnCXoP8TKygpFihT5+Iybz3xitaQuGxsbbZdARCRbqampH9yZ1eqh+L1792L+/PkAgLi4OLx+/RrFihXDo0ePIITA2bNnYWtrq80SiYiIviha3WPv0aMHpk2bhr59+0KhUGDevHnQ0dHBpEmTkJGRAXt7e9SvX1+bJRIREX1RtBrsBgYGWLx4cbb23bt3a6EaIiKiLx8vUENERCQjDHYiIiIZYbATERHJCIOdiIhIRhjsREREMsJgJyIikhEGOxERkYww2ImIiGSEwU5ERCQjDHYiIiIZYbATERHJCIOdiIhIRhjsREREMsJgJyIikhEGOxERkYww2ImIiGSEwU5ERCQjDHYiIiIZYbATERHJCIOdiIhIRhjsREREMsJgJyKiQiU2NhZjx45FkyZNYGtri/HjxyMuLg4AoFQqsWDBArRs2RL169dHv379cOXKlQ/29/DhQwwdOhQNGzaEg4MDNm7cmGV6RkYGFi9eDHt7ezRs2BBjx47F8+fPNbV6GsdgJyKiQkMIgREjRiAhIQHbtm3D9u3b8ezZM4waNQoAsGDBAvz+++9YuHAhfv31V9SqVQuDBw+Wgv99SqUSw4YNg5GREfbs2YNJkyZh1apV2L17tzTPypUrceDAASxYsADbt29HbGws3N3dC2R9NYHBTkREhcbz589Ro0YNzJ07F7Vr10bt2rUxaNAgXL9+Ha9evQIAeHl5oXnz5qhSpQrGjx+PlJQU/P333zn2d+zYMTx//hx+fn6oWbMmnJ2dMWzYMGzatAnA2+Dftm0bJkyYADs7O1haWmLJkiUIDw9HeHh4ga13fmKwExFRoVGuXDksXboU5ubmAN4elt+1axfq1auHkiVLwsvLC46OjgCApKQkbNy4EcWLF4e1tXWO/V26dAlWVlYwMjKS2po0aYIHDx7g+fPnuHnzJpKTk9GkSRNpurm5OSpVqoRLly5pcE01R0/bBRAREeXkhx9+wIkTJ1CyZEls27Yty7QtW7bAz88PCoUCfn5+MDU1zbGP2NhYlC9fPktb5uOYmBjExsYCQLbnly9fXpr2peEeOxERFUo//vgj9uzZg0aNGmU7j962bVscPHgQI0eOxIwZM3D69Okc+3jz5g2KFCmSpc3AwAAAkJqaitevX0NHRwf6+vrZ5klNTc3nNSoYDHYiIiqUatWqBWtrayxduhQqlQoHDhyQplWuXBl16tTB+PHj0aJFC2zdujXHPgwNDaFUKrO0ZT4uVqwYDA0NoVKpkJ6enm2eokWL5vMaFQwGOxERFRrPnz/HkSNHsrQVLVoUlStXRkxMDP744w88e/Ysy3QLC4tcR8WbmZllm//p06cA3h5+r1ChAgDkOE9uh/cLOwY7EREVGk+ePMGECRNw7do1qS0xMRH379+HhYUFPDw8EBQUlOU5165dQ40aNXLsz8bGBhEREXj9+rXUFhoaimrVqqFMmTKoXbs2jIyM8Ndff0nTo6Oj8fjxYzRu3Dif165gcPAcEREVGlZWVrC1tYWnpyfmzJkDPT09LF68GCYmJnBxccHTp0+xbt06VK1aFdWrV8eePXtw5coV6XfpGRkZiI+PR/HixWFoaIj27dtj6dKlmDhxIsaNG4fbt29j06ZN8Pb2BvD2XLqrqysWLlyI0qVLo0yZMpg9ezaaNGmCBg0aaHFLfDoGOxERFRo6OjpYuXIlFi5ciJEjRyI1NRX29vbYvn07jIyM4O7ujiJFimDevHl49uwZLC0tsWXLFtSpUwfA25Hubdu2hZ+fH7p37w5DQ0Ns3LgRs2bNQo8ePVCmTBmMHz8e3bt3l5Y5btw4pKenY/LkyUhPT0fLli2l4P8SKYQQQttFfI7U1FRERETAysoq28jHnJiOXloAVf23xa0er+0SiIhk62O5x3PsREREMsJgJyIikhEGOxERkYxw8BwREX3UCtM+2i5B9sbGBeZLP9xjJyIikhEGOxERkYww2ImIiGSEwU5ERCQjDHYiIiIZYbATERHJCIOdiIhIRhjsREREMsJgJyIikhEGOxERkYww2ImIiGSEwU5ERCQjDHYiIiIZYbATERHJiFZv25qWlobp06fj8ePHUCqVGDVqFCpUqICRI0fiq6++AgD07dsXHTt21GaZREREXwytBntQUBBKlSqFRYsW4eXLl3BxccHo0aMxePBgDBkyRJulERERfZG0GuzffvstnJycAABCCOjq6iIiIgL379/HiRMnULVqVUyfPh3GxsbaLJOIiOiLodVz7EZGRjA2NkZSUhLGjh2LcePGwdraGlOmTMGOHTtQuXJlrF69WpslEhERfVG0uscOADExMRg9ejRcXV3h7OyMhIQElChRAgDQvn17zJkzR61+IiIiNFkm5UFYWJi2SyAi+uLk13enVoP9+fPnGDJkCLy9vdG8eXMAwNChQ+Hl5QVra2uEhITA0tJSrb6srKxQpEiRj8+4+cznlExqsLGx0XYJRJTPzmm7gP8Adb87U1NTP7gzq9VgX7duHRISErBmzRqsWbMGADB16lTMmzcP+vr6KFu2rNp77ERERKTlYPf09ISnp2e29sDAQC1UQ0RE9OXjBWqIiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYY7ERERDLCYCciIpIRBjsREZGMMNiJiIhkhMFOREQkIwx2IvrP2LNnD5ycnGBtbY3u3bsjJCQk13mvXbuGPn36oH79+vjmm29w8ODBLNNfv34NLy8vNG3aFLa2tvD09ERycrKG14Do4xjsRPSfcODAAcyePRvDhw/Hr7/+isaNG+OHH35AdHR0tnnj4+MxbNgwWFpaYv/+/XBzc8OMGTNw9uxZaR5vb2+EhYVh/fr1WLduHf766y94e3sX5CoR5YjBTkSyJ4TAypUrMXz4cPTo0QNVq1aFh4cHqlSpgsuXL2ebf8+ePTA2NsaMGTNQo0YNuLm5oUuXLti8eTMAIDY2FocPH8bMmTPRoEED2NraYu7cuThy5Aji4uIKevWIsmCwE5Hs3bt3D48fP0bHjh2lNh0dHRw6dAjOzs7Z5r906RIaN24MHZ3//4ps0qQJwsPDIYRAeHg4dHR00KhRI2l6o0aNoKuri7CwMM2uDNFHMNiJSPYePHgAAEhISMCAAQPQvHlz9OvXD+Hh4TnOHxsbC1NT0yxt5cuXx+vXr/Hvv/8iLi4OJiYm0NfXl6br6enBxMQEMTExGlsPInUw2Ik+wZUrV1C3bl2EhobmOg8HXxUeSUlJAICpU6eiZ8+e2LhxI77++msMHDgQd+/ezTb/mzdvYGBgkKUt87FSqcTr169RpEiRbM8zMDBAamqqBtaASH0MdqI8SklJwZQpU5CRkZHrPBx8Vbhk7ll///33cHZ2hqWlJWbOnImvvvoKO3fuzDa/oaEhlEpllrbMx0WLFs1xeuY8xYoV08AaEKmPwU6UR/Pnz892mPZ9HHxVuJQvXx4AYGFhIbUpFApUr149x1HxZmZmePbsWZa2p0+folixYihevDjMzMwQHx+f5Y+79PR0xMfHS8si0hYGO1EenD59GqdOnYKnp+cH5+Pgq8LF0tISxYoVw7Vr16Q2IQTu3r2LypUrZ5vfxsYGly5dghBCagsNDUWjRo2go6MDGxsbpKenZxlRHxYWBpVKBRsbG82uDNFHMNiJ1BQfH48ZM2Zg7ty5KFmy5Afn5eCrwqVo0aIYOHAgli1bhmPHjuHBgwfw8/PDo0eP0LdvXyiVSjx79kw6vN6jRw/Ex8dj5syZuHv3LgICAnD48GEMGzYMAGBqaooOHTpgxowZCAsLw6VLl+Dl5YWuXbt+9GgOkaYx2InUNHPmTDg6OqJVq1YfnZeDrwqfH3/8EUOHDsW8efPg7OyMK1euYPPmzahevTouX74Me3t7aQ+8bNmy2LhxI27cuAEXFxds374dCxYsQPPmzaX+5s6di0aNGmHEiBEYPXo0mjVrhlmzZmlp7Yj+n562CyD6Ehw4cAA3btxAUFCQWvNz8FXho1AoMHLkSIwcOTLbtKZNm+LWrVtZ2ho0aIC9e/fm2p+RkRH8/Pzg5+eX77USfQ4GO5Ea9u/fj7i4ONjb2wOAdO51+PDhcHFxgY+PT5b58zL4SldXFwAHXxFR/mCwE6nB398fb968kR4/e/YM/fr1w9y5c2FnZ5dtfhsbG+zfvx9CCCgUCgC5D76ytbUFwMFXRJQ/eI6dSA2mpqaoWrWq9J+5ubnUXqZMGQ6+IqJCg3vsRPng8uXLGDBgALZt24amTZtKg6/mzp0LFxcXVKxYMcfBV3PnzsWIESOgp6cHJycnTJ8+XYtroVlBNbL/rIzyX5e7UdougbSMwU70CczMzLIMtuLgKyIqLHgonoiISEYY7ERERDLCQ/H0Rdnyh8/HZ6LPMqg9b0RD9CXjHjsREZGMMNiJiIhkhMFOREQkIwx2IiIiGWGwExERyQiDnYiISEYK5c/dVCoVZs2ahVu3bsHAwABz585F1apVtV0WERFRoVco99iPHz8OpVKJXbt2YeLEiZg/f762SyIiIvoiFMo99rCwMLRs2RLA2+ttR0RE5Dpv5n2xM++q9THljYt8foH0QampqRrrW1+nqMb6prc09frpluN95guCpl6/IuVLaKRf+n/qvnaZeZeZf+9TiNymaNGMGTPwzTffwMHBAQDQunVrHD9+HHp62f8OSUxMxO3btwu6RCIiIq2ysLBA8eLFs7UXyj12Y2NjJCcnS49VKlWOoQ68vUOWhYUF9PX1oVAoCqpEIiIirRBCIC0tDUZGRjlOL5TB3qhRI5w8eRIdO3bElStXYGFhkeu8Ojo6Of7FQkREJFeGhoa5TiuUh+IzR8Xfvn0bQgjMmzcPNWrU0HZZREREhV6hDHYiIiL6NIXy525ERET0aRjsREREMlIoB8/JUWhoKMaNG4eaNWtCCAGlUolZs2ahbt262i6N3vP+a5Weno4BAwagWrVqOHHiBMaMGVPgNe3cuRPPnz+Hu7t7gS9brqKiorBo0SLExsbC0NAQhoaGmDx5Mr7++usc57ezs8O5c+eytPF1KXg//fQTzp8/j/T0dCgUCnh4eODQoUMYPHgw9u3bh7Jly6Jv377aLlOrGOwFqFmzZli6dCkA4OzZs1i+fDnWr1+v5aooJ+++VsnJyXBzc4Ovr69WQp3y3+vXrzFq1CjMmTMHDRs2BAD8/fff8PHxQUBAgJaro9z8888/+PPPP7Fz504oFApERkbCw8MDQUFB2i6tUGGwa0lCQgJMTEzg5uYGExMTvHr1Cj/99BOmT5+O6OhoZGRkYPDgwejYsSPc3NxQu3Zt3LlzB0lJSVi+fDmePn2KJUuWAAD+/fdfpKSk4M8//0RAQAAOHz4MhUKBjh07YsCAAVpe0y+fkZERevfuDR8fH5iZmWHp0qXYvn07jh07htevX6N06dJYtWoVDh8+jJMnT+LNmzd49uwZBgwYgBMnTuDOnTuYMmUK2rVrh6CgIGzduhUGBgb46quv4OPjg19//RWnT5/Gmzdv8OjRIwwfPhzdu3fHpUuXMG/ePJQoUQK6urpo0KCBtjeFbJw8eRLNmjWTQh0ArK2tsW3bNkRHR2P69OnIyMiAQqGAp6cnateuLc3H10V7ihcvjidPnmDv3r1o1aoV6tSpg71798LNzQ2zZs2S5vPz80Pt2rXRrVs3PHv2DCNHjsT+/fuxePFiXLp0CSqVCoMGDUKHDh2yfAdv2rQJurq62lvBfMJgL0AXLlyAm5sblEolbt68idWrV2P9+vXo3Lkz2rdvj+3bt8PExAT+/v5ISkpC9+7d0axZMwBvv3RmzJiBpUuX4siRIxgxYgQCAgLw8uVLfP/991iwYAH++ecfBAcH45dffgEADB48GPb29qhevbo2V1sWypQpg3///RdmZmZQqVR4+fIltmzZAh0dHQwdOhTXrl0D8HbvfvPmzThy5Ai2bNmC3bt3IzQ0FNu2bYONjQ1WrlyJAwcOwNjYGPPmzcOuXbtQrFgxJCUlYdOmTXjw4AG+//57dO/eHbNnz8aKFStQrVo1zJw5U8tbQF6io6NRpUoV6fGoUaOQlJSEp0+fokKFChgwYADatWuHyMhITJ8+Hfv375fm5euiPaampli7di22b9+O1atXw9DQEOPHj882X8+ePeHj44Nu3brh0KFD6N69O06fPo3o6Gjs3LkTqamp6NWrF+zs7ABA+g6WCwZ7AXr38O69e/fQp08fVK1aFdWqVQMA3L17Fy1atADw9up7NWrUQFRUFABI5+LNzMzw/PlzAG9DZPTo0Rg7diwsLS0RHByMJ0+eYNCgQQCAV69e4eHDhwz2fPDkyRN06dIFd+7cgY6ODvT19TFhwgQUK1YMsbGxSE9PBwDUqVMHwNs9ixo1akChUKBkyZJITU1FVFQUatasCWNjYwBA48aNcfbsWdSvX1/aI6xQoYJ0Hejnz59L741GjRrh0aNHBb3asmVmZpblHhRr164FAPTq1QtXrlzB8uXLAbx9PWNjY7M8l6+L9jx8+BDGxsbw8/MDAFy7dg3Dhw9HuXLlssxXs2ZNZGRk4PHjxwgODsaWLVuwa9cuXL9+HW5ubgCA9PR0PH78GACk11MuOCpeS8qWLSv9O/NSuDVq1MClS5cAAElJSbh9+zbMzc1zfL5SqcTYsWPRr18/6Y+B6tWro2bNmti2bRsCAgLQvXt31KpVS8NrIn9JSUnYs2cPTExMAAA3b97E8ePHsWzZMnh5eUGlUkk3Y/jQZY3Nzc1x9+5dpKSkAAD++usv6Qslp+eZmpri7t27ACAdEaD80bZtW4SEhODKlStS28OHDxEbG4t69epJn8PIyMgsn1WAr4s23bp1Cz4+PtIfv9WqVZNOibyvR48eWLRoEWrWrIkSJUqgevXqaNq0KQICArB161Z06NABlStXBvDhz+2XiHvsBSjzULyOjg6Sk5MxdepUHDhwQJreq1cveHl5oW/fvkhNTcWYMWNQpkyZHPvatm0brl+/jvT0dOzcuRMAsHLlSjRv3hx9+/aFUqmEtbU1TE1NC2Td5Obd1yojIwPu7u4oWbIkQkNDUbVqVRQtWhR9+vQBAJQrVw5Pnz79aJ8mJiZwd3fHgAEDoKOjgypVqmDSpEk4cuRIjvP7+PhgypQpMDY2hpGREUqWLJmv6/hfZmRkhLVr12Lx4sXw9/dHeno6dHV1MW3aNNSrVw9eXl7YvHkz0tPT4evrm+W5fF2055tvvsHdu3fRo0cPFCtWDEIITJkyBVu3bs0277fffgtfX1/paIyjoyP++usvuLq6IiUlBe3atZOOnskNrzxHREQkIzwUT0REJCMMdiIiIhlhsBMREckIg52IiEhGGOxEREQywmAn0pCEhAQsWLAAbdu2Rf369eHk5ISffvoJaWlp+dL/hQsXcPv27XzpqzCJjIyUfkdORHnHYCfSgJcvX6Jnz564evUq5s6di8OHD2PChAkICAjAtGnT8mUZAwcOlK5CKCejR4/G/fv3tV0G0ReLF6gh0gB/f3/o6+vj559/RpEiRQAAlStXRunSpeHm5gY3NzfUr19fy1USkRxxj50onymVShw5cgT9+vWTQj1TkyZNsHXrVlhYWAAAatWqhfPnz0vT9+/fj1atWkmPly9fjpYtW6JevXro3bs3Ll++DODtVbSAtzf6WblyJQDg8uXL6Nu3Lxo0aABHR0fs2LFD6mfq1KmYP38+xo8fj/r166NTp064efMmli5dCltbWzg4OODYsWPS/LGxsfjhhx/QoEEDtG7dGv7+/tJlPPfv349evXph7NixsLGxwZ49e7Jtg9evX8PHxwfNmjVD48aNMWXKFCQlJQEAnj59irFjx6Jx48awsrKCi4sLLl68CABwc3PD48eP4enpialTpwIA7ty5gwEDBsDa2hrt27fH5s2b8e51tYKCgtCuXTvUr18fEydOxIQJE6Rtkllvx44dYW1tje7duyM0NFSa5ujoiIULF8Le3h4dO3bEsGHDstwlDAAmTJiAOXPm5PBKExVODHaifPbo0SOkpKSgXr16OU5v1qwZihYt+tF+/vjjD+zYsQP+/v4IDg5G3bp1MXbsWKhUKuzduxcAsGzZMgwZMgR3797FwIED0bhxYxw4cADu7u5YtGgRfvvtN6m/7du3w8bGBocOHULx4sXh5uaGf//9F7t27YKdnR28vLwghIAQAqNHj0bJkiWxb98++Pv749SpU9JtggHg6tWrqFq1Kvbs2YM2bdpkq93b2xshISFYtWoVAgICcOfOHcyfPx8AMGXKFKSnpyMwMBAHDx6EmZmZdJe0lStXwszMDFOnTsWMGTPw5s0bDBs2DA0aNEBQUBA8PT2xdetWbN++HcDbW6hOnz4dQ4YMwf79+1G0aFEEBwdLdezfvx8+Pj4YMWIEDh06BDs7O4wYMQJPnjyR5gkKCsLGjRuxePFidO7cGX/88QcyMjIAvP0D5eTJk+jcufNHXy+iQkMQUb4KCwsTFhYW4sGDBx+d18LCQpw7d056vG/fPtGyZUshhBA///yzaN68uXj06JEQQojExERx/vx5kZaWlu258+bNEz169MjS96JFi0T37t2FEEJ4eHiI7777Tpq2bds2YWlpKd68eSOEEOL69evCwsJCvHjxQpw/f140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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Code source : https://www.geeksforgeeks.org/how-to-annotate-bars-in-barplot-with-matplotlib-in-python/\n",
"# Defining the plot size\n",
"plt.figure(figsize=(8, 8))\n",
" \n",
"# Defining the values for x-axis, y-axis\n",
"# and from which dataframe the values are to be picked\n",
"plots = sns.barplot(x=\"customer_category\", y=\"n_customers\", data=df_freq_1)\n",
" \n",
"# Iterating over the bars one-by-one\n",
"for bar in plots.patches:\n",
" \n",
" # Using Matplotlib's annotate function and\n",
" # passing the coordinates where the annotation shall be done\n",
" # x-coordinate: bar.get_x() + bar.get_width() / 2\n",
" # y-coordinate: bar.get_height()\n",
" # free space to be left to make graph pleasing: (0, 8)\n",
" # ha and va stand for the horizontal and vertical alignment\n",
" plots.annotate(format(bar.get_height(), '.2f'),\n",
" (bar.get_x() + bar.get_width() / 2,\n",
" bar.get_height()), ha='center', va='center',\n",
" size=15, xytext=(0, 8),textcoords='offset points')\n",
"\n",
"plt.xlabel(\"Customer category\", size=14)\n",
" \n",
"# Setting the label for y-axis\n",
"plt.ylabel(\"number of customers\", size=14)\n",
"\n",
"# Setting the title for the graph\n",
"plt.title(\"Nombre of customers per category for those with frequency higher than 10\")\n",
" \n",
"# Finally showing the plot\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 616,
"metadata": {},
"outputs": [],
"source": [
"# Getting the number of customers per category for those with a frequency less than 10.\n",
"\n",
"df_freq_2 = pd.DataFrame(df_rfmt[df_rfmt['frequency'] < 10]\\\n",
" .groupby(['customer_category'])['customer_category']\\\n",
" .agg('count'))\n",
"\n",
"df_freq_2.columns=['n_customers']\n",
"\n",
"df_freq_2 = df_freq_2.reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 617,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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hIWFITo6GmfPnsW+ffuwcuVKLFiwAADy7UtERESaKZaw7969O6ZMmQIAEEJAV1cX0dHRsLGxAQB06NABp06dQlRUFOzs7KBQKFC9enVkZ2cjKSkp375ERESkmWIJeyMjIxgbGyMtLQ2TJ0+Gu7s7hBBQKBTS8NTUVKSlpcHY2FhtvNTU1Hz7EhERkWaK5Zw9AMTHx2PixIkYOnQonJyc4O/vLw1LT09H2bJlYWxsjPT0dLV2ExMTtfPzuX01cfXq1aJbAJKFqKioki6BiKjYFUvYP336FKNHj4aPjw/atGkDAGjatCkiIyPRunVrREREwNbWFrVr14a/vz/GjBmDhIQEqFQqVKhQId++mjA3N0epUqXev+DvI95/HPokWFlZlXQJRERakZGRUeBObrGE/caNG5GSkoL169dj/fr1AIC5c+di4cKFWLlyJerVq4du3bpBV1cX1tbWcHZ2hkqlgo+PDwDAw8MD3t7ean2JiIhIMwohhCjpIopa7l83H7pnX2XiKi1URR+DxHVTS7oEIiKteFv28WZ1IiIimWPYExERyRzDnoiISOYY9kRERDLHsCciIpI5hj0REZHMMeyJiIhkjmFPREQkcwx7IiIimWPYExERyRzDnoiISOYY9kRERDLHsCciIpI5hj0REZHMMeyJiIhkjmFPREQkcwx7IiIimWPYExERyRzDnoiISOYY9kRERDLHsCciIpI5hj0REZHMMeyJiIhkjmFPREQkcwx7IiIimWPYExERyRzDnoiISOYY9kRERDLHsCciIpI5hj0REZHMMeyJiIhkjmFPREQkcwx7IiIimWPYExERyRzDnoiISOYY9kRERDLHsCciIpI5hj0REZHMMeyJiIhkjmFPREQkcwx7IiIimWPYExERyRzDnoiISOYY9kRERDLHsCciIpI5hj0REZHMMeyJiIhkjmFPREQkcwx7IiIimWPYExERyRzDnoiISOYY9kRERDLHsCciIpI5hj0REZHMMeyJiIhkjmFPREQkcwx7IiIimWPYExERyRzDnoiISObeK+xVKhUA4MmTJ/jll19w7949bdRERERERUijsL906RI6duyIc+fO4enTp/jqq68wd+5cODo64vfff9d2jURERFQIGoX90qVL0blzZ5ibm2P//v3Q09PDmTNnMG/ePAQGBmq7RiIiIioEjcL+2rVrGDNmDIyM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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Code source : https://www.geeksforgeeks.org/how-to-annotate-bars-in-barplot-with-matplotlib-in-python/\n",
"# Defining the plot size\n",
"plt.figure(figsize=(8, 8))\n",
" \n",
"# Defining the values for x-axis, y-axis\n",
"# and from which dataframe the values are to be picked\n",
"plots = sns.barplot(x=\"customer_category\", y=\"n_customers\", data=df_freq_2)\n",
" \n",
"# Iterating over the bars one-by-one\n",
"for bar in plots.patches:\n",
" \n",
" # Using Matplotlib's annotate function and\n",
" # passing the coordinates where the annotation shall be done\n",
" # x-coordinate: bar.get_x() + bar.get_width() / 2\n",
" # y-coordinate: bar.get_height()\n",
" # free space to be left to make graph pleasing: (0, 8)\n",
" # ha and va stand for the horizontal and vertical alignment\n",
" plots.annotate(format(bar.get_height(), '.2f'),\n",
" (bar.get_x() + bar.get_width() / 2,\n",
" bar.get_height()), ha='center', va='center',\n",
" size=15, xytext=(0, 8),textcoords='offset points')\n",
"\n",
"plt.xlabel(\"Customer category\", size=14)\n",
" \n",
"# Setting the label for y-axis\n",
"plt.ylabel(\"number of customers\", size=14)\n",
"\n",
"# Setting the title for the graph\n",
"plt.title(\"Nombre of customers per category for those with frequency less than 10\")\n",
" \n",
"# Finally showing the plot\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 582,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"customer_category\n",
"Bronze 175\n",
"Diamond 4\n",
"Gold 6\n",
"Silver 33\n",
"Name: CustomerID, dtype: int64"
]
},
"execution_count": 582,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_rfmt[df_rfmt['frequency'] > 10].reset_index().groupby(['customer_category'])['CustomerID'].agg('count')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Analyzing the monetary values__"
]
},
{
"cell_type": "code",
"execution_count": 626,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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rXnuuee0bNkyLV26VOeff74WLFigvn37JtQcFBQU6O2335YxRrt27dL+/fvVp0+fhJqDzMzM8FWoP/zhD9XU1NTq/i7E/YUP8X4V29y5c/X3v/9dnTt3Di+bPn265s6dq2AwqM6dO2vu3LlKTk5WWVmZ1q5dK8dxdOedd6qwsFBbtmzRzJkzj1q3rRo9erRmz56tpKSkY+5XPM/B/fffr+rqahlj9Lvf/U65ubkJNQc+n0+lpaX66quvFAwGNWbMGOXl5bWqOYj74AJAaxH3pxQAoLUguABgCcEFAEsILgBYQnABwBKCi7izevVqPfXUU7EeRtiqVas0bdq0WA8DrUB8XXIF6OB9FIDWiODCiurqai1evFjGGH3++ecaOHCgMjIy9NZbBz9m/vHHH9d//vMf/fGPf5TjODr77LN1zz33qH379rrkkks0bNgwVVZWav/+/VqwYIHy8vK0detWzZ49W/v27VO7du00c+ZMpaam6vnnn5ck5eTkqKioSKWlpWpoaNBXX32lIUOG6LbbbtOqVav0l7/8Rfv27VOfPn30yiuvqKKiQh6PR9u3b9f48eP12muvHXNfnn32WX322WeaNWuWpIM3zjnzzDM1ePDgY77WoS655BI9++yzys3NVXV1tcrLy7V06dJj7kvXrl2j+H8EMXHK7z8GHENVVZXp0aOH2blzp/n222/NBRdcYJYvX26MMWbatGmmrKzMFBUVmW3bthljjFmyZIkpKSkxxhhz8cUXm6eeesoYY8yzzz5rJk2aZIwxpri42NTW1hpjjPnkk0/MZZddZowx5uGHHzYPP/ywMcaYJ554wqxatcoYY0x9fb3p0aOH+frrr83KlSvNgAEDTDAYNMYYc8cdd5gVK1YYY4wpKyszjz322HH3Zffu3ebCCy80TU1NxnEcc/HFF5tdu3a1+FrNtwi9+OKLw/tYVVVlrr/++hb3BfGFI1xY06VLF5111lmSpNNPP119+vSRdPBIdPXq1erevbtyc3MlScXFxXr88cfDz22+E9h5552nN998Uz6fTzU1NbrzzjvD63z77bfau3fvYa85btw4VVVV6cknn9Qnn3yiYDCo/fv3Szp4z4nmGxldddVVKisr04gRI/S3v/1NzzzzzHH344wzztD555+v6upqpaSkqGPHjjrzzDNbfK2WtLQvp59++gmfj7aD4MKalJSUw74+9Dp1c8QV5saYw26jmZaWJknh2+c5jqPU1FS98sor4XW++OILZWVlHbad+fPna9u2bbriiit06aWXav369eHXateuXXi9nj176ssvv9Sbb76p3Nxc/ehHP2pxX4YNG6bXX39dKSkpGjZs2Alf68h9kxTev0j3BW0f71JAq9C9e3e9//772r59uyTphRdeUO/evY+7fkZGhjp27BiO1Lp163TddddJOvyex+vWrdO4ceM0aNAg1dXVadeuXXIc56jtuVwuDR8+XHPnztWVV155wvH2799fmzZtUmVlpQYMGBDxa51++un69NNPJUkVFRUn3BfEF45w0Sq0b99e99xzjyZNmqRgMKicnBzde++9LT5n4cKFmj17tp544gmlpKToD3/4g1wul3r27KmpU6eqffv2Gj9+vO644w5lZmbqjDPOUF5eXjjqRxoyZIieeuopXXrppSccb7t27ZSfn69AIKD09HRJiui1Jk+erDlz5qi8vFxFRUUn3BfEF+4WBujgP+uXL1+uLVu2aMaMGbEeDuIUR7iApEmTJqmurk5PPvmkJOnAgQMqLi4+5rqTJ09W//79bQ4PcYIjXACwhF+aAYAlBBcALCG4AGAJwQUASwguAFhCcAHAkv8PzW7DNWQQajcAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.displot(df_rfmt['monetary_value'])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 633,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 2669.000000\n",
"mean 169.242452\n",
"std 291.921682\n",
"min 1.650000\n",
"25% 74.476667\n",
"50% 117.286667\n",
"75% 186.017500\n",
"max 8322.120000\n",
"Name: monetary_value, dtype: float64"
]
},
"execution_count": 633,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_rfmt['monetary_value'].describe()"
]
},
{
"cell_type": "code",
"execution_count": 634,
"metadata": {},
"outputs": [],
"source": [
"df_mon = pd.DataFrame(df_rfmt.groupby(['customer_category'])['monetary_value'].mean().reset_index())"
]
},
{
"cell_type": "code",
"execution_count": 636,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfsAAAHxCAYAAABqEBW0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABVY0lEQVR4nO3dd3xO9///8UcSO0FQRa0KooQQUqNilqrRGrVXjba0ZhWxQmuv2kXVLKpGVCk1i9asUWpvEnvVSETW9f794ev6NZ9Ee7XJJZw+77dbbs11xvu8znVSz+v9Puc6x8UYYxARERHLck3uAkRERMS5FPYiIiIWp7AXERGxOIW9iIiIxSnsRURELE5hLyIiYnEKe5H/qNDQULp06ZLcZdhNnjyZwYMHJ3cZSer3339n4MCByV2GiMJe5L/q8uXLnDt3LrnLsLTTp09z7dq15C5DhBTJXYBIUrDZbAwfPpyDBw8SHh6OMYahQ4fi7e1NpUqVWLduHVmzZgWgcePGdOrUiXLlyjF27Fj27NlDbGwsRYoUYcCAAXh4eFC1alV8fX05ceIEPXr0IEWKFHz55ZdERUVx+/Zt6tWrR/fu3QGYMWMGy5Ytw93dHX9/fzZt2sRPP/1EVFTUE9v/s8mTJxMSEkJoaCjXr1/H19eX8uXLs2LFCi5evEivXr2oU6cO0dHRjBw5kp07d+Lm5oavry99+/a111u/fn127tzJlStXqFmzJr179wbgp59+Ytq0aURHR5MmTRoCAwPx9fVlwIABXLt2jfbt2zNr1iymT5/Oxo0biYyMJCIigsDAQKpXr87kyZM5cOAA169fx9vbm8OHDxMUFERAQAAAAwYMoGDBgrz77rv2fRo3bhxhYWH2Xu3PP//M5MmTWbp06RO382dVq1Zl4sSJFCtWLN7r/fv3M3bsWCIiInBxcaFLly5UqVIl3t9EkSJFePfdd9m9ezcPHjygR48evPHGGwAsXbqURYsWYbPZ8PT0JCgoiPz589OnTx/u3LlDaGgolStXplevXnHaXLZsGXPmzMHV1ZVMmTIxatQosmXLluDf3ksvvcSkSZO4f/8+ffv2ZcSIEQkeCz8/PyIiIhg0aBAHDx4kffr0FChQAICRI0dy6tQpBg8ezJ07d3BxcaFdu3bUq1eP3bt3M2zYMNKlS8eDBw/w8fEha9as9OjRA4CVK1eybt06vvjii3/4f5NYkhGxgP3795suXbqY2NhYY4wxX375penQoYMxxpjevXubmTNnGmOMOX36tKlcubKJjY01kydPNiNHjjQ2m80YY8znn39uBg0aZIwxpkqVKmbKlCnGGGNsNptp2bKlOXfunDHGmKtXr5rChQubW7dumZ9//tnUqFHD3L1719hsNtO3b19TpUoVY4z5y/b/bNKkSaZKlSrm3r17JiIiwrz66qtmxIgRxhhjNmzYYN544w1jjDETJ040nTt3NlFRUSY2Ntb06dPHBAUF2esdOXKkvb5ixYqZkJAQc+7cOVOnTh1z+/ZtY4wxJ0+eNOXLlzfh4eFm165dpnbt2sYYYy5evGhatWplIiIijDHG/PDDD6ZOnTr2+mrUqGGio6ONMcbMmTPHdO3a1RhjzP37903ZsmXN3bt34+xTSEiIKVOmjImMjDTGGNOtWzezZMmSv93OZ599Zt+f33//3d7e49d37twxb7zxhgkNDbXva8WKFc2lS5fiva/e3t5m2rRpxhhjjh07ZkqVKmVu3bpldu/ebZo3b24ePHhgjDHml19+MTVr1jTGGBMYGGjefffdeG09bqNMmTLm8uXL9vchKCjoL//2goODzQcffGCMMX95LMaOHWt69OhhYmNjzf37981bb71lAgMDTXR0tHn99dfNunXr7PtboUIFs3//frNr1y7zyiuvmIsXLxpjjDl69KgpX768/Tg1b97c/Pzzzwnui/z3qGcvluDn50fGjBn59ttvCQ0NZffu3bi7uwPQqFEjPvvsM9q3b09wcDANGjTA1dWVLVu2cP/+fXbs2AFAdHQ0WbJksbfp7+8PgIuLC9OnT2fLli388MMPnDlzBmMMERERbN26lTfffJMMGTIA0KJFC3bt2gXwt+3/2WuvvUb69OkBePHFF6lQoQIAefLk4c6dO8Cj3vHHH39MypQpAWjVqhWdOnWyt/H6668DkC1bNrJkycLdu3c5ePAg169fp02bNvblXFxcCAkJibP9nDlzMmrUKFatWsWFCxfsvdTHSpQoQYoUj/65aNCgAV988QW3b99m7dq1VK5c2b7/j+XOnZtXXnmFn376iXLlyrFz506GDRuGu7v7X27n7xw4cIAbN27E2W8XFxdOnDjBSy+9FG/5li1bAvDKK6/g7e3Nnj17OHjwIBcuXKBp06b25e7evWt/n0uVKpXg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UNhPmTKFhQsX0q1bN/z8/LDZbOzfv58pU6aQOnVqOnTo4Ow6RURE5F9yKOyXLFnCsGHDqFq1qn1a4cKFyZ49O0OHDlXYi4iIPMMc+updeHg4L7/8crzpL7/8Mrdv307qmkRERCQJORT2fn5+zJ49m9jYWPu02NhYZs+eja+vr9OKExERkcRzaBi/b9++tGjRgu3bt1O4cGEAjh49SmxsLDNnznRqgSIiIpI4DoV9/vz5+fHHH1m1ahVnz54lTZo0VK5cmTp16pAuXTpn1ygiIiKJ4PBX7zJlykTr1q2dWYuIiIg4gUNhv3//foYNG8bZs2eJjo6ON/9Jz88VERGR5OfwOfuXX36ZDz/8UE+RExERec44FPbXr19n2rRpeHl5ObseERERSWIOffWuTp06rF271tm1iIiIiBM41LP/4IMPeOedd1i2bBk5c+bExcUlzvyvv/7aKcWJiIhI4jkU9j179iRTpkxUrVpV5+xFRESeMw6F/fHjx1m+fDn58+d3dj0iIiKSxBw6Z1+qVClOnTrl7FpERETECRzq2ZcrV47+/fuzbt06cufOjZubW5z53bp1c0pxIiIikngOhf3PP/9MkSJFuHnzJjdv3owz738v1hMREZFni0NhP3/+fGfXISIiIk7i0Dl7EREReX4p7EVERCxOYS8iImJxCnsRERGLczjst2zZQps2bahatSqXLl1i/PjxLF682Jm1iYiISBJwKOy///57evfujb+/P7du3cJms/Hiiy8ycuRI5s6d6+QSRUREJDEcCvuZM2fy2Wef0blzZ1xdH63SokULRowYoYfgiIiIPOMcCvuQkBCKFi0ab3rhwoXj3WRHREREni0Ohb23tzdbt26NNz04OJhChQoleVEiIiKSdBy6g15gYCAdOnRg586dREdHM3XqVM6fP8+xY8eYPn26s2sUERGRRHCoZ+/v78/atWvx9vamatWq3Lt3j1KlSrFmzRrKli3r7BpFREQkERzq2QNkzZpVT7cTERF5DjkU9q1atUrw6XYuLi6kTJmSrFmzUrNmTSpWrJjkBYqIiEjiODSM/+qrr7J//36yZs1K9erVqVatGtmzZ2ffvn1ky5aNtGnT0qNHD4KDg51dr4iIiPxDDvXsd+7cSd++fWnRokWc6a+++iorVqxg4cKFlC1blnHjxvHOO+84pVARERH5dxzq2R89epTXXnst3nR/f38OHToEQNGiRbly5UrSViciIiKJ5lDYv/LKK8yfPx+bzWafZoxh4cKFFChQAIBDhw6RPXt251QpIiIi/5pDw/hBQUG8//77bNmyhcKFC2OM4fjx40RERDB9+nT27dtHz549GTRokLPrFRERkX/IobAvWrQoGzZsYPXq1Zw8eRI3NzeqVKlC7dq1SZcuHRcvXmTp0qW88sorzq5XRERE/iGHv2fv4eFBkyZN4k2/evUquXLlStKiREREJOk4FPZnzpxh9OjRnDp1yn7e3hhDVFQUd+7c4dixY04tUkRERP49hy7QCwoK4u7du3To0IE//viD999/n9q1axMREcGIESOcXaOIiIgkgkM9+8OHD7N48WIKFy7MihUr8PLyokWLFuTLl48lS5ZQr149J5cpIiIi/5ZDPfsUKVKQPn16ALy8vOzD9q+99honT550XnUiIiKSaA6FfalSpZg1axYREREULVqUjRs3YrPZOHjwIKlTp3Z2jSIiIpIIDoV937592bFjB4sWLaJu3br88ccf+Pv707NnT5o3b+7sGkVERCQRHDpnHxsby48//khkZCRp06YlODiYX3/9FU9PT0qUKOHkEkVERCQxHOrZt27dmqNHj5I2bVoA0qVLR+XKlRX0IiIizwGHwj579uxcu3bN2bWIiIiIEzg0jF+oUCG6du1K4cKFyZkzZ7yL8kaPHu2U4kRERCTxHAp7FxcX3n77bWfXIiIiIk7gUNjrLnkiIiLPL4fO2QNs2bKFtm3bUrVqVS5dusSECRNYvHixM2sTERGRJOBQ2H///ff07t2bUqVKcevWLWw2G1mzZmXkyJHMnTvXySWKiIhIYjgU9jNnzuSzzz6jc+fOuLo+WqVFixaMGDGCr7/+2qkFioiISOI4FPYhISEULVo03vTChQtz8+bNJC9KREREko5DYe/t7c3WrVvjTQ8ODqZQoUJJXpSIiIgkHYeuxg8MDKRDhw7s3LmT6Ohopk6dyvnz5zl27BjTp093do0iIiKSCA717P39/Vm7di3e3t5UrVqVe/fuUapUKdasWUPZsmWdXaOIiIgkgkM9+4ULF1KzZk26devm7HpEREQkiTnUs//mm2+oWLEi7dq1Izg4mLCwMGfXJSIiIknEobBfvXo1y5cvx8/Pj9mzZ1OuXDk6duzIqlWrePDggbNrFBERkURw+A56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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Code source : https://www.geeksforgeeks.org/how-to-annotate-bars-in-barplot-with-matplotlib-in-python/\n",
"# Defining the plot size\n",
"plt.figure(figsize=(8, 8))\n",
" \n",
"# Defining the values for x-axis, y-axis\n",
"# and from which dataframe the values are to be picked\n",
"plots = sns.barplot(x=\"customer_category\", y=\"monetary_value\", data=df_mon)\n",
" \n",
"# Iterating over the bars one-by-one\n",
"for bar in plots.patches:\n",
" \n",
" # Using Matplotlib's annotate function and\n",
" # passing the coordinates where the annotation shall be done\n",
" # x-coordinate: bar.get_x() + bar.get_width() / 2\n",
" # y-coordinate: bar.get_height()\n",
" # free space to be left to make graph pleasing: (0, 8)\n",
" # ha and va stand for the horizontal and vertical alignment\n",
" plots.annotate(format(bar.get_height(), '.2f'),\n",
" (bar.get_x() + bar.get_width() / 2,\n",
" bar.get_height()), ha='center', va='center',\n",
" size=15, xytext=(0, 8),textcoords='offset points')\n",
"\n",
"plt.xlabel(\"Customer category\", size=14)\n",
" \n",
"# Setting the label for y-axis\n",
"plt.ylabel(\"average monetary value\", size=14)\n",
" \n",
"# Setting the title for the graph\n",
"plt.title(\"average monetary value per category\")\n",
" \n",
"# Finally showing the plot\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 650,
"metadata": {},
"outputs": [],
"source": [
"# Getting the 80th percentile \n",
"perct = df_rfmt['monetary_value'].quantile(q=0.8)"
]
},
{
"cell_type": "code",
"execution_count": 656,
"metadata": {},
"outputs": [],
"source": [
"# Getting the number of customers per category for those with a monetary value greater than the 80th percentile.\n",
"\n",
"df_mon_1 = pd.DataFrame(df_rfmt[df_rfmt['monetary_value'] > perct]\\\n",
" .groupby(['customer_category'])['customer_category']\\\n",
" .agg('count'))\n",
"\n",
"df_mon_1.columns = ['n_customers']\n",
"\n",
"df_mon_1 = df_mon_1.reset_index()\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 661,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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n2bUuXNnTJ06FW5ubsjOzsa0adNgamoKHx8fLFy4ELVr14aDgwO0tbVhbW2Nvn37QqVSwdfX9z/Nl4iIiEoWhRBCvGuiI0eOYM2aNfjuu+9QvXp16OjkzSxffPFFkRX4LrndT+oedjEZvUiGqj5tscvHF3cJREQa631/90oitXo+vvvuOwA5z3jJpVAoIISAQqFAZGRk0VRHREREGket8HH48OGiroOIiIg+EWqFj2rVqkEIgdDQUNy9exdKpRK1a9eGra0t9PT0irpGIiIi0iBqhY/Hjx9j1KhRePjwoXTDsQcPHqBKlSrYuHEjTExMirpOIiIi0hBa754E8Pf3R+XKlXHs2DEEBwfjt99+w9GjR/HFF18gMDCwqGskIiIiDaJWz0d4eDh27NiB8uXLS8MqVKiAiRMnwtXVtciKIyIiIs2jVs9H+fLlkZCQkG94QkICdHV1C7smIiIi0mBqhQ9HR0d4e3sjLCwMiYmJSExMxD///ANfX184OjoWdY1ERESkQdQ67DJ27Fg8e/YMI0eORO49ybS1tdGvXz9MmjSpSAskIiIizaJW+NDT08OcOXMwbdo03L9/H6VKlUKNGjVQunRpxMfHf7R3WCMiIiL5qXXYpX79+oiPj0e5cuVgYWGBunXronTp0oiOjkaHDh2KukYiIiLSIG/s+dizZw927doFABBCYNSoUfme6fL06VNUrly5aCskIiIijfLG8OHg4IBHjx4BACIiImBpaQkDA4M80xgYGKBz585FWyERERFplDeGjzJlymDMmDEAcm6v3r17d95KnYiIiP4ztc756NGjB/bu3YvHjx8DAJYtW4bu3bvD09MTSUlJRVogERERaRa1wkdQUBAWL16MhIQEHD9+HKtWrYKjoyMePnyIgICAoq6RiIiINIha4eP333/H4sWL0aBBA+zfvx+tWrXCqFGjMH36dBw5cqSoayQiIiINolb4SElJweeffw6VSoXQ0FC0a9cOAPJd/UJERET0Lmqlh4YNG2L16tWoUKECEhMT0aFDB8TExGDhwoVo0qRJEZdIREREmkStng9fX19cvHgRW7ZswcSJE1GlShWsW7cOT548ga+vb1HXSERERBpErZ4PMzMzhISE5Bk2adIkXnpLRERE702t8JF7p9M3cXFxKZRiiIiISPOpFT5WrFiR57VSqcTz58+ho6MDS0tLhg8i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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Code source : https://www.geeksforgeeks.org/how-to-annotate-bars-in-barplot-with-matplotlib-in-python/\n",
"# Defining the plot size\n",
"plt.figure(figsize=(8, 8))\n",
" \n",
"# Defining the values for x-axis, y-axis\n",
"# and from which dataframe the values are to be picked\n",
"plots = sns.barplot(x=\"customer_category\", y=\"n_customers\", data=df_mon_1)\n",
" \n",
"# Iterating over the bars one-by-one\n",
"for bar in plots.patches:\n",
" \n",
" # Using Matplotlib's annotate function and\n",
" # passing the coordinates where the annotation shall be done\n",
" # x-coordinate: bar.get_x() + bar.get_width() / 2\n",
" # y-coordinate: bar.get_height()\n",
" # free space to be left to make graph pleasing: (0, 8)\n",
" # ha and va stand for the horizontal and vertical alignment\n",
" plots.annotate(format(bar.get_height(), '.2f'),\n",
" (bar.get_x() + bar.get_width() / 2,\n",
" bar.get_height()), ha='center', va='center',\n",
" size=15, xytext=(0, 8),textcoords='offset points')\n",
"\n",
"plt.xlabel(\"Customer category\", size=14)\n",
" \n",
"# Setting the label for y-axis\n",
"plt.ylabel(\"number of customers\", size=14)\n",
" \n",
"# Setting the title for the graph\n",
"plt.title(\"Nombre of customers per category for those with a monetary value greater than the 80th percentile.\")\n",
" \n",
"# Finally showing the plot\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 662,
"metadata": {},
"outputs": [],
"source": [
"# Getting the number of customers per category for those with a monetary value less than the 80th percentile.\n",
"\n",
"df_mon_2= pd.DataFrame(df_rfmt[df_rfmt['monetary_value'] < perct]\\\n",
" .groupby(['customer_category'])['customer_category']\\\n",
" .agg('count'))\n",
"\n",
"df_mon_2.columns = ['n_customers']\n",
"\n",
"df_mon_2 = df_mon_2.reset_index()\n"
]
},
{
"cell_type": "code",
"execution_count": 663,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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r58sxREREVHpoFbgOHToELS1tXH48OE80xQKBQMHERERvZNagePYsWNy10FERESlmNr3Unn69CnWrFmDKVOm4NmzZzh48CCuXbsmZ21ERERUSqgVOC5fvgx7e3ucPXsW+/fvR1paGsLCwtC/f3+cOnVK7hqJiIiohFP7XiqjR4/Gr7/+Cm1tbQDArFmzMHr0aCxevFjWAomIiKjkU/teKt27d8/T3rt3b9y+fbvQiyIiIqLSRa3A8fnnn+PWrVt52sPDw1GpUqVCL4qIiIhKF7XOUvn222/h5eWFb7/9FkIInD59GgkJCfj1118xceJEuWskIiKiEk6twDFw4EBUrFgRGzduhJ6eHhYvXozatWvD19cXPXr0kLtGIiIiKuHUChwA0KlTJ3Tq1EnOWoiIiKiUUitwvHr1CkFBQbh9+zYyMzPzTJ8zZ06hF0ZERESlh1qBY/z48Th//jxatGgBPT09uWsiIiKiUkatwHHu3DmsX78e1tbWctdDREREpZBap8XWrl0bSqVS7lqIiIiolFJrhMPPzw8//PADevbsiapVq0JDI3dOcXJykqM2IiIiKiXUChx79uzBnTt3EBAQkOcYDoVCwcBBRERE76RW4AgMDMTChQvh6Ogodz1ERERUCql1DEf58uVRv359uWshIiKiUkqtEQ5PT0/MmDED33//PapXrw4trdxPq1GjhizFERERUemgVuD4/vvvAby+p0oOhUIBIQQUCgViYmLkqY6IiIhKBbUCR0hIiNx1EBERUSmmVuCoVq0ahBAIDQ3F7du3oVQqUadOHdja2kJHR0fuGomIiKiEUytwPHjwAGPGjMG9e/eki4DFxsaicuXK2Lx5M0xMTOSuk4iIiEowtc5SmT17NipVqoQTJ05g9+7d2LdvH44fP44aNWrA19dX7hqJiIiohFNrhCMsLAw7duzAZ599JrWVL18eEydOhLOzs2zFERERUemg1gjHZ599hhcvXuRpf/HiBbS1tQu7JiIiIipl1BrhcHBwgKenJ7y8vGBhYQEAiIyMhI+PDxwcHNReWGRkJBYtWoSAgADExMRgzpw50NTUhI6ODubPn48KFSrAx8cHERER0NfXBwCsXr0aWVlZmDhxIl69eoVKlSph3rx5KFOmzEesLhERERUHtQLHuHHj8PTpU4wePRpCCACApqYmBg0ahEmTJqm1oPXr1yM4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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Code source : https://www.geeksforgeeks.org/how-to-annotate-bars-in-barplot-with-matplotlib-in-python/\n",
"# Defining the plot size\n",
"plt.figure(figsize=(8, 8))\n",
" \n",
"# Defining the values for x-axis, y-axis\n",
"# and from which dataframe the values are to be picked\n",
"plots = sns.barplot(x=\"customer_category\", y=\"n_customers\", data=df_mon_2)\n",
" \n",
"# Iterating over the bars one-by-one\n",
"for bar in plots.patches:\n",
" \n",
" # Using Matplotlib's annotate function and\n",
" # passing the coordinates where the annotation shall be done\n",
" # x-coordinate: bar.get_x() + bar.get_width() / 2\n",
" # y-coordinate: bar.get_height()\n",
" # free space to be left to make graph pleasing: (0, 8)\n",
" # ha and va stand for the horizontal and vertical alignment\n",
" plots.annotate(format(bar.get_height(), '.2f'),\n",
" (bar.get_x() + bar.get_width() / 2,\n",
" bar.get_height()), ha='center', va='center',\n",
" size=15, xytext=(0, 8),textcoords='offset points')\n",
"\n",
"plt.xlabel(\"Customer category\", size=14)\n",
" \n",
"# Setting the label for y-axis\n",
"plt.ylabel(\"number of customers\", size=14)\n",
" \n",
"# Setting the title for the graph\n",
"plt.title(\"Nombre of customers per category for those with a monetary value less than the 80th percentile.\")\n",
" \n",
"# Finally showing the plot\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}