893 lines
960 KiB
Plaintext
893 lines
960 KiB
Plaintext
|
|
{
|
|||
|
|
"cells": [
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 150,
|
|||
|
|
"id": "5e49fa70-05e3-4d9a-82db-e36ab3c993c7",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"name": "stdout",
|
|||
|
|
"output_type": "stream",
|
|||
|
|
"text": [
|
|||
|
|
"Fichiers AUM : ['projet-bdc-data/carmignac/AUM ENSAE V1 -20251027.csv', 'projet-bdc-data/carmignac/AUM ENSAE V2 -20251105.csv']\n"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"import os\n",
|
|||
|
|
"import s3fs\n",
|
|||
|
|
"import pandas as pd\n",
|
|||
|
|
"\n",
|
|||
|
|
"s3_ENDPOINT_URL = \"https://\" + os.environ[\"AWS_S3_ENDPOINT\"]\n",
|
|||
|
|
"\n",
|
|||
|
|
"fs = s3fs.S3FileSystem(client_kwargs={'endpoint_url': s3_ENDPOINT_URL})\n",
|
|||
|
|
"\n",
|
|||
|
|
"BUCKET = \"projet-bdc-data\"\n",
|
|||
|
|
"carmignac_path = \"projet-bdc-data/carmignac\"\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Liste des fichiers AUM\n",
|
|||
|
|
"all_files = fs.ls(carmignac_path)\n",
|
|||
|
|
"aum_files = [f for f in all_files if \"AUM\" in f and f.endswith(\".csv\")]\n",
|
|||
|
|
"print(\"Fichiers AUM :\", aum_files)\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Lire tous les fichiers dans un dictionnaire\n",
|
|||
|
|
"aum_data = {}\n",
|
|||
|
|
"for file_path in aum_files:\n",
|
|||
|
|
" with fs.open(file_path, 'r') as f:\n",
|
|||
|
|
" df = pd.read_csv(f, sep=';',low_memory=False)\n",
|
|||
|
|
" aum_data[os.path.basename(file_path)] = df\n",
|
|||
|
|
"\n",
|
|||
|
|
"df = aum_data['AUM ENSAE V2 -20251105.csv']"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 13,
|
|||
|
|
"id": "e2ca5bb7-bb15-490c-8c55-9f299eda85a9",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"name": "stdout",
|
|||
|
|
"output_type": "stream",
|
|||
|
|
"text": [
|
|||
|
|
"STATISTIQUES NUMÉRIQUES\n",
|
|||
|
|
" Quantity - AUM Value - AUM CCY Value - AUM €\n",
|
|||
|
|
"count 4.880297e+06 4.880297e+06 4.880297e+06\n",
|
|||
|
|
"mean 6.545443e+03 1.688122e+06 1.080572e+06\n",
|
|||
|
|
"std 2.339885e+05 1.005260e+08 1.321048e+07\n",
|
|||
|
|
"min -9.918641e+06 -5.953865e+07 -5.953865e+07\n",
|
|||
|
|
"25% 0.000000e+00 0.000000e+00 0.000000e+00\n",
|
|||
|
|
"50% 0.000000e+00 0.000000e+00 0.000000e+00\n",
|
|||
|
|
"75% 7.175000e+01 2.560008e+04 2.542466e+04\n",
|
|||
|
|
"max 4.256300e+07 3.027048e+10 1.269996e+09\n",
|
|||
|
|
"\n",
|
|||
|
|
"Valeurs manquantes :\n",
|
|||
|
|
"Quantity - AUM 0\n",
|
|||
|
|
"Value - AUM CCY 0\n",
|
|||
|
|
"Value - AUM € 0\n",
|
|||
|
|
"dtype: int64\n",
|
|||
|
|
"--------------------------------------------------\n",
|
|||
|
|
"STATISTIQUES CATÉGORIELLES\n",
|
|||
|
|
"Agreement - Code : 2427 catégories uniques\n",
|
|||
|
|
"Company - Id : 1561 catégories uniques\n",
|
|||
|
|
"Company - Ultimate Parent Id : 1067 catégories uniques\n",
|
|||
|
|
"Registrar Account - ID : 12501 catégories uniques\n",
|
|||
|
|
"Registrar Account - Region : 15 catégories uniques\n",
|
|||
|
|
"RegistrarAccount - Country : 39 catégories uniques\n",
|
|||
|
|
"Product - Asset Type : 5 catégories uniques\n",
|
|||
|
|
"Product - Strategy : 52 catégories uniques\n",
|
|||
|
|
"Product - Legal Status : 6 catégories uniques\n",
|
|||
|
|
"Product - Is Dedie ? : 2 catégories uniques\n",
|
|||
|
|
"Product - Fund : 74 catégories uniques\n",
|
|||
|
|
"Product - Shareclass Type : 11 catégories uniques\n",
|
|||
|
|
"Product - Shareclass Currency : 6 catégories uniques\n",
|
|||
|
|
"Product - Isin : 491 catégories uniques\n",
|
|||
|
|
"--------------------------------------------------\n",
|
|||
|
|
"STATISTIQUES TEMPORELLES\n",
|
|||
|
|
"Date minimale : 2015-01-31 00:00:00\n",
|
|||
|
|
"Date maximale : 2025-10-31 00:00:00\n",
|
|||
|
|
"Nombre de dates distinctes : 130\n",
|
|||
|
|
"--------------------------------------------------\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 600x400 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"import pandas as pd\n",
|
|||
|
|
"import matplotlib.pyplot as plt\n",
|
|||
|
|
"import seaborn as sns\n",
|
|||
|
|
"\n",
|
|||
|
|
"def stats_descriptives(df):\n",
|
|||
|
|
" \"\"\"\n",
|
|||
|
|
" Calcule et affiche des statistiques descriptives simplifiées pour un dataset financier.\n",
|
|||
|
|
" - Numérique : AUM\n",
|
|||
|
|
" - Catégoriel : nombre de catégories uniques\n",
|
|||
|
|
" - Temporel : Centralisation Date\n",
|
|||
|
|
" - Graphiques : \n",
|
|||
|
|
" 1. Évolution temporelle de l'AUM total\n",
|
|||
|
|
" 2. Top Asset Type par AUM total (barres horizontales, warning corrigé)\n",
|
|||
|
|
" \"\"\"\n",
|
|||
|
|
" # Colonnes\n",
|
|||
|
|
" num_cols = ['Quantity - AUM', 'Value - AUM CCY', 'Value - AUM €']\n",
|
|||
|
|
" cat_cols = [\n",
|
|||
|
|
" 'Agreement - Code', 'Company - Id', 'Company - Ultimate Parent Id',\n",
|
|||
|
|
" 'Registrar Account - ID', 'Registrar Account - Region', 'RegistrarAccount - Country',\n",
|
|||
|
|
" 'Product - Asset Type', 'Product - Strategy', 'Product - Legal Status',\n",
|
|||
|
|
" 'Product - Is Dedie ?', 'Product - Fund', 'Product - Shareclass Type',\n",
|
|||
|
|
" 'Product - Shareclass Currency', 'Product - Isin'\n",
|
|||
|
|
" ]\n",
|
|||
|
|
" date_col = 'Centralisation Date'\n",
|
|||
|
|
"\n",
|
|||
|
|
" # Statistiques numériques\n",
|
|||
|
|
" print(\"STATISTIQUES NUMÉRIQUES\")\n",
|
|||
|
|
" print(df[num_cols].describe())\n",
|
|||
|
|
" print(\"\\nValeurs manquantes :\")\n",
|
|||
|
|
" print(df[num_cols].isna().sum())\n",
|
|||
|
|
" print(\"-\" * 50)\n",
|
|||
|
|
"\n",
|
|||
|
|
" # Statistiques catégorielles\n",
|
|||
|
|
" print(\"STATISTIQUES CATÉGORIELLES\")\n",
|
|||
|
|
" for col in cat_cols:\n",
|
|||
|
|
" print(f\"{col} : {df[col].nunique()} catégories uniques\")\n",
|
|||
|
|
" print(\"-\" * 50)\n",
|
|||
|
|
"\n",
|
|||
|
|
" # Statistiques temporelles\n",
|
|||
|
|
" df[date_col] = pd.to_datetime(df[date_col])\n",
|
|||
|
|
" print(\"STATISTIQUES TEMPORELLES\")\n",
|
|||
|
|
" print(f\"Date minimale : {df[date_col].min()}\")\n",
|
|||
|
|
" print(f\"Date maximale : {df[date_col].max()}\")\n",
|
|||
|
|
" print(f\"Nombre de dates distinctes : {df[date_col].nunique()}\")\n",
|
|||
|
|
" print(\"-\" * 50)\n",
|
|||
|
|
"\n",
|
|||
|
|
" # Graphiques\n",
|
|||
|
|
" sns.set(style=\"whitegrid\")\n",
|
|||
|
|
"\n",
|
|||
|
|
" # 1. Évolution temporelle de l'AUM total\n",
|
|||
|
|
" df_time = df.groupby(date_col)['Value - AUM €'].sum().reset_index()\n",
|
|||
|
|
" plt.figure(figsize=(12,6))\n",
|
|||
|
|
" plt.plot(df_time[date_col], df_time['Value - AUM €'], marker='.')\n",
|
|||
|
|
" plt.title(\"Évolution temporelle de l'AUM total (€)\")\n",
|
|||
|
|
" plt.xlabel(\"Date\")\n",
|
|||
|
|
" plt.ylabel(\"AUM total (€)\")\n",
|
|||
|
|
" plt.grid(True)\n",
|
|||
|
|
" plt.show()\n",
|
|||
|
|
"\n",
|
|||
|
|
" # 2. Top Asset Type par AUM total (barres horizontales)\n",
|
|||
|
|
" # Préparer les données sous forme de DataFrame\n",
|
|||
|
|
" df_asset = df.groupby('Product - Asset Type')['Value - AUM €'].sum().sort_values(ascending=False).reset_index()\n",
|
|||
|
|
" df_asset.columns = [\"Asset Type\", \"AUM\"]\n",
|
|||
|
|
"\n",
|
|||
|
|
" plt.figure(figsize=(6,4))\n",
|
|||
|
|
" sns.barplot(\n",
|
|||
|
|
" data=df_asset,\n",
|
|||
|
|
" y=\"Asset Type\",\n",
|
|||
|
|
" x=\"AUM\",\n",
|
|||
|
|
" hue=\"Asset Type\", # nécessaire pour palette\n",
|
|||
|
|
" palette=\"viridis\",\n",
|
|||
|
|
" dodge=False, # empêche la séparation des barres\n",
|
|||
|
|
" errorbar=None,\n",
|
|||
|
|
" legend=False # supprime la légende générée par hue\n",
|
|||
|
|
" )\n",
|
|||
|
|
" plt.title(\" AUM total (€) selon Asset Type\")\n",
|
|||
|
|
" plt.xlabel(\"AUM total (€)\")\n",
|
|||
|
|
" plt.ylabel(\"Asset Type\")\n",
|
|||
|
|
" plt.show()\n",
|
|||
|
|
"\n",
|
|||
|
|
"stats_descriptives(df)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 22,
|
|||
|
|
"id": "00cd5a78-87c4-4d25-8e38-2bfb15bb7eb4",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJ0AAAJICAYAAADLk5XhAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XlYVVXbx/HvYQYFkUEF5yFIBQPNeZ7nNMsGp8q5stHe0gbTyiwbFUpNzUzLaLASxdmy0kfL1LQ0c55RBhGQGfb7B3HyeEABGfX3uS6vJ9Zee+17H/Y5D9ysdS+TYRgGIiIiIiIiIiIiRcimtAMQEREREREREZEbj5JOIiIiIiIiIiJS5JR0EhERERERERGRIqekk4iIiIiIiIiIFDklnUREREREREREpMgp6SQiIiIiIiIiIkVOSScRERERERERESlySjqJiIiIiIiIiEiRU9JJRMqMffv28eGHH5KYmFjaoYiIiIiIiMh1UtJJRMqE6OhoHn74Yby9valYsWJphyMiIiIiIiLXyWQYhlHaQYiIbN68mYSEBPr161faoYiIiIiIiEgR0EwnESkTOnbsWKIJJ39/f0JCQop0zOXLl+Pv78+pU6eKdFwpvJCQEPz9/S3aunTpwqRJk4r92kV9neHDhzN8+PAiG0+yFcdngVg7deoU/v7+LF++vLRDyTOWn376iQEDBhAYGIi/vz/x8fFXHWf+/Pn06tWLrKysAsewbNkyOnXqRFpaWoHPFRERKU+UdBKRUpOTpMnr3+7du0s7xFzNnTuXDRs2lHYYFspiTFK8cn5x3r59e67HZ86cib+/P08++WSux7dv346/vz9r1qzJ9fgrr7ySa8LO39+fBx98MNdzvvzyS/P7d+/evVeN/9ChQ4SEhFxXkjY8PJxPPvmk0OeXJzt37iQkJOSaiZDyJCQkhC5duhTb+AV5Pi5cuMCTTz6Jk5MTU6ZMYebMmTg7O+fZPzExkQULFjBmzBhsbCx/nM7MzGTJkiXmBFaLFi2YOHEiR48eNfcZNGgQ6enpfPHFF4W6NxERkfLCrrQDEBF5/PHHqVGjhlV7rVq1SiGaa5s3bx49e/akW7duFu0DBgygb9++ODg4lJmY5OZkGAarVq2ievXq/PDDDyQmJhZZrTRHR0e2b99OVFQU3t7eFsfCw8NxdHQkNTX1muMcOnSI0NBQWrRokev7Pz9WrlzJwYMH80yC3Uh27dpFaGgod955J25ubqUdTrmQ1/NRvXp19uzZg53dfz8G7927l0uXLvHEE0/Qpk2ba4799ddfk5GRkesM3eeee46VK1fSo0cPBg8ejMlk4pdffmHYsGFs2bIFyH4fDRw4kE8++YThw4djMpmu72ZFRETKKCWdRKTUdejQgcDAwNIO47rZ2tpia2tb2mHc0JKSknBxcSntMMq87du3ExkZyeLFixk9ejTr16/nzjvvLJKxmzZtyt69e4mIiOCBBx4wt0dGRrJjxw66d+/O2rVri+RaNxs93yXDZDLh6Oho0RYbGwuAq6trvsZYvnw5Xbp0sRonPDyc8PBwXnrpJYYNG2ZuHzp0KP/73/8s+vbu3ZsFCxawbds2WrduXZhbERERKfO0vE5EyrT09HRatGjB5MmTrY4lJiYSGBjIm2++aW6LiYnh+eefp02bNgQGBnLHHXfw7bffXvM6kyZNynWZx5U1gfz9/UlKSuLbb781LyPKqduTV02nzz77jL59+xIQEEC7du2YNm2a1RKZ4cOH069fPw4dOsTw4cO57bbbaN++PfPnz79m7FeLCeDcuXNMnjyZNm3aEBAQQN++ffn6668txshZahUREUFoaCjt27cnODiYxx9/nISEBNLS0pg+fTqtW7cmODiYyZMnW9Ui8ff355VXXmHFihX07NmTwMBABg0axG+//WYV8759+xg9ejRNmzYlODiYBx54wGo5Zc7r+euvvzJ16lRat25Nx44dzcc3b97MkCFDCAoKIjg4mLFjx3Lw4MFrvl65iY+PZ/r06XTs2JGAgAC6d+/ORx99lK9aLYZh8OGHH9KhQwduu+02hg8fnmcc13OdgggPD6dBgwa0atWK1q1bEx4eXmRjOzo60qNHD1auXGnRvnLlStzc3GjXrt01x1i+fDlPPPEEACNGjDA/t5cvFbzW+2b48OH8+OOPnD592nx+zns4LS2NWbNmMWjQIJo1a0ZQUBBDhgxh27Zthbrny98f7777Lm3btiUoKIjx48dz9uxZi747duzg8ccfp1OnTgQEBNCxY0def/11UlJSLPpNmjSJ4OBgTpw4wZgxYwgODuaZZ57J9fohISHMnDkTgK5du5rv99SpUwwbNow77rgj1/N69uzJqFGjgP+WYy5cuJBPPvmEzp0706RJE4YNG8Y///xjde7hw4d5/PHHadGihfm9vHHjxny9XvHx8UyaNIlmzZpx++2389xzz5GQkJCvc7/55htGjBhB69atCQgIoE+fPnz++ee59t28eTPDhg0jODiYpk2bctddd5mf9as9H1fWdBo+fDjPPfccAHfffbfVZ+iVTp48yYEDByxmRGVlZREbG8t3332Ht7c3ffr0ITY21vwvJSXFKrEUEBCAu7t7vl9XERGR8kgznUSk1CUmJpr/ypzDZDJRuXJl7O3t6datG+vXr2fatGkWS9c2bNhAWloaffr0ASAlJYXhw4dz4sQJhg4dSo0aNVizZg2TJk0iPj7eYlZGYc2cOZMXX3yRJk2acM899wBXXwYYEhJCaGgobdq04f777+fo0aMsW7aMvXv3smzZMuzt7c19L168yOjRo+nevTu9e/dm7dq1vP322/j5+VkkWwoSU3R0NPfccw8mk4mhQ4fi4eHBTz/9xAsvvEBiYqLVspOPPvoIJycnxo4dy/Hjx1m6dCl2dnaYTCbi4+OZMGECf/zxB8uXL6d69epMmDDB4vzffvuNiIgIhg8fjoODA8uWLWP06NF89dVX+Pn5AXDw4EGGDh1KhQoVGD16NHZ2doSFhTF8+HCWLl3KbbfdZjHmtGnT8PDw4NFHHyUpKQmA7777jkmTJtGuXTueeeYZkpOTWbZsGUOGDOHbb78t0HKt5ORkhg0bxrlz57jvvvvw8fFh165dvPvuu0RFRfHCCy9c9fxZs2YxZ84cOnbsSMeOHfnrr78YOXIk6enpRXqd/EpLS2PdunU89NBDAPTt25fnn38+1+VwhdWvXz9GjhzJiRMnzM/aypUr6dmzp8WSpbw0b96c4cOHs2TJEsaPH0+9evUAqF+/PpC/98348eNJSEggMjLSnJSuUKECkP2Z8tVXX9GvXz8GDx7MpUuX+Prrr83PYsOGDQt133PmzMFkMjFmzBhiYmJYvHgxDz74IN9//z1OTk4ArFmzhpSUFO6//37c3d3Zs2cPS5cuJTIyktmzZ1uMl5GRwahRo2jWrBnPPfeceYwrde/enWPHjrFy5UomT55M5cqVAfDw8GDAgAG8+OKL/PPPP+b3GMCePXs4duwYDz/8sMVY3333HZcuXWLIkCGkpqayZMkSHnjgAcLDw/Hy8gKy36P3338/VatWZcyYMbi4uLB69WoeffRRQkJC6N69e56vkWEYPPLII/z+++/cd9991K9fn/Xr15uTOteybNkybrnlFrp06YKdnR0//PAD06ZNwzAMhg4dau63fPlynn/+eW655RbGjRuHq6sr+/fv5+eff6Z///5XfT6uNH78eOrWrUtYWJh5uffVPtd37doFQKNGjcxtmzZt4tFHHzV/fWWC6aOPPsr1c7xRo0bs3LkzH6+MiIhIOWWIiJSSb775xvDz88v1X0BAgLnfzz//bPj5+RmbNm2yOH/MmDFG165dzV9/8sknhp+fn/H999+b29LS0ox7773XCAoKMhISEsztfn5+xuzZs81fP/fcc0bnzp2tYpw9e7bh5+dn0RYUFGQ899xzed7PyZMnDcMwjJiYGKNx48bGyJEjjczMTHO/pUuXGn5+fsbXX39tbhs2bJjh5+dnfPvtt+a21NRUo23btsZjjz1m/eJdIa+Ynn/+eaNt27ZGbGysRftTTz1lNGvWzEh
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"import pandas as pd\n",
|
|||
|
|
"import matplotlib.pyplot as plt\n",
|
|||
|
|
"\n",
|
|||
|
|
"# S'assurer que la colonne date est en datetime\n",
|
|||
|
|
"df['Centralisation Date'] = pd.to_datetime(df['Centralisation Date'])\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Agréger les AUM par date et par Asset Type\n",
|
|||
|
|
"df_time_asset = df.groupby(['Centralisation Date', 'Product - Asset Type'])['Value - AUM €'].sum().reset_index()\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Pivot pour avoir les Asset Types en colonnes\n",
|
|||
|
|
"df_pivot = df_time_asset.pivot(index='Centralisation Date', columns='Product - Asset Type', values='Value - AUM €').fillna(0)\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Tracer\n",
|
|||
|
|
"plt.figure(figsize=(12,6))\n",
|
|||
|
|
"for col in df_pivot.columns:\n",
|
|||
|
|
" plt.plot(df_pivot.index, df_pivot[col], marker='.', linestyle='-', label=col)\n",
|
|||
|
|
"\n",
|
|||
|
|
"plt.title(\"Évolution temporelle de l'AUM total par type d'actif (€)\")\n",
|
|||
|
|
"plt.xlabel(\"Date\")\n",
|
|||
|
|
"plt.ylabel(\"AUM total (€)\")\n",
|
|||
|
|
"plt.legend(title=\"Asset Type\", bbox_to_anchor=(1.05, 1), loc='upper left')\n",
|
|||
|
|
"plt.grid(True)\n",
|
|||
|
|
"plt.tight_layout()\n",
|
|||
|
|
"plt.show()"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 28,
|
|||
|
|
"id": "941a8bb6-e3d7-4ddf-a168-db16799f7f16",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 800x400 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"# Dédupliquer les comptes\n",
|
|||
|
|
"df_unique_accounts = df.drop_duplicates(subset=['Registrar Account - ID'])\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Compter les comptes par région\n",
|
|||
|
|
"df_region = df_unique_accounts['Registrar Account - Region'].value_counts().reset_index()\n",
|
|||
|
|
"df_region.columns = ['Region', 'Count']\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Graphique avec hue pour supprimer le warning\n",
|
|||
|
|
"plt.figure(figsize=(8,4))\n",
|
|||
|
|
"sns.barplot(\n",
|
|||
|
|
" x='Region',\n",
|
|||
|
|
" y='Count',\n",
|
|||
|
|
" data=df_region,\n",
|
|||
|
|
" hue='Region', # nécessaire pour palette\n",
|
|||
|
|
" dodge=False, # empêche la séparation des barres\n",
|
|||
|
|
" palette='Set3',\n",
|
|||
|
|
" legend=False # supprime la légende générée automatiquement\n",
|
|||
|
|
")\n",
|
|||
|
|
"plt.title(\"Répartition des comptes par région\")\n",
|
|||
|
|
"plt.ylabel(\"Nombre de comptes\")\n",
|
|||
|
|
"plt.xlabel(\"Région\")\n",
|
|||
|
|
"plt.xticks(rotation=45)\n",
|
|||
|
|
"plt.show()\n",
|
|||
|
|
"\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 169,
|
|||
|
|
"id": "67b8ed15-a45d-4908-9bcf-a990323cd058",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"name": "stdout",
|
|||
|
|
"output_type": "stream",
|
|||
|
|
"text": [
|
|||
|
|
"Nombre de ruptures détectées : 548\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"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>date</th>\n",
|
|||
|
|
" <th>old_account</th>\n",
|
|||
|
|
" <th>new_account</th>\n",
|
|||
|
|
" <th>value</th>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </thead>\n",
|
|||
|
|
" <tbody>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>0</th>\n",
|
|||
|
|
" <td>2019-12-31</td>\n",
|
|||
|
|
" <td>406533</td>\n",
|
|||
|
|
" <td>200127202</td>\n",
|
|||
|
|
" <td>718444.2870</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>3</th>\n",
|
|||
|
|
" <td>2016-06-30</td>\n",
|
|||
|
|
" <td>402699</td>\n",
|
|||
|
|
" <td>200038850</td>\n",
|
|||
|
|
" <td>223734.2979</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>4</th>\n",
|
|||
|
|
" <td>2015-07-31</td>\n",
|
|||
|
|
" <td>402703</td>\n",
|
|||
|
|
" <td>200013353</td>\n",
|
|||
|
|
" <td>88886.7529</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>5</th>\n",
|
|||
|
|
" <td>2019-12-31</td>\n",
|
|||
|
|
" <td>404813</td>\n",
|
|||
|
|
" <td>200127636</td>\n",
|
|||
|
|
" <td>160820.3092</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>7</th>\n",
|
|||
|
|
" <td>2015-03-31</td>\n",
|
|||
|
|
" <td>406311</td>\n",
|
|||
|
|
" <td>200001401</td>\n",
|
|||
|
|
" <td>63268.8208</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </tbody>\n",
|
|||
|
|
"</table>\n",
|
|||
|
|
"</div>"
|
|||
|
|
],
|
|||
|
|
"text/plain": [
|
|||
|
|
" date old_account new_account value\n",
|
|||
|
|
"0 2019-12-31 406533 200127202 718444.2870\n",
|
|||
|
|
"3 2016-06-30 402699 200038850 223734.2979\n",
|
|||
|
|
"4 2015-07-31 402703 200013353 88886.7529\n",
|
|||
|
|
"5 2019-12-31 404813 200127636 160820.3092\n",
|
|||
|
|
"7 2015-03-31 406311 200001401 63268.8208"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"execution_count": 169,
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "execute_result"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"import pandas as pd\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Colonnes clés pour identifier les comptes\n",
|
|||
|
|
"key_cols = [\n",
|
|||
|
|
" 'Agreement - Code',\n",
|
|||
|
|
" 'Company - Id',\n",
|
|||
|
|
" 'Company - Ultimate Parent Id',\n",
|
|||
|
|
" 'Registrar Account - Region',\n",
|
|||
|
|
" 'RegistrarAccount - Country',\n",
|
|||
|
|
" 'Registrar Account - ID'\n",
|
|||
|
|
"]\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Travailler sur une copie pour ne pas modifier df\n",
|
|||
|
|
"df_temp = df.copy()\n",
|
|||
|
|
"\n",
|
|||
|
|
"# S'assurer que la colonne date est bien datetime\n",
|
|||
|
|
"df_temp['Centralisation Date'] = pd.to_datetime(df_temp['Centralisation Date'])\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Dates exactes présentes dans le dataset, triées\n",
|
|||
|
|
"full_dates = pd.Series(df_temp['Centralisation Date'].unique()).sort_values().reset_index(drop=True)\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Créer toutes les combinaisons compte × date\n",
|
|||
|
|
"accounts = df_temp[key_cols].drop_duplicates()\n",
|
|||
|
|
"full_index = accounts.merge(pd.DataFrame({'Centralisation Date': full_dates}), how='cross')\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Agréger les AUM existants\n",
|
|||
|
|
"agg_cols = key_cols + ['Centralisation Date']\n",
|
|||
|
|
"df_agg = df_temp.groupby(agg_cols)['Value - AUM €'].sum().reset_index()\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Merge avec toutes les combinaisons pour compléter les dates manquantes\n",
|
|||
|
|
"df_full = pd.merge(full_index, df_agg, on=agg_cols, how='left')\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Remplir les dates manquantes par 0\n",
|
|||
|
|
"df_full['Value - AUM €'] = df_full['Value - AUM €'].fillna(0)\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Trier pour le calcul des variations\n",
|
|||
|
|
"df_full = df_full.sort_values(key_cols + ['Centralisation Date'])\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Calculer les variations d'AUM et la valeur précédente par combinaison unique\n",
|
|||
|
|
"df_full['AUM_diff'] = df_full.groupby(key_cols)['Value - AUM €'].diff().fillna(0)\n",
|
|||
|
|
"df_full['prev_value'] = df_full.groupby(key_cols)['Value - AUM €'].shift(1).fillna(0)\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Comptes qui perdent tout leur AUM\n",
|
|||
|
|
"df_zero = df_full[(df_full['AUM_diff'] < 0) & (df_full['Value - AUM €'] == 0)].copy()\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Comptes qui partent de 0 à un montant positif\n",
|
|||
|
|
"df_from_zero = df_full[(df_full['AUM_diff'] > 0) & (df_full['prev_value'] == 0)].copy()\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Colonnes pour le merge (sans ID)\n",
|
|||
|
|
"merge_cols = [\n",
|
|||
|
|
" 'Centralisation Date',\n",
|
|||
|
|
" 'Agreement - Code',\n",
|
|||
|
|
" 'Company - Id',\n",
|
|||
|
|
" 'Company - Ultimate Parent Id',\n",
|
|||
|
|
" 'Registrar Account - Region',\n",
|
|||
|
|
" 'RegistrarAccount - Country'\n",
|
|||
|
|
"]\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Merge pour détecter les ruptures\n",
|
|||
|
|
"ruptures = pd.merge(df_zero, df_from_zero, on=merge_cols, suffixes=('_old','_new'))\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Filtrer selon une tolérance relative epsilon\n",
|
|||
|
|
"epsilon = 0.05 # 5%\n",
|
|||
|
|
"ruptures['diff_rel'] = abs(ruptures['AUM_diff_old'] + ruptures['AUM_diff_new']) / (\n",
|
|||
|
|
" (abs(ruptures['AUM_diff_old']) + abs(ruptures['AUM_diff_new'])) / 2\n",
|
|||
|
|
")\n",
|
|||
|
|
"ruptures = ruptures[ruptures['diff_rel'] <= epsilon]\n",
|
|||
|
|
"ruptures = ruptures.drop(columns=['diff_rel'])\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Colonnes finales\n",
|
|||
|
|
"ruptures_df = ruptures[['Centralisation Date','Registrar Account - ID_old','Registrar Account - ID_new','AUM_diff_new']]\n",
|
|||
|
|
"ruptures_df.columns = ['date','old_account','new_account','value']\n",
|
|||
|
|
"\n",
|
|||
|
|
"print(f\"Nombre de ruptures détectées : {len(ruptures_df)}\")\n",
|
|||
|
|
"ruptures_df.head()\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 204,
|
|||
|
|
"id": "2724a26d-f29d-43ec-bb7d-06b9dc88ac1a",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [],
|
|||
|
|
"source": [
|
|||
|
|
"from function import evolution_2_comptes\n",
|
|||
|
|
"\n",
|
|||
|
|
"def comparaison(i):\n",
|
|||
|
|
" evolution_2_comptes(df, ruptures_df.iloc[i,1],ruptures_df.iloc[i,2])\n",
|
|||
|
|
"\n",
|
|||
|
|
"def rupture(compte_id, ruptures_df):\n",
|
|||
|
|
" \"\"\"\n",
|
|||
|
|
" Vérifie si un compte est impliqué dans une rupture.\n",
|
|||
|
|
" \n",
|
|||
|
|
" Args:\n",
|
|||
|
|
" compte_id (int ou str) : l'ID du compte à tester\n",
|
|||
|
|
" ruptures_df (DataFrame) : dataframe des ruptures avec colonnes 'old_account' et 'new_account'\n",
|
|||
|
|
" \n",
|
|||
|
|
" Returns:\n",
|
|||
|
|
" tuple : (dans_old, dans_new)\n",
|
|||
|
|
" - dans_old : True si le compte est dans old_account\n",
|
|||
|
|
" - dans_new : True si le compte est dans new_account\n",
|
|||
|
|
" \"\"\"\n",
|
|||
|
|
" dans_old = compte_id in ruptures_df['old_account'].values\n",
|
|||
|
|
" dans_new = compte_id in ruptures_df['new_account'].values\n",
|
|||
|
|
" return (dans_old, dans_new)\n",
|
|||
|
|
" "
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 294,
|
|||
|
|
"id": "af25eded-dc47-483f-89c1-de183c97fbe7",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKAAAAJICAYAAABWnpxpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAA2OFJREFUeJzs3Xd8k/X2wPHPkzTdewAtUGiBll2G7CkgKOAABXGgXnELiuhVUX5evdeL47oFARU3IiKCLNmyh+w9SwuUlkK6d5vk+f0RGpomhba0TVrO+/XipXnmN+mTdXLO+SqqqqoIIYQQQgghhBBCCFFNNI4egBBCCCGEEEIIIYSo2yQAJYQQQgghhBBCCCGqlQSghBBCCCGEEEIIIUS1kgCUEEIIIYQQQgghhKhWEoASQgghhBBCCCGEENVKAlBCCCGEEEIIIYQQolpJAEoIIYQQQgghhBBCVCsJQAkhhBBCCCGEEEKIaiUBKCGEEKIaHTlyhC+++ILs7GxHD0UIIYQQQgiHkQCUEEIIUU30ej1PP/00ISEheHt7O3o4QgghhBBCOIyiqqrq6EEIIYQQddGGDRvIyspi+PDhjh6KEEIIIYQQDiUZUEIIIUQ16devX40Gn6Kjo/n888+r9Ji///470dHRJCQkVOlxr0d13E/hXMaOHcvYsWMdPQwhhBBCVCEJQAkhhBBVqDhgU9a/ffv2OXqIds2cOZM1a9Y4ehhOLzY2lujoaNq1a0dmZqbdbQYMGMCTTz5pd93BgweJjo7m999/tyz7/PPPiY6OpmXLliQlJdnsk52dTfv27YmOjubf//531dwRcUM6deoUn3/+uVMFlIUQQtw4XBw9ACGEEKIueu6552jUqJHN8vDwcAeM5tpmzZrFkCFDGDRokNXyO++8k2HDhuHq6uqgkTmXxYsXExISQkZGBitXrmTUqFFVdmxXV1eWLl3K448/brV81apVVXYOcWM7deoU06ZNo2vXrnZfn4QQQojqJAEoIYQQohr07duXdu3aOXoY102r1aLVah09DKegqipLlixh+PDhJCQksHjx4ioNQPXr149ly5bZBKCWLl1K//79WblyZZWdq6aoqkpBQQHu7u6OHooQQgghHExK8IQQQogaVlRURNeuXZk8ebLNuuzsbNq1a8d7771nWZaSksJrr71Gz549adeuHXfccQcLFy685nleffVVBgwYYLO8uOSrWHR0NLm5uSxcuNBSKvjqq68CZfeAmjNnDsOGDaNt27b07t2bt956y6YkbezYsQwfPpxTp04xduxYYmJi6NOnD1999dU1xw5QWFjI1KlT6d69Ox07duSpp57iwoULdrdNTk5m8uTJ9OzZk7Zt2zJs2DB+++03m+1+/PFHhg0bRkxMDF26dGHkyJEsWbKkXOPZvXs358+fZ+jQoQwdOpRdu3aVOZ7KGD58OEePHiU2Ntay7NKlS2zfvr1CvcSKS/UWL17MkCFDaNeuHSNHjmTnzp022x45coTHHnuMTp060bFjRx5++GGbMtHS10sxe9dGcfnhpk2bGDlyJO3bt+eXX3656njnzZvHoEGDaN++Pffccw+7du2yu11hYSGfffYZt9xyC23btqVfv368//77FBYWWrZJSEiwKXEs+bgU9w7Lz8/n1ltv5dZbbyU/P9+yTXp6Or1792bMmDEYjcarjjszM5OpU6cyYMAA2rZtS9++fXn55ZdJTU21bFOe527xmGfPns2cOXMYOHAgMTExPProoyQlJaGqKtOnT6dv3760b9+ep59+mvT0dKtjFD/umzdv5s4776Rdu3YMHTrUKnvu999/5/nnnwfgoYcesjzXd+zYYdlmw4YN3H///XTo0IGOHTvyxBNPcPLkSatzXbp0icmTJ9O3b1/L8//pp5+Wsj4hhBDXJBlQQgghRDXIzs62+iIKoCgKAQEB6HQ6Bg0axOrVq3nrrbesytvWrFlDYWEhQ4cOBcxflMeOHcvZs2d54IEHaNSoEStWrODVV18lMzOThx9++LrH+v777zNlyhTat2/P6NGjgauXCn7++edMmzaNnj17ct999xEXF8fcuXM5ePAgc+fORafTWbbNyMjgscce45ZbbuG2225j5cqVfPDBB0RFRdGvX7+rjuv1119n8eLFDB8+nE6dOrF9+3aeeOIJm+30ej2jR49GURQeeOABAgMD2bhxI6+//jrZ2dk88sgjAPz666+8/fbbDBkyhIceeoiCggKOHz/O/v37uf3226/5OC1ZsoTw8HDat29PVFQU7u7uLF26lMcee+ya+5ZHly5daNCgAUuXLrUECpYvX46npyf9+/ev0LF27tzJ8uXLGTt2LK6ursydO5fHHnuM+fPnExUVBcDJkyd54IEH8PLy4rHHHsPFxYV58+YxduxYfvrpJ2JiYip1P+Li4njxxRe59957GT16NBEREWVuO3/+fN544w1L8OvcuXM8/fTT+Pn5ERoaatnOZDLx9NNPs3v3bkaPHk2zZs04ceIE33//PfHx8XzxxRcVGqO7uzvvvfce9913Hx9//LElGPzvf/+brKws3nnnnatm/uXk5PDAAw8QGxvL3XffTevWrUlLS2PdunUkJycTGBhY4efukiVLKCoqYuzYsaSnp/P1118zceJEunfvzo4dO3j88cc5c+YMP/30E++99x7vvPOO1f7x8fG88MILjBkzhhEjRrBgwQKef/55vv76a3r16kWXLl0YO3YsP/74I0899RSRkZEANGvWDIBFixbx6quv0rt3b1566SXy8vKYO3cu999/PwsXLrSU7E2YMIFTp07x4IMP0rBhQ1JTU9myZQtJSUlS1ieEEOLqVCGEEEJUmQULFqhRUVF2/7Vt29ay3aZNm9SoqCh13bp1Vvs//vjj6sCBAy23v/vuOzUqKkr9448/LMsKCwvVe++9V+3QoYOalZVlWR4VFaV+9tlnltuvvPKKevPNN9uM8bPPPlOjoqKslnXo0EF95ZVXyrw/586dU1VVVVNSUtQ2bdqojz76qGo0Gi3b/fTTT2pUVJT622+/WZY9+OCDalRUlLpw4ULLsoKCArVXr17qhAkTbB+8Eo4ePapGRUWpb775ptXySZMm2dzP1157Te3Vq5eamppqte0LL7ygdu7cWc3Ly1NVVVWffvppddiwYVc9b1kKCwvVrl27qh999JHVWO644w6bbW+++Wb1iSeesHucAwcOqFFRUeqCBQssy4r/HikpKeq7776r3nLLLZZ1d999t/rqq6+qqmr++7711lvXHGvx9Xbw4EHLsvPnz6vt2rVTn332WcuyZ555Rm3Tpo169uxZy7Lk5GS1Y8eO6gMPPGAzvtJKXxvF9z0qKkrduHHjNcdZWFio9ujRQ73zzjvVgoICy/J58+apUVFR6oMPPmhZtmjRIrVly5bqzp07rY4xd+5cNSoqSt29e7eqqqp67tw5m8e35ONS8rpRVVX98MMPLcf9888/1aioKPW777675tg//fRTNSoqSl21apXNOpPJpKpq+Z+7xWPu3r27mpmZaTW2qKgo9Y477lCLioosyydNmqS2adPG6jErftxXrlxpWZaVlaX26tVLveuuuyzLiu/j9u3brcacnZ2t3nTTTeqUKVOsll+6dEnt3LmzZXlGRoYaFRWlfv3119d8jIQQQojSpARPCCGEqAZvvPEG3377rdW/kqVn3bt3JyAggOXLl1uWZWRksHXrVkv2E8DGjRsJCQmxKsHS6XSMHTuW3Nxcu2VV1Wnr1q0UFRXx0EMPodFc+RgxatQovL292bBhg9X2np6e3HnnnZbbrq6utGvXjnPnzl31PMXHGTt2rNXy0lkjqqqyatUqBgwYgKqqpKamWv717t2brKwsDh8+DICvry8XLlzgwIEDFb7fGzduJD093ervMHz4cI4dO2ZTonQ9br/9ds6cOcOBAwc4c+YMBw8eLFd2VmkdO3akbdu2ltthYWEMHDiQzZs3YzQaMRqNbNmyhUGDBtG4cWPLdvXq1WP48OHs3r2b7OzsSt2HRo0a0adPn2tud+jQIVJSUhgzZoxVFuCIESPw8fGx2nbFihU0a9aMyMh
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"comparaison(29)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 206,
|
|||
|
|
"id": "a679b018-e36c-4c7b-8c77-fdf81626aaa7",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKAAAAJICAYAAABWnpxpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAr7FJREFUeJzs3Xl4U3XaxvE7aZJuUHZlKVtBK8iqrAKKFUWgIqIIiBVHQBhlVeZVEBm3AR1FUEERBBRkU3FmaEEEUUARUFxREVnKLiJLaemWpM37R8mB2AJp2rRJ+X6uy2to8jvnPC2nQ7l5fs8xuVwulwAAAAAAAAA/MZd2AQAAAAAAACjbCKAAAAAAAADgVwRQAAAAAAAA8CsCKAAAAAAAAPgVARQAAAAAAAD8igAKAAAAAAAAfkUABQAAAAAAAL8igAIAAAAAAIBfEUABAFDMfvnlF73++us6ffp0aZcCAAAABAQCKAAAitGxY8f097//XdWqVVO5cuVKuxwAAAAgIJhcLpertIsAAKCsWL9+vdLS0hQfH1/apQAAAAABgw4oAACK0Q033FCi4VNsbKxee+21Yj3nhx9+qNjYWB08eLBYz1sU/vg8Ufa89tprio2NLe0yAABAAQigAAAoIndgc77/vv/++9IusUAzZ87UJ598UtplBLzdu3crNjZWTZs2VWpqaoFr4uLiNHTo0ALf27Ztm2JjY/Xhhx8ar7mDkquuukq///57vmNOnz6tZs2aKTY2Vs8880zxfCIBIjExUW+//XZpl1Fm8X0NAAhUltIuAACAsmLkyJGKjo7O93qdOnVKoZqLe/PNN9W1a1d16dLF4/Xbb79dPXr0kM1mK6XKAsvy5ctVrVo1nTp1Sh9//LH69OlTbOe22WxKSkrSkCFDPF5fvXp1sV0j0CQlJWnnzp26//77i/3cf//73/Xggw8W+3mDyfm+rwEAKG0EUAAAFJPrr79eTZs2Le0yiiwkJEQhISGlXUZAcLlcSkxMVHx8vA4ePKjly5cXawB1ww03aMWKFfkCqKSkJHXu3Fkff/xxsV2rpLhcLmVnZyssLKzI58rOzpbVapXZ7F3TvsVikcXCj7cAAAQituABAFACHA6H2rRpo3HjxuV77/Tp02ratKleeOEF47Xjx49r/Pjxuu6669S0aVP17NlT//nPfy56nccff1xxcXH5Xv/rbJzY2FhlZGToP//5j7FV8PHHH5d0/hlQCxcuVI8ePdSkSRN17NhRTz/9dL4taQkJCYqPj9euXbuUkJCg5s2bq1OnTpo9e/ZFa5cku92uSZMmqV27dmrZsqWGDRumI0eOFLj2jz/+0Lhx43TdddepSZMm6tGjhz744IN86xYsWKAePXqoefPmat26tXr37q3ExESv6vnmm2906NAhde/eXd27d9fWrVvPW48v4uPjtX37du3evdt47c8//9TmzZsLNUvMvVVv+fLl6tq1q5o2barevXvr66+/zrf2l19+0eDBg3XNNdeoZcuWGjhwYL5touebpVTQveHefvj555+rd+/eatasmZYsWVJgnQkJCVq3bp0OHTpk3Hfu+3XLli2KjY3VihUrNHXqVHXq1EnNmzfX6dOnJUkfffSRcf62bdtq7Nix+uOPPy5a98aNG9W/f3+1atVKLVu2VNeuXfXyyy9f/Isq6X//+5/uuusu494ZMGCAvvjiC481hfm++PXXX3XvvfeqefPmuvnmm7Vq1SpJ0ldffaU+ffqoWbNm6tq1q7788ssCP6/du3dr1KhRuuaaa9S2bVs999xzys7ONtZd6PtaKpnvGQAAzod/IgIAoJicPn1aJ06c8HjNZDKpUqVKslqt6tKli9asWaOnn37aY3vbJ598Irvdru7du0uSsrKylJCQoP3792vAgAGKjo7WqlWr9Pjjjys1NVUDBw4scq3//ve/NWHCBDVr1kx33323pAtvFXzttdc0ffp0XXfdderfv7+Sk5O1ePFibdu2TYsXL5bVajXWnjp1SoMHD9bNN9+sbt266eOPP9ZLL72kK6+8UjfccMMF63riiSe0fPlyxcfH65prrtHmzZsL3FJ17Ngx3X333TKZTBowYIAqV66sDRs26IknntDp06eN7V3vvfeennvuOXXt2lX33XefsrOztWPHDv3www+67bbbLvp1SkxMVJ06ddSsWTNdeeWVCgsLU1JSkgYPHnzRY73RunVrVa9eXUlJSRo1apQkaeXKlYqIiFDnzp0Lda6vv/5aK1euVEJCgmw2mxYvXqzBgwfr/fff15VXXilJ2rlzpwYMGKDIyEgNHjxYFotFS5cuVUJCgt599101b97cp88jOTlZjz76qPr27au7775b9evXL3DdsGHDlJaWpiNHjhhhbGRkpMea119/XVarVYMGDZLdbpfVatWHH36ocePGqWnTpnrkkUd0/PhxzZ8/X99++63++9//KioqqsDr7dy5U0OHDlVsbKxGjhwpm82mffv26dtvv73o5zR9+nS99tpratmypUaOHCmr1aoffvhBmzdvVseOHSUV/vti2LBh6t69u2699VYtXrxYjzzyiHJzczVp0iT169dP8fHxmjNnjkaOHKl169apXLlyHjWNHj1atWrV0qOPPqrvv/9eCxYsUGpqqv79739LuvD3dUl9zwAAcD4EUAAAFJOCZtrYbDZt27ZNktS9e3ctW7ZMGzdu1I033misWblypWrXrm1s31u6dKl2796tF198UT179pQk9evXTwkJCZo2bZruvPPOfH8xLazbb79dTz31lGrXrq3bb7/9gmtPnDihN998Ux07dtTs2bON7VAxMTFG182dd95prD969KheeOEF9erVS5J01113KS4uTsuWLbtgAPXrr79q+fLluueee/TPf/5TkjRgwAA9+uij2rFjh8faqVOnKicnR4mJiapUqZIkqX///nrkkUc0ffp09evXT2FhYVq3bp2uuOIKvfrqq4X+GjkcDq1atUr9+vWTJIWFhSkuLk6JiYnFFkBJeffFihUrjAAqMTFRN998c6FncP32229atmyZmjRpIknq0aOHbr31Vr366quaPn26JGnatGlyOBxavHixateuLUnq1auXbr31Vr344ot69913ffoc9u3bp7feekudOnW64LoOHTpo/vz5Sk1NPe99l52drWXLlhlb+BwOhxFgLly4UKGhoZKka6+9VkOHDtXbb7+tkSNHFniujRs3yuFwaPbs2apcuXKhPp8ZM2bo5ptv1quvvuqxBdDlckny7ftiypQpRmfbddddp27duunRRx/VkiVLjPCvQYMGGjRokFavXq3evXt71BUdHa033nhDUt73Rrly5bRo0SI98MADuuqqqy74fV0S3zMAAFwIW/AAACgmEydO1Lx58zz+O3frWbt27VSpUiWtXLnSeO3UqVP68ssvje4nSdqwYYOqVavmsQXLarUqISFBGRkZBW6r8qcvv/xSDodD9913n8dfxPv06aNy5cpp/fr1HusjIiI8/vJrs9nUtGlTHThw4ILXcZ8nISHB4/W/dny5XC6tXr1acXFxcrlcOnHihPFfx44dlZaWpp9//lmSFBUVpSNHjujHH38s9Oe9YcMGpaSkePw+uLdR7dy5s9DnO5/bbrtN+/bt048//qh9+/Zp27ZtPnWatGzZ0gifJKlmzZq66aab9MUXXygnJ0c5OTnauHGjunTpYoRPknTZZZcpPj5e33zzjbHdrbCio6MvGj55q1evXh7zo3766ScdP35c/fv3N8InSercubNiYmK0bt26857L3Rm1du1a5ebmel3DJ598otzcXD388MP55k+ZTCZJvn1f9OjRw/g4JiZGUVFRatCggUfnmfvXBX2/DBgwwOPje++9V1LevXohJfU9AwDAhdABBQBAMWnWrNkFh5BbLBbdcsstSkpKkt1ul81m0+rVq+VwODwCqEOHDqlu3br5/uLboEEDSdLhw4f98wmch/t6MTExHq/bbDbVrl1bhw4d8ni9evXqxl/S3SpUqJCvi+mvDh06JLPZnG8r4F+ve+LECaWmpmrp0qVaunRpgedyb4UcMmSIvvzyS/Xp00d
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"from function import evolution_3_comptes\n",
|
|||
|
|
"\n",
|
|||
|
|
"evolution_3_comptes(df, '403998', '200082287', '200127867')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 239,
|
|||
|
|
"id": "28967118-6601-4c14-a0cb-0a2b0cc06cd8",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKAAAAJICAYAAABWnpxpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAA9RdJREFUeJzs3Xl4TVf3wPHvvcnNLBJJCCKS0ASVmAkxVFBDVXVQVFNeQVRRRV+lqjr8qgOqhreGxtSaqjpIpIZSlJpnpYjETCLzPJ/fH3FPc92ERGUQ6/M8Hu45++yzz8m5kbuy9toaRVEUhBBCCCGEEEIIIYQoJdryHoAQQgghhBBCCCGEqNwkACWEEEIIIYQQQgghSpUEoIQQQgghhBBCCCFEqZIAlBBCCCGEEEIIIYQoVRKAEkIIIYQQQgghhBClSgJQQgghhBBCCCGEEKJUSQBKCCGEEEIIIYQQQpQqCUAJIYQQQgghhBBCiFIlASghhBCinJw5c4b//e9/pKSklPdQhBBCCCGEKFUSgBJCCCHKQUxMDK+//jpOTk7Y2NiU93CEEEIIIYQoVRpFUZTyHoQQQgjxuNm1axfJycn07t27vIcihBBCCCFEqZMMKCGEEKIcdOrUqUyDT15eXsybN++h9vnjjz/i5eXFtWvXHmq//0ZpXKeofObNm4eXl1d5D0MIIYR4rEgASgghhCgj+oBNUX+OHz9e3kMs1MKFC/ntt9/KexgV3sWLF/Hy8sLb25ukpKRC2/j7+xMUFFTovlOnTuHl5cWPP/6obtMHSho0aMDNmzeNjklJScHHxwcvLy8+/PDDh3MhFURISAjLly8v72FUWvK+FkIIUdZMy3sAQgghxONm7NixuLi4GG13dXUth9Hc36JFi+jevTtdu3Y12P7cc8/xzDPPYGZmVk4jq1g2btyIk5MTiYmJbNmyhX79+j20vs3MzAgNDWX48OEG27du3frQzlHRhIaGcuHCBYYMGfLQ+3799dcZMWLEQ+/3UVLU+1oIIYQoLRKAEkIIIcpYx44d8fb2Lu9h/GsmJiaYmJiU9zAqBEVRCAkJoXfv3ly7do2NGzc+1ABUp06d2LRpk1EAKjQ0lKeeeootW7Y8tHOVFUVRyMzMxMLC4l/3lZmZiU6nQ6stXnK/qakppqbyY7AQQghRlmQKnhBCCFGBZGdn07p1ayZPnmy0LyUlBW9vbz777DN1W2xsLFOmTKFdu3Z4e3vTp08ffvrpp/ue55133sHf399o+921cby8vEhLS+Onn35Spwq+8847QNE1oFatWsUzzzxD48aNad++PR988IHRlLSAgAB69+5NeHg4AQEBNGnShA4dOrBkyZL7jh0gKyuLTz75BF9fX5o1a8bIkSO5detWoW2joqKYPHky7dq1o3HjxjzzzDP88MMPRu2+/fZbnnnmGZo0aUKrVq144YUXCAkJKdZ4jhw5wvXr1+nVqxe9evXi8OHDRY7nQfTu3ZuzZ89y8eJFddvt27fZv39/iWqJ6afqbdy4ke7du+Pt7c0LL7zAoUOHjNqeOXOGYcOG0bx5c5o1a8bgwYONpokWVUupsGdDP/3wjz/+4IUXXsDHx4e1a9cWOs6AgAB27tzJ9evX1edO/7weOHAALy8vNm3axJdffkmHDh1o0qQJKSkpAPz6669q/23atGHixIlERUXdd9x79+5l4MCBtGzZkmbNmtG9e3dmz559/5sK/PLLL7z00kvqszNo0CD27Nlj0KYk74u///6bV199lSZNmtCtWzc2b94MwMGDB+nXrx8+Pj50796dP//8s9DrunjxIm+++SbNmzenTZs2fPzxx2RmZqrt7vW+hrJ5zwghhHj8yK9+hBBCiDKWkpJCXFycwTaNRoO9vT06nY6uXbuybds2PvjgA4Ppbb/99htZWVn06tULgIyMDAICArhy5QqDBg3CxcWFzZs3884775CUlMTgwYP/9Vg///xzpk6dio+PDy+//DJw76mC8+bNY/78+bRr146BAwcSGRnJmjVrOHXqFGvWrEGn06ltExMTGTZsGN26daNnz55s2bKFmTNn4unpSadOne45rnfffZeNGzfSu3dvmjdvzv79+wudUhUTE8PLL7+MRqNh0KBBVKtWjd27d/Puu++SkpKiTu/6/vvv+fjjj+nevTuvvfYamZmZnDt3jhMnTvDss8/e9z6FhITg6uqKj48Pnp6eWFhYEBoayrBhw+57bHG0atUKZ2dnQkNDefPNNwEICwvDysqKp556qkR9HTp0iLCwMAICAjAzM2PNmjUMGzaM9evX4+npCcCFCxcYNGgQ1tbWDBs2DFNTU9atW0dAQADfffcdTZo0eaDriIyMZMKECfTv35+XX34Zd3f3QtuNHDmS5ORkbt26pQZjra2tDdr873//Q6fTERgYSFZWFjqdjh9//JHJkyfj7e3N+PHjiY2NZeXKlRw9epSff/4ZW1vbQs934cIFgoKC8PLyYuzYsZiZmXH58mWOHj1632uaP38+8+bNo1mzZowdOxadTseJEyfYv38/7du3B0r+vhg5ciS9evWiR48erFmzhvHjx5OXl8cnn3zCgAED6N27N8HBwYwdO5adO3diY2NjMKZx48ZRu3ZtJkyYwPHjx/n2229JSkri888/B+79vi6r94wQQojHjwSghBBCiDJWWE0bMzMzTp06BUCvXr3YsGEDe/fupXPnzmqbsLAw6tSpo07fW7duHRcvXuSLL76gT58+AAwYMICAgADmzJnDiy++aPTBtKSee+45pk+fTp06dXjuuefu2TYuLo5FixbRvn17lixZok6H8vDwULNuXnzxRbV9dHQ0n332GX379gXgpZdewt/fnw0bNtwzAPX333+zceNGXnnlFd5//30ABg0axIQJEzh37pxB2y+//JLc3FxCQkKwt7cHYODAgYwfP5758+czYMAALCws2LlzJ0888QRz584t8T3Kzs5m8+bNDBgwAAALCwv8/f0JCQl5aAEoyH8uNm3apAagQkJC6NatW4lrcJ0/f54NGzbQuHFjAJ555hl69OjB3LlzmT9/PgBz5swhOzubNWvWUKdOHQD69u1Ljx49+OKLL/juu+8e6BouX77MN998Q4cOHe7Zzs/Pj5UrV5KUlFTkc5eZmcmGDRvUKXzZ2dlqAHPVqlWYm5sD0KJFC4KCgli+fDljx44ttK+9e/eSnZ3NkiVLqFatWomuZ8GCBXTr1o25c+caTAFUFAV4sPfFrFmz1My2du3a0bNnTyZMmMDatWvV4F+9evUIDAxk69atvPDCCwbjcnFx4euvvwby3xs2NjasXr2aoUOH0qBBg3u+r8viPSOEEOLxJFPwhBBCiDI2bdo0li1bZvCn4NQzX19f7O3tCQsLU7clJiby559/qtlPALt378bJyclgCpZOpyMgIIC0tLRCp1WVpj///JPs7Gxee+01gw/i/fr1w8bGhl27dhm0t7KyMvjwa2Zmhre3N1evXr3nefT9BAQEGGy/O+NLURS2bt2Kv78/iqIQFxen/mnfvj3Jycn89ddfANja2nLr1i1OnjxZ4uvevXs3CQkJBl8H/TSqCxculLi/ojz77LNcvnyZkydPcvnyZU6dOvVAmSbNmjVTg08AtWrVokuXLuzZs4fc3Fxyc3PZu3cvXbt2VYNPANWrV6d3794cOXJEne5WUi4uLvcNPhVX3759DepHnT59mtjYWAYOHKgGnwCeeuopPDw82LlzZ5F96TOjtm/fTl5eXrHH8Ntvv5GXl8cbb7xhVH9Ko9EAD/a+eOaZZ9TXHh4e2NraUq9ePYPMM/2/C3u/DBo0yOD1q6++CuQ/q/dSVu8ZIYQQjyfJgBJCCCHKmI+Pzz2LkJuamvL0008TGhpKVlYWZmZmbN26lezsbIMA1PXr16lbt67RB9969eoBcOPGjdK5gCLoz+fh4WGw3czMjDp16nD9+nWD7c7OzuqHdL2qVasaZTHd7fr162i1WqOpgHefNy4ujqSkJNatW8e6desK7Us/FXL48OH8+eef9OvXj7p16+Ln50fv3r1p0aLFPccC+avfubi4qNO2IH86k6WlJSE
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"evolution_3_comptes(df, '200000491', '200089970', '200127376')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 254,
|
|||
|
|
"id": "9a507b4c-7fca-4832-9fb0-86c14445911e",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"evolution_3_comptes(df, '418981', '200097229', '200127453')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 274,
|
|||
|
|
"id": "7ae454c7-aab5-4711-8347-da2e6236a568",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"evolution_3_comptes(df, '406055', '200093156', '200127276')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 279,
|
|||
|
|
"id": "7b3ef1ac-152f-4228-b0f0-5d1d3616be41",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKAAAAJICAYAAABWnpxpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAArmVJREFUeJzs3XlcVNX7B/DPDMwMuwhiLkgCJmGC4oqCGy4o4pJlbqElbplr2tc0My2/mrmvuYTmnrnUT5DcU9LUb6a5lJkIuK8o+zLr7w+cq+MAMjCb8Hm/Xr5k7jn33OcOZ0ieznmuSKPRaEBERERERERERGQiYksHQERERERERERE5RsTUEREREREREREZFJMQBERERERERERkUkxAUVERERERERERCbFBBQREREREREREZkUE1BERERERERERGRSTEAREREREREREZFJMQFFREREREREREQmxQQUERGRkf39999YsWIFsrKyLB0KEREREZFVYAKKiIjIiB4+fIgPPvgAHh4ecHJysnQ4RERERERWQaTRaDSWDoKIiKi8OHr0KDIzMxEZGWnpUIiIiIiIrAZXQBERERlRmzZtzJp88vPzw9KlS4065q5du+Dn54ebN28addyyMMV9UvmzdOlS+Pn5WToMIiIiKgQTUERERGWkTdgU9efPP/+0dIiFWrlyJQ4ePGjpMKze1atX4efnh4CAAGRkZBTaJywsDMOHDy+07cKFC/Dz88OuXbuEY9pEyeuvv447d+7onZOVlYXAwED4+fnhiy++MM6NWInY2Fh89913lg6j3OLnmoiIrJWtpQMgIiIqL8aMGQNPT0+9415eXhaI5sVWrVqF8PBwdOjQQed4jx490LVrV0ilUgtFZl12794NDw8PpKenY9++fejdu7fRxpZKpYiLi8PQoUN1ju/fv99o17A2cXFxuHLlCt577z2jj/3BBx9g2LBhRh/3ZVLU55qIiMjSmIAiIiIyktatWyMgIMDSYZSZjY0NbGxsLB2GVdBoNIiNjUVkZCRu3ryJ3bt3GzUB1aZNG+zZs0cvARUXF4e2bdti3759RruWuWg0GuTn58POzq7MY+Xn50MikUAsLtmifVtbW9ja8p+3RERE1ohb8IiIiMxAoVCgWbNmmDx5sl5bVlYWAgICMGfOHOFYamoqpkyZgpYtWyIgIADdu3fHjz/++MLrfPLJJwgLC9M7/nxtHD8/P+Tk5ODHH38Utgp+8sknAIquAbV582Z07doV9evXR2hoKGbMmKG3JS0qKgqRkZFITExEVFQUGjRogFatWmHNmjUvjB0A5HI5Zs2aheDgYAQFBWHEiBG4e/duoX3v3buHyZMno2XLlqhfvz66du2KHTt26PXbuHEjunbtigYNGqBp06bo1asXYmNjSxTPH3/8gVu3biEiIgIRERE4ffp0kfGURmRkJC5duoSrV68Kxx48eICTJ08aVEtMu1Vv9+7dCA8PR0BAAHr16oXff/9dr+/ff/+NIUOGoFGjRggKCsKgQYP0tokWVUupsLmh3X7466+/olevXggMDMT3339faJxRUVE4cuQIbt26Jcw77Xw9deoU/Pz8sGfPHixcuBCtWrVCgwYNkJWVBQD4+eefhfGbN2+OiRMn4t69ey+M+/jx4+jXrx+aNGmCoKAghIeHY8GCBS9+UwH83//9H95++21h7gwYMADHjh3T6WPI5+Kff/7Bu+++iwYNGqBjx47Yu3cvAOB///sfevfujcDAQISHh+O3334r9L6uXr2KsWPHolGjRmjevDlmzpyJ/Px8oV9xn2vAPJ8ZIiKiovB/ERERERlJVlYWHj16pHNMJBKhcuXKkEgk6NChAw4cOIAZM2bobG87ePAg5HI5IiIiAAB5eXmIiorC9evXMWDAAHh6emLv3r345JNPkJGRgUGDBpU51q+//hpTp05FYGAg3nnnHQDFbxVcunQpli1bhpYtW6Jfv35ITk7G1q1bceHCBWzduhUSiUTom56ejiFDhqBjx47o0qUL9u3bh3nz5qFu3bpo06ZNsXF9+umn2L17NyIjI9GoUSOcPHmy0C1VDx8+xDvvvAORSIQBAwbAzc0NCQkJ+PTTT5GVlSVs7/rhhx8wc+ZMhIeHY+DAgcjPz8fly5dx7tw5dOvW7YXvU2xsLLy8vBAYGIi6devCzs4OcXFxGDJkyAvPLYmmTZuiWrVqiIuLw9ixYwEA8fHxcHBwQNu2bQ0a6/fff0d8fDyioqIglUqxdetWDBkyBNu3b0fdunUBAFeuXMGAAQPg6OiIIUOGwNbWFtu2bUNUVBQ2bdqEBg0alOo+kpOTMWHCBPTp0wfvvPMOvL29C+03YsQIZGZm4u7du0Iy1tHRUafPihUrIJFIEB0dDblcDolEgl27dmHy5MkICAjARx99hNTUVGzYsAFnzpzBTz/9BBcXl0Kvd+XKFQwfPhx+fn4YM2YMpFIprl27hjNnzrzwnpYtW4alS5ciKCgIY8aMgUQiwblz53Dy5EmEhoYCMPxzMWLECERERKBz587YunUrPvroI6jVasyaNQt9+/ZFZGQkYmJiMGbMGBw5cgROTk46MY0bNw41a9bEhAkT8Oeff2Ljxo3IyMjA119/DaD4z7W5PjNERERFYQKKiIjISAqraSOVSnHhwgUAQEREBHbu3Injx4+jXbt2Qp/4+HjUqlVL2L63bds2XL16FXPnzkX37t0BAH379kVUVBQWLVqEt956S+8XU0P16NED06dPR61atdCjR49i+z569AirVq1CaGgo1qxZI2yH8vHxEVbdvPXWW0L/+/fvY86cOejZsycA4O2330ZYWBh27txZbALqn3/+we7du9G/f398/vnnAIABAwZgwoQJuHz5sk7fhQsXQqVSITY2FpUrVwYA9OvXDx999BGWLVuGvn37ws7ODkeOHMFrr72GJUuWGPweKRQK7N27F3379gUA2NnZISwsDLGxsUZLQAEF82LPnj1CAio2NhYdO3Y0uAbXv//+i507d6J+/foAgK5du6Jz585YsmQJli1bBgBYtGgRFAoFtm7dilq1agEAevbsic6dO2Pu3LnYtGlTqe7h2rVr+Pbbb9GqVati+4WEhGDDhg3IyMgoct7l5+dj586dwhY+hUIhJDA3b94MmUwGAGjcuDGGDx+O7777DmPGjCl0rOPHj0OhUGDNmjVwc3Mz6H6WL1+Ojh07YsmSJTpbADUaDYDSfS7mz58vrGxr2bIlunTpggkTJuD7778Xkn++vr6Ijo7G/v370atXL524PD098c033wAo+Gw4OTlhy5YtGDx4MF5//fViP9fm+MwQEREVh1vwiIiIjGTatGlYt26dzp9nt54FBwejcuXKiI+PF46lp6fjt99+E1Y/AUBCQgI8PDx0tmBJJBJERUUhJyen0G1VpvTbb79BoVBg4MCBOr+I9+7dG05OTjh69KhOfwcHB51ffqVSKQICAnDjxo1ir6MdJyoqSuf48yu+NBoN9u/fj7CwMGg0Gjx69Ej4ExoaiszMTPz1118AABcXF9y9exfnz583+L4TEhKQlpam833QbqO6cuWKweMVpVu3brh27RrOnz+Pa9eu4cKFC6VaaRIUFCQknwCgRo0aaN++PY4dOwaVSgWVSoXjx4+jQ4cOQvIJAKpWrYrIyEj88ccfwnY3Q3l6er4w+VRSPXv21KkfdfHiRaSmpqJfv35C8gkA2rZtCx8fHxw5cqTIsbQrow4dOgS1Wl3iGA4ePAi1Wo0PP/xQr/6USCQCULrPRdeuXYXXPj4+cHFxga+vr87KM+3XhX1eBgwYoPP63XffBVAwV4tjrs8MERFRcbgCioiIyEgCAwOLLUJua2uLTp06IS4uDnK5HFKpFPv374dCodBJQN26dQuvvvqq3i++vr6+AIDbt2+b5gaKoL2ej4+PznGpVIpatWrh1q1bOserVasm/JKuValSJb1VTM+7desWxGKx3lbA56/76NEjZGRkYNu2bdi2bVuhY2m3Qg4dOhS//fYbevfujVdffRUhISGIjIxE48aNi40FKHj6naenp7BtCyjYzmRvb4/Y2Fh89NFHLxz
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"evolution_3_comptes(df, '200001608', '200082717', '200127352')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 283,
|
|||
|
|
"id": "76a81555-fb92-424f-a171-03b1b3232166",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKAAAAJICAYAAABWnpxpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAxAhJREFUeJzs3Xl4U9X2N/DvSZO0aWk6UWQoSAtSUUZlbpkqgpSKiiIgVq8XGVRAJl8FEcHrFQcQFFAQcQARKoL+aK2AooAgcMUBURGElnkubdOSpM1w3j/Sc9qQTmmTJk2+n+fhgWbvc85OOClkda21BVEURRAREREREREREbmJwtMLICIiIiIiIiIi38YAFBERERERERERuRUDUERERERERERE5FYMQBERERERERERkVsxAEVERERERERERG7FABQREREREREREbkVA1BERERERERERORWDEAREREREREREZFbMQBFRETkYn/99RfeeecdFBYWenopRERERERegQEoIiIiF7py5QqeeOIJREdHo0GDBp5eDhERERGRVxBEURQ9vQgiIiJfsXPnThQUFCAlJcXTSyEiIiIi8hrMgCIiInKhvn371mnwKT4+HkuWLHHpOTdt2oT4+HicOXPGpeetDXc8T/I9S5YsQXx8vKeXQUREROVgAIqIiKiWpIBNRb9+++03Ty+xXMuXL8e3337r6WV4vePHjyM+Ph7t27eHTqcrd05SUhLGjx9f7tihQ4cQHx+PTZs2yY9JgZKbb74Z58+fdzimsLAQHTp0QHx8PF566SXXPBEvkZ6ejo8++sjTy/BZfF8TEZG3Unp6AURERL5i8uTJiImJcXi8RYsWHlhN1VasWIFBgwZhwIABdo/fc889GDJkCNRqtYdW5l02b96M6Oho5OfnY+vWrRg+fLjLzq1Wq5GRkYGxY8faPb5t2zaXXcPbZGRk4J9//sG//vUvl5/7iSeewLhx41x+3vqkovc1ERGRpzEARURE5CJ9+vRB+/btPb2MWgsICEBAQICnl+EVRFFEeno6UlJScObMGWzevNmlAai+ffviq6++cghAZWRkoF+/fti6davLrlVXRFFEUVERgoKCan2uoqIiqFQqKBTVS9pXKpVQKvnfWyIiIm/EEjwiIqI6YDKZ0K1bN8ycOdNhrLCwEO3bt8drr70mP5aTk4NZs2ahV69eaN++PYYOHYovvviiyus899xzSEpKcnj8+t448fHx0Ov1+OKLL+RSweeeew5AxT2g1q5diyFDhqBdu3ZITEzEvHnzHErSUlNTkZKSgmPHjiE1NRUdO3ZE7969sXLlyirXDgDFxcV45ZVX0KNHD3Tu3BkTJkzAhQsXyp178eJFzJw5E7169UK7du0wZMgQfP755w7z1qxZgyFDhqBjx47o2rUrhg0bhvT09Gqt5+eff8bZs2eRnJyM5ORkHDhwoML11ERKSgoOHz6M48ePy49dvnwZ+/btc6qXmFSqt3nzZgwaNAjt27fHsGHD8NNPPznM/euvv/D444/jtttuQ+fOnfHoo486lIlW1EupvHtDKj/84YcfMGzYMHTo0AHr168vd52pqanYsWMHzp49K9930v26f/9+xMfH46uvvsKiRYvQu3dvdOzYEYWFhQCAr7/+Wj5/9+7dMWPGDFy8eLHKde/ZswejRo1Cly5d0LlzZwwaNAhvvvlm1S8qgP/7v//DAw88IN87o0ePxu7du+3mOPO++Pvvv/Hwww+jY8eOuPPOO7FlyxYAwP/+9z8MHz4cHTp0wKBBg/Djjz+W+7yOHz+Op59+Grfddhu6d++Ol19+GUVFRfK8yt7XQN28Z4iIiCrCHxERERG5SGFhIa5evWr3mCAIiIiIgEqlwoABA/DNN99g3rx5duVt3377LYqLi5GcnAwAMBqNSE1NxalTpzB69GjExMRgy5YteO6556DT6fDoo4/Weq2vv/46Zs+ejQ4dOuDBBx8EUHmp4JIlS7B06VL06tULo0aNQnZ2NtatW4dDhw5h3bp1UKlU8tz8/Hw8/vjjuPPOOzF48GBs3boVCxYsQJs2bdC3b99K1/X8889j8+bNSElJwW233YZ9+/aVW1J15coVPPjggxAEAaNHj0ZkZCR27dqF559/HoWFhXJ512effYaXX34ZgwYNwiOPPIKioiIcOXIEBw8exN13313l65Seno4WLVqgQ4cOaNOmDYKCgpCRkYHHH3+8ymOro2vXrmjcuDEyMjLw9NNPAwAyMzMRHByMfv36OXWun376CZmZmUhNTYVarca6devw+OOPY8OGDWjTpg0A4J9//sHo0aMREhKCxx9/HEqlEmlpaUhNTcUnn3yCjh071uh5ZGdnY/r06RgxYgQefPBBxMbGljtvwoQJKCgowIULF+RgbEhIiN2cd955ByqVCmPGjEFxcTFUKhU2bdqEmTNnon379pg2bRpycnKwevVq/PLLL/jyyy+h1WrLvd4///yD8ePHIz4+HpMnT4ZarcbJkyfxyy+/VPmcli5diiVLlqBz586YPHkyVCoVDh48iH379iExMRGA8++LCRMmIDk5GXfddRfWrVuHadOmwWq14pVXXsHIkSORkpKCVatWYfLkydixYwcaNGhgt6YpU6agWbNmmD59On777TesWbMGOp0Or7/+OoDK39d19Z4hIiKqCANQRERELlJeTxu1Wo1Dhw4BAJKTk7Fx40bs2bMH/fv3l+dkZmaiefPmcvleWloajh8/jjfeeANDhw4FAIwcORKpqalYvHgx7r//focPps665557MHfuXDRv3hz33HNPpXOvXr2KFStWIDExEStXrpTLoeLi4uSsm/vvv1+ef+nSJbz22mu49957AQAPPPAAkpKSsHHjxkoDUH///Tc2b96Mhx56CC+++CIAYPTo0Zg+fTqOHDliN3fRokWwWCxIT09HREQEAGDUqFGYNm0ali5dipEjRyIoKAg7duzATTfdhLffftvp18hkMmHLli0YOXIkACAoKAhJSUlIT093WQAKsN0XX331lRyASk9Px5133ul0D66jR49i48aNaNeuHQBgyJAhuOuuu/D2229j6dKlAIDFixfDZDJh3bp1aN68OQDg3nvvxV133YU33ngDn3zySY2ew8mTJ/H++++jd+/elc5LSEjA6tWrodPpKrzvioqKsHHjRrmEz2QyyQHMtWvXIjAwEABw++23Y/z48fjoo48wefLkcs+1Z88emEwmrFy5EpGRkU49n2XLluHOO+/E22+/bVcCKIoigJq9LxYuXChntvXq1QuDBw/G9OnTsX79ejn416pVK4wZMwbbtm3DsGHD7NYVExODd999F4DtvdGgQQN8+umn+Pe//42bb7650vd1XbxniIiIKsMSPCIiIheZM2cOPvzwQ7tfZUvPevTogYiICGRmZsqP5efn48cff5SznwBg165diI6OtivBUqlUSE1NhV6vL7esyp1+/PFHmEwmPPLII3YfxIcPH44GDRpg586ddvODg4PtPvyq1Wq0b98ep0+frvQ60nlSU1PtHr8+40sURWzbtg1JSUkQRRFXr16VfyUmJqKgoAB//vknAECr1eLChQv4/fffnX7eu3btQl5ent3fg1RG9c8//zh9vorcfffdOHnyJH7//XecPHkShw4dqlGmSefOneXgEwA0bdoUd9xxB3bv3g2LxQKLxYI9e/ZgwIABcvAJABo1aoSUlBT8/PPPcrmbs2JiYqoMPlXXvffea9c/6o8//kBOTg5GjRolB58AoF+/foiLi8OOHTsqPJeUGbV9+3ZYrdZqr+Hbb7+F1WrFU0895dB/ShAEADV7XwwZMkT+Oi4uDlqtFq1atbLLPJP+XN77ZfTo0XZfP/zwwwBs92pl6uo9Q0REVBlmQBEREblIhw4dKm1CrlQqMXDgQGRkZKC4uBhqtRrbtm2DyWSyC0CdPXsWN954o8MH31atWgEAzp07554nUAHpenFxcXaPq9VqNG/eHGfPnrV7vHHjxvKHdElYWJhDFtP1zp49C4VC4VAKeP11r169Cp1Oh7S0NKSlpZV7LqkUcuzYsfjxxx8xfPhw3HjjjUh
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"evolution_3_comptes(df, '419103', '200101871', '200127163')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 287,
|
|||
|
|
"id": "84f61ea4-d013-4652-bc92-f62f2cd34568",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"evolution_3_comptes(df, '418587', '200089971', '200127374')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 293,
|
|||
|
|
"id": "67cd6dd0-fb8d-4a52-9f8e-cba1365997ff",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKAAAAJICAYAAABWnpxpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAxWRJREFUeJzs3Xt8zvX/x/Hnde08zIw5zmEjSzlEzpZzySEdJFRLtZhvIUo/UXzTt29UihxKNB0kFH372iyUkoi+CaUTsZFDUthmNjtc+/z+WNdnrraxza7DeNxvNzd2Xe/r83lf8xn29Hq9PhbDMAwBAAAAAAAATmJ19wYAAAAAAABwaSOAAgAAAAAAgFMRQAEAAAAAAMCpCKAAAAAAAADgVARQAAAAAAAAcCoCKAAAAAAAADgVARQAAAAAAACcigAKAAAAAAAATkUABQCAm/z444965ZVXlJ6e7u6tAAAAAE5FAAUAgBv8+eef+sc//qHQ0FBVrlzZ3dsBAAAAnMpiGIbh7k0AAHC5+fzzz3X69GkNGDDA3VsBAAAAnI4KKAAA3KBbt24uDZ8iIyM1d+7ccj3mBx98oMjISB0+fLhcj3sxnPE+cemZO3euIiMj3b0NAAAuKwRQAAC4iD2wKe7Hrl273L3FIi1YsECffPKJu7fh8fbv36/IyEi1aNFCaWlpRa7p2bOnYmNji3xu9+7dioyM1AcffGA+Zg9KrrzySv3222+FXpOenq6WLVsqMjJSTz/9dPm8EQ8RHx+vN998093buGTxdQ0AcDVvd28AAIDLzdixYxUWFlbo8QYNGrhhNxf22muvqU+fPurdu7fD4zfffLP69+8vX19fN+3Ms6xevVqhoaFKTU3VunXrNHjw4HI7tq+vrxISEjRixAiHx9evX19u5/A0CQkJ+uWXX3TvvfeW+7H/8Y9/aOTIkeV+3IqkuK9rAACchQAKAAAX69q1q1q0aOHubVw0Ly8veXl5uXsbHsEwDMXHx2vAgAE6fPiwVq9eXa4BVLdu3bRmzZpCAVRCQoK6d++udevWldu5XMUwDGVlZcnf3/+ij5WVlSUfHx9ZrSUr7vf29pa3N/8MBgDAlWjBAwDAg+Tk5Kh9+/aaNGlSoefS09PVokULPffcc+ZjJ06c0OTJk9W5c2e1aNFCAwcO1H/+858Lnufxxx9Xz549Cz3+99k4kZGRysjI0H/+8x+zVfDxxx+XVPwMqKVLl6p///5q3ry5oqKiNG3atEItadHR0RowYID27dun6OhotWrVStddd50WLVp0wb1LUnZ2tp599ll17NhRrVu31qhRo3Ts2LEi1/7++++aNGmSOnfurObNm6t///5auXJloXVLlixR//791apVK7Vr10633Xab4uPjS7Sfb775RkeOHFG/fv3Ur18/bd++vdj9lMWAAQP0008/af/+/eZjf/zxh7Zt21aqWWL2Vr3Vq1erT58+atGihW677TZ9/fXXhdb++OOPeuCBB9SmTRu1bt1aw4cPL9QmWtwspaKuDXv74RdffKHbbrtNLVu21PLly4vcZ3R0tDZu3KgjR46Y1539ev3qq68UGRmpNWvWaNasWbruuuvUqlUrpaenS5I++ugj8/gdOnTQhAkT9Pvvv19w31u2bNGwYcPUtm1btW7dWn369NFLL7104U+qpP/+97+6/fbbzWvnrrvu0ubNmx3WlObr4ueff9bdd9+tVq1a6frrr9fatWslSf/73/80ePBgtWzZUn369NGXX35Z5Pvav3+/Hn74YbVp00YdOnTQM888o6ysLHPd+b6uJdd8zQAALj/81w8AAC6Wnp6ukydPOjxmsVhUrVo1+fj4qHfv3vr44481bdo0h/a2Tz75RNnZ2erXr58k6ezZs4qOjtavv/6qu+66S2FhYVq7dq0ef/xxpaWlafjw4Re91+eff15PPvmkWrZsqTvuuEPS+VsF586dq3nz5qlz584aNmyYkpOTtWzZMu3evVvLli2Tj4+PuTY1NVUPPPCArr/+evXt21fr1q3TzJkz1bRpU3Xr1u28+3riiSe0evVqDRgwQG3atNG2bduKbKn6888/dccdd8hiseiuu+5SSEiINm3apCeeeELp6elme9d7772nZ555Rn369NE999yjrKws7dmzR99++61uuummC36e4uPj1aBBA7Vs2VJNmzaVv7+/EhIS9MADD1zwtSXRrl071a5dWwkJCXr44YclSYmJiQoMDFT37t1Ldayvv/5aiYmJio6Olq+vr5YtW6YHHnhA77//vpo2bSpJ+uWXX3TXXXepUqVKeuCBB+Tt7a0VK1YoOjpa77zzjlq1alWm95GcnKxHH31UQ4YM0R133KHw8PAi140aNUqnT5/WsWPHzDC2UqVKDmteeeUV+fj4KCYmRtnZ2fLx8dEHH3ygSZMmqUWLFnrkkUd04sQJvf3229qxY4c+/PBDBQUFFXm+X375RbGxsYqMjNTYsWPl6+urgwcPaseOHRd8T/PmzdPcuXPVunVrjR07Vj4+Pvr222+1bds2RUVFSSr918WoUaPUr18/3XjjjVq2bJkeeeQR5eXl6dlnn9XQoUM1YMAAxcXFaezYsdq4caMqV67ssKdx48apXr16evTRR7Vr1y4tWbJEaWlpev755yWd/+vaVV8zAIDLDwEUAAAuVtRMG19fX+3evVuS1K9fP61atUpbtmxRjx49zDWJiYmqX7++2b63YsUK7d+/Xy+88IIGDhwoSRo6dKiio6M1e/ZsDRo0qNA3pqV1880366mnnlL9+vV18803n3ftyZMn9dprrykqKkqLFi0y26EiIiLMqptBgwaZ648fP67nnntOt9xyiyTp9ttvV8+ePbVq1arzBlA///yzVq9erTvvvFP//Oc/JUl33XWXHn30Ue3Zs8dh7axZs2Sz2RQfH69q1apJkoYNG6ZHHnlE8+bN09ChQ+Xv76+NGzfqiiuu0Jw5c0r9OcrJydHatWs1dOhQSZK/v7969uyp+Pj4cgugpPzrYs2aNWYAFR8fr+uvv77UM7j27t2rVatWqXnz5pKk/v3768Ybb9ScOXM0b948SdLs2bOVk5OjZcuWqX79+pKkW265RTfeeKNeeOEFvfPOO2V6DwcPHtTrr7+u66677rzrunTporfffltpaWnFXndZWVlatWqV2cKXk5NjBphLly6Vn5+fJOnaa69VbGys3nzzTY0dO7bIY23ZskU5OTlatGiRQkJCSvV+5s+fr+uvv15z5sxxaAE0DENS2b4uXnzxRbOyrXPnzurbt68effRRLV++3Az/GjdurJiYGK1fv1633Xabw77CwsL06quvSsr/2qhcubLeffdd3X///bryyivP+3Xtiq8ZAMDliRY8AABcbOrUqXrjjTccfpzbetaxY0dVq1ZNiYmJ5mOpqan68ssvzeonSdq0aZNCQ0MdWrB8fHwUHR2tjIyMItuqnOnLL79UTk6O7rnnHodvxAcPHqzKlSvr888/d1gfGBjo8M2vr6+vWrRooUOHDp33PPbjREdHOzz+94ovwzC0fv169ezZU4Zh6OTJk+aPqKgonT59Wj/88IMkKSgoSMeOHdN3331X6ve9adMmpaSkOPw+2Nuofvnll1Ifrzg33XSTDh48qO+++04HDx7U7t27y1Rp0rp1azN8kqS6deuqV69e2rx5s2w2m2w2m7Zs2aLevXub4ZMk1axZUwMGDNA333xjtruVVlhY2AXDp5K65ZZbHOZHff/99zpx4oSGDRtmhk+S1L17d0VERGjjxo3FHsteGbVhwwbl5eWVeA+ffPKJ8vLy9NBDDxWaP2WxWCSV7euif//+5scREREKCgpS48aNHSrP7L8u6uvlrrvucvj47rvvlpR/rZ6Pq75mAACXJyqgAABwsZYtW553CLm3t7duuOEGJSQkKDs7W76+vlq/fr1ycnIcAqgjR46oYcOGhb7xbdy4sSTp6NGjznkDxbCfLyIiwuFxX19f1a9fX0eOHHF4vHbt2uY36XZVq1YtVMX0d0eOHJHVai3UCvj38548eVJpaWlasWKFVqxYUeSx7K2QI0aM0JdffqnBgwerYcO
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"evolution_3_comptes(df, '200127829', '200127497', '200139377')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 249,
|
|||
|
|
"id": "931c9fef-23de-4332-9143-b3a5380f8e31",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"text/plain": [
|
|||
|
|
"(True, True)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"execution_count": 249,
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "execute_result"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"rupture('200097229', ruptures_df)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 292,
|
|||
|
|
"id": "03d8fb76-5a7b-45d0-ab33-2c9a8dba846c",
|
|||
|
|
"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>date</th>\n",
|
|||
|
|
" <th>old_account</th>\n",
|
|||
|
|
" <th>new_account</th>\n",
|
|||
|
|
" <th>value</th>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </thead>\n",
|
|||
|
|
" <tbody>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>111</th>\n",
|
|||
|
|
" <td>2019-12-31</td>\n",
|
|||
|
|
" <td>200127829</td>\n",
|
|||
|
|
" <td>200127497</td>\n",
|
|||
|
|
" <td>39205.735</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </tbody>\n",
|
|||
|
|
"</table>\n",
|
|||
|
|
"</div>"
|
|||
|
|
],
|
|||
|
|
"text/plain": [
|
|||
|
|
" date old_account new_account value\n",
|
|||
|
|
"111 2019-12-31 200127829 200127497 39205.735"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"import pandas as pd\n",
|
|||
|
|
"from IPython.display import display\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Afficher toutes les lignes et colonnes\n",
|
|||
|
|
"pd.set_option('display.max_rows', None)\n",
|
|||
|
|
"pd.set_option('display.max_columns', None)\n",
|
|||
|
|
"pd.set_option('display.width', 1000) # Largeur totale pour éviter les retours à la ligne\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Affichage tabulaire joli\n",
|
|||
|
|
"display(ruptures_df[ruptures_df['new_account'] == '200127497'])\n",
|
|||
|
|
"#ruptures_df[ruptures_df[old_account] == '200097229']\n",
|
|||
|
|
"# (Optionnel) remettre les options par défaut après affichage\n",
|
|||
|
|
"pd.reset_option('display.max_rows')\n",
|
|||
|
|
"pd.reset_option('display.max_columns')\n",
|
|||
|
|
"pd.reset_option('display.width')\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 270,
|
|||
|
|
"id": "a4413069-e762-45a8-8587-ba53606deb4d",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"name": "stdout",
|
|||
|
|
"output_type": "stream",
|
|||
|
|
"text": [
|
|||
|
|
"48\n"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"# Récupérer tous les IDs qui apparaissent dans ruptures_df\n",
|
|||
|
|
"all_ids = pd.unique(\n",
|
|||
|
|
" ruptures_df[['old_account', 'new_account']].values.ravel()\n",
|
|||
|
|
")\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Filtrer ceux qui satisfont rupture(id, ruptures_df) == (True, True)\n",
|
|||
|
|
"matching_ids = [\n",
|
|||
|
|
" acc_id for acc_id in all_ids\n",
|
|||
|
|
" if rupture(acc_id, ruptures_df) == (True, True)\n",
|
|||
|
|
"]\n",
|
|||
|
|
"\n",
|
|||
|
|
"print(len(matching_ids))\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 290,
|
|||
|
|
"id": "f6c10298-bdc6-4429-bdf8-6d7ac6f107b9",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"text/plain": [
|
|||
|
|
"'200127497'"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"execution_count": 290,
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "execute_result"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"matching_ids[7]"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 297,
|
|||
|
|
"id": "61ef1cb8-cba5-46f3-806f-fef271c29897",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1000x500 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"import matplotlib.pyplot as plt\n",
|
|||
|
|
"import pandas as pd\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Copier pour éviter les effets de bord\n",
|
|||
|
|
"df_plot = ruptures_df.copy()\n",
|
|||
|
|
"df_plot['date'] = pd.to_datetime(df_plot['date'])\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Compter les ruptures par date\n",
|
|||
|
|
"counts = df_plot.groupby('date').size().reset_index(name='rupture_count')\n",
|
|||
|
|
"\n",
|
|||
|
|
"plt.figure(figsize=(10, 5))\n",
|
|||
|
|
"plt.plot(counts['date'], counts['rupture_count'], marker='.')\n",
|
|||
|
|
"plt.xlabel(\"Date\")\n",
|
|||
|
|
"plt.ylabel(\"Nombre de ruptures\")\n",
|
|||
|
|
"plt.title(\"Nombre de ruptures détectées par date\")\n",
|
|||
|
|
"plt.grid(True)\n",
|
|||
|
|
"plt.tight_layout()\n",
|
|||
|
|
"plt.show()\n"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": null,
|
|||
|
|
"id": "97a92b60-1f30-494e-bfe6-8501f1d74979",
|
|||
|
|
"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.13.8"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"nbformat": 4,
|
|||
|
|
"nbformat_minor": 5
|
|||
|
|
}
|