1457 lines
222 KiB
Plaintext
1457 lines
222 KiB
Plaintext
|
|
{
|
|||
|
|
"cells": [
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"id": "a9037fe3-296e-4a21-b1e5-4763090ef36f",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"# Migration de comptes"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 25,
|
|||
|
|
"id": "fe2bc65b-0c8a-4335-83e9-f339c82f33a1",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"name": "stdout",
|
|||
|
|
"output_type": "stream",
|
|||
|
|
"text": [
|
|||
|
|
"Fichiers Flows : ['projet-bdc-data/carmignac/Flows ENSAE V1 -20251027.csv', 'projet-bdc-data/carmignac/Flows ENSAE V2 -20251105.csv']\n",
|
|||
|
|
"Fichiers AUM : ['projet-bdc-data/carmignac/AUM ENSAE V1 -20251027.csv', 'projet-bdc-data/carmignac/AUM ENSAE V2 -20251105.csv']\n"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"# Import des données\n",
|
|||
|
|
"\n",
|
|||
|
|
"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 FLOWS\n",
|
|||
|
|
"all_files = fs.ls(carmignac_path)\n",
|
|||
|
|
"flows_files = [f for f in all_files if \"Flows\" in f and f.endswith(\".csv\")]\n",
|
|||
|
|
"print(\"Fichiers Flows :\", flows_files)\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Lire tous les fichiers dans un dictionnaire\n",
|
|||
|
|
"flows_data = {}\n",
|
|||
|
|
"for file_path in flows_files:\n",
|
|||
|
|
" with fs.open(file_path, 'r') as f:\n",
|
|||
|
|
" df = pd.read_csv(f, sep=';',low_memory=False)\n",
|
|||
|
|
" flows_data[os.path.basename(file_path)] = df\n",
|
|||
|
|
"\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']\n",
|
|||
|
|
"dg = flows_data['Flows ENSAE V2 -20251105.csv']"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 7,
|
|||
|
|
"id": "e5739d0e-e4e2-473f-8561-89278a8105a3",
|
|||
|
|
"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>0</th>\n",
|
|||
|
|
" <td>2019-12-31</td>\n",
|
|||
|
|
" <td>406533</td>\n",
|
|||
|
|
" <td>200127202</td>\n",
|
|||
|
|
" <td>7.184443e+05</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>2.237343e+05</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>8.888675e+04</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>1.608203e+05</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>6.326882e+04</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>...</th>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>5516</th>\n",
|
|||
|
|
" <td>2019-12-31</td>\n",
|
|||
|
|
" <td>200093279</td>\n",
|
|||
|
|
" <td>200127383</td>\n",
|
|||
|
|
" <td>1.518258e+07</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>5517</th>\n",
|
|||
|
|
" <td>2016-11-30</td>\n",
|
|||
|
|
" <td>200040897</td>\n",
|
|||
|
|
" <td>200054018</td>\n",
|
|||
|
|
" <td>4.775338e+04</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>5519</th>\n",
|
|||
|
|
" <td>2016-08-31</td>\n",
|
|||
|
|
" <td>200042389</td>\n",
|
|||
|
|
" <td>200044787</td>\n",
|
|||
|
|
" <td>2.668920e+04</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>5521</th>\n",
|
|||
|
|
" <td>2016-11-30</td>\n",
|
|||
|
|
" <td>200048502</td>\n",
|
|||
|
|
" <td>200054019</td>\n",
|
|||
|
|
" <td>3.549803e+04</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>5524</th>\n",
|
|||
|
|
" <td>2018-12-31</td>\n",
|
|||
|
|
" <td>200090792</td>\n",
|
|||
|
|
" <td>200117574</td>\n",
|
|||
|
|
" <td>2.123958e+05</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </tbody>\n",
|
|||
|
|
"</table>\n",
|
|||
|
|
"<p>548 rows × 4 columns</p>\n",
|
|||
|
|
"</div>"
|
|||
|
|
],
|
|||
|
|
"text/plain": [
|
|||
|
|
" date old_account new_account value\n",
|
|||
|
|
"0 2019-12-31 406533 200127202 7.184443e+05\n",
|
|||
|
|
"3 2016-06-30 402699 200038850 2.237343e+05\n",
|
|||
|
|
"4 2015-07-31 402703 200013353 8.888675e+04\n",
|
|||
|
|
"5 2019-12-31 404813 200127636 1.608203e+05\n",
|
|||
|
|
"7 2015-03-31 406311 200001401 6.326882e+04\n",
|
|||
|
|
"... ... ... ... ...\n",
|
|||
|
|
"5516 2019-12-31 200093279 200127383 1.518258e+07\n",
|
|||
|
|
"5517 2016-11-30 200040897 200054018 4.775338e+04\n",
|
|||
|
|
"5519 2016-08-31 200042389 200044787 2.668920e+04\n",
|
|||
|
|
"5521 2016-11-30 200048502 200054019 3.549803e+04\n",
|
|||
|
|
"5524 2018-12-31 200090792 200117574 2.123958e+05\n",
|
|||
|
|
"\n",
|
|||
|
|
"[548 rows x 4 columns]"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"execution_count": 7,
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "execute_result"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"# 548 connexions trouvées\n",
|
|||
|
|
"from detection_rupture import detect_ruptures, check_isin_continuity\n",
|
|||
|
|
"\n",
|
|||
|
|
"import matplotlib.pyplot as plt\n",
|
|||
|
|
"import pandas as pd\n",
|
|||
|
|
"\n",
|
|||
|
|
"ruptures_df = detect_ruptures(df, 0.05)\n",
|
|||
|
|
"ruptures_df"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"id": "27bb5cd0-8900-408c-8d4f-2a0692b13179",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"## Ruptures par date"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 71,
|
|||
|
|
"id": "752f5ee3-7c4d-4b8d-913d-d8ffcc32fe17",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1000x500 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"# 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(\"Number of account migrations\")\n",
|
|||
|
|
"plt.title(\"Number of migrations detected by date\")\n",
|
|||
|
|
"plt.grid(True)\n",
|
|||
|
|
"plt.tight_layout()\n",
|
|||
|
|
"plt.show()"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"id": "9fd1c550-96d5-46c7-8a01-903d4f485502",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"## Vérification de la continuité par ISIN"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 40,
|
|||
|
|
"id": "f55d53a6-39fb-4d12-bfdc-1ad0c9ff5fd5",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [],
|
|||
|
|
"source": [
|
|||
|
|
"result_ISIN = check_isin_continuity(df, ruptures_df, tol=0.10)\n",
|
|||
|
|
"result_ISIN_false = result_ISIN[result_ISIN['check'] == False]\n",
|
|||
|
|
"results_ISIN_unique = result_ISIN_false.iloc[:, :3].drop_duplicates()"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 41,
|
|||
|
|
"id": "02a134ce-944b-46d4-8921-747baa6e8e2b",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"text/plain": [
|
|||
|
|
"105"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"execution_count": 41,
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "execute_result"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"len(results_ISIN_unique)"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 42,
|
|||
|
|
"id": "c5f692e7-0fa6-470e-91c5-a7901b7c3eb7",
|
|||
|
|
"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>0</th>\n",
|
|||
|
|
" <td>2019-12-31</td>\n",
|
|||
|
|
" <td>406533</td>\n",
|
|||
|
|
" <td>200127202</td>\n",
|
|||
|
|
" <td>7.184443e+05</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>1</th>\n",
|
|||
|
|
" <td>2016-06-30</td>\n",
|
|||
|
|
" <td>402699</td>\n",
|
|||
|
|
" <td>200038850</td>\n",
|
|||
|
|
" <td>2.237343e+05</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2</th>\n",
|
|||
|
|
" <td>2015-07-31</td>\n",
|
|||
|
|
" <td>402703</td>\n",
|
|||
|
|
" <td>200013353</td>\n",
|
|||
|
|
" <td>8.888675e+04</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>3</th>\n",
|
|||
|
|
" <td>2019-12-31</td>\n",
|
|||
|
|
" <td>404813</td>\n",
|
|||
|
|
" <td>200127636</td>\n",
|
|||
|
|
" <td>1.608203e+05</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>4</th>\n",
|
|||
|
|
" <td>2015-03-31</td>\n",
|
|||
|
|
" <td>406311</td>\n",
|
|||
|
|
" <td>200001401</td>\n",
|
|||
|
|
" <td>6.326882e+04</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>...</th>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>438</th>\n",
|
|||
|
|
" <td>2019-12-31</td>\n",
|
|||
|
|
" <td>200093279</td>\n",
|
|||
|
|
" <td>200127383</td>\n",
|
|||
|
|
" <td>1.518258e+07</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>439</th>\n",
|
|||
|
|
" <td>2016-11-30</td>\n",
|
|||
|
|
" <td>200040897</td>\n",
|
|||
|
|
" <td>200054018</td>\n",
|
|||
|
|
" <td>4.775338e+04</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>440</th>\n",
|
|||
|
|
" <td>2016-08-31</td>\n",
|
|||
|
|
" <td>200042389</td>\n",
|
|||
|
|
" <td>200044787</td>\n",
|
|||
|
|
" <td>2.668920e+04</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>441</th>\n",
|
|||
|
|
" <td>2016-11-30</td>\n",
|
|||
|
|
" <td>200048502</td>\n",
|
|||
|
|
" <td>200054019</td>\n",
|
|||
|
|
" <td>3.549803e+04</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>442</th>\n",
|
|||
|
|
" <td>2018-12-31</td>\n",
|
|||
|
|
" <td>200090792</td>\n",
|
|||
|
|
" <td>200117574</td>\n",
|
|||
|
|
" <td>2.123958e+05</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </tbody>\n",
|
|||
|
|
"</table>\n",
|
|||
|
|
"<p>443 rows × 4 columns</p>\n",
|
|||
|
|
"</div>"
|
|||
|
|
],
|
|||
|
|
"text/plain": [
|
|||
|
|
" date old_account new_account value\n",
|
|||
|
|
"0 2019-12-31 406533 200127202 7.184443e+05\n",
|
|||
|
|
"1 2016-06-30 402699 200038850 2.237343e+05\n",
|
|||
|
|
"2 2015-07-31 402703 200013353 8.888675e+04\n",
|
|||
|
|
"3 2019-12-31 404813 200127636 1.608203e+05\n",
|
|||
|
|
"4 2015-03-31 406311 200001401 6.326882e+04\n",
|
|||
|
|
".. ... ... ... ...\n",
|
|||
|
|
"438 2019-12-31 200093279 200127383 1.518258e+07\n",
|
|||
|
|
"439 2016-11-30 200040897 200054018 4.775338e+04\n",
|
|||
|
|
"440 2016-08-31 200042389 200044787 2.668920e+04\n",
|
|||
|
|
"441 2016-11-30 200048502 200054019 3.549803e+04\n",
|
|||
|
|
"442 2018-12-31 200090792 200117574 2.123958e+05\n",
|
|||
|
|
"\n",
|
|||
|
|
"[443 rows x 4 columns]"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"execution_count": 42,
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "execute_result"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"# Colonnes communes pour comparer\n",
|
|||
|
|
"cols = ['date', 'old_account', 'new_account']\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Merge avec indicateur\n",
|
|||
|
|
"rupture_filtered = ruptures_df.merge(\n",
|
|||
|
|
" results_ISIN_unique[cols],\n",
|
|||
|
|
" on=cols,\n",
|
|||
|
|
" how='left',\n",
|
|||
|
|
" indicator=True\n",
|
|||
|
|
")\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Ne garder que les lignes qui ne sont pas dans results_ISIN_unique\n",
|
|||
|
|
"rupture_filtered = rupture_filtered[rupture_filtered['_merge'] == 'left_only'].drop(columns=['_merge'])\n",
|
|||
|
|
"\n",
|
|||
|
|
"rupture_filtered.reset_index(drop=True, inplace=True)\n",
|
|||
|
|
"\n",
|
|||
|
|
"rupture_filtered\n",
|
|||
|
|
"\n",
|
|||
|
|
"# 443 connexions retenues"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "markdown",
|
|||
|
|
"id": "207c6df5-1b0a-4c06-9cd0-848c958db371",
|
|||
|
|
"metadata": {},
|
|||
|
|
"source": [
|
|||
|
|
"## Prise en compte des migrations avant le clustering"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 43,
|
|||
|
|
"id": "185fd578-bbab-4fe7-be7d-33e259577eb2",
|
|||
|
|
"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",
|
|||
|
|
" <th>account_clustered</th>\n",
|
|||
|
|
" <th>Account_Clustered</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>2.464867e+04</td>\n",
|
|||
|
|
" <td>2.464867e+04</td>\n",
|
|||
|
|
" <td>200000647</td>\n",
|
|||
|
|
" <td>200000647</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>2.241306e+04</td>\n",
|
|||
|
|
" <td>2.241306e+04</td>\n",
|
|||
|
|
" <td>200000647</td>\n",
|
|||
|
|
" <td>200000647</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>2.205124e+04</td>\n",
|
|||
|
|
" <td>2.205124e+04</td>\n",
|
|||
|
|
" <td>200000647</td>\n",
|
|||
|
|
" <td>200000647</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>2.162612e+04</td>\n",
|
|||
|
|
" <td>2.162612e+04</td>\n",
|
|||
|
|
" <td>200000647</td>\n",
|
|||
|
|
" <td>200000647</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>2.248945e+04</td>\n",
|
|||
|
|
" <td>2.248945e+04</td>\n",
|
|||
|
|
" <td>200000647</td>\n",
|
|||
|
|
" <td>200000647</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>...</th>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>4880292</th>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Switzerland</td>\n",
|
|||
|
|
" <td>Switzerland</td>\n",
|
|||
|
|
" <td>Fixed Income</td>\n",
|
|||
|
|
" <td>Sécurité</td>\n",
|
|||
|
|
" <td>SICAV</td>\n",
|
|||
|
|
" <td>NO</td>\n",
|
|||
|
|
" <td>Carmignac Portfolio Sécurité</td>\n",
|
|||
|
|
" <td>AW & AW-R</td>\n",
|
|||
|
|
" <td>EUR</td>\n",
|
|||
|
|
" <td>LU1299306321</td>\n",
|
|||
|
|
" <td>2020-02-29</td>\n",
|
|||
|
|
" <td>26801.000</td>\n",
|
|||
|
|
" <td>2.740670e+06</td>\n",
|
|||
|
|
" <td>2.740670e+06</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>4880293</th>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Switzerland</td>\n",
|
|||
|
|
" <td>Switzerland</td>\n",
|
|||
|
|
" <td>Fixed Income</td>\n",
|
|||
|
|
" <td>Sécurité</td>\n",
|
|||
|
|
" <td>SICAV</td>\n",
|
|||
|
|
" <td>NO</td>\n",
|
|||
|
|
" <td>Carmignac Portfolio Sécurité</td>\n",
|
|||
|
|
" <td>AW & AW-R</td>\n",
|
|||
|
|
" <td>EUR</td>\n",
|
|||
|
|
" <td>LU1299306321</td>\n",
|
|||
|
|
" <td>2020-06-30</td>\n",
|
|||
|
|
" <td>3099.000</td>\n",
|
|||
|
|
" <td>3.122862e+05</td>\n",
|
|||
|
|
" <td>3.122862e+05</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>4880294</th>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Switzerland</td>\n",
|
|||
|
|
" <td>Switzerland</td>\n",
|
|||
|
|
" <td>Fixed Income</td>\n",
|
|||
|
|
" <td>Sécurité</td>\n",
|
|||
|
|
" <td>SICAV</td>\n",
|
|||
|
|
" <td>NO</td>\n",
|
|||
|
|
" <td>Carmignac Portfolio Sécurité</td>\n",
|
|||
|
|
" <td>AW & AW-R</td>\n",
|
|||
|
|
" <td>EUR</td>\n",
|
|||
|
|
" <td>LU1299306321</td>\n",
|
|||
|
|
" <td>2020-10-31</td>\n",
|
|||
|
|
" <td>3099.000</td>\n",
|
|||
|
|
" <td>3.184222e+05</td>\n",
|
|||
|
|
" <td>3.184222e+05</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>4880295</th>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Switzerland</td>\n",
|
|||
|
|
" <td>Switzerland</td>\n",
|
|||
|
|
" <td>Fixed Income</td>\n",
|
|||
|
|
" <td>Sécurité</td>\n",
|
|||
|
|
" <td>SICAV</td>\n",
|
|||
|
|
" <td>NO</td>\n",
|
|||
|
|
" <td>Carmignac Portfolio Sécurité</td>\n",
|
|||
|
|
" <td>AW & AW-R</td>\n",
|
|||
|
|
" <td>EUR</td>\n",
|
|||
|
|
" <td>LU1299306321</td>\n",
|
|||
|
|
" <td>2021-07-31</td>\n",
|
|||
|
|
" <td>2835.000</td>\n",
|
|||
|
|
" <td>2.976183e+05</td>\n",
|
|||
|
|
" <td>2.976183e+05</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>4880296</th>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Switzerland</td>\n",
|
|||
|
|
" <td>Switzerland</td>\n",
|
|||
|
|
" <td>Fixed Income</td>\n",
|
|||
|
|
" <td>Sécurité</td>\n",
|
|||
|
|
" <td>SICAV</td>\n",
|
|||
|
|
" <td>NO</td>\n",
|
|||
|
|
" <td>Carmignac Portfolio Sécurité</td>\n",
|
|||
|
|
" <td>FW & FW-R</td>\n",
|
|||
|
|
" <td>EUR</td>\n",
|
|||
|
|
" <td>LU1792391911</td>\n",
|
|||
|
|
" <td>2020-07-31</td>\n",
|
|||
|
|
" <td>2916.394</td>\n",
|
|||
|
|
" <td>2.874106e+05</td>\n",
|
|||
|
|
" <td>2.874106e+05</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </tbody>\n",
|
|||
|
|
"</table>\n",
|
|||
|
|
"<p>4880297 rows × 20 columns</p>\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",
|
|||
|
|
"4880292 Private Client Private Client Private Client \n",
|
|||
|
|
"4880293 Private Client Private Client Private Client \n",
|
|||
|
|
"4880294 Private Client Private Client Private Client \n",
|
|||
|
|
"4880295 Private Client Private Client Private Client \n",
|
|||
|
|
"4880296 Private Client Private Client Private Client \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",
|
|||
|
|
"4880292 Private Client Switzerland \n",
|
|||
|
|
"4880293 Private Client Switzerland \n",
|
|||
|
|
"4880294 Private Client Switzerland \n",
|
|||
|
|
"4880295 Private Client Switzerland \n",
|
|||
|
|
"4880296 Private Client Switzerland \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",
|
|||
|
|
"4880292 Switzerland Fixed Income Sécurité \n",
|
|||
|
|
"4880293 Switzerland Fixed Income Sécurité \n",
|
|||
|
|
"4880294 Switzerland Fixed Income Sécurité \n",
|
|||
|
|
"4880295 Switzerland Fixed Income Sécurité \n",
|
|||
|
|
"4880296 Switzerland Fixed Income Sécurité \n",
|
|||
|
|
"\n",
|
|||
|
|
" Product - Legal Status Product - Is Dedie ? \\\n",
|
|||
|
|
"0 FCP NO \n",
|
|||
|
|
"1 FCP NO \n",
|
|||
|
|
"2 FCP NO \n",
|
|||
|
|
"3 FCP NO \n",
|
|||
|
|
"4 FCP NO \n",
|
|||
|
|
"... ... ... \n",
|
|||
|
|
"4880292 SICAV NO \n",
|
|||
|
|
"4880293 SICAV NO \n",
|
|||
|
|
"4880294 SICAV NO \n",
|
|||
|
|
"4880295 SICAV NO \n",
|
|||
|
|
"4880296 SICAV NO \n",
|
|||
|
|
"\n",
|
|||
|
|
" Product - Fund Product - Shareclass Type \\\n",
|
|||
|
|
"0 Carmignac Patrimoine A \n",
|
|||
|
|
"1 Carmignac Patrimoine A \n",
|
|||
|
|
"2 Carmignac Patrimoine A \n",
|
|||
|
|
"3 Carmignac Patrimoine A \n",
|
|||
|
|
"4 Carmignac Patrimoine A \n",
|
|||
|
|
"... ... ... \n",
|
|||
|
|
"4880292 Carmignac Portfolio Sécurité AW & AW-R \n",
|
|||
|
|
"4880293 Carmignac Portfolio Sécurité AW & AW-R \n",
|
|||
|
|
"4880294 Carmignac Portfolio Sécurité AW & AW-R \n",
|
|||
|
|
"4880295 Carmignac Portfolio Sécurité AW & AW-R \n",
|
|||
|
|
"4880296 Carmignac Portfolio Sécurité FW & FW-R \n",
|
|||
|
|
"\n",
|
|||
|
|
" Product - Shareclass Currency Product - Isin Centralisation Date \\\n",
|
|||
|
|
"0 EUR FR0010135103 2015-03-31 \n",
|
|||
|
|
"1 EUR FR0010135103 2015-11-30 \n",
|
|||
|
|
"2 EUR FR0010135103 2015-12-31 \n",
|
|||
|
|
"3 EUR FR0010135103 2016-03-31 \n",
|
|||
|
|
"4 EUR FR0010135103 2016-11-30 \n",
|
|||
|
|
"... ... ... ... \n",
|
|||
|
|
"4880292 EUR LU1299306321 2020-02-29 \n",
|
|||
|
|
"4880293 EUR LU1299306321 2020-06-30 \n",
|
|||
|
|
"4880294 EUR LU1299306321 2020-10-31 \n",
|
|||
|
|
"4880295 EUR LU1299306321 2021-07-31 \n",
|
|||
|
|
"4880296 EUR LU1792391911 2020-07-31 \n",
|
|||
|
|
"\n",
|
|||
|
|
" Quantity - AUM Value - AUM CCY Value - AUM € account_clustered \\\n",
|
|||
|
|
"0 35.368 2.464867e+04 2.464867e+04 200000647 \n",
|
|||
|
|
"1 35.368 2.241306e+04 2.241306e+04 200000647 \n",
|
|||
|
|
"2 35.368 2.205124e+04 2.205124e+04 200000647 \n",
|
|||
|
|
"3 35.368 2.162612e+04 2.162612e+04 200000647 \n",
|
|||
|
|
"4 35.368 2.248945e+04 2.248945e+04 200000647 \n",
|
|||
|
|
"... ... ... ... ... \n",
|
|||
|
|
"4880292 26801.000 2.740670e+06 2.740670e+06 Private Client \n",
|
|||
|
|
"4880293 3099.000 3.122862e+05 3.122862e+05 Private Client \n",
|
|||
|
|
"4880294 3099.000 3.184222e+05 3.184222e+05 Private Client \n",
|
|||
|
|
"4880295 2835.000 2.976183e+05 2.976183e+05 Private Client \n",
|
|||
|
|
"4880296 2916.394 2.874106e+05 2.874106e+05 Private Client \n",
|
|||
|
|
"\n",
|
|||
|
|
" Account_Clustered \n",
|
|||
|
|
"0 200000647 \n",
|
|||
|
|
"1 200000647 \n",
|
|||
|
|
"2 200000647 \n",
|
|||
|
|
"3 200000647 \n",
|
|||
|
|
"4 200000647 \n",
|
|||
|
|
"... ... \n",
|
|||
|
|
"4880292 Private Client \n",
|
|||
|
|
"4880293 Private Client \n",
|
|||
|
|
"4880294 Private Client \n",
|
|||
|
|
"4880295 Private Client \n",
|
|||
|
|
"4880296 Private Client \n",
|
|||
|
|
"\n",
|
|||
|
|
"[4880297 rows x 20 columns]"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"execution_count": 43,
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "execute_result"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"# Trier les connexions par date décroissante : plus récentes en premier\n",
|
|||
|
|
"rupture_sorted = rupture_filtered.sort_values('date', ascending=False)\n",
|
|||
|
|
"\n",
|
|||
|
|
"# fusion des connexions\n",
|
|||
|
|
"df['Account_Clustered'] = df['Registrar Account - ID']\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Pour chaque connexion\n",
|
|||
|
|
"for _, row in rupture_sorted.iterrows():\n",
|
|||
|
|
" old = row['old_account']\n",
|
|||
|
|
" new = row['new_account']\n",
|
|||
|
|
" df.loc[df['Account_Clustered'] == new, 'Account_Clustered'] = old\n",
|
|||
|
|
"\n",
|
|||
|
|
"df"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 44,
|
|||
|
|
"id": "27f12c31-08e1-4384-9129-4679d6ebe0ca",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [],
|
|||
|
|
"source": [
|
|||
|
|
"def evolution_compte(df, id1, id = 'Registrar Account - ID'):\n",
|
|||
|
|
" def prepare_df(idt):\n",
|
|||
|
|
" df_id = df[df[id] == idt].copy()\n",
|
|||
|
|
" df_id['Centralisation Date'] = pd.to_datetime(df_id['Centralisation Date'])\n",
|
|||
|
|
" df_agg = (\n",
|
|||
|
|
" df_id\n",
|
|||
|
|
" .groupby('Centralisation Date')['Quantity - AUM']\n",
|
|||
|
|
" .sum()\n",
|
|||
|
|
" .reset_index()\n",
|
|||
|
|
" .sort_values('Centralisation Date')\n",
|
|||
|
|
" )\n",
|
|||
|
|
" return df_agg\n",
|
|||
|
|
"\n",
|
|||
|
|
" df1 = prepare_df(id1)\n",
|
|||
|
|
"\n",
|
|||
|
|
" plt.figure(figsize=(12, 6))\n",
|
|||
|
|
"\n",
|
|||
|
|
" # Courbe du compte\n",
|
|||
|
|
" plt.plot(df1['Centralisation Date'], df1['Quantity - AUM'],\n",
|
|||
|
|
" marker='.', linestyle='-', label=f'Account {id1}')\n",
|
|||
|
|
"\n",
|
|||
|
|
" plt.title(f\"Évolution AUM pour le compte {id1}\")\n",
|
|||
|
|
" plt.xlabel(\"Date\")\n",
|
|||
|
|
" plt.ylabel(\"Quantity - AUM\")\n",
|
|||
|
|
" plt.grid(True)\n",
|
|||
|
|
" plt.legend()\n",
|
|||
|
|
" plt.tight_layout()\n",
|
|||
|
|
" plt.show()"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 51,
|
|||
|
|
"id": "4b952bc5-e823-4276-8066-65dfa5839047",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAksdJREFUeJzs3XlYVGX/x/HPMMAMyCIugCvivq+pkeVSJi4tppm2mJn1lGml/jLTStN60sceK0vLFtOeylJbrNRM0tRKyyU1l1zT3EDcAJEdzu8PnMkRkBkcHJD367q4knPuOfOdmVvDj9/7PibDMAwBAAAAAAAAV5CXpwsAAAAAAABA2UMoBQAAAAAAgCuOUAoAAAAAAABXHKEUAAAAAAAArjhCKQAAAAAAAFxxhFIAAAAAAAC44gilAAAAAAAAcMURSgEAAAAAAOCKI5QCAMBDNm/erJdeeklnz571dCkAAADAFUcoBQCABxw/fly33XabwsPDFRgY6OlyAAAAgCvOZBiG4ekiAAAoa5YuXarExETdfffdni4FAAAA8Ag6pQAA8ICePXte0UDKZDLphRdecOs1586dK5PJpIMHD7r1uvAcPlMAAHAlEUoBAHCF2P7CX9DXr7/+6ukS8/Xyyy9r0aJFni4jX9nZ2apatapMJpO+++67fMc88MADCggIKPAaAQEBeuCBB+zfr1q1yv6ZfPzxx/k+pkOHDjKZTGratOll1Y+SaefOnXrhhReKPZz75JNPZDKZCpyff/75p7p3766AgABVqFBBAwcO1IkTJ/Idu3//ft1zzz0KDQ2Vn5+f6tWrp2effdZhzPr16/XYY4+pTZs28vHxkclkumR9x48f1yOPPKJq1arJarWqVq1aGjJkSJ5xn332mVq3bi2r1arKlStryJAhOnnypJPvAgCgLPP2dAEAAJQ1kyZNUmRkZJ7jdevW9UA1hXv55Zd15513qnfv3g7HBw4cqAEDBshisXimMEkrV65UbGysatWqpU8++UQ9evRw27WtVqvmzZun++67z+H4wYMHtXbtWlmtVrc9F0qWnTt3auLEiercubNq1apVLM+RnJysp59+WuXKlcv3/JEjR9SxY0cFBwfr5ZdfVnJysv773/9q27ZtWr9+vXx9fe1jt2zZos6dO6tatWr6v//7P1WsWFGHDh3S4cOHHa65dOlSvf/++2revLlq166tPXv2FFjf4cOH1aFDB0nSo48+qmrVqunYsWNav369w7i3335bjz32mG666Sa9+uqrOnLkiKZPn66NGzfqt99+4/cJAOCSCKUAALjCevTooWuuucbTZVw2s9kss9ns0Ro+/vhjtW7dWoMGDdK4ceN07ty5Av+S76qePXvqm2++0cmTJ1WpUiX78Xnz5iksLEz16tXTmTNn3PJcV5I73yMU3UsvvaTAwEB16dIl307El19+WefOndOmTZtUs2ZNSVK7du108803a+7cufrXv/4lScrJydHAgQPVsGFD/fjjj/Lz8yvwOYcOHaoxY8bIz89Pw4cPv2Qo9cgjj8jb21sbNmxQxYoV8x2TkZGhcePGqWPHjoqJibF3Xl133XW69dZb9d577+nxxx939i0BAJRBLN8DAKAEyczMVIUKFTR48OA855KSkmS1WvXUU0/Zj8XHx2vIkCEKCwuT1WpVixYt9OGHHxb6PA888EC+HSAvvPCCw5Iek8mkc+fO6cMPP7QvabMtdSto/6G33npLTZo0kcViUdWqVTVs2DAlJCQ4jOncubOaNm2qnTt3qkuXLvL391e1atU0derUQmu3SU1N1VdffaUBAwborrvuUmpqqr7++munH1+Y22+/XRaLRQsXLnQ4Pm/ePN11111OB3K217pp0yZdd9118vPzU2RkpGbNmpVnrDOfp2154apVqxyOHzx4UCaTSXPnzrUfsy1d3L9/v3r27KnAwEDde++9zr0BF/juu+90ww03qFy5cgoMDFSvXr20Y8cOpx6bkJCgkSNHqlatWrJYLKpevbruv/9+h+Vdzrxu2+v773//q5kzZ6p27dry9/dXt27ddPjwYRmGoRdffFHVq1eXn5+fbr/9dp0+fdrhGrVq1dItt9yi5cuXq2XLlrJarWrcuLG+/PJL+5i5c+eqX79+kqQuXbrY5/2F7/flvB+StHfvXr322mt69dVX5e2d/78Rf/HFF7rlllvsgZQkde3aVfXr19eCBQvsx5YvX67t27drwoQJ8vPzU0pKirKzs/O9ZlhY2CVDK5tdu3bpu+++0+jRo1WxYkWlpaUpMzMzz7jt27crISFB/fv3d/hz45ZbblFAQIA+++yzQp8LAFC2EUoBAHCFJSYm6uTJkw5fp06dkiT5+Pjojjvu0KJFi5SRkeHwuEWLFik9PV0DBgyQlBvKdO7cWR999JHuvfdevfLKKwoODtYDDzyg6dOnu6XWjz76SBaLRTfccIM++ugjffTRR3rkkUcKHP/CCy9o2LBhqlq1qqZNm6a+ffvqnXfeUbdu3fL8pfbMmTPq3r27WrRooWnTpqlhw4YaM2ZMgXtDXeybb75RcnKyBgwYoPDwcHXu3FmffPLJZb3eC/n7++v222/Xp59+aj+2detW7dixQ/fcc49L1zpz5ox69uypNm3aaOrUqapevbqGDh2qDz74wD6muD7PrKwsRUdHKzQ0VP/973/Vt29flx7/0UcfqVevXgoICNB//vMfPf/889q5c6euv/76QvdcSk5O1g033KA333xT3bp10/Tp0/Xoo49q165dOnLkiCTXX/cnn3yit956S48//rj+7//+T6tXr9Zdd92l5557TsuWLdOYMWP0r3/9S99++61DgGuzd+9e9e/fXz169NDkyZPl7e2tfv36KSYmRpLUsWNHPfHEE5KkcePG2ed9o0aNLvv9sBkxYoS6dOminj175nv+6NGjio+Pz7ejsl27dtq8ebP9+x9++EGSZLFYdM0116hcuXLy9/fXgAED8oRyzrJdMywsTDfddJP8/Pzk5+enHj16OLzG9PR0Sco36PLz89PmzZuVk5NTpBoAAGWEAQAArog5c+YYkvL9slgs9nHff/+9Icn49ttvHR7fs2dPo3bt2vbvX3/9dUOS8fHHH9uPZWRkGFFRUUZAQICRlJRkPy7JmDBhgv37QYMGGREREXlqnDBhgnHxjwflypUzBg0aVODrOXDggGEYhhEfH2/4+voa3bp1M7Kzs+3jZsyYYUgyPvjgA/uxTp06GZKM//3vf/Zj6enpRnh4uNG3b988z5WfW265xejQoYP9+3fffdfw9vY24uPjHcYNGjTIKFeuXIHXufj1/fjjj4YkY+HChcbixYsNk8lkHDp0yDAMwxg9erT9M+jUqZPRpEmTQuu0vdZp06Y5vNaWLVsaoaGhRkZGhmEYzn+etvp+/PFHh+c5cOCAIcmYM2eOw2uXZDzzzDOF1mkYeT/Ts2fPGuXLlzcefvhhh3FxcXFGcHBwnuMXGz9+vCHJ+PLLL/Ocy8nJcel1215f5cqVjYSEBPvYsWPHGpKMFi1aGJmZmfbjd999t+Hr62ukpaXZj0VERBiSjC+++MJ+LDEx0ahSpYrRqlUr+7GFCxfm+x5f7vthGIaxePFiw9vb29ixY4dhGPnPzw0bNuT5/WEzevRoQ5L9dd12222GJKNixYrGvffea3z++efG888/b3h7exvXXXed/X2+2LBhw/L8Xrd54okn7Nfs3r27MX/+fOOVV14xAgICjDp16hjnzp0zDMMwTpw4YZhMJmPIkCEOj9+1a5f9z7aTJ08W+p4AAMouOqUAALjCZs6cqZiYGIevC7uDbrzxRlWqVEnz58+3Hztz5oxiYmLUv39/+7GlS5cqPDxcd999t/2Yj4+PnnjiCSUnJ2v16tVX5gWd98MPPygjI0MjRoyQl9c/P2I8/PDDCgoK0pIlSxzGBwQEOGwi7uvrq3bt2umvv/4q9LlOnTql77//3uG19+3bVyaTyWFp0+Xq1q2bKlSooM8++0yGYeizzz5zeE5neXt7O3SY+fr66pFHHlF8fLw2bdokqXg/z6FDhxbpcTExMUpISNDdd9/t0Nl
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"evolution_compte(df, '406169')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 50,
|
|||
|
|
"id": "ce811c95-698d-467a-b63a-6e798cd1c02b",
|
|||
|
|
"metadata": {},
|
|||
|
|
"outputs": [
|
|||
|
|
{
|
|||
|
|
"data": {
|
|||
|
|
"image/png": "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8ccf68EHH9Rrr70mLy8vPfLII5o1a1ap1Prxxx/LyclJN998sz7++GN9/PHHevzxxy/Z/8UXX9Tw4cNVr149TZ8+XX379tW7776rHj16FPpL7ZkzZ9SzZ0+1bt1a06dPV7NmzTRmzJhL7g11se+++07nzp1T//795evrq65du+rTTz+9pvd7IVdXV91999367LPPLG2//fab9uzZowceeKBE1zpz5ox69eql0NBQTZs2TQ0aNNCwYcP0wQcfWPqU1fczNzdXERER8vHx0euvv66+ffuW6PyPP/5YkZGRcnd313/+8x+98MIL2rt3r2666aYr7rl07tw53XzzzXrrrbfUo0cPzZo1S0OHDtW+fft07NgxSSV/359++qnefvttPfnkk/q///s/rVu3Tv369dP48eP1448/asyYMfrXv/6l77//3irALXDw4EFFRUXp9ttv15QpU2Rvb6/77rtP0dHRkqTOnTvrqaeekiSNGzfOMu6bN29+zZ9HgWeeeUbdunVTr169ijx+/PhxJSUlFTmjskOHDtq+fbvl9U8//SRJcnJyUvv27eXm5iZXV1f179+/UChXXAXXrFu3rm699Va5uLjIxcVFt99+u9V7zMrKkqQigy4XFxdt375d+fn5V1UDAKCaMAAAQLmYP3++IanILycnJ0u/FStWGJKM77//3ur8Xr16Gdddd53l9cyZMw1JxieffGJpy87ONsLDww13d3cjNTXV0i7JmDhxouX1wIEDjcDAwEI1Tpw40bj4jwdubm7GwIEDL/l+YmNjDcMwjKSkJMPR0dHo0aOHkZeXZ+k3e/ZsQ5LxwQcfWNq6dOliSDI++ugjS1tWVpbh6+tr9O3bt9C9inLHHXcYnTp1srz+73//a9jb2xtJSUlW/QYOHGi4ubld8joXv781a9YYkozFixcbS5cuNUwmkxEfH28YhmGMHj3a8j3o0qWLcf3111+xzoL3On36dKv32qZNG8PHx8fIzs42DKP438+C+tasWWN1n9jYWEOSMX/+fKv3Lsl47rnnrlinYRT+nv71119GjRo1jCFDhlj1S0xMNLy8vAq1X2zChAmGJGPJkiWFjuXn55fofRe8vzp16hhnz5619B07dqwhyWjdurWRk5Njab///vsNR0dHIzMz09IWGBhoSDK++uorS1tKSorh5+dntG3b1tK2ePHiIj/ja/08DMMwli5datjb2xt79uwxDKPo8bl58+ZCvz8KjB492pBkeV933XWXIcmoXbu28eCDDxpffvml8cILLxj29vbGjTfeaPmcLzZ8+PBCv9cLPPXUU5Zr9uzZ01i0aJHx2muvGe7u7kbDhg2NtLQ0wzAM49SpU4bJZDIeffRRq/P37dtn+dmWnJx8xc8EAFB9MVMKAIByNmfOHEVHR1t9XTg76JZbbpG3t7cWLVpkaTtz5oyio6MVFRVlaVu+fLl8fX11//33W9ocHBz01FNP6dy5c1q3bl35vKG//fTTT8rOztYzzzwjO7t//ogxZMgQeXp6atmyZVb93d3drTYRd3R0VIcOHfTHH39c8V5//vmnVqxYYfXe+/btK5PJZLW06Vr16NFDtWrV0ueffy7DMPT5559b3bO47O3trWaYOTo66vHHH1dSUpK2bt0qqWy/n8OGDbuq86Kjo3X27Fndf//9VjP7zGa
|
|||
|
|
"text/plain": [
|
|||
|
|
"<Figure size 1200x600 with 1 Axes>"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "display_data"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"evolution_compte(df, '406169', id = 'Account_Clustered')"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"cell_type": "code",
|
|||
|
|
"execution_count": 49,
|
|||
|
|
"id": "d507fb4c-4de5-481f-9cd0-1432298564b8",
|
|||
|
|
"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>...</th>\n",
|
|||
|
|
" <th>Quantity - Subscription</th>\n",
|
|||
|
|
" <th>Quantity - Redemption</th>\n",
|
|||
|
|
" <th>Quantity - NetFlows</th>\n",
|
|||
|
|
" <th>Value Ccy - Subscription</th>\n",
|
|||
|
|
" <th>Value Ccy - Redemption</th>\n",
|
|||
|
|
" <th>Value Ccy - NetFlows</th>\n",
|
|||
|
|
" <th>Value € - Subscription</th>\n",
|
|||
|
|
" <th>Value € - Redemption</th>\n",
|
|||
|
|
" <th>Value € - NetFlows</th>\n",
|
|||
|
|
" <th>Account_Clustered</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>200127202</td>\n",
|
|||
|
|
" <td>France</td>\n",
|
|||
|
|
" <td>France</td>\n",
|
|||
|
|
" <td>Equity</td>\n",
|
|||
|
|
" <td>Investissement</td>\n",
|
|||
|
|
" <td>SICAV</td>\n",
|
|||
|
|
" <td>NO</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>1636.000</td>\n",
|
|||
|
|
" <td>0.000</td>\n",
|
|||
|
|
" <td>1636.000</td>\n",
|
|||
|
|
" <td>280983.00</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>280983.00</td>\n",
|
|||
|
|
" <td>280983.00</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>280983.00</td>\n",
|
|||
|
|
" <td>406533</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>1</th>\n",
|
|||
|
|
" <td>003</td>\n",
|
|||
|
|
" <td>166</td>\n",
|
|||
|
|
" <td>166</td>\n",
|
|||
|
|
" <td>406533</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>...</td>\n",
|
|||
|
|
" <td>144.690</td>\n",
|
|||
|
|
" <td>0.000</td>\n",
|
|||
|
|
" <td>144.690</td>\n",
|
|||
|
|
" <td>99985.13</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>99985.13</td>\n",
|
|||
|
|
" <td>99985.13</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>99985.13</td>\n",
|
|||
|
|
" <td>406533</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2</th>\n",
|
|||
|
|
" <td>003</td>\n",
|
|||
|
|
" <td>166</td>\n",
|
|||
|
|
" <td>166</td>\n",
|
|||
|
|
" <td>406533</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>...</td>\n",
|
|||
|
|
" <td>0.000</td>\n",
|
|||
|
|
" <td>-8.321</td>\n",
|
|||
|
|
" <td>-8.321</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>-9384.76</td>\n",
|
|||
|
|
" <td>-9384.76</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>-9384.76</td>\n",
|
|||
|
|
" <td>-9384.76</td>\n",
|
|||
|
|
" <td>406533</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>3</th>\n",
|
|||
|
|
" <td>003</td>\n",
|
|||
|
|
" <td>166</td>\n",
|
|||
|
|
" <td>166</td>\n",
|
|||
|
|
" <td>406533</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>...</td>\n",
|
|||
|
|
" <td>0.000</td>\n",
|
|||
|
|
" <td>-22.083</td>\n",
|
|||
|
|
" <td>-22.083</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>-25227.40</td>\n",
|
|||
|
|
" <td>-25227.40</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>-25227.40</td>\n",
|
|||
|
|
" <td>-25227.40</td>\n",
|
|||
|
|
" <td>406533</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>4</th>\n",
|
|||
|
|
" <td>003</td>\n",
|
|||
|
|
" <td>166</td>\n",
|
|||
|
|
" <td>166</td>\n",
|
|||
|
|
" <td>406533</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>...</td>\n",
|
|||
|
|
" <td>0.000</td>\n",
|
|||
|
|
" <td>-465.992</td>\n",
|
|||
|
|
" <td>-465.992</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>-563775.76</td>\n",
|
|||
|
|
" <td>-563775.76</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>-563775.76</td>\n",
|
|||
|
|
" <td>-563775.76</td>\n",
|
|||
|
|
" <td>406533</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>...</th>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2574456</th>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Luxembourg</td>\n",
|
|||
|
|
" <td>Luxembourg</td>\n",
|
|||
|
|
" <td>Fixed Income</td>\n",
|
|||
|
|
" <td>Sécurité</td>\n",
|
|||
|
|
" <td>FCP</td>\n",
|
|||
|
|
" <td>NO</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>0.000</td>\n",
|
|||
|
|
" <td>-20.000</td>\n",
|
|||
|
|
" <td>-20.000</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>-34294.40</td>\n",
|
|||
|
|
" <td>-34294.40</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>-34294.40</td>\n",
|
|||
|
|
" <td>-34294.40</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2574457</th>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Luxembourg</td>\n",
|
|||
|
|
" <td>Luxembourg</td>\n",
|
|||
|
|
" <td>Fixed Income</td>\n",
|
|||
|
|
" <td>Sécurité</td>\n",
|
|||
|
|
" <td>FCP</td>\n",
|
|||
|
|
" <td>NO</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>328.726</td>\n",
|
|||
|
|
" <td>0.000</td>\n",
|
|||
|
|
" <td>328.726</td>\n",
|
|||
|
|
" <td>564028.07</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>564028.07</td>\n",
|
|||
|
|
" <td>564028.07</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>564028.07</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2574458</th>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Luxembourg</td>\n",
|
|||
|
|
" <td>Luxembourg</td>\n",
|
|||
|
|
" <td>Fixed Income</td>\n",
|
|||
|
|
" <td>Sécurité</td>\n",
|
|||
|
|
" <td>FCP</td>\n",
|
|||
|
|
" <td>NO</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>4.443</td>\n",
|
|||
|
|
" <td>0.000</td>\n",
|
|||
|
|
" <td>4.443</td>\n",
|
|||
|
|
" <td>7603.66</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>7603.66</td>\n",
|
|||
|
|
" <td>7603.66</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>7603.66</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2574459</th>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Luxembourg</td>\n",
|
|||
|
|
" <td>Luxembourg</td>\n",
|
|||
|
|
" <td>Fixed Income</td>\n",
|
|||
|
|
" <td>Sécurité</td>\n",
|
|||
|
|
" <td>FCP</td>\n",
|
|||
|
|
" <td>NO</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>0.000</td>\n",
|
|||
|
|
" <td>-440.000</td>\n",
|
|||
|
|
" <td>-440.000</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>-754696.80</td>\n",
|
|||
|
|
" <td>-754696.80</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>-754696.80</td>\n",
|
|||
|
|
" <td>-754696.80</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" <tr>\n",
|
|||
|
|
" <th>2574460</th>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" <td>Luxembourg</td>\n",
|
|||
|
|
" <td>Luxembourg</td>\n",
|
|||
|
|
" <td>Fixed Income</td>\n",
|
|||
|
|
" <td>Sécurité</td>\n",
|
|||
|
|
" <td>SICAV</td>\n",
|
|||
|
|
" <td>NO</td>\n",
|
|||
|
|
" <td>...</td>\n",
|
|||
|
|
" <td>3595.000</td>\n",
|
|||
|
|
" <td>0.000</td>\n",
|
|||
|
|
" <td>3595.000</td>\n",
|
|||
|
|
" <td>358385.55</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>358385.55</td>\n",
|
|||
|
|
" <td>358385.55</td>\n",
|
|||
|
|
" <td>0.00</td>\n",
|
|||
|
|
" <td>358385.55</td>\n",
|
|||
|
|
" <td>Private Client</td>\n",
|
|||
|
|
" </tr>\n",
|
|||
|
|
" </tbody>\n",
|
|||
|
|
"</table>\n",
|
|||
|
|
"<p>2574461 rows × 25 columns</p>\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",
|
|||
|
|
"2574456 Private Client Private Client Private Client \n",
|
|||
|
|
"2574457 Private Client Private Client Private Client \n",
|
|||
|
|
"2574458 Private Client Private Client Private Client \n",
|
|||
|
|
"2574459 Private Client Private Client Private Client \n",
|
|||
|
|
"2574460 Private Client Private Client Private Client \n",
|
|||
|
|
"\n",
|
|||
|
|
" Registrar Account - ID Registrar Account - Region \\\n",
|
|||
|
|
"0 200127202 France \n",
|
|||
|
|
"1 406533 France \n",
|
|||
|
|
"2 406533 France \n",
|
|||
|
|
"3 406533 France \n",
|
|||
|
|
"4 406533 France \n",
|
|||
|
|
"... ... ... \n",
|
|||
|
|
"2574456 Private Client Luxembourg \n",
|
|||
|
|
"2574457 Private Client Luxembourg \n",
|
|||
|
|
"2574458 Private Client Luxembourg \n",
|
|||
|
|
"2574459 Private Client Luxembourg \n",
|
|||
|
|
"2574460 Private Client Luxembourg \n",
|
|||
|
|
"\n",
|
|||
|
|
" RegistrarAccount - Country Product - Asset Type Product - Strategy \\\n",
|
|||
|
|
"0 France Equity Investissement \n",
|
|||
|
|
"1 France Diversified Patrimoine \n",
|
|||
|
|
"2 France Equity Investissement \n",
|
|||
|
|
"3 France Equity Investissement \n",
|
|||
|
|
"4 France Equity Investissement \n",
|
|||
|
|
"... ... ... ... \n",
|
|||
|
|
"2574456 Luxembourg Fixed Income Sécurité \n",
|
|||
|
|
"2574457 Luxembourg Fixed Income Sécurité \n",
|
|||
|
|
"2574458 Luxembourg Fixed Income Sécurité \n",
|
|||
|
|
"2574459 Luxembourg Fixed Income Sécurité \n",
|
|||
|
|
"2574460 Luxembourg Fixed Income Sécurité \n",
|
|||
|
|
"\n",
|
|||
|
|
" Product - Legal Status Product - Is Dedie ? ... \\\n",
|
|||
|
|
"0 SICAV NO ... \n",
|
|||
|
|
"1 FCP NO ... \n",
|
|||
|
|
"2 FCP NO ... \n",
|
|||
|
|
"3 FCP NO ... \n",
|
|||
|
|
"4 FCP NO ... \n",
|
|||
|
|
"... ... ... ... \n",
|
|||
|
|
"2574456 FCP NO ... \n",
|
|||
|
|
"2574457 FCP NO ... \n",
|
|||
|
|
"2574458 FCP NO ... \n",
|
|||
|
|
"2574459 FCP NO ... \n",
|
|||
|
|
"2574460 SICAV NO ... \n",
|
|||
|
|
"\n",
|
|||
|
|
" Quantity - Subscription Quantity - Redemption Quantity - NetFlows \\\n",
|
|||
|
|
"0 1636.000 0.000 1636.000 \n",
|
|||
|
|
"1 144.690 0.000 144.690 \n",
|
|||
|
|
"2 0.000 -8.321 -8.321 \n",
|
|||
|
|
"3 0.000 -22.083 -22.083 \n",
|
|||
|
|
"4 0.000 -465.992 -465.992 \n",
|
|||
|
|
"... ... ... ... \n",
|
|||
|
|
"2574456 0.000 -20.000 -20.000 \n",
|
|||
|
|
"2574457 328.726 0.000 328.726 \n",
|
|||
|
|
"2574458 4.443 0.000 4.443 \n",
|
|||
|
|
"2574459 0.000 -440.000 -440.000 \n",
|
|||
|
|
"2574460 3595.000 0.000 3595.000 \n",
|
|||
|
|
"\n",
|
|||
|
|
" Value Ccy - Subscription Value Ccy - Redemption Value Ccy - NetFlows \\\n",
|
|||
|
|
"0 280983.00 0.00 280983.00 \n",
|
|||
|
|
"1 99985.13 0.00 99985.13 \n",
|
|||
|
|
"2 0.00 -9384.76 -9384.76 \n",
|
|||
|
|
"3 0.00 -25227.40 -25227.40 \n",
|
|||
|
|
"4 0.00 -563775.76 -563775.76 \n",
|
|||
|
|
"... ... ... ... \n",
|
|||
|
|
"2574456 0.00 -34294.40 -34294.40 \n",
|
|||
|
|
"2574457 564028.07 0.00 564028.07 \n",
|
|||
|
|
"2574458 7603.66 0.00 7603.66 \n",
|
|||
|
|
"2574459 0.00 -754696.80 -754696.80 \n",
|
|||
|
|
"2574460 358385.55 0.00 358385.55 \n",
|
|||
|
|
"\n",
|
|||
|
|
" Value € - Subscription Value € - Redemption Value € - NetFlows \\\n",
|
|||
|
|
"0 280983.00 0.00 280983.00 \n",
|
|||
|
|
"1 99985.13 0.00 99985.13 \n",
|
|||
|
|
"2 0.00 -9384.76 -9384.76 \n",
|
|||
|
|
"3 0.00 -25227.40 -25227.40 \n",
|
|||
|
|
"4 0.00 -563775.76 -563775.76 \n",
|
|||
|
|
"... ... ... ... \n",
|
|||
|
|
"2574456 0.00 -34294.40 -34294.40 \n",
|
|||
|
|
"2574457 564028.07 0.00 564028.07 \n",
|
|||
|
|
"2574458 7603.66 0.00 7603.66 \n",
|
|||
|
|
"2574459 0.00 -754696.80 -754696.80 \n",
|
|||
|
|
"2574460 358385.55 0.00 358385.55 \n",
|
|||
|
|
"\n",
|
|||
|
|
" Account_Clustered \n",
|
|||
|
|
"0 406533 \n",
|
|||
|
|
"1 406533 \n",
|
|||
|
|
"2 406533 \n",
|
|||
|
|
"3 406533 \n",
|
|||
|
|
"4 406533 \n",
|
|||
|
|
"... ... \n",
|
|||
|
|
"2574456 Private Client \n",
|
|||
|
|
"2574457 Private Client \n",
|
|||
|
|
"2574458 Private Client \n",
|
|||
|
|
"2574459 Private Client \n",
|
|||
|
|
"2574460 Private Client \n",
|
|||
|
|
"\n",
|
|||
|
|
"[2574461 rows x 25 columns]"
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
"execution_count": 49,
|
|||
|
|
"metadata": {},
|
|||
|
|
"output_type": "execute_result"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"source": [
|
|||
|
|
"# Flux\n",
|
|||
|
|
"\n",
|
|||
|
|
"# fusion des connexions\n",
|
|||
|
|
"dg['Account_Clustered'] = dg['Registrar Account - ID']\n",
|
|||
|
|
"\n",
|
|||
|
|
"# Pour chaque connexion\n",
|
|||
|
|
"for _, row in rupture_sorted.iterrows():\n",
|
|||
|
|
" old = row['old_account']\n",
|
|||
|
|
" new = row['new_account']\n",
|
|||
|
|
" dg.loc[dg['Account_Clustered'] == new, 'Account_Clustered'] = old\n",
|
|||
|
|
"\n",
|
|||
|
|
"dg"
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"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.11"
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"nbformat": 4,
|
|||
|
|
"nbformat_minor": 5
|
|||
|
|
}
|