Project_Carmignac/Essai.ipynb

1375 lines
277 KiB
Plaintext
Raw Normal View History

2025-11-25 15:30:27 +01:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 25,
"id": "dad4ac5b-b66f-4eab-acbf-51dc708616ef",
"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",
2025-12-04 09:48:07 +01:00
"import pandas as pd\n",
2025-11-25 15:30:27 +01:00
"\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"
]
},
{
"cell_type": "code",
2025-12-04 09:48:07 +01:00
"execution_count": 63,
2025-11-25 15:30:27 +01:00
"id": "68903172-d4f8-4c6e-96f8-578c5b1afe23",
"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>Agreement - Code</th>\n",
" <th>Company - Id</th>\n",
" <th>Company - Ultimate Parent Id</th>\n",
" <th>Registrar Account - ID</th>\n",
" <th>Registrar Account - Region</th>\n",
" <th>RegistrarAccount - Country</th>\n",
" <th>Product - Asset Type</th>\n",
" <th>Product - Strategy</th>\n",
" <th>Product - Legal Status</th>\n",
" <th>Product - Is Dedie ?</th>\n",
" <th>Product - Fund</th>\n",
" <th>Product - Shareclass Type</th>\n",
" <th>Product - Shareclass Currency</th>\n",
" <th>Product - Isin</th>\n",
" <th>Centralisation Date</th>\n",
" <th>Quantity - AUM</th>\n",
" <th>Value - AUM CCY</th>\n",
" <th>Value - AUM €</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2015-03-31</td>\n",
" <td>35.368</td>\n",
" <td>24648.6666</td>\n",
" <td>24648.6666</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2015-11-30</td>\n",
" <td>35.368</td>\n",
" <td>22413.0553</td>\n",
" <td>22413.0553</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2015-12-31</td>\n",
" <td>35.368</td>\n",
" <td>22051.2406</td>\n",
" <td>22051.2406</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2016-03-31</td>\n",
" <td>35.368</td>\n",
" <td>21626.1173</td>\n",
" <td>21626.1173</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2016-11-30</td>\n",
" <td>35.368</td>\n",
" <td>22489.4502</td>\n",
" <td>22489.4502</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Agreement - Code Company - Id Company - Ultimate Parent Id \\\n",
"0 003 166 166 \n",
"1 003 166 166 \n",
"2 003 166 166 \n",
"3 003 166 166 \n",
"4 003 166 166 \n",
"\n",
" Registrar Account - ID Registrar Account - Region \\\n",
"0 200000647 France \n",
"1 200000647 France \n",
"2 200000647 France \n",
"3 200000647 France \n",
"4 200000647 France \n",
"\n",
" RegistrarAccount - Country Product - Asset Type Product - Strategy \\\n",
"0 France Diversified Patrimoine \n",
"1 France Diversified Patrimoine \n",
"2 France Diversified Patrimoine \n",
"3 France Diversified Patrimoine \n",
"4 France Diversified Patrimoine \n",
"\n",
" Product - Legal Status Product - Is Dedie ? Product - Fund \\\n",
"0 FCP NO Carmignac Patrimoine \n",
"1 FCP NO Carmignac Patrimoine \n",
"2 FCP NO Carmignac Patrimoine \n",
"3 FCP NO Carmignac Patrimoine \n",
"4 FCP NO Carmignac Patrimoine \n",
"\n",
" Product - Shareclass Type Product - Shareclass Currency Product - Isin \\\n",
"0 A EUR FR0010135103 \n",
"1 A EUR FR0010135103 \n",
"2 A EUR FR0010135103 \n",
"3 A EUR FR0010135103 \n",
"4 A EUR FR0010135103 \n",
"\n",
" Centralisation Date Quantity - AUM Value - AUM CCY Value - AUM € \n",
"0 2015-03-31 35.368 24648.6666 24648.6666 \n",
"1 2015-11-30 35.368 22413.0553 22413.0553 \n",
"2 2015-12-31 35.368 22051.2406 22051.2406 \n",
"3 2016-03-31 35.368 21626.1173 21626.1173 \n",
"4 2016-11-30 35.368 22489.4502 22489.4502 "
]
},
2025-12-04 09:48:07 +01:00
"execution_count": 63,
2025-11-25 15:30:27 +01:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
2025-12-04 09:48:07 +01:00
"df = aum_data['AUM ENSAE V2 -20251105.csv']\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "22042f8f-1492-44a4-a492-5074ef1dc9f6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4880297\n"
]
}
],
"source": [
"print(len(df))"
]
},
{
"cell_type": "code",
"execution_count": 76,
"id": "0fff2ef5-35dd-41d3-a8c2-72e4eb30bfcf",
"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>Agreement - Code</th>\n",
" <th>Company - Id</th>\n",
" <th>Company - Ultimate Parent Id</th>\n",
" <th>Registrar Account - ID</th>\n",
" <th>Registrar Account - Region</th>\n",
" <th>RegistrarAccount - Country</th>\n",
" <th>Product - Asset Type</th>\n",
" <th>Product - Strategy</th>\n",
" <th>Product - Legal Status</th>\n",
" <th>Product - Is Dedie ?</th>\n",
" <th>Product - Fund</th>\n",
" <th>Product - Shareclass Type</th>\n",
" <th>Product - Shareclass Currency</th>\n",
" <th>Product - Isin</th>\n",
" <th>Centralisation Date</th>\n",
" <th>Quantity - AUM</th>\n",
" <th>Value - AUM CCY</th>\n",
" <th>Value - AUM €</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2015-03-31</td>\n",
" <td>35.368</td>\n",
" <td>24648.6666</td>\n",
" <td>24648.6666</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2015-11-30</td>\n",
" <td>35.368</td>\n",
" <td>22413.0553</td>\n",
" <td>22413.0553</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2015-12-31</td>\n",
" <td>35.368</td>\n",
" <td>22051.2406</td>\n",
" <td>22051.2406</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2016-03-31</td>\n",
" <td>35.368</td>\n",
" <td>21626.1173</td>\n",
" <td>21626.1173</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2016-11-30</td>\n",
" <td>35.368</td>\n",
" <td>22489.4502</td>\n",
" <td>22489.4502</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Agreement - Code Company - Id Company - Ultimate Parent Id \\\n",
"0 003 166 166 \n",
"1 003 166 166 \n",
"2 003 166 166 \n",
"3 003 166 166 \n",
"4 003 166 166 \n",
"\n",
" Registrar Account - ID Registrar Account - Region \\\n",
"0 200000647 France \n",
"1 200000647 France \n",
"2 200000647 France \n",
"3 200000647 France \n",
"4 200000647 France \n",
"\n",
" RegistrarAccount - Country Product - Asset Type Product - Strategy \\\n",
"0 France Diversified Patrimoine \n",
"1 France Diversified Patrimoine \n",
"2 France Diversified Patrimoine \n",
"3 France Diversified Patrimoine \n",
"4 France Diversified Patrimoine \n",
"\n",
" Product - Legal Status Product - Is Dedie ? Product - Fund \\\n",
"0 FCP NO Carmignac Patrimoine \n",
"1 FCP NO Carmignac Patrimoine \n",
"2 FCP NO Carmignac Patrimoine \n",
"3 FCP NO Carmignac Patrimoine \n",
"4 FCP NO Carmignac Patrimoine \n",
"\n",
" Product - Shareclass Type Product - Shareclass Currency Product - Isin \\\n",
"0 A EUR FR0010135103 \n",
"1 A EUR FR0010135103 \n",
"2 A EUR FR0010135103 \n",
"3 A EUR FR0010135103 \n",
"4 A EUR FR0010135103 \n",
"\n",
" Centralisation Date Quantity - AUM Value - AUM CCY Value - AUM € \n",
"0 2015-03-31 35.368 24648.6666 24648.6666 \n",
"1 2015-11-30 35.368 22413.0553 22413.0553 \n",
"2 2015-12-31 35.368 22051.2406 22051.2406 \n",
"3 2016-03-31 35.368 21626.1173 21626.1173 \n",
"4 2016-11-30 35.368 22489.4502 22489.4502 "
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_200000647 = df[df['Registrar Account - ID'] == '200000647'].copy()\n",
"\n",
"df_200000647.head()\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "54b7ab00-a39e-4ca5-8a92-fa9ca93d69d4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['200000647' '200000654' '200127202' ... '200142574' '200131089'\n",
" '200131084']\n",
"12501\n"
]
}
],
"source": [
"# Liste unique des Registrar Account - ID\n",
"registrar_ids = df['Registrar Account - ID'].unique()\n",
"\n",
"# Afficher\n",
"print(registrar_ids)\n",
"print(len(registrar_ids))\n"
]
},
{
"cell_type": "code",
"execution_count": 77,
"id": "4c0dc459-046a-40c7-8e32-04969c8ce034",
"metadata": {},
"outputs": [],
"source": [
"# Conversion de la colonne Centralisation Date en datetime si ce n'est pas déjà fait\n",
"df_200000647['Centralisation Date'] = pd.to_datetime(df_200000647['Centralisation Date'])\n",
"\n",
"# Tri par date\n",
"df_200000647 = df_200000647.sort_values('Centralisation Date')\n",
"df_200000647.set_index('Centralisation Date', inplace=True)\n"
]
},
{
"cell_type": "code",
"execution_count": 78,
"id": "5c826040-3c46-4c72-9094-664001f5dc9e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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b781DRo0MH5+fiYmJsZ88MEH9prMnl7+lxlcmjZtapo2bWqM+b9Qc/nfvz/QbtiwwbRp08YEBQWZokWLmiZNmpjvvvvOqcfqjz/+MHfccYcJCAgwYWFhZujQoWbZsmVZglS3bt3M008/7XBfK306f/68GT16tKlUqZLx8/MzERER5s477zT79u0zBw4cyHYbM3v1737kVJs51o8//tjcfPPNplixYqZ48eKmZs2aZsqUKbk+Ds7cb//+/aZ79+4mJCTEFC1a1DRq1Mh89dVXDjU5vV6zC6e//fab6dq1qyldurTx8/MzN9xwg+nRo4c5ffp0ruN94403TExMjPH39zcNGjQw69atc3jeZLpw4YJ57rnnTMWKFY2vr68pW7asefLJJ82FCxcc6lasWGEaN25sgoODTWBgoKlcubL9g2Nuz8HsXkdnz541w4cPN2XLljW+vr6mcuXK5tVXXzUZGRkOdZLM4MGDzeeff25q1Khhf+9YunRpro/B1Th06JCx2WxmwYIFZuPGjVf84DlnzhzToEEDU7RoUVOiRAlz++23m+XLlzvULFmyxDRp0sT+vKlfv76ZO3euQ82CBQvMzTffbPz9/U3JkiVN7969zZEjRxxqsuudMVkf28zn/6uvvmrefvttU6FCBePr62vq16/v8OG/b9++2fbsSqwEKWOMOXPmjAkNDTU33HBDlr46Y9u2bUaSmTp1qn3a119/bSSZr7/+2qH2hx9+MJLMnDlz7NMaNGhgGjRokGW5cXFxpmLFim6zzB49epjIyEiTnp5uMjIyzJkzZ3J8TIz55321ZMmSZvr06fb3PmeCVLVq1a7pLwauZfxGCm4pKSlJJ06ccPj7+++/JUk+Pj668847tWjRIl28eNHhfosWLVJqaqp69uwpSTp//ryaNWumOXPmqHfv3nr11VcVHBysfv366fXXX3fJWOfMmSM/Pz/dfvvtmjNnjubMmaOHHnoox/oxY8Zo8ODBKlOmjCZOnKhu3brp7bffVlxcnNLS0hxqT506pbZt26p27dqaOHGiqlatqqeeekpLly7NdVwPPvigpkyZori4OE2YMEE+Pj7q0KFDlrpjx47plltu0cqVKzVkyBC9/vrruvHGG9W/f39NmTLF8uPx+++/a9GiRerYsaMmTZqkJ598Utu3b1fTpk119OhRl43birfeekvR0dEaNWqUJk6cqKioKA0aNEjTp0/PUrtv3z51795drVu31sSJExUSEqJ+/fpp586dkqQmTZrosccekySNGjXK3vNq1aplWVa1atU0btw4SdLAgQPttU2aNJH0zyFuTZo0UXJyskaPHq2XXnpJp0+fVosWLfTjjz9ecZvOnz+vli1bavny5RoyZIiefvppffvtt/rPf/6TpfaTTz7JcgiUs31KT09Xx44dNXbsWNWrV08TJ07U448/rqSkJO3YsUNhYWF66623JEl33nmnfRu7du2aZRxhYWGaM2eOqlatqrJlyzo8dvHx8erVq5dCQkL08ssva8KECWrWrJm+//77Kz4Oztzv2LFjuvXWW7V8+XINGjRIL774oi5cuKDOnTvr888/v+Lys3Px4kW1adNGGzZs0KOPPqrp06dr4MCB+v3333X69Okr3vett97SkCFDVLZsWb3yyiu6/fbb1aVLFx05csShLiMjQ50
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.figure(figsize=(10,5))\n",
"plt.plot(df_200000647.index, df_200000647['Quantity - AUM'], marker='.',linestyle='')\n",
"plt.title('Évolution de la quantité dactifs sous gestion - Account ID 200000647')\n",
"plt.xlabel('Date')\n",
"plt.ylabel('Quantity - AUM')\n",
"plt.grid(True)\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 79,
"id": "10c13bed-7a29-480d-8904-b4a8428904ef",
"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>Agreement - Code</th>\n",
" <th>Company - Id</th>\n",
" <th>Company - Ultimate Parent Id</th>\n",
" <th>Registrar Account - ID</th>\n",
" <th>Registrar Account - Region</th>\n",
" <th>RegistrarAccount - Country</th>\n",
" <th>Product - Asset Type</th>\n",
" <th>Product - Strategy</th>\n",
" <th>Product - Legal Status</th>\n",
" <th>Product - Is Dedie ?</th>\n",
" <th>Product - Fund</th>\n",
" <th>Product - Shareclass Type</th>\n",
" <th>Product - Shareclass Currency</th>\n",
" <th>Product - Isin</th>\n",
" <th>Quantity - AUM</th>\n",
" <th>Value - AUM CCY</th>\n",
" <th>Value - AUM €</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Centralisation Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2015-01-31</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Equity</td>\n",
" <td>Investissement</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Investissement</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010148981</td>\n",
" <td>193.970</td>\n",
" <td>231749.5369</td>\n",
" <td>231749.5369</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2015-01-31</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>35.368</td>\n",
" <td>23359.1493</td>\n",
" <td>23359.1493</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2015-02-28</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Equity</td>\n",
" <td>Investissement</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Investissement</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010148981</td>\n",
" <td>193.970</td>\n",
" <td>241339.4137</td>\n",
" <td>241339.4137</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2015-02-28</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>35.368</td>\n",
" <td>23920.7931</td>\n",
" <td>23920.7931</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2015-03-31</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>35.368</td>\n",
" <td>24648.6666</td>\n",
" <td>24648.6666</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Agreement - Code Company - Id \\\n",
"Centralisation Date \n",
"2015-01-31 003 166 \n",
"2015-01-31 003 166 \n",
"2015-02-28 003 166 \n",
"2015-02-28 003 166 \n",
"2015-03-31 003 166 \n",
"\n",
" Company - Ultimate Parent Id Registrar Account - ID \\\n",
"Centralisation Date \n",
"2015-01-31 166 200000647 \n",
"2015-01-31 166 200000647 \n",
"2015-02-28 166 200000647 \n",
"2015-02-28 166 200000647 \n",
"2015-03-31 166 200000647 \n",
"\n",
" Registrar Account - Region RegistrarAccount - Country \\\n",
"Centralisation Date \n",
"2015-01-31 France France \n",
"2015-01-31 France France \n",
"2015-02-28 France France \n",
"2015-02-28 France France \n",
"2015-03-31 France France \n",
"\n",
" Product - Asset Type Product - Strategy \\\n",
"Centralisation Date \n",
"2015-01-31 Equity Investissement \n",
"2015-01-31 Diversified Patrimoine \n",
"2015-02-28 Equity Investissement \n",
"2015-02-28 Diversified Patrimoine \n",
"2015-03-31 Diversified Patrimoine \n",
"\n",
" Product - Legal Status Product - Is Dedie ? \\\n",
"Centralisation Date \n",
"2015-01-31 FCP NO \n",
"2015-01-31 FCP NO \n",
"2015-02-28 FCP NO \n",
"2015-02-28 FCP NO \n",
"2015-03-31 FCP NO \n",
"\n",
" Product - Fund Product - Shareclass Type \\\n",
"Centralisation Date \n",
"2015-01-31 Carmignac Investissement A \n",
"2015-01-31 Carmignac Patrimoine A \n",
"2015-02-28 Carmignac Investissement A \n",
"2015-02-28 Carmignac Patrimoine A \n",
"2015-03-31 Carmignac Patrimoine A \n",
"\n",
" Product - Shareclass Currency Product - Isin \\\n",
"Centralisation Date \n",
"2015-01-31 EUR FR0010148981 \n",
"2015-01-31 EUR FR0010135103 \n",
"2015-02-28 EUR FR0010148981 \n",
"2015-02-28 EUR FR0010135103 \n",
"2015-03-31 EUR FR0010135103 \n",
"\n",
" Quantity - AUM Value - AUM CCY Value - AUM € \n",
"Centralisation Date \n",
"2015-01-31 193.970 231749.5369 231749.5369 \n",
"2015-01-31 35.368 23359.1493 23359.1493 \n",
"2015-02-28 193.970 241339.4137 241339.4137 \n",
"2015-02-28 35.368 23920.7931 23920.7931 \n",
"2015-03-31 35.368 24648.6666 24648.6666 "
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_200000647.head()"
]
},
{
"cell_type": "code",
"execution_count": 95,
"id": "090b2eae-889b-44b3-9a73-cd0cd0734191",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"def evolution(id=None, n=None):\n",
"\n",
" if id is None :\n",
" registrar_ids = df['Registrar Account - ID'].unique()\n",
" id = registrar_ids[n]\n",
" \n",
" df_id = df[df['Registrar Account - ID'] == id].copy()\n",
" \n",
" # Conversion de la colonne Centralisation Date en datetime si ce n'est pas déjà fait\n",
" df_id['Centralisation Date'] = pd.to_datetime(df_id['Centralisation Date'])\n",
"\n",
" # Tri par date\n",
" df_id = df_id.sort_values('Centralisation Date')\n",
" df_id.set_index('Centralisation Date', inplace=True)\n",
"\n",
" # Aggrégation\n",
" df_agg = df_id.groupby('Centralisation Date')['Quantity - AUM'].sum().reset_index()\n",
" \n",
" plt.figure(figsize=(10,5))\n",
" plt.plot(df_agg['Centralisation Date'], df_agg['Quantity - AUM'], marker='.',linestyle='-')\n",
" plt.title(f'Évolution de la quantité dactifs sous gestion - Account ID{id}')\n",
" plt.xlabel('Date')\n",
" plt.ylabel('Quantity - AUM')\n",
" plt.grid(True)\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 194,
"id": "9f984cb5-fa9c-48fa-a547-c7139d44d3fc",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAHZCAYAAACMzgo1AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAcy5JREFUeJzt3Xd0VNXax/HfpBeSQCAhQVpAkCp4aQYVpDcLAgpWUAQLiIDtxUaxYEVFsVwLYMGr2BAvLQLCVYqIICCIgBSBhJ4ESEjd7x9hRoYkkEmmZCbfz1pZMOfsOWefeaY9s5vFGGMEAAAAACgxP09XAAAAAAC8DYkUAAAAADiIRAoAAAAAHEQiBQAAAAAOIpECAAAAAAeRSAEAAACAg0ikAAAAAMBBJFIAAAAA4CASKXiNdevW6emnn9bx48c9XRUAAABUcCRS8AoHDhzQNddco7i4OEVERHi6OgAAAKjgLMYY4+lKAOczb948paWl6cYbb/R0VQC3SEtL02uvvaZOnTrpiiuu8HR1AADAWWiRglfo3bu3W5Moi8WiCRMmOPWYM2bMkMVi0a5du5x63LJw9nXWrVtXQ4YMcdrxvN2VV16pK6+8slT3HTp0qObPn6/WrVuX+vw//PCDLBaLfvjhh1Ifw5kmTJggi8Vity03N1cPP/ywatWqJT8/P/Xt29czlYOGDBmiunXreroaAOA1SKRQblkTj+L+Vq1a5ekqFunZZ5/VN9984+lqwE02b96sCRMmlChB3r9/vyZMmKD169efs9xrr72mDRs2aO7cuQoNDXVORU/btWuXLBaLyxLejIwMTZgwocTJ2wcffKAXX3xRAwYM0MyZMzVmzBiX1AsFSvoc9AapqakKCQmRxWLRli1bPF0dl5k3b55DP3hdeeWVatasmd22unXr2j47/fz8VLlyZTVv3lzDhw/X6tWrCx3jyJEjevHFF9WhQwfFxMSocuXKuvTSS/XZZ58Vec6srCw98sgjqlGjhkJDQ9WuXTslJSUVWXbFihW6/PLLFRYWpri4OI0aNUonTpwod8fMzs7Ws88+q0aNGikkJETVq1dXnz59tHfv3iLLS9Izzzwji8VS6PG3vu8W9zds2LBij4nyLcDTFQDOZ9KkSUpISCi0/cILL/RAbc7v2Wef1YABAwr9sn7rrbdq0KBBCg4O9kzF4BKbN2/WxIkTdeWVVxb6NX/RokV2t/fv36+JEyeqbt26atmyZZHHy87O1smTJ7VgwQJVq1bN6fVNS0uTJJe1PGRkZGjixImSVKg17vHHH9f//d//2W1bsmSJLrjgAr3yyisuqQ/snes5+O677yo/P98zFSuF2bNny2KxKC4uTp988omefvppT1fJJebNm6dp06aVufdAy5Yt9cADD0iSjh8/ri1btmj27Nl69913NWbMGE2ZMsVWduXKlXrsscfUu3dvPf744woICNCXX36pQYMG2d7zzjRkyBB98cUXGj16tBo0aKAZM2aod+/eWrp0qS6//HJbufXr16tLly5q3LixpkyZor179+qll17Stm3bNH/+/HJzzJycHPXp00crVqzQsGHDdPHFF+vYsWNavXq10tLSVLNmzUKP7969e/Xss88qPDy80L6YmBh99NFHhbYvWLBAn3zyibp3715kzOAFDFBOTZ8+3Ugya9ascfu5JZnx48eX6r7h4eFm8ODBTq2Pq5TlOotSp04dr7l2Z5k9e7aRZJYuXXresmvWrDGSzPTp011eL2OMWbp0aaG6TZ061URERJgjR4645JyHDh1y6HnVqVMn07RpU5fUBYW5+znoSh06dDD9+vUzY8aMMQkJCZ6ujsuMGDHCOPJ1rWPHjoVeU3Xq1DF9+vQpVDYjI8P07dvXSDJvvvmmbftff/1ldu3aZVc2Pz/fdO7c2QQHB5sTJ07Ytq9evdpIMi+++KJtW2Zmpqlfv75JTEy0O0avXr1MfHy8SUtLs2179913jSSzcOHCcnPM559/3gQGBprVq1cXesyKM3DgQNO5c+ciH//idOnSxURGRprMzMwSnwflC4kUyq2SJFLZ2dmmSpUqZsiQIYX2paWlmeDgYPPAAw/Yth04cMDccccdJjY21gQHB5uLL77YzJgxo9B9z/4iOHjwYFOnTp1C5caPH2/3ASep0J81sbBez86dO+2OMW3aNNOkSRMTFBRk4uPjzb333muOHTtmV8b6xvz777+bK6+80oSGhpoaNWqY559/vtjH5kynTp0yo0ePNtWqVTOVKlUyV199tfn777+L/MK7d+9ec/vtt5vY2FgTFBRkmjRpYt5///0SnefsROrIkSPmgQceMM2aNTPh4eEmIiLC9OzZ06xfv96p9S5pfIwx5oMPPjCdOnUyMTExJigoyDRu3NjuC8SZ19KnTx/zv//9z7Rp08YEBwebhIQEM3PmTFsZa0zP/rMmLh07djQdO3Y0xvyT1Jz9d+YX2lWrVpkePXqYyMhIExoaajp06GB+/PHHEj1Wf//9t7n22mtNWFiYiYmJMaNHjzYLFiwolEj179/fPPbYY3b3dSROmZmZZvz48aZBgwYmODjYxMXFmeuuu85s377d7Ny5s8hrtMbqzHgUV9Za108//dT861//MpUqVTIRERGmWbNm5tVXXz3v41CS++3YscMMGDDAVKlSxYSGhpp27dqZ7777zq5Mca/XopLTP//80/Tr189Ur17dBAcHmwsuuMAMHDjQpKamnre+b7zxhklISDAhISGmTZs2Zvny5XbPG6tTp06ZJ5980tSvX98EBQWZmjVrmoceesicOnXKrtyiRYvMZZddZqKiokx4eLhp2LChGTdunF3di3sOFvU6OnHihBk7dqypWbOmCQoKMg0bNjQvvviiyc/PtysnyYwYMcJ8/fXXpmnTprb3jvnz55/3MSiN3bt3G4vFYj7//HPbF+SffvqpyLIfffSRadOmjQkNDTWVK1c2V1xxhd0XbGOMmTdvnunQoYPtedO6dWvzySef2JX5/PPPzb/+9S8TEhJiqlatam6++Wazd+9euzJFxc6Ywo+t9fn/4osvmnfeecfUq1fPBAUFmdatW5uff/7Z7n5FxexcHEmkjDHm+PHjJjo62lxwwQWF4nq2qVOnGklmw4YNtm0PPfSQ8ff3t0tkjDHm2WefNZLMnj17jDEFn8kBAQHmoYcesiuXlZVlKlWqZIYOHVoujpmXl2dq1KhhbrjhBmOMMTk5OebkyZPnfFyWLVtm/P39zYYNG0qcSO3fv9/4+fkV+f0F3oOufSj30tLSdPjwYbttFotFVatWVWBgoK677jp99dVXeueddxQUFGQr88033ygrK0uDBg2SJGVmZurKK6/U9u3bNXLkSCUkJGj27NkaMmSIUlNTdf/995e5rh999JHuvPNOtW3bVsOHD5ck1a9fv9jyEyZM0MSJE9W1a1fdc8892rp1q9566y2tWbNGP/30kwIDA21ljx07pp49e6pfv3664YYb9MUXX+iRRx5R8+bN1atXr3PW684779THH3+sm266Se3bt9eSJUvUp0+fQuUOHDigSy+9VBaLRSNHjlRMTIzmz5+voUOHKj09XaNHj3bo8fjrr7/0zTff6Prrr1dCQoIOHDigd955Rx07dtTmzZtVo0YNp9TbEW+99ZaaNm2qa665RgEBAZo7d67uvfde5efna8SIEXZlt2/frgEDBmjo0KEaPHiwPvjgAw0ZMkStWrVS06ZN1aFDB40aNUpTp07Vo48+qsaNG0uS7d8zNW7cWJMmTdKTTz6p4cOH22bia9++vaSCLm69evVSq1atNH78ePn5+Wn69Onq3Lmz/ve//6lt27bFXlNmZqa6dOmiPXv2aNSoUapRo4Y++ugjLVmypFDZL774otC2ksYpLy9PV111lRYvXqxBgwbp/vvv1/Hjx5WUlKRNmzapa9eueuutt3TPPffouuuuU79+/SRJF198caFzWru6PPPMMzpx4oQmT55se5ySkpJ04403qkuXLnr++eclSVu2bNFPP/10ztdpSe534MABtW/fXhkZGRo1apSqVq2qmTNn6pprrtEXX3yh6667rtjjFyU
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"evolution(n=0)"
]
},
{
"cell_type": "code",
"execution_count": 184,
"id": "70d2ad7a-b834-418f-862d-93e8c1cbbb51",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['200000647', '200000654', '200127202', '404391', '405404',\n",
" '405639', '406533', '411698', '412158'], dtype=object)"
]
},
"execution_count": 184,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_166 = df[df['Company - Id'] == '166'].copy()\n",
"registrar_ids_166 = df_166['Registrar Account - ID'].unique()\n",
"registrar_ids_166"
]
},
{
"cell_type": "code",
"execution_count": 185,
"id": "9803d35a-41fb-4e5a-b728-ef5abd151045",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAHZCAYAAACMzgo1AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAcy5JREFUeJzt3Xd0VNXax/HfpBeSQCAhQVpAkCp4aQYVpDcLAgpWUAQLiIDtxUaxYEVFsVwLYMGr2BAvLQLCVYqIICCIgBSBhJ4ESEjd7x9hRoYkkEmmZCbfz1pZMOfsOWefeaY9s5vFGGMEAAAAACgxP09XAAAAAAC8DYkUAAAAADiIRAoAAAAAHEQiBQAAAAAOIpECAAAAAAeRSAEAAACAg0ikAAAAAMBBJFIAAAAA4CASKXiNdevW6emnn9bx48c9XRUAAABUcCRS8AoHDhzQNddco7i4OEVERHi6OgAAAKjgLMYY4+lKAOczb948paWl6cYbb/R0VQC3SEtL02uvvaZOnTrpiiuu8HR1AADAWWiRglfo3bu3W5Moi8WiCRMmOPWYM2bMkMVi0a5du5x63LJw9nXWrVtXQ4YMcdrxvN2VV16pK6+8slT3HTp0qObPn6/WrVuX+vw//PCDLBaLfvjhh1Ifw5kmTJggi8Vity03N1cPP/ywatWqJT8/P/Xt29czlYOGDBmiunXreroaAOA1SKRQblkTj+L+Vq1a5ekqFunZZ5/VN9984+lqwE02b96sCRMmlChB3r9/vyZMmKD169efs9xrr72mDRs2aO7cuQoNDXVORU/btWuXLBaLyxLejIwMTZgwocTJ2wcffKAXX3xRAwYM0MyZMzVmzBiX1AsFSvoc9AapqakKCQmRxWLRli1bPF0dl5k3b55DP3hdeeWVatasmd22unXr2j47/fz8VLlyZTVv3lzDhw/X6tWrCx3jyJEjevHFF9WhQwfFxMSocuXKuvTSS/XZZ58Vec6srCw98sgjqlGjhkJDQ9WuXTslJSUVWXbFihW6/PLLFRYWpri4OI0aNUonTpwod8fMzs7Ws88+q0aNGikkJETVq1dXnz59tHfv3iLLS9Izzzwji8VS6PG3vu8W9zds2LBij4nyLcDTFQDOZ9KkSUpISCi0/cILL/RAbc7v2Wef1YABAwr9sn7rrbdq0KBBCg4O9kzF4BKbN2/WxIkTdeWVVxb6NX/RokV2t/fv36+JEyeqbt26atmyZZHHy87O1smTJ7VgwQJVq1bN6fVNS0uTJJe1PGRkZGjixImSVKg17vHHH9f//d//2W1bsmSJLrjgAr3yyisuqQ/snes5+O677yo/P98zFSuF2bNny2KxKC4uTp988omefvppT1fJJebNm6dp06aVufdAy5Yt9cADD0iSjh8/ri1btmj27Nl69913NWbMGE2ZMsVWduXKlXrsscfUu3dvPf744woICNCXX36pQYMG2d7zzjRkyBB98cUXGj16tBo0aKAZM2aod+/eWrp0qS6//HJbufXr16tLly5q3LixpkyZor179+qll17Stm3bNH/+/HJzzJycHPXp00crVqzQsGHDdPHFF+vYsWNavXq10tLSVLNmzUKP7969e/Xss88qPDy80L6YmBh99NFHhbYvWLBAn3zyibp3715kzOAFDFBOTZ8+3Ugya9ascfu5JZnx48eX6r7h4eFm8ODBTq2Pq5TlOotSp04dr7l2Z5k9e7aRZJYuXXresmvWrDGSzPTp011eL2OMWbp0aaG6TZ061URERJgjR4645JyHDh1y6HnVqVMn07RpU5fUBYW5+znoSh06dDD9+vUzY8aMMQkJCZ6ujsuMGDHCOPJ1rWPHjoVeU3Xq1DF9+vQpVDYjI8P07dvXSDJvvvmmbftff/1ldu3aZVc2Pz/fdO7c2QQHB5sTJ07Ytq9evdpIMi+++KJtW2Zmpqlfv75JTEy0O0avXr1MfHy8SUtLs2179913jSSzcOHCcnPM559/3gQGBprVq1cXesyKM3DgQNO5c+ciH//idOnSxURGRprMzMwSnwflC4kUyq2SJFLZ2dmmSpUqZsiQIYX2paWlmeDgYPPAAw/Yth04cMDccccdJjY21gQHB5uLL77YzJgxo9B9z/4iOHjwYFOnTp1C5caPH2/3ASep0J81sbBez86dO+2OMW3aNNOkSRMTFBRk4uPjzb333muOHTtmV8b6xvz777+bK6+80oSGhpoaNWqY559/vtjH5kynTp0yo0ePNtWqVTOVKlUyV199tfn777+L/MK7d+9ec/vtt5vY2FgTFBRkmjRpYt5///0SnefsROrIkSPmgQceMM2aNTPh4eEmIiLC9OzZ06xfv96p9S5pfIwx5oMPPjCdOnUyMTExJigoyDRu3NjuC8SZ19KnTx/zv//9z7Rp08YEBwebhIQEM3PmTFsZa0zP/rMmLh07djQdO3Y0xvyT1Jz9d+YX2lWrVpkePXqYyMhIExoaajp06GB+/PHHEj1Wf//9t7n22mtNWFiYiYmJMaNHjzYLFiwolEj179/fPPbYY3b3dSROmZmZZvz48aZBgwYmODjYxMXFmeuuu85s377d7Ny5s8hrtMbqzHgUV9Za108//dT861//MpUqVTIRERGmWbNm5tVXXz3v41CS++3YscMMGDDAVKlSxYSGhpp27dqZ7777zq5Mca/XopLTP//80/Tr189Ur17dBAcHmwsuuMAMHDjQpKamnre+b7zxhklISDAhISGmTZs2Zvny5XbPG6tTp06ZJ5980tSvX98EBQWZmjVrmoceesicOnXKrtyiRYvMZZddZqKiokx4eLhp2LChGTdunF3di3sOFvU6OnHihBk7dqypWbOmCQoKMg0bNjQvvviiyc/PtysnyYwYMcJ8/fXXpmnTprb3jvnz55/3MSiN3bt3G4vFYj7//HPbF+SffvqpyLIfffSRadOmjQkNDTWVK1c2V1xxhd0XbGOMmTdvnunQoYPtedO6dWvzySef2JX5/PPPzb/+9S8TEhJiqlatam6++Wazd+9euzJFxc6Ywo+t9fn/4osvmnfeecfUq1fPBAUFmdatW5uff/7Z7n5FxexcHEmkjDHm+PHjJjo62lxwwQWF4nq2qVOnGklmw4YNtm0PPfSQ8ff3t0tkjDHm2WefNZLMnj17jDEFn8kBAQHmoYcesiuXlZVlKlWqZIYOHVoujpmXl2dq1KhhbrjhBmOMMTk5OebkyZPnfFyWLVtm/P39zYYNG0qcSO3fv9/4+fkV+f0F3oOufSj30tLSdPjwYbttFotFVatWVWBgoK677jp99dVXeueddxQUFGQr88033ygrK0uDBg2SJGVmZurKK6/U9u3bNXLkSCUkJGj27NkaMmSIUlNTdf/995e5rh999JHuvPNOtW3bVsOHD5ck1a9fv9jyEyZM0MSJE9W1a1fdc8892rp1q9566y2tWbNGP/30kwIDA21ljx07pp49e6pfv3664YYb9MUXX+iRRx5R8+bN1atXr3PW684779THH3+sm266Se3bt9eSJUvUp0+fQuUOHDigSy+9VBaLRSNHjlRMTIzmz5+voUOHKj09XaNHj3bo8fjrr7/0zTff6Prrr1dCQoIOHDigd955Rx07dtTmzZtVo0YNp9TbEW+99ZaaNm2qa665RgEBAZo7d67uvfde5efna8SIEXZlt2/frgEDBmjo0KEaPHiwPvjgAw0ZMkStWrVS06ZN1aFDB40aNUpTp07Vo48+qsaNG0uS7d8zNW7cWJMmTdKTTz6p4cOH22bia9++vaSCLm69evVSq1atNH78ePn5+Wn69Onq3Lmz/ve//6lt27bFXlNmZqa6dOmiPXv2aNSoUapRo4Y++ugjLVmypFDZL774otC2ksYpLy9PV111lRYvXqxBgwbp/vvv1/Hjx5WUlKRNmzapa9eueuutt3TPPffouuuuU79+/SRJF198caFzWru6PPPMMzpx4oQmT55se5ySkpJ04403qkuXLnr++eclSVu2bNFPP/10ztdpSe534MABtW/fXhkZGRo1apSqVq2qmTNn6pprrtEXX3yh6667rtjjFyU
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"evolution('200000647')"
]
},
{
"cell_type": "code",
"execution_count": 198,
"id": "56808237-77da-4ecc-9d5e-746eb8c9165a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA2wAAAHZCAYAAAD69Li+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAh99JREFUeJzt3Xd4U9UfBvA3Sdt00JZCSweUtuxVhmVYUIYUylDEAgIONihSFVBRHCwHij9ZCuJgqYAMEZRdyxIoiAiykWkFOijQXdo0Ob8/Si5Nk7YppJnv53mq5N6Tm3NvTk/zzTn3e2RCCAEiIiIiIiKyOnJLV4CIiIiIiIgMY8BGRERERERkpRiwERERERERWSkGbERERERERFaKARsREREREZGVYsBGRERERERkpRiwERERERERWSkGbERERERERFaKARuRiR09ehQffPABsrKyLF0VIiIiIrJxDNiITCglJQV9+vRBQEAAPD09LV0dIiIiIrJxMiGEsHQliOzFli1bkJGRgcGDB1u6KkRmkZGRgXnz5qFLly549NFHLV0dIiIiu8MRNiIT6tWrl1mDNZlMhmnTppn0mMuWLYNMJsOVK1dMetwHYerzDA0NxbBhw0x2PFvXuXNndO7c+b6eO3LkSGzduhWtW7e+79ffvXs3ZDIZdu/efd/HMKVp06ZBJpPpbCssLMSkSZMQHBwMuVyOvn37WqZyhGHDhiE0NNTS1SAiMhsGbEQPSBvglPZz8OBBS1fRoI8++ggbNmywdDXITE6fPo1p06YZFYhfv34d06ZNw7Fjx8osN2/ePBw/fhy//vor3NzcTFPRu65cuQKZTFZpgXVubi6mTZtmdJC4ZMkSfPrpp+jfvz+WL1+OCRMmVEq9qIixbdAWpKenw9XVFTKZDGfOnLF0dSrNli1bKvTFWufOndGsWTOdbaGhodLfTrlcjqpVqyI8PBxjxozBoUOHDB5nwoQJeOihh1CtWjW4u7ujcePGmDZtGrKzsw2W/+uvv9CnTx+pfLNmzTB//ny9uhn6e96jRw+dcqdOncKAAQNQp04duLu7w9fXFx07dsSvv/6q97plfU7o1q2bVE77hVFpP/v37zfq+pJ9cbJ0BYjsxYwZMxAWFqa3vV69ehaoTfk++ugj9O/fX2+k4Pnnn8egQYOgVCotUzGqFKdPn8b06dPRuXNnvdGJHTt26Dy+fv06pk+fjtDQULRs2dLg8QoKCpCTk4Nt27bB19fX5PXNyMgAgEobScnNzcX06dMBQG908d1338Vbb72ls23nzp2oWbMm5syZUyn1IV1ltcFvvvkGGo3GMhW7D2vXroVMJkNAQABWrFiBDz74wNJVqhRbtmzBggULHng2RMuWLfHaa68BALKysnDmzBmsXbsW33zzDSZMmIDZs2frlD98+DAeffRRDB8+HK6urjh69Cg+/vhj/Pbbb9i7dy/k8ntjEzt27MATTzyBVq1a4b333kOVKlVw8eJFXL16Va8etWrVwsyZM3W2BQUF6Tz+999/kZWVhaFDhyIoKAi5ubn46aef0KdPH3z11VcYM2aMVPb777/Xe40///wT8+bNQ/fu3aVtMTExBj83vP3228jOzkabNm3KunxkpxiwEZlIz549H2hamLVQKBRQKBSWrgaZkYuLy3095+23366E2hTZu3cvPD098corr1Taa5TGyckJTk66fx5TU1NRtWpVs9eF9Dk7O1u6ChXyww8/oFevXggJCcHKlSvtNmAzlZo1a+K5557T2fbJJ5/gmWeewZw5c1C/fn2MHTtW2rdv3z69Y9StWxevv/46/vjjDzz88MMAgMzMTAwZMgS9e/fGunXrdAI5Q7y9vfXqUVKvXr3Qq1cvnW2xsbGIiIjA7NmzdQI2Q8fSTgcvfitF8+bN0bx5c51y//33H65evYpRo0bdV39Nto9TIonMQKVSoVq1ahg+fLjevszMTLi6uuL111+XtqWmpmLkyJHw9/eHq6srWrRogeXLl5f7OqXd21HynhyZTIacnBwsX75cmmahnXpW2j1sCxcuRNOmTaFUKhEUFIRx48YhPT1dp4x2isvp06fRpUsXuLu7o2bNmpg1a1a5dQeA/Px8TJgwAX5+fvD09ESfPn0MfvMJANeuXcOIESPg7+8PpVKJpk2bYsmSJUa9Tkm3bt3C66+/jvDwcFSpUgVeXl7o2bMn/v777weqd8l774x9fwBg6dKleOyxx1CjRg0olUo0adIEX375pd5zQ0ND8fjjj2Pfvn1o27YtXF1dUadOHXz33XdSmWXLlmHAgAEAgC5dukjvuXY6YPF72Hbv3i19gzt8+HCp7LJly6TjHTp0CD169IC3tzfc3d3RqVMno6fpXL16FX379oWHhwdq1KiBCRMmID8/X6/cnj178Morr6BatWrStoq8T3fu3MG0adPQoEEDuLq6IjAwEDExMbh48SKuXLkCPz8/AMD06dOlc9S+V8XfD+3UzF27duHUqVN61+7HH39EREQEPD094eXlhfDwcMybN6/c62DM8y5duoQBAwZIU7cefvhhbN68WadMab+vhu4LPH/+PPr164eAgAC4urqiVq1aGDRokDSaWZYFCxagTp06cHNzQ9u2bfH7778bvPcxPz8fU6dORb169aBUKhEcHIxJkybpvcdxcXF45JFHULVqVVSpUgUNGzaUvgAorw0a+j3KycnBa6+9huDgYCiVSjRs2BD/+9//UDKvmkwmQ2xsLDZs2IBmzZpJfce2bdvKvQb3IzExEb///jsGDRqEQYMG4fLlyzhw4IDBsj/88APatm0Ld3d3+Pj4oGPHjnqj31u3bkWnTp2kdtOmTRusXLlSp8zatWsREREBNzc3+Pr64rnnnsO1a9d0ypR232rJa6tt///73//w9ddfo27dulAqlWjTpg0OHz6s87wFCxYA0J36Zypubm74/vvvUa1aNXz44Yd672tJ2nMo/jdq5cqVSElJwYcffgi5XI6cnJxyR2oLCwtLnVpZGoVCgeDgYL2/jyXl5+fjp59+QqdOnVCrVq0yy65atQpCCDz77LMVqgvZD46wEZlIRkYG0tLSdLbJZDJUr14dzs7OeOqpp7B+/Xp89dVXOt+QbdiwAfn5+Rg0aBAAIC8vD507d8aFCxcQGxuLsLAwrF27FsOGDUN6ejpeffXVB67r999/j1GjRqFt27bSN4B169Yttfy0adMwffp0REVFYezYsTh37hy+/PJLHD58GPv379f5xvv27dvo0aMHYmJi8PTTT2PdunV48803ER4ejp49e5ZZr1GjRuGHH37AM888g/bt22Pnzp3o3bu3XrmUlBQ8/PDD0ocvPz8/bN26FSNHjkRmZibGjx9foetx6dIlbNiwAQMGDEBYWBhSUlLw1VdfoVOnTjh9+rTeNJj7rXdFfPnll2jatCn69OkDJycn/Prrr3jppZeg0Wgwbtw4nbIXLlxA//79MXLkSAwdOhRLlizBsGHDEBERgaZNm6Jjx4545ZVXMH/+fLz99tto3LgxAEj/L65x48aYMWMGpkyZgjFjxkiZH9u3bw+gaGpgz549ERERgalTp0Iul0vB5e+//462bduWek55eXno2rUrEhMT8corryAoKAjff/89du7cqVd23bp1etuMfZ/UajUef/xxxMfHY9CgQXj11VeRlZWFuLg4nDx5ElFRUfjyyy8xduxYPPXUU4iJiQEAvW+1AcDPzw/ff/89PvzwQ2RnZ0tTpBo3boy4uDgMHjwYXbt2xSeffAIAOHPmDPbv31/m76kxz0tJSUH79u2Rm5uLV155BdWrV8fy5cvRp08frFu3Dk899VSpxzekoKAA0dHRyM/Px8svv4yAgABcu3YNmzZtQnp6Ory9vUt97pdffonY2Fg8+uijmDBhAq5cuYK+ffvCx8dH54OmRqNBnz59sG/fPowZMwaNGzfGiRMnMGfOHPzzzz/SPbOnTp3C448/jubNm2PGjBlQKpW4cOGCFPSX1wZLEkKgT58+2LVrF0aOHImWLVti+/bteOONN3Dt2jW9aaz79u3D+vXr8dJLL8HT0xPz589Hv379kJiYiOr
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"evolution('365377')"
]
},
{
"cell_type": "code",
"execution_count": 199,
"id": "2744b901-ed7a-45a5-96a3-c6cdbde7a912",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"evolution('365409')"
]
},
{
"cell_type": "code",
"execution_count": 195,
"id": "428fa3a9-2ed6-476a-a552-e5bdaf4f1f56",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Product - Asset Type\n",
"Equity 2023860\n",
"Diversified 1377424\n",
"Fixed Income 948728\n",
"Alternative 214235\n",
"Private Assets 219\n",
"Name: count, dtype: int64\n"
]
}
],
"source": [
"import pandas as pd\n",
"\n",
"# Comptage du nombre de comptes distincts par type dasset\n",
"result = df.groupby(\"Product - Asset Type\")[\"Registrar Account - ID\"].nunique().reset_index()\n",
"\n",
"# Renommage de colonne pour plus de clarté\n",
"result = result.rename(columns={\"Registrar Account - ID\": \"Nombre de comptes\"})\n",
"\n",
"result = df[\"Product - Asset Type\"].value_counts()\n",
"print(result)\n"
]
},
{
"cell_type": "code",
"execution_count": 196,
"id": "adc9e4c3-54e8-435f-af50-bce48ae7a401",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"RegistrarAccount - Country\n",
"France 2200046\n",
"Italy 699749\n",
"Switzerland 430383\n",
"Spain 325147\n",
"Luxembourg 320383\n",
"Germany 248409\n",
"Belgium 196894\n",
"United Kingdom 181071\n",
"Us Offshore 63949\n",
"Netherlands 55772\n",
"Latam 39207\n",
"Monaco 24416\n",
"Austria 19310\n",
"Singapore 16475\n",
"Sweden 14425\n",
"Portugal 7519\n",
"Israel 6459\n",
"Hong Kong 5336\n",
"Liechtenstein 5244\n",
"Unknown 4551\n",
"Denmark 2554\n",
"Mauritius 2052\n",
"Malta 1748\n",
"Ireland 1682\n",
"United Arab Emirates 1515\n",
"Greece 1253\n",
"International 1223\n",
"Taiwan 995\n",
"Canada 713\n",
"Finland 394\n",
"Czech Republic 294\n",
"Japan 260\n",
"Poland 209\n",
"South Korea 160\n",
"Bahamas 160\n",
"Lithuania 122\n",
"South Africa 94\n",
"United States 80\n",
"Norway 44\n",
"Name: count, dtype: int64\n"
]
}
],
"source": [
"import pandas as pd\n",
"\n",
"# Comptage du nombre de comptes distincts par type dasset\n",
"result = df.groupby(\"RegistrarAccount - Country\")[\"Registrar Account - ID\"].nunique().reset_index()\n",
"\n",
"# Renommage de colonne pour plus de clarté\n",
"result = result.rename(columns={\"Registrar Account - ID\": \"Nombre de comptes\"})\n",
"\n",
"result = df[\"RegistrarAccount - Country\"].value_counts()\n",
"print(result)"
]
},
{
"cell_type": "code",
"execution_count": 200,
"id": "7a30da9a-e1a6-4451-b742-32a81d353bb2",
"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>Agreement - Code</th>\n",
" <th>Company - Id</th>\n",
" <th>Company - Ultimate Parent Id</th>\n",
" <th>Registrar Account - ID</th>\n",
" <th>Registrar Account - Region</th>\n",
" <th>RegistrarAccount - Country</th>\n",
" <th>Product - Asset Type</th>\n",
" <th>Product - Strategy</th>\n",
" <th>Product - Legal Status</th>\n",
" <th>Product - Is Dedie ?</th>\n",
" <th>Product - Fund</th>\n",
" <th>Product - Shareclass Type</th>\n",
" <th>Product - Shareclass Currency</th>\n",
" <th>Product - Isin</th>\n",
" <th>Centralisation Date</th>\n",
" <th>Quantity - AUM</th>\n",
" <th>Value - AUM CCY</th>\n",
" <th>Value - AUM €</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2019-08-31</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2019-07-31</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2020-02-29</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2020-05-31</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>003</td>\n",
" <td>166</td>\n",
" <td>166</td>\n",
" <td>200000647</td>\n",
" <td>France</td>\n",
" <td>France</td>\n",
" <td>Diversified</td>\n",
" <td>Patrimoine</td>\n",
" <td>FCP</td>\n",
" <td>NO</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>A</td>\n",
" <td>EUR</td>\n",
" <td>FR0010135103</td>\n",
" <td>2021-04-30</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Agreement - Code Company - Id Company - Ultimate Parent Id \\\n",
"10 003 166 166 \n",
"14 003 166 166 \n",
"15 003 166 166 \n",
"16 003 166 166 \n",
"17 003 166 166 \n",
"\n",
" Registrar Account - ID Registrar Account - Region \\\n",
"10 200000647 France \n",
"14 200000647 France \n",
"15 200000647 France \n",
"16 200000647 France \n",
"17 200000647 France \n",
"\n",
" RegistrarAccount - Country Product - Asset Type Product - Strategy \\\n",
"10 France Diversified Patrimoine \n",
"14 France Diversified Patrimoine \n",
"15 France Diversified Patrimoine \n",
"16 France Diversified Patrimoine \n",
"17 France Diversified Patrimoine \n",
"\n",
" Product - Legal Status Product - Is Dedie ? Product - Fund \\\n",
"10 FCP NO Carmignac Patrimoine \n",
"14 FCP NO Carmignac Patrimoine \n",
"15 FCP NO Carmignac Patrimoine \n",
"16 FCP NO Carmignac Patrimoine \n",
"17 FCP NO Carmignac Patrimoine \n",
"\n",
" Product - Shareclass Type Product - Shareclass Currency Product - Isin \\\n",
"10 A EUR FR0010135103 \n",
"14 A EUR FR0010135103 \n",
"15 A EUR FR0010135103 \n",
"16 A EUR FR0010135103 \n",
"17 A EUR FR0010135103 \n",
"\n",
" Centralisation Date Quantity - AUM Value - AUM CCY Value - AUM € \n",
"10 2019-08-31 0.0 0.0 0.0 \n",
"14 2019-07-31 0.0 0.0 0.0 \n",
"15 2020-02-29 0.0 0.0 0.0 \n",
"16 2020-05-31 0.0 0.0 0.0 \n",
"17 2021-04-30 0.0 0.0 0.0 "
]
},
"execution_count": 200,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dg = df[df['Quantity - AUM'] == 0].copy()\n",
"dg.head()"
]
},
{
"cell_type": "code",
"execution_count": 201,
"id": "77319126-2d43-4987-838a-b43c41c8cf86",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3099024"
]
},
"execution_count": 201,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(dg)"
]
},
{
"cell_type": "code",
"execution_count": 202,
"id": "629fcf04-9f92-46e0-be77-cf09a427a8f5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4880297"
]
},
"execution_count": 202,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(df)"
]
},
{
"cell_type": "code",
"execution_count": 207,
"id": "bd189ebf-7266-45ce-931c-89b3b9ccbd02",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Index(['100000014', '100000016', '100000038', '100000044', '100000047',\n",
" '100000057', '100000062', '100000074', '100000077', '100000087',\n",
" ...\n",
" '7905', '7912', '7962', '80084', '81036', '8354', '8416', '85419',\n",
" '88511', '88928'],\n",
" dtype='object', name='Registrar Account - ID', length=4841)\n"
]
}
],
"source": [
"aum_max = df.groupby('Registrar Account - ID')['Quantity - AUM'].max()\n",
"accounts_always_zero = aum_max[aum_max == 0].index\n",
"aum_max.head()\n",
"print(accounts_always_zero)"
]
},
{
"cell_type": "code",
"execution_count": 205,
"id": "9c186627-396d-496e-977b-0f990fd089ad",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"12501"
]
},
"execution_count": 205,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(aum_max)"
2025-11-25 15:30:27 +01:00
]
},
{
"cell_type": "code",
"execution_count": null,
2025-12-04 09:48:07 +01:00
"id": "a586c717-4718-4a8b-a9cd-38a32f851f50",
2025-11-25 15:30:27 +01:00
"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
}