{ "cells": [ { "cell_type": "markdown", "id": "bd938e6e", "metadata": {}, "source": [ "**Short notebook to test connectivity with S3 services and explore the data**" ] }, { "cell_type": "code", "execution_count": 1, "id": "127753ac", "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "id": "ae3c64fe", "metadata": {}, "outputs": [], "source": [ "import os\n", "import s3fs\n", "fs = s3fs.S3FileSystem(\n", " client_kwargs={'endpoint_url': 'https://'+'minio-simple.lab.groupe-genes.fr'},\n", " key = os.environ[\"AWS_ACCESS_KEY_ID\"], \n", " secret = os.environ[\"AWS_SECRET_ACCESS_KEY\"], \n", " token = os.environ[\"AWS_SESSION_TOKEN\"])" ] }, { "cell_type": "code", "execution_count": 3, "id": "84b9ac42", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "def sample_by_blocks(df, block_size=10, num_blocks=10, random_state=None):\n", " \"\"\"Sample num_blocks blocks of block_size consecutive rows (no overlapping blocks).\"\"\"\n", " n = len(df)\n", " max_start = n - block_size\n", " if max_start < 0:\n", " raise ValueError(f\"DataFrame has {n} rows, need at least {block_size}\")\n", " if max_start + 1 < num_blocks:\n", " raise ValueError(f\"Not enough room for {num_blocks} non-overlapping blocks (need at least {num_blocks * block_size} rows)\")\n", " rng = np.random.default_rng(random_state)\n", " chosen_starts = rng.choice(max_start + 1, size=num_blocks, replace=False)\n", " chosen_starts.sort() # blocks in order of position in original df\n", " indices = np.concatenate([np.arange(s, s + block_size) for s in chosen_starts])\n", " return df.iloc[indices].reset_index(drop=True)\n", "\n", "# sample_df = sample_by_blocks(df, block_size=10, num_blocks=10, random_state=42)" ] }, { "cell_type": "code", "execution_count": 12, "id": "83472648", "metadata": {}, "outputs": [], "source": [ "with fs.open('s3://projet-bdc-data/carmignac/Data Modélisation/market data/Eur Gov Indices Weekly Step.xlsx', 'rb') as f:\n", " df = pd.read_excel(f)\n", "\n", "sample_df = sample_by_blocks(df, block_size=20, num_blocks=3, random_state=42)" ] }, { "cell_type": "code", "execution_count": 13, "id": "79af063e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Bond/IndexDescriptionDateTotal Return % 1-wk-LOCYield to Maturity (s.a.)Yield to Maturity (conv.)
0G0D0ICE BofA German Government Index2008-08-22-0.30204.2104.250
1G0D0ICE BofA German Government Index2008-08-290.30404.1804.220
2G0D0ICE BofA German Government Index2008-09-050.97803.9904.030
3G0D0ICE BofA German Government Index2008-09-12-1.05804.1704.210
4G0D0ICE BofA German Government Index2008-09-19-0.28604.2204.270
5G0D0ICE BofA German Government Index2008-09-260.66104.0504.090
6G0D0ICE BofA German Government Index2008-10-031.89003.7103.750
7G0D0ICE BofA German Government Index2008-10-100.09403.6103.650
8G0D0ICE BofA German Government Index2008-10-17-0.35503.6703.700
9G0D0ICE BofA German Government Index2008-10-241.63703.3903.420
10G0D0ICE BofA German Government Index2008-10-31-0.53503.4103.440
11G0D0ICE BofA German Government Index2008-11-071.32503.2003.230
12G0D0ICE BofA German Government Index2008-11-140.44903.0703.100
13G0D0ICE BofA German Government Index2008-11-211.35602.8902.920
14G0D0ICE BofA German Government Index2008-11-280.77802.8602.880
15G0D0ICE BofA German Government Index2008-12-051.46602.6902.700
16G0D0ICE BofA German Government Index2008-12-12-1.91002.9602.980
17G0D0ICE BofA German Government Index2008-12-191.79802.6502.670
18G0D0ICE BofA German Government Index2008-12-260.31202.6002.620
19G0D0ICE BofA German Government Index2009-01-020.26402.5602.570
20EG04ICE BofA 7-10 Year Euro Government Index2011-03-110.37504.1704.210
21EG04ICE BofA 7-10 Year Euro Government Index2011-03-180.80004.0704.100
22EG04ICE BofA 7-10 Year Euro Government Index2011-03-25-0.68504.1704.210
23EG04ICE BofA 7-10 Year Euro Government Index2011-04-01-0.78504.3104.350
24EG04ICE BofA 7-10 Year Euro Government Index2011-04-080.02304.3304.370
25EG04ICE BofA 7-10 Year Euro Government Index2011-04-150.16804.3104.350
26EG04ICE BofA 7-10 Year Euro Government Index2011-04-220.32054.2654.305
27EG04ICE BofA 7-10 Year Euro Government Index2011-04-290.47304.2204.260
28EG04ICE BofA 7-10 Year Euro Government Index2011-05-060.45504.2204.260
29EG04ICE BofA 7-10 Year Euro Government Index2011-05-130.51704.1504.190
30EG04ICE BofA 7-10 Year Euro Government Index2011-05-20-0.18004.1904.230
31EG04ICE BofA 7-10 Year Euro Government Index2011-05-270.49404.1204.160
32EG04ICE BofA 7-10 Year Euro Government Index2011-06-030.29704.1104.150
33EG04ICE BofA 7-10 Year Euro Government Index2011-06-10-0.32604.1604.200
34EG04ICE BofA 7-10 Year Euro Government Index2011-06-17-0.21704.1704.210
35EG04ICE BofA 7-10 Year Euro Government Index2011-06-24-0.13504.1804.230
36EG04ICE BofA 7-10 Year Euro Government Index2011-07-01-0.05504.1804.220
37EG04ICE BofA 7-10 Year Euro Government Index2011-07-08-0.69904.2404.290
38EG04ICE BofA 7-10 Year Euro Government Index2011-07-15-0.92304.3504.400
39EG04ICE BofA 7-10 Year Euro Government Index2011-07-221.18104.2504.290
40EG04ICE BofA 7-10 Year Euro Government Index2016-01-150.12200.8500.850
41EG04ICE BofA 7-10 Year Euro Government Index2016-01-220.26900.8200.820
42EG04ICE BofA 7-10 Year Euro Government Index2016-01-291.12300.6700.670
43EG04ICE BofA 7-10 Year Euro Government Index2016-02-05-0.26800.7200.720
44EG04ICE BofA 7-10 Year Euro Government Index2016-02-12-0.20900.7500.750
45EG04ICE BofA 7-10 Year Euro Government Index2016-02-190.45400.6900.690
46EG04ICE BofA 7-10 Year Euro Government Index2016-02-260.54700.6200.620
47EG04ICE BofA 7-10 Year Euro Government Index2016-03-04-0.15400.6400.650
48EG04ICE BofA 7-10 Year Euro Government Index2016-03-110.28000.6100.610
49EG04ICE BofA 7-10 Year Euro Government Index2016-03-180.35700.5600.570
50EG04ICE BofA 7-10 Year Euro Government Index2016-03-250.41100.5350.540
51EG04ICE BofA 7-10 Year Euro Government Index2016-04-010.46500.5100.510
52EG04ICE BofA 7-10 Year Euro Government Index2016-04-08-0.11400.5300.530
53EG04ICE BofA 7-10 Year Euro Government Index2016-04-15-0.09700.5400.540
54EG04ICE BofA 7-10 Year Euro Government Index2016-04-22-0.66000.6300.630
55EG04ICE BofA 7-10 Year Euro Government Index2016-04-29-0.33800.6800.680
56EG04ICE BofA 7-10 Year Euro Government Index2016-05-060.65000.6000.600
57EG04ICE BofA 7-10 Year Euro Government Index2016-05-130.21100.5700.570
58EG04ICE BofA 7-10 Year Euro Government Index2016-05-20-0.14200.5900.590
59EG04ICE BofA 7-10 Year Euro Government Index2016-05-270.47100.5300.530
\n", "
" ], "text/plain": [ " Bond/Index Description Date \\\n", "0 G0D0 ICE BofA German Government Index 2008-08-22 \n", "1 G0D0 ICE BofA German Government Index 2008-08-29 \n", "2 G0D0 ICE BofA German Government Index 2008-09-05 \n", "3 G0D0 ICE BofA German Government Index 2008-09-12 \n", "4 G0D0 ICE BofA German Government Index 2008-09-19 \n", "5 G0D0 ICE BofA German Government Index 2008-09-26 \n", "6 G0D0 ICE BofA German Government Index 2008-10-03 \n", "7 G0D0 ICE BofA German Government Index 2008-10-10 \n", "8 G0D0 ICE BofA German Government Index 2008-10-17 \n", "9 G0D0 ICE BofA German Government Index 2008-10-24 \n", "10 G0D0 ICE BofA German Government Index 2008-10-31 \n", "11 G0D0 ICE BofA German Government Index 2008-11-07 \n", "12 G0D0 ICE BofA German Government Index 2008-11-14 \n", "13 G0D0 ICE BofA German Government Index 2008-11-21 \n", "14 G0D0 ICE BofA German Government Index 2008-11-28 \n", "15 G0D0 ICE BofA German Government Index 2008-12-05 \n", "16 G0D0 ICE BofA German Government Index 2008-12-12 \n", "17 G0D0 ICE BofA German Government Index 2008-12-19 \n", "18 G0D0 ICE BofA German Government Index 2008-12-26 \n", "19 G0D0 ICE BofA German Government Index 2009-01-02 \n", "20 EG04 ICE BofA 7-10 Year Euro Government Index 2011-03-11 \n", "21 EG04 ICE BofA 7-10 Year Euro Government Index 2011-03-18 \n", "22 EG04 ICE BofA 7-10 Year Euro Government Index 2011-03-25 \n", "23 EG04 ICE BofA 7-10 Year Euro Government Index 2011-04-01 \n", "24 EG04 ICE BofA 7-10 Year Euro Government Index 2011-04-08 \n", "25 EG04 ICE BofA 7-10 Year Euro Government Index 2011-04-15 \n", "26 EG04 ICE BofA 7-10 Year Euro Government Index 2011-04-22 \n", "27 EG04 ICE BofA 7-10 Year Euro Government Index 2011-04-29 \n", "28 EG04 ICE BofA 7-10 Year Euro Government Index 2011-05-06 \n", "29 EG04 ICE BofA 7-10 Year Euro Government Index 2011-05-13 \n", "30 EG04 ICE BofA 7-10 Year Euro Government Index 2011-05-20 \n", "31 EG04 ICE BofA 7-10 Year Euro Government Index 2011-05-27 \n", "32 EG04 ICE BofA 7-10 Year Euro Government Index 2011-06-03 \n", "33 EG04 ICE BofA 7-10 Year Euro Government Index 2011-06-10 \n", "34 EG04 ICE BofA 7-10 Year Euro Government Index 2011-06-17 \n", "35 EG04 ICE BofA 7-10 Year Euro Government Index 2011-06-24 \n", "36 EG04 ICE BofA 7-10 Year Euro Government Index 2011-07-01 \n", "37 EG04 ICE BofA 7-10 Year Euro Government Index 2011-07-08 \n", "38 EG04 ICE BofA 7-10 Year Euro Government Index 2011-07-15 \n", "39 EG04 ICE BofA 7-10 Year Euro Government Index 2011-07-22 \n", "40 EG04 ICE BofA 7-10 Year Euro Government Index 2016-01-15 \n", "41 EG04 ICE BofA 7-10 Year Euro Government Index 2016-01-22 \n", "42 EG04 ICE BofA 7-10 Year Euro Government Index 2016-01-29 \n", "43 EG04 ICE BofA 7-10 Year Euro Government Index 2016-02-05 \n", "44 EG04 ICE BofA 7-10 Year Euro Government Index 2016-02-12 \n", "45 EG04 ICE BofA 7-10 Year Euro Government Index 2016-02-19 \n", "46 EG04 ICE BofA 7-10 Year Euro Government Index 2016-02-26 \n", "47 EG04 ICE BofA 7-10 Year Euro Government Index 2016-03-04 \n", "48 EG04 ICE BofA 7-10 Year Euro Government Index 2016-03-11 \n", "49 EG04 ICE BofA 7-10 Year Euro Government Index 2016-03-18 \n", "50 EG04 ICE BofA 7-10 Year Euro Government Index 2016-03-25 \n", "51 EG04 ICE BofA 7-10 Year Euro Government Index 2016-04-01 \n", "52 EG04 ICE BofA 7-10 Year Euro Government Index 2016-04-08 \n", "53 EG04 ICE BofA 7-10 Year Euro Government Index 2016-04-15 \n", "54 EG04 ICE BofA 7-10 Year Euro Government Index 2016-04-22 \n", "55 EG04 ICE BofA 7-10 Year Euro Government Index 2016-04-29 \n", "56 EG04 ICE BofA 7-10 Year Euro Government Index 2016-05-06 \n", "57 EG04 ICE BofA 7-10 Year Euro Government Index 2016-05-13 \n", "58 EG04 ICE BofA 7-10 Year Euro Government Index 2016-05-20 \n", "59 EG04 ICE BofA 7-10 Year Euro Government Index 2016-05-27 \n", "\n", " Total Return % 1-wk-LOC Yield to Maturity (s.a.) \\\n", "0 -0.3020 4.210 \n", "1 0.3040 4.180 \n", "2 0.9780 3.990 \n", "3 -1.0580 4.170 \n", "4 -0.2860 4.220 \n", "5 0.6610 4.050 \n", "6 1.8900 3.710 \n", "7 0.0940 3.610 \n", "8 -0.3550 3.670 \n", "9 1.6370 3.390 \n", "10 -0.5350 3.410 \n", "11 1.3250 3.200 \n", "12 0.4490 3.070 \n", "13 1.3560 2.890 \n", "14 0.7780 2.860 \n", "15 1.4660 2.690 \n", "16 -1.9100 2.960 \n", "17 1.7980 2.650 \n", "18 0.3120 2.600 \n", "19 0.2640 2.560 \n", "20 0.3750 4.170 \n", "21 0.8000 4.070 \n", "22 -0.6850 4.170 \n", "23 -0.7850 4.310 \n", "24 0.0230 4.330 \n", "25 0.1680 4.310 \n", "26 0.3205 4.265 \n", "27 0.4730 4.220 \n", "28 0.4550 4.220 \n", "29 0.5170 4.150 \n", "30 -0.1800 4.190 \n", "31 0.4940 4.120 \n", "32 0.2970 4.110 \n", "33 -0.3260 4.160 \n", "34 -0.2170 4.170 \n", "35 -0.1350 4.180 \n", "36 -0.0550 4.180 \n", "37 -0.6990 4.240 \n", "38 -0.9230 4.350 \n", "39 1.1810 4.250 \n", "40 0.1220 0.850 \n", "41 0.2690 0.820 \n", "42 1.1230 0.670 \n", "43 -0.2680 0.720 \n", "44 -0.2090 0.750 \n", "45 0.4540 0.690 \n", "46 0.5470 0.620 \n", "47 -0.1540 0.640 \n", "48 0.2800 0.610 \n", "49 0.3570 0.560 \n", "50 0.4110 0.535 \n", "51 0.4650 0.510 \n", "52 -0.1140 0.530 \n", "53 -0.0970 0.540 \n", "54 -0.6600 0.630 \n", "55 -0.3380 0.680 \n", "56 0.6500 0.600 \n", "57 0.2110 0.570 \n", "58 -0.1420 0.590 \n", "59 0.4710 0.530 \n", "\n", " Yield to Maturity (conv.) \n", "0 4.250 \n", "1 4.220 \n", "2 4.030 \n", "3 4.210 \n", "4 4.270 \n", "5 4.090 \n", "6 3.750 \n", "7 3.650 \n", "8 3.700 \n", "9 3.420 \n", "10 3.440 \n", "11 3.230 \n", "12 3.100 \n", "13 2.920 \n", "14 2.880 \n", "15 2.700 \n", "16 2.980 \n", "17 2.670 \n", "18 2.620 \n", "19 2.570 \n", "20 4.210 \n", "21 4.100 \n", "22 4.210 \n", "23 4.350 \n", "24 4.370 \n", "25 4.350 \n", "26 4.305 \n", "27 4.260 \n", "28 4.260 \n", "29 4.190 \n", "30 4.230 \n", "31 4.160 \n", "32 4.150 \n", "33 4.200 \n", "34 4.210 \n", "35 4.230 \n", "36 4.220 \n", "37 4.290 \n", "38 4.400 \n", "39 4.290 \n", "40 0.850 \n", "41 0.820 \n", "42 0.670 \n", "43 0.720 \n", "44 0.750 \n", "45 0.690 \n", "46 0.620 \n", "47 0.650 \n", "48 0.610 \n", "49 0.570 \n", "50 0.540 \n", "51 0.510 \n", "52 0.530 \n", "53 0.540 \n", "54 0.630 \n", "55 0.680 \n", "56 0.600 \n", "57 0.570 \n", "58 0.590 \n", "59 0.530 " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_df" ] }, { "cell_type": "code", "execution_count": 14, "id": "36ec4312", "metadata": {}, "outputs": [], "source": [ "sample_df.to_csv('eur_gov_indices.csv', index=False)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.11" } }, "nbformat": 4, "nbformat_minor": 5 }