python-pour-finance/05-Sources-Données/2-Quandl.ipynb

495 lines
278 KiB
Plaintext
Raw Normal View History

2023-08-21 15:12:19 +00:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Quandl\n",
"Plus d'infos:\n",
"https://www.quandl.com/tools/python"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import quandl"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Les bases de QUANDL\n",
"Cette requête obtient le prix du pétrole brut WTI du ministère américain de l'énergie:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"mydata = quandl.get(\"EIA/PET_RWTC_D\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Value\n",
"Date \n",
"1986-01-02 25.56\n",
"1986-01-03 26.00\n",
"1986-01-06 26.53\n",
"1986-01-07 25.85\n",
"1986-01-08 25.87"
],
"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>Value</th>\n </tr>\n <tr>\n <th>Date</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1986-01-02</th>\n <td>25.56</td>\n </tr>\n <tr>\n <th>1986-01-03</th>\n <td>26.00</td>\n </tr>\n <tr>\n <th>1986-01-06</th>\n <td>26.53</td>\n </tr>\n <tr>\n <th>1986-01-07</th>\n <td>25.85</td>\n </tr>\n <tr>\n <th>1986-01-08</th>\n <td>25.87</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {},
"execution_count": 4
}
],
"source": [
"mydata.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<AxesSubplot:xlabel='Date'>"
]
},
"metadata": {},
"execution_count": 5
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 864x432 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"349.944627pt\" version=\"1.1\" viewBox=\"0 0 712.104687 349.944627\" width=\"712.104687pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2020-11-27T22:05:55.378475</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.1, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 349.944627 \r\nL 712.104687 349.944627 \r\nL 712.104687 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 35.304688 300.96 \r\nL 704.904688 300.96 \r\nL 704.904688 7.2 \r\nL 35.304688 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"matplotlib.axis_1\">\r\n <g id=\"xtick_1\">\r\n <g id=\"line2d_1\">\r\n <defs>\r\n <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"m9de4aa7370\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n </defs>\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"100.562315\" xlink:href=\"#m9de4aa7370\" y=\"300.96\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_1\">\r\n <!-- 1988 -->\r\n <g transform=\"translate(77.482124 327.26544)rotate(-30)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 12.40625 8.296875 \r\nL 28.515625 8.296875 \r\nL 28.515625 63.921875 \r\nL 10.984375 60.40625 \r\nL 10.984375 69.390625 \r\nL 28.421875 72.90625 \r\nL 38.28125 72.90625 \r\nL 38.28125 8.296875 \r\nL 54.390625 8.296875 \r\nL 54.390625 0 \r\nL 12.40625 0 \r\nz\r\n\" id=\"DejaVuSans-49\"/>\r\n <path d=\"M 10.984375 1.515625 \r\nL 10.984375 10.5 \r\nQ 14.703125 8.734375 18.5 7.8125 \r\nQ 22.3125 6.890625 25.984375 6.890625 \r\nQ 35.75 6.890625 40.890625 13.453125 \r\nQ 46.046875 20.015625 46.78125 33.40625 \r\nQ 43.953125 29.203125 39.59375 26.953125 \r\nQ 35.25 24.703125 29.984375 24.703125 \r\nQ 19.046875 24.703125 12.671875 31.3125 \r\nQ 6.296875 37.9375 6.296875 49.421875 \r\nQ 6.296875 60.640625 12.9375 67.421875 \r\nQ 19.578125 74.21875 30.609375 74.21875 \r\nQ 43.265625 74.21875 49.921875 64.515625 \r\nQ 56.59375 54.828125 56.59375 36.375 \r\nQ 56.59375 19.140625 48.40625 8.859375 \r\nQ 40.234375 -1.421875 26.421875 -1.421875 \r\nQ 22.703125 -1.421875 18.890625 -0.6875 \r\nQ 15.09375 0.046875 10.984375 1.515625 \r\nz\r\nM 30.609375 32.421875 \r\nQ 37.25 32.421875 41.125 36.953125 \r\nQ 45.015625 41.5 45.015625 49.421875 \r\nQ 45.015625 57.28125 41.125 61.84375 \r\nQ 37.25 66.40625 30.609375 66.40625 \r\nQ 23.96875 66.40625 20.09375 61.84375 \r\nQ 16.21875 57.28125 16.21875 49.421875 \r\nQ 16.21875 41.5 20.09375 36.953125 \r\nQ 23.96875 32.421875 30.609375 32.421875 \r\nz\r\n\" id=\"DejaVuSans-57\"/>\r\n <path d=\"M 31.78125 34.625 \r\nQ 24.75 34.625 20.71875 30.859375 \r\nQ 16.703125 27.09375 16.703125 20.515625 \r\nQ 16.703125 13.921875 20.71875 10.15625 \r\nQ 24.75 6.390625 31.78125 6.390625 \r\nQ 38.8125 6.390625 42.859375 10.171875 \r\nQ 46.921875 13.96875 46.921875 20.515625 \r\nQ 46.921875 27.09375 42.890625 30.859375 \r\nQ 38.875 34.625 31.78125 34.625 \r\nz\r\nM 21.921875 38.8125 \r\nQ 15.578125 40.375 12.03125 44.71875 \r\nQ 8.5 49.078125 8.5 55.328125 \r\nQ 8.5 64.0625 14.71875 69.140625 \r\nQ 20.953125 74.21875 31.78125 74.21875 \r\nQ 42.671875 74.21875 48.875 69.1406
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAFeCAYAAACYfOm1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAABqM0lEQVR4nO3dd3gbVdYG8PfIvcVJHKcXp/fuVAKkhxDq0mGBEHovSwm9Qz76LmUpS10IoQZY0khCSO+9d6cXx47j3u/3x4ykkTSSZVuyZOv9PU8epJmRdD24nLlz7jmilAIREREREWksgR4AEREREVEwYYBMRERERGTAAJmIiIiIyIABMhERERGRAQNkIiIiIiIDBshERERERAbhgR6AUaNGjVRKSkqgh0FEREREddzatWtPKaWSzfYFVYCckpKCNWvWBHoYRERERFTHicgBd/uYYkFEREREZOB1gCwin4nISRHZYtj2nIgcEZEN+r/zDfseF5E9IrJTRMb5euBERERERP5QmRnkLwCcZ7L9baVUH/3fTAAQkW4ArgbQXX/NByISVt3BEhERERH5m9c5yEqpRSKS4uXhFwOYppQqArBfRPYAGAhgeeWHSERERETVUVJSgsOHD6OwsDDQQ6lx0dHRaNmyJSIiIrx+jS8W6d0jIjcAWAPgH0qp0wBaAFhhOOawvs2FiNwG4DYAaN26tQ+GQ0RERERGhw8fRkJCAlJSUiAigR5OjVFKISMjA4cPH0bbtm29fl11F+n9G0B7AH0AHAPwpr7d7MwrszdQSn2slEpVSqUmJ5tW2iAiIiKiaigsLERSUlJIBccAICJISkqq9Mx5tQJkpdQJpVSZUqocwCfQ0igAbca4leHQlgCOVueziIiIiKjqQi04tqrK112tAFlEmhmeXgrAWuHiNwBXi0iUiLQF0BHAqup8FhERERHVTsOHD8ecOXMctr3zzju466673B4fyN4YlSnz9i20RXadReSwiNwM4DUR2SwimwCMAPAgACiltgL4HsA2ALMB3K2UKvP56ImIiIgo6F1zzTWYNm2aw7Zp06bhmmuuCdCIPPM6QFZKXaOUaqaUilBKtVRKfaqUul4p1VMp1UspdZFS6pjh+JeVUu2VUp2VUrP8M3wiIiIiCnaXX345fv/9dxQVFQEA0tLScPToUUydOhWpqano3r07nn32WdPXxsfH2x7/+OOPmDhxIgAgPT0dl112GQYMGIABAwZg6dKlPhtvULWaJiIiCibbjmbjuv+swPe3D0HHJgmBHg6RTzz/v63YdjTbp+/ZrXk9PHthd7f7k5KSMHDgQMyePRsXX3wxpk2bhquuugqPP/44GjZsiLKyMowaNQqbNm1Cr169vPrM+++/Hw8++CCGDRuGgwcPYty4cdi+fbtPvh62miYiInLjqo+X43R+Ca76eEXFBxORR8Y0C2t6xffff49+/fqhb9++2Lp1K7Zt2+b1+82bNw/33HMP+vTpg4suugjZ2dnIycnxyVg5g0xERORGaZlWoTQzrzjAIyHyHU8zvf50ySWX4KGHHsK6detQUFCABg0a4I033sDq1avRoEEDTJw40bQcm7EKhXF/eXk5li9fjpiYGJ+PlTPIREREblhCsyoWkV/Ex8dj+PDhmDRpEq655hpkZ2cjLi4OiYmJOHHiBGbNMl+y1qRJE2zfvh3l5eWYPn26bfvYsWPx3nvv2Z5v2LDBZ2NlgExEROSGJUTrxhL5yzXXXIONGzfi6quvRu/evdG3b190794dkyZNwllnnWX6milTpuCCCy7AyJEj0ayZvcLwv/71L6xZswa9evVCt27d8OGHH/psnKKUaYO7gEhNTVWBrHlHRERk1Ou5OcguLAUApE2ZEODREFXd9u3b0bVr10API2DMvn4RWauUSjU7njPIREREboRq5zGiUMcAmYiIyI3yILrLSkQ1hwEyERGRG0Ul5YEeAhEFAANkIiIiN4rLGCBT3RFM685qUlW+bgbIREREJj5bsj/QQyDymejoaGRkZIRckKyUQkZGBqKjoyv1OjYKISIiMvHC79539CIKdi1btsThw4eRnp4e6KHUuOjoaLRs2bJSr2GATERERFTHRUREoG3btoEeRq3BFAsiIiIiIgMGyEREREREBgyQiYiIKjCsQ6NAD4GIahADZCIiogpER/DPJVEo4U88ERFRBcpDqzIWUchjgExERORky5EzDs/ZcpootDBAJiIicnLZv5c5POcMMlFoYYBMRETkRMTx+foDpwMzECIKCAbIRERETpxnjHOKSgMzECIKCAbIRERETopLywM9BCIKIAbIREREREQGDJCJiIiIiAwYIBMRETnp2Dje9rh1w9gAjoSIAoEBMhERkZOmidG2xxf1bo4wi3g4mojqGq8DZBH5TEROisgWw7bXRWSHiGwSkekiUl/fniIiBSKyQf/3oR/GTkRE5Bcnsgttjy0WQVm5Qi4rWRCFjMrMIH8B4DynbXMB9FBK9QKwC8Djhn17lVJ99H93VG+YRERENWfXiVzb42V7TgEAnvtta6CGQ0Q1zOsAWSm1CECm07Y/lFLWS+oVAFr6cGxEREQ1zjh7DAAlZVrJt1O5RYEYDhEFgC9zkCcBmGV43lZE1ovIQhE524efQ0RE5DfONZCtTUL+2pkeiOEQUQCE++JNRORJAKUAvtE3HQPQWimVISL9AfwiIt2VUtkmr70NwG0A0Lp1a18Mh4iIyGf2pecFeghEVMOqPYMsIjcCuADAdUopBQBKqSKlVIb+eC2AvQA6mb1eKfWxUipVKZWanJxc3eEQERFVizWlgohCV7UCZBE5D8BjAC5SSuUbtieLSJj+uB2AjgD2VeeziIiIakJpuXK770BGHhbtYqoFUV1XmTJv3wJYDqCziBwWkZsBvAcgAcBcp3Ju5wDYJCIbAfwI4A6lVKbpGxMREQUR5xzkczvZ726e+/pfuOGzVTU9JCKqYV7nICulrjHZ/KmbY38C8FNVB0VERBQo1hnkh8d2wkW9W6BFgxi0f2ImEqLCbQv2iKhu88kiPSIiorrCmoPcp1UDtE6yt5lmcEwUOthqmoiIyCBPD4QjwthemihUMUAmIiIymPj5agBAOANkopDFAJmIiMhEuIV/IolCFX/6iYiITHAGmSh0MUAmIiIyYZxBjgzjn0uiUMKfeCIiIl1RaZntsXEGOSqcfy6JQgl/4omIiHRnCkpsj8Mt9gCZJd6IQgsDZCIiIp2xi1440yqIQhZ/+omIiHQOAbKFi/SIQhUDZCIiIl1xmT1AtggDZKJQxQCZiIhIZ5xBrivx8b70XKRMnoGNh7ICPRSiWoMBMhERka7EMINsjI+Hd06u+cH4gFIKb87dBQCYtvpQgEdDVHswQCYiItIV6TPIIzonIyk+yrb9i5sGYlz3JoEaVpVNX38EMzYdAwDERIQFeDREtQcDZCIiIt2p3GIAwH2jOrrsa5wQbXt8Oq+4xsZUHYdPF9geJydEeTiSiIwYIBMREQE4lJmP+75dDwCoFxPhsj/S0Cwkt5bURY4wlKqLCOLW2SeyC5EyeQYW7UoP9FCIADBAJiIiAgCc/doC2+NEkwA5ohbWRTYGxWXlqtKvLyotQ6khL9tfhrw6HwAwZdYOv38WkTdq3087ERGRnzWKd01HiKyF7aaNpepKqxAgd35qNs7752JfDsmUdWiZtSR1heq+2vfTTkRE5EfNE6NNt0cGcYqCO3mGVJCqzCADwJ6TuTiTX1LxgVWglHIY1/HsQr98DlFlMUAmIiIycBdGGmeQy1XVgs2aZi3xBgDVGXLvF/7wwWhcvTNvN9o/MbPKr399zg6kTJ6BMwX+CeApdDFAJiIiMjh2xnwW05iDXMXJ2Bo3umtj2+PqBvVHsgoqPqiS/rviQLVe//6CvQCAlfsyfDEcIhsGyEREFPKUF8GjcQY5rJa02YuLCrc9rm5Mv+7AaWw7ml3Nd3Hkq5zjTxbv88n7EFkxQCYiopBXVFpxpYYW9WNsj2tDfHw6rxiHMvPtG6o5g3zvt+tx/r/8v2DPXdWMwpIyl1SKBP0CYOfxHHzw1x6/j41CBwNkIiIKeRs
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"mydata.plot(figsize=(12,6))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notez que vous devez connaître le \"code Quandl\" de chaque ensemble de données que vous téléchargez. Dans l'exemple ci-dessus, il s'agit de \"EIA/PET_RWTC_D\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Modifier les formats\n",
"Vous pouvez obtenir les mêmes données dans un tableau NumPy:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"mydata = quandl.get(\"EIA/PET_RWTC_D\", returns=\"numpy\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Spécification des données\n",
"\n",
"Pour définir les dates de début et de fin:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"mydata = quandl.get(\"FRED/GDP\", start_date=\"2001-12-31\", end_date=\"2005-12-31\")"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Value\n",
"Date \n",
"2002-01-01 10788.952\n",
"2002-04-01 10893.207\n",
"2002-07-01 10992.051\n",
"2002-10-01 11071.463\n",
"2003-01-01 11183.507"
],
"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>Value</th>\n </tr>\n <tr>\n <th>Date</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>2002-01-01</th>\n <td>10788.952</td>\n </tr>\n <tr>\n <th>2002-04-01</th>\n <td>10893.207</td>\n </tr>\n <tr>\n <th>2002-07-01</th>\n <td>10992.051</td>\n </tr>\n <tr>\n <th>2002-10-01</th>\n <td>11071.463</td>\n </tr>\n <tr>\n <th>2003-01-01</th>\n <td>11183.507</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {},
"execution_count": 8
}
],
"source": [
"mydata.head()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"mydata = quandl.get([\"NSE/OIL.1\", \"WIKI/AAPL.4\"])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" NSE/OIL - Open WIKI/AAPL - Close\n",
"Date \n",
"1980-12-12 NaN 28.75\n",
"1980-12-15 NaN 27.25\n",
"1980-12-16 NaN 25.25\n",
"1980-12-17 NaN 25.87\n",
"1980-12-18 NaN 26.63"
],
"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>NSE/OIL - Open</th>\n <th>WIKI/AAPL - Close</th>\n </tr>\n <tr>\n <th>Date</th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1980-12-12</th>\n <td>NaN</td>\n <td>28.75</td>\n </tr>\n <tr>\n <th>1980-12-15</th>\n <td>NaN</td>\n <td>27.25</td>\n </tr>\n <tr>\n <th>1980-12-16</th>\n <td>NaN</td>\n <td>25.25</td>\n </tr>\n <tr>\n <th>1980-12-17</th>\n <td>NaN</td>\n <td>25.87</td>\n </tr>\n <tr>\n <th>1980-12-18</th>\n <td>NaN</td>\n <td>26.63</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {},
"execution_count": 10
}
],
"source": [
"mydata.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Limites d'utilisation\n",
"Le module Quandl Python est gratuit. Si vous souhaitez passer plus de 50 requêtes par jour, vous devrez créer un compte Quandl gratuit et définir votre clé API:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"# EXEMPLE\n",
"quandl.ApiConfig.api_key = \"A remplacer par votre clé API (API KEY)\"\n",
"mydata = quandl.get(\"FRED/GDP\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Codes de base de données\n",
"\n",
"Chaque base de données sur Quandl a un ID de base de données court (3 à 6 caractères). Par exemple :\n",
"\n",
"* CFTC Commitment of Traders Data: CFTC\n",
"* Actions américaines (Core US Stock Fundamentals): SF1\n",
"* Données économiques de la Réserve fédérale américaine (Federal Reserve Economic Data): FRED\n",
"\n",
"Chaque base de données contient de nombreux ensembles de données. Les ensembles de données ont leurs propres ID qui sont ajoutés à l'ID de leur base de données mère, comme ceci :\n",
"\n",
"* CFTC pour le blé: CFTC/W_F_ALL\n",
"* Capitalisation d'Apple: SF1/AAPL_MARKETCAP\n",
"* Taux de chômage américain: FRED/UNRATE\n",
"\n",
"Vous pouvez télécharger tous les codes d'un ensemble de données dans une base de données en ue seule requête API, en ajoutant '/codes' à votre demande de base de données. La requête retourne un fichier ZIP contenant un CSV.\n",
"\n",
"### Bases de Données\n",
"\n",
"\n",
"Chaque code Quandl comporte 2 parties: le code de la base de données (\"WIKI\") qui spécifie d'où proviennent les données, et le code du jeu de données (\"FB\") qui identifie la série temporelle spécifique que vous voulez.\n",
"\n",
"Vous pouvez trouver les codes Quandl sur leur site Web, en utilisant leur navigateur de données.\n",
"\n",
"https://www.quandl.com/search"
]
},
{
"source": [
"# POUR LES ACTIONS (STOCKS)"
],
"cell_type": "code",
"metadata": {},
"execution_count": 12,
"outputs": []
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"mydata = quandl.get('WIKI/FB',start_date='2015-01-01',end_date='2017-01-01')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Open High Low Close Volume Ex-Dividend \\\n",
"Date \n",
"2015-01-02 78.58 78.9300 77.700 78.450 18177475.0 0.0 \n",
"2015-01-05 77.98 79.2455 76.860 77.190 26452191.0 0.0 \n",
"2015-01-06 77.23 77.5900 75.365 76.150 27399288.0 0.0 \n",
"2015-01-07 76.76 77.3600 75.820 76.150 22045333.0 0.0 \n",
"2015-01-08 76.74 78.2300 76.080 78.175 23960953.0 0.0 \n",
"\n",
" Split Ratio Adj. Open Adj. High Adj. Low Adj. Close \\\n",
"Date \n",
"2015-01-02 1.0 78.58 78.9300 77.700 78.450 \n",
"2015-01-05 1.0 77.98 79.2455 76.860 77.190 \n",
"2015-01-06 1.0 77.23 77.5900 75.365 76.150 \n",
"2015-01-07 1.0 76.76 77.3600 75.820 76.150 \n",
"2015-01-08 1.0 76.74 78.2300 76.080 78.175 \n",
"\n",
" Adj. Volume \n",
"Date \n",
"2015-01-02 18177475.0 \n",
"2015-01-05 26452191.0 \n",
"2015-01-06 27399288.0 \n",
"2015-01-07 22045333.0 \n",
"2015-01-08 23960953.0 "
],
"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>Open</th>\n <th>High</th>\n <th>Low</th>\n <th>Close</th>\n <th>Volume</th>\n <th>Ex-Dividend</th>\n <th>Split Ratio</th>\n <th>Adj. Open</th>\n <th>Adj. High</th>\n <th>Adj. Low</th>\n <th>Adj. Close</th>\n <th>Adj. Volume</th>\n </tr>\n <tr>\n <th>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 </tr>\n </thead>\n <tbody>\n <tr>\n <th>2015-01-02</th>\n <td>78.58</td>\n <td>78.9300</td>\n <td>77.700</td>\n <td>78.450</td>\n <td>18177475.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>78.58</td>\n <td>78.9300</td>\n <td>77.700</td>\n <td>78.450</td>\n <td>18177475.0</td>\n </tr>\n <tr>\n <th>2015-01-05</th>\n <td>77.98</td>\n <td>79.2455</td>\n <td>76.860</td>\n <td>77.190</td>\n <td>26452191.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>77.98</td>\n <td>79.2455</td>\n <td>76.860</td>\n <td>77.190</td>\n <td>26452191.0</td>\n </tr>\n <tr>\n <th>2015-01-06</th>\n <td>77.23</td>\n <td>77.5900</td>\n <td>75.365</td>\n <td>76.150</td>\n <td>27399288.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>77.23</td>\n <td>77.5900</td>\n <td>75.365</td>\n <td>76.150</td>\n <td>27399288.0</td>\n </tr>\n <tr>\n <th>2015-01-07</th>\n <td>76.76</td>\n <td>77.3600</td>\n <td>75.820</td>\n <td>76.150</td>\n <td>22045333.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>76.76</td>\n <td>77.3600</td>\n <td>75.820</td>\n <td>76.150</td>\n <td>22045333.0</td>\n </tr>\n <tr>\n <th>2015-01-08</th>\n <td>76.74</td>\n <td>78.2300</td>\n <td>76.080</td>\n <td>78.175</td>\n <td>23960953.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>76.74</td>\n <td>78.2300</td>\n <td>76.080</td>\n <td>78.175</td>\n <td>23960953.0</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {},
"execution_count": 14
}
],
"source": [
"mydata.head()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"mydata = quandl.get('WIKI/FB.1',start_date='2015-01-01',end_date='2017-01-01')"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Open\n",
"Date \n",
"2015-01-02 78.58\n",
"2015-01-05 77.98\n",
"2015-01-06 77.23\n",
"2015-01-07 76.76\n",
"2015-01-08 76.74"
],
"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>Open</th>\n </tr>\n <tr>\n <th>Date</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>2015-01-02</th>\n <td>78.58</td>\n </tr>\n <tr>\n <th>2015-01-05</th>\n <td>77.98</td>\n </tr>\n <tr>\n <th>2015-01-06</th>\n <td>77.23</td>\n </tr>\n <tr>\n <th>2015-01-07</th>\n <td>76.76</td>\n </tr>\n <tr>\n <th>2015-01-08</th>\n <td>76.74</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {},
"execution_count": 16
}
],
"source": [
"mydata.head()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"mydata = quandl.get('WIKI/FB.7',start_date='2015-01-01',end_date='2017-01-01')"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Split Ratio\n",
"Date \n",
"2015-01-02 1.0\n",
"2015-01-05 1.0\n",
"2015-01-06 1.0\n",
"2015-01-07 1.0\n",
"2015-01-08 1.0"
],
"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>Split Ratio</th>\n </tr>\n <tr>\n <th>Date</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>2015-01-02</th>\n <td>1.0</td>\n </tr>\n <tr>\n <th>2015-01-05</th>\n <td>1.0</td>\n </tr>\n <tr>\n <th>2015-01-06</th>\n <td>1.0</td>\n </tr>\n <tr>\n <th>2015-01-07</th>\n <td>1.0</td>\n </tr>\n <tr>\n <th>2015-01-08</th>\n <td>1.0</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {},
"execution_count": 18
}
],
"source": [
"mydata.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exemple Prix Logement\n",
"\n",
"**Zillow Home Value Index (Metro: Indice Zillow des loyers - Tous les logements - San Francisco, CA**\n",
"\n",
"L'indice Zillow 'Home Value Index' est l'estimation par Zillow de la valeur marchande médiane de l'indice locatif Zillow pour toutes les maisons dans la zone de San Francisco, CA. Ces données sont calculées par Zillow Real Estate Research (www.zillow.com/research) à partir de leur base de données de 110 millions de foyers."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"houses = quandl.get('ZILLOW/M11_ZRIAH')"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" Value\n",
"Date \n",
"2010-11-30 2454.0\n",
"2010-12-31 2461.0\n",
"2011-01-31 2484.0\n",
"2011-02-28 2506.0\n",
"2011-03-31 2526.0"
],
"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>Value</th>\n </tr>\n <tr>\n <th>Date</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>2010-11-30</th>\n <td>2454.0</td>\n </tr>\n <tr>\n <th>2010-12-31</th>\n <td>2461.0</td>\n </tr>\n <tr>\n <th>2011-01-31</th>\n <td>2484.0</td>\n </tr>\n <tr>\n <th>2011-02-28</th>\n <td>2506.0</td>\n </tr>\n <tr>\n <th>2011-03-31</th>\n <td>2526.0</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {},
"execution_count": 20
}
],
"source": [
"houses.head()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<AxesSubplot:xlabel='Date'>"
]
},
"metadata": {},
"execution_count": 21
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 432x288 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"262.19625pt\" version=\"1.1\" viewBox=\"0 0 391.358784 262.19625\" width=\"391.358784pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2020-11-27T22:06:19.279569</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.1, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M -0 262.19625 \r\nL 391.358784 262.19625 \r\nL 391.358784 0 \r\nL -0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 39.65 224.64 \r\nL 374.45 224.64 \r\nL 374.45 7.2 \r\nL 39.65 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"matplotlib.axis_1\">\r\n <g id=\"xtick_1\">\r\n <g id=\"line2d_1\">\r\n <defs>\r\n <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"m8aeed66dce\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n </defs>\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"45.682432\" xlink:href=\"#m8aeed66dce\" y=\"224.64\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_1\">\r\n <!-- 2011 -->\r\n <g transform=\"translate(32.957432 239.238437)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 19.1875 8.296875 \r\nL 53.609375 8.296875 \r\nL 53.609375 0 \r\nL 7.328125 0 \r\nL 7.328125 8.296875 \r\nQ 12.9375 14.109375 22.625 23.890625 \r\nQ 32.328125 33.6875 34.8125 36.53125 \r\nQ 39.546875 41.84375 41.421875 45.53125 \r\nQ 43.3125 49.21875 43.3125 52.78125 \r\nQ 43.3125 58.59375 39.234375 62.25 \r\nQ 35.15625 65.921875 28.609375 65.921875 \r\nQ 23.96875 65.921875 18.8125 64.3125 \r\nQ 13.671875 62.703125 7.8125 59.421875 \r\nL 7.8125 69.390625 \r\nQ 13.765625 71.78125 18.9375 73 \r\nQ 24.125 74.21875 28.421875 74.21875 \r\nQ 39.75 74.21875 46.484375 68.546875 \r\nQ 53.21875 62.890625 53.21875 53.421875 \r\nQ 53.21875 48.921875 51.53125 44.890625 \r\nQ 49.859375 40.875 45.40625 35.40625 \r\nQ 44.1875 33.984375 37.640625 27.21875 \r\nQ 31.109375 20.453125 19.1875 8.296875 \r\nz\r\n\" id=\"DejaVuSans-50\"/>\r\n <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n <path d=\"M 12.40625 8.296875 \r\nL 28.515625 8.296875 \r\nL 28.515625 63.921875 \r\nL 10.984375 60.40625 \r\nL 10.984375 69.390625 \r\nL 28.421875 72.90625 \r\nL 38.28125 72.90625 \r\nL 38.28125 8.296875 \r\nL 54.390625 8.296875 \r\nL 54.390625 0 \r\nL 12.40625 0 \r\nz\r\n\" id=\"DejaVuSans-49\"/>\r\n </defs>\r\n <use xlink:href=\"#DejaVuSans-50\"/>\r\n <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n <use x=\"127
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"houses.plot()"
]
}
],
"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.7.9-final"
}
},
"nbformat": 4,
"nbformat_minor": 2
}