{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"# Using APIs for Data Imports \n",
"\n",
"This chapter starts by using [NASDAQ Data Link](https://data.nasdaq.com/tools/api) to download some BTC price and return data. We'll also see our first set of **simulations**. I'll then show you how to use [Pandas Data Reader](https://pandas-datareader.readthedocs.io/en/latest/).\n",
"\n",
"This is also our first time using an **API**. Their API, or Application Programming Interface, let's us talk to a remote data storage system and pull in what we need. APIs are more general, though, and are used whenever you need one application to talk to another.\n",
"\n",
"We'll use the [NASDAQ Data Link](https://data.nasdaq.com/tools/api). They also have [Python specific instructions](https://data.nasdaq.com/tools/python).\n",
"\n",
"You can read about the install [on their package page](https://pypi.org/project/Nasdaq-Data-Link/).\n",
"\n",
"\n",
"We can again use `pip` to install packages via the command line or in your Jupyter notebook. \n",
"\n",
"```\n",
"pip install nasdaq-data-link\n",
"```\n",
"\n",
"To install a package directly in your notebook (e.g. in Google Colabs), use the `! pip` convention.\n",
"\n",
"```\n",
"! pip install nasdaq-data-link\n",
"```\n",
"\n",
"When you sign-up for NASDAQ Data Link, you'll get an API Key. You will need to add this key to the set-up to access the NASDAQ data using Quandl. \n",
"\n",
"I have saved my key locally and am bringing it in with `quandl.read_key`, so that it isn't publicly available. You don't need that bit of code.\n",
"\n",
"You can also install `pandas-datareader` using `pip`.\n",
"\n",
"```\n",
"pip install pandas-datareader\n",
"```\n",
"\n",
"Again, add the `! pip` if you're in Google Colab.\n",
"\n",
"Finally, for a large set of APIs for access data, check out [Rapid API](https://rapidapi.com/hub). Some are free, others you have to pay for. You'll need to get an access API key for each one. **This is a great way to get data for projects!**. More on this at the end of these notes."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's do our usual sort of set-up code."
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [],
"source": [
"# Set-up\n",
"\n",
"import nasdaqdatalink # You could also do something like: import nasdaqdatalink as ndl\n",
"import pandas_datareader as pdr\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import datetime as dt\n",
"\n",
"import matplotlib as mpl \n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Include this to have plots show up in your Jupyter notebook.\n",
"%matplotlib inline \n",
"\n",
"# nasdaqdatalink.ApiConfig.api_key = 'YOUR_KEY_HERE'\n",
"\n",
"nasdaqdatalink.read_key()\n",
"\n",
"#nasdaqdatalink.read_key(filepath=\"/data/.corporatenasdaqdatalinkapikey\")\n",
"#print(nasdaqdatalink.ApiConfig.api_key)"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"btc = btc.loc['2015-01-01':,['Value', 'ret']]\n",
"btc.plot()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Well, that's not a very good graph. The returns and price levels are in different units. Let's use an `f print` to show and format the average BTC return."
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Average return: 0.23%\n"
]
}
],
"source": [
"print(f'Average return: {100 * btc.ret.mean():.2f}%')"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's make a cumulative return chart and daily return chart. We can then stack these on top of each other. I'll use the `.sub(1)` method to subtract 1 from the cumulative product. You see this a lot in the DataCamps."
]
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Value
\n",
"
ret
\n",
"
ret_g
\n",
"
ret_c
\n",
"
\n",
"
\n",
"
Date
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
2015-01-01
\n",
"
316.15
\n",
"
0.001425
\n",
"
1.001425
\n",
"
0.001425
\n",
"
\n",
"
\n",
"
2015-01-02
\n",
"
314.81
\n",
"
-0.004238
\n",
"
0.995762
\n",
"
-0.002819
\n",
"
\n",
"
\n",
"
2015-01-03
\n",
"
270.93
\n",
"
-0.139386
\n",
"
0.860614
\n",
"
-0.141812
\n",
"
\n",
"
\n",
"
2015-01-04
\n",
"
276.80
\n",
"
0.021666
\n",
"
1.021666
\n",
"
-0.123218
\n",
"
\n",
"
\n",
"
2015-01-05
\n",
"
263.17
\n",
"
-0.049241
\n",
"
0.950759
\n",
"
-0.166392
\n",
"
\n",
"
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
\n",
"
\n",
"
2023-04-11
\n",
"
29656.24
\n",
"
0.046586
\n",
"
1.046586
\n",
"
92.938042
\n",
"
\n",
"
\n",
"
2023-04-12
\n",
"
30234.98
\n",
"
0.019515
\n",
"
1.019515
\n",
"
94.771239
\n",
"
\n",
"
\n",
"
2023-04-13
\n",
"
29899.24
\n",
"
-0.011104
\n",
"
0.988896
\n",
"
93.707761
\n",
"
\n",
"
\n",
"
2023-04-14
\n",
"
30407.60
\n",
"
0.017002
\n",
"
1.017002
\n",
"
95.318023
\n",
"
\n",
"
\n",
"
2023-04-15
\n",
"
30486.05
\n",
"
0.002580
\n",
"
1.002580
\n",
"
95.566519
\n",
"
\n",
" \n",
"
\n",
"
3027 rows × 4 columns
\n",
"
"
],
"text/plain": [
" Value ret ret_g ret_c\n",
"Date \n",
"2015-01-01 316.15 0.001425 1.001425 0.001425\n",
"2015-01-02 314.81 -0.004238 0.995762 -0.002819\n",
"2015-01-03 270.93 -0.139386 0.860614 -0.141812\n",
"2015-01-04 276.80 0.021666 1.021666 -0.123218\n",
"2015-01-05 263.17 -0.049241 0.950759 -0.166392\n",
"... ... ... ... ...\n",
"2023-04-11 29656.24 0.046586 1.046586 92.938042\n",
"2023-04-12 30234.98 0.019515 1.019515 94.771239\n",
"2023-04-13 29899.24 -0.011104 0.988896 93.707761\n",
"2023-04-14 30407.60 0.017002 1.017002 95.318023\n",
"2023-04-15 30486.05 0.002580 1.002580 95.566519\n",
"\n",
"[3027 rows x 4 columns]"
]
},
"execution_count": 116,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"btc['ret_g'] = btc.ret.add(1) # gross return\n",
"btc['ret_c'] = btc.ret_g.cumprod().sub(1) # cummulative return\n",
"btc"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"We can now make a graph using the **fig, axs** method. This is good review! Again, notice that semi-colon at the end. This suppresses some annoying output in the Jupyter notebook. "
]
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axs = plt.subplots(2, 1, sharex=True, sharey=False, figsize=(10, 6))\n",
"\n",
"axs[0].plot(btc.ret_c, 'g', label = 'BTC Cumulative Return')\n",
"axs[1].plot(btc.ret, 'b', label = 'BTC Daily Return')\n",
" \n",
"axs[0].set_title('BTC Cumulative Returns')\n",
"axs[1].set_title('BTC Daily Returns')\n",
"\n",
"axs[0].legend()\n",
"axs[1].legend();\n",
"\n",
"\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"I can make the same graph using the `.add_subplot()` syntax. The method above gives you some more flexibility, since you can give both plots the same x-axis."
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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JNjY2Ag2NjbCoEGD8i3pXxoZ8p4OHTo0xzbHjh0z3AUbgKHuaUhISK5tyhpD3dPr168L7du3FxwdHQW5XC54e3sLo0ePFp48eWLgKzYMiSCUwZlTREREREREhVA2B14SEREREREVAhMjIiIiIiIq95gYERERERFRucfEiIiIiIiIyj0mRkREREREVO4xMSIiIiIionKPiREREREREZV7TIyIiIiIiKjcY2JERERERETlHhMjIiIiIiIq95gYERERERFRucfEiIiIiIiIyj0mRkREREREVO4xMSIiIiIionKPiREREREREZV7TIyIiIiIiKjcY2JERERERETlHhMjIiIiIiIq95gYERERERFRucfEiIiIiIiIyj0mRkREREREVO4xMSIiIiIionKPiREREREREZV7TIyIiIiIiKjcY2JERERERETlHhMjIiIiIiIq95gYERERERFRucfEiIiIiIiIyj0mRkREREREVO4xMSIiIiIionKPiREREREREZV7TIyIiIiIiKjcY2JERERERETlHhMjIiIiIiIq95gYERERERFRucfEiIiIiIiIyj0mRkREREREVO4xMSIiIiIionKPiREREREREZV7TIyIiIiIiKjcY2JERERERETlHhMjIiIiIiIq95gYERERERFRucfEiIiIiIiIyj0mRkREREREVO4xMSIiIiIionKPiREREREREZV7TIyIiIiIiKjcY2JERERERETlHhMjIiIiIiIq95gYERGVQmvXroVEItF4OTs7IyAgALt37xbbDRs2TKtdTq9hw4YBAJRKJX799Vd07NgRTk5OkMlkcHFxQffu3bFr1y4olco84/L29haPaWJiAjs7O9SqVQvvvvsuDh48WKxrDggIQEBAgMY6iUSC4ODgYh1XLTw8XOOemJiYwMHBAW+88UaRY09OTkZwcDCOHz+ukxiJiEh/TI0dABERFV1ISAhq1qwJQRAQFRWFJUuWICgoCDt37kRQUBC+/PJLjB49Wmx/5coVjB07FnPmzEH79u3F9c7OzkhNTUWvXr1w8OBB9O/fH8uXL4ebmxueP3+O/fv345133sGWLVvQs2fPPGNq1aoVfvjhBwBAYmIi7ty5g82bNyMwMBBvvfUWNm3aBJlMVuhrXbZsWaH3KYrx48dj4MCBUCgU+PfffzFr1ix07doVR48eRdu2bQt1rOTk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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure(figsize=(10, 6))\n",
"\n",
"ax1 = fig.add_subplot(2, 1, 1)\n",
"ax1.plot(btc.ret_c, 'g', label = 'BTC Cumulative Return')\n",
"\n",
"ax2 = fig.add_subplot(2, 1, 2)\n",
"ax2.plot(btc.ret, 'b', label = 'BTC Daily Return')\n",
"\n",
"ax1.set_title('BTC Cumulative Returns')\n",
"ax2.set_title('BTC Daily Returns')\n",
"\n",
"ax1.legend()\n",
"ax2.legend()\n",
"\n",
"plt.subplots_adjust(wspace=0.5, hspace=0.5);\n",
"\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's put together some ideas, write a function, and run a simulation. We'll use something called **geometric brownian motion** (GBM). What is GBM? It is a particular [stochastic differential equation](https://arxiv.org/pdf/1504.05309.pdf). But, what's important for us is the idea, which is fairly simple. Here's the formula:\n",
"\n",
"\\begin{align}\n",
"dS = \\mu S dt + \\sigma S dW_t\n",
"\\end{align}\n",
"\n",
"This says that the change in the stock price has two components - a **drift**, or average increase over time, and a **shock** that it is random at each point in time. The shock is scaled by the standard deviation of returns that you use. So, larger standard deviation, the bigger the shocks can be. This is basically the simplest way that you can model an asset price.\n",
"\n",
"The shocks are what make the price wiggle around around, or else it would just go up over time, based on the drift value that we use.\n",
"\n",
"And, I'll stress - we aren't predicting here, so to speak. We are trying to capture some basic reality about how an asset moves and then seeing what is possible in the future. We aren't making a statement about whether we think an asset is overvalued or undervalued, will go up or down, etc.\n",
"\n",
"You can solve this equation to get the value of the asset at any point in time t. You just need to know the total of all of the shocks at time t.\n",
"\n",
"\\begin{align}\n",
"S(t) = S(0) \\exp \\left(\\left(\\mu - \\frac{1}{2}\\sigma^2\\right)t + \\sigma W(t)\\right)\n",
"\\end{align}"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [],
"source": [
"T = 30 # How long is our simulation? Let's do 31 days (0 to 30 the way Python counts)\n",
"N = 30 # number of time points in the prediction time horizon, making this the same as T means that we will simulate daily returns \n",
"S_0 = btc.Value[-1] # initial BTC price\n",
"N_SIM = 100 # How many simulations to run?\n",
"mu = btc.ret.mean()\n",
"sigma = btc.ret.std()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"This is the basic syntax for writing a function in Python. We saw this earlier, back when doing \"Comp 101\". Remember, in Python, **indentation matters**!"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {},
"outputs": [],
"source": [
"def simulate_gbm(s_0, mu, sigma, n_sims, T, N):\n",
" dt = T/N # One day\n",
" dW = np.random.normal(scale = np.sqrt(dt), \n",
" size=(n_sims, N)) # The random part\n",
" W = np.cumsum(dW, axis=1)\n",
" time_step = np.linspace(dt, T, N)\n",
" time_steps = np.broadcast_to(time_step, (n_sims, N))\n",
" S_t = s_0 * np.exp((mu - 0.5 * sigma ** 2) * time_steps + sigma * np.sqrt(time_steps) * W)\n",
" S_t = np.insert(S_t, 0, s_0, axis=1)\n",
" return S_t"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Nothing happens when we define a function. We've just created something called `simulate_gbm` that we can now use just like any other Python function.\n",
"\n",
"We can look at each piece of the function code, with some numbers hard-coded, to get a sense of what's going on. This gets tricky - keep track of the dimensions. I think that's the hardest part. How many numbers are we creating in each array? What do they mean?"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [],
"source": [
"# Creates 100 rows of 30 random numbers from the standard normal distribution.\n",
"dW = np.random.normal(scale = np.sqrt(1), \n",
" size=(100, 30))\n",
"\n",
"# cumulative sum along each row\n",
"W = np.cumsum(dW, axis=1) \n",
"\n",
"# Array with numbers from 1 to 30\n",
"time_step = np.linspace(1, 30, 30)\n",
"\n",
"# Expands that to be 100 rows of numbers from 1 to 30. This is going to be the t in the formula above. So, for the price on the 30th day, we have t=30.\n",
"time_steps = np.broadcast_to(time_step, (100, 30))\n",
"\n",
"# This is the formula from above to find the value of the asset any any point in time t. np.exp is the natural number e. W is the cumulative sum of all of our random shocks.\n",
"S_t = S_0 * np.exp((mu - 0.5 * sigma ** 2) * time_steps + sigma * np.sqrt(time_steps) * W)\n",
"\n",
"# This inserts the initial price at the start of each row.\n",
"S_t = np.insert(S_t, 0, S_0, axis=1)\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"We can look at these individually, too."
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[-0.22764375, 0.66616125, 0.2690296 , ..., 1.23724302,\n",
" -1.7193544 , -0.31297741],\n",
" [-0.37475192, -0.576506 , 2.83087209, ..., -0.39934126,\n",
" -0.67269187, 0.80478657],\n",
" [-0.34028403, 0.36534647, -0.42024997, ..., -1.23703819,\n",
" -1.86703547, 1.67135591],\n",
" ...,\n",
" [-1.06306433, -0.05604163, -1.82729248, ..., 0.11109672,\n",
" -0.54515618, 1.74339067],\n",
" [-0.96750323, 0.17279 , -1.78542644, ..., -0.47524907,\n",
" -0.13458806, -0.13247772],\n",
" [ 0.06363717, -0.54343608, 1.01651732, ..., -0.12964301,\n",
" -0.76946645, -0.86638566]])"
]
},
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dW"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1., 2., 3., ..., 28., 29., 30.],\n",
" [ 1., 2., 3., ..., 28., 29., 30.],\n",
" [ 1., 2., 3., ..., 28., 29., 30.],\n",
" ...,\n",
" [ 1., 2., 3., ..., 28., 29., 30.],\n",
" [ 1., 2., 3., ..., 28., 29., 30.],\n",
" [ 1., 2., 3., ..., 28., 29., 30.]])"
]
},
"execution_count": 123,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time_steps"
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"100"
]
},
"execution_count": 124,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(time_steps)"
]
},
{
"cell_type": "code",
"execution_count": 125,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(100, 30)"
]
},
"execution_count": 125,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.shape(time_steps)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"I do this kind of step-by-step break down **all of the time**. It's the only way I can understand what's going on.\n",
"\n",
"We can then use our function. This returns an `narray`. "
]
},
{
"cell_type": "code",
"execution_count": 126,
"metadata": {},
"outputs": [],
"source": [
"gbm_simulations = simulate_gbm(S_0, mu, sigma, N_SIM, T, N)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"And, we can plot all of the simulations. I'm going to use `pandas` to plot, save to `ax`, and the style the `ax`."
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAG3CAYAAADo7xwFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABivUlEQVR4nO3de5gkVZkn/u85EZGZdc3q6ntD0zDIRbmJgNrcUWHtEcfLrqLjuK3juKuLPjq4q4M+M8A8rs2o8MPRhfH2iIzs4noBr6g40M2AutKIAyIKSAs90E1f65aVmRFxzvv740REZnZVd9clqzKz6vvRpKrzejIyKs8b73nPCSUiAiIiIqIm0K1uABERES0cDCyIiIioaRhYEBERUdMwsCAiIqKmYWBBRERETcPAgoiIiJqGgQURERE1DQMLIiIiahoGFkRERNQ0DCyIFpGbb74ZSim84x3vaHVTDunqq6+GUgpXX331vL3m0UcfDaUU/vjHP87baxItRAwsaFFJO48DL729vTj11FNx5ZVXYu/evQ2PufDCCyd9zOEu9ay1uO222/CmN70J69atQ3d3N3p6enDcccfhL/7iL/D9738f011dP45jfP7zn8dFF12EpUuXIggCrFixAqeccgre/va348tf/jL2798/6222ENxxxx24+uqr8etf/7rVTSFa8PxWN4CoFY477jisWLECgOv0d+zYgUceeQSPPPII/vmf/xn33Xcfjj76aADAKaecgjiOJzzH/fffDwA4+eSTUSwWD/paf/jDH/DGN74RDz/8MABgyZIlOOGEEyAiePrpp3Hrrbfi1ltvxRlnnIH77rsPhULhsO0fGRnBq1/9avz85z8HACxbtgynnHIKrLV48skn8Zvf/AZf+9rXsHLlSlx66aXZ44rFIk444QSsXr16ahtqgbjjjjvw1a9+FUcffTRe/OIXT3qfY489FoVCAUEQzG/jiBYYBha0KH30ox+dMBzw0EMP4dJLL8Wzzz6LD3/4w/i///f/AgA++9nPTvocaVbis5/9LC688MJJ7/P0009j/fr12L17N84880x86lOfwvnnnw+tXbLQGIN//dd/xSc+8QncddddqFQqUwos/sf/+B/4+c9/jmXLluGf//mf8epXvzq7zRiD+++/HzfffPOE53rDG96AN7zhDYd9/sXoX/7lX1rdBKIFgYEFUeL000/Hxz72MVx++eX46U9/2pTnfNvb3obdu3fjggsuwJ133omurq6G2z3Pw4UXXogLL7wQN954IzzPO+xzxnGMW2+9FQBwww03NAQV6XOef/75OP/885vyHoiIpoM1FkR11q1bBwAIw3DWz3X33Xfj/vvvRxAEuOWWWyYEFQf6b//tv6Gvr++wz7tr1y6USiUAOGha/2AOVry5efNmKKVw4YUXwhiDf/iHf8ALX/hCdHV14eijj8bVV1+dDQeVy2X87d/+LV7wghegUCjg2GOPxSc/+clJa0TS+pTNmzdP2p53vOMdUErh5ptvnlL7jTH4zne+g7/8y7/ESSedhGKxiO7ubrzwhS/Ehz/8YezZs6fh/n/84x+hlMJXv/pVAMA73/nOhjqY+uLQQxVvRlGEz372s3jpS1+K/v5+9PT04LTTTsP//J//E+Pj4xPun75uOpz2ta99DWeeeSa6u7sxODiIN73pTXjqqacmfY+/+c1v8La3vQ1r165FLpfDwMAAjjvuOPz5n/85fvSjH01pOxG1EjMWRHW2bt0KADjxxBNn/Vy33XYbAODSSy/FUUcdNevnS/X19UEpBRHBL3/5S5x00klNe24AuOyyy/Ctb30LL3zhC7Fu3To8/vjjuOaaa/DMM8/gxhtvxEUXXYStW7fipJNOwurVq/HUU0/hIx/5CEqlEq655pqmtuVAO3bswOtf/3porbFy5Uq84AUvwPj4OP74xz/iU5/6FL7xjW/gF7/4BVauXAkAKBQKOOecc/DEE09g165dDbU1AKb0uZTLZVx66aW4++67AQAvfOELEQQBfvOb3+Dhhx/GN7/5Tfz0pz/F0qVLJ338lVdeiWuvvRbr1q3D8ccfj9/97nf45je/ifvvvx8PP/wwli1blt33l7/8JS688EKUy2UUi0W86EUvgjEG27dvx//5P/8H4+PjEzJURG1HiBaRdevWCQD5yle+kl1njJFnn31WbrzxRunq6hKllHzzm9887HMBEAByzz33THr7SSedJADkhhtuaFLra8455xwBIH19fbJp0yZ54oknpvS4r3zlKwJANm7c2HD9PffcIwAkCAI58sgj5aGHHspu27x5s+RyOVFKyZ/92Z/JKaecIn/4wx+y22+99VYBIPl8Xvbt29fwvBdccMEht9HGjRsnfB4iIldddZUAkKuuuqrh+qGhIbn55ptl7969Ddfv379f3ve+9wkAecc73jHl16mX7hvbtm1ruP5DH/qQAJA1a9bIgw8+mF3/xBNPyIknnigA5M1vfnPDY7Zt2yYAxPd96e/vlx/+8IfZbTt27JBTTz1VAMhHPvKRhsddeumlAkA++tGPSrVabbjtgQcekFtvvfWg7SdqFwwsaFFJO4+DXc466yz58Y9/PKXnOlxgMTAwIADkO9/5ThPfgfNv//ZvsnTp0oa2L1u2TDZs2CD/8A//IM8888ykjztcYAFAbr/99gmPe+tb3yoARCklv/rVrybc/vKXv1wAyLe//e2G65sdWBzO2rVrpbu7W6IomtLr1JsssBgeHpbu7u6Dbpdf/vKX2XZ58skns+vTwAKAXHfddRMe993vflcAyKmnntpw/QknnCAAZHh4eGpvmKgNscaCFqXjjjsO55xzTnY54YQTkM/n8eCDD+LGG29syvoPo6OjAICenp5ZP9eBTj31VPzmN7/BX//1X2dp/z179uDOO+/ERz7yERx77LH42Mc+BmvttJ53cHAQr3/96ydcn9ZynH766Tj99NMn3J5ed7C6gWa7++678dd//dd4zWteg/PPPx/nnnsuzj33XAwPD2N8fBxPPPFEU17nvvvuw/j4OI466ii87nWvm3D7WWedhfXr10NEcNddd036HO9617smfRwwcXutXbsWALIZSUSdiDUWtChNNt10aGgIH/jAB3DLLbfgkksuwS9/+csJC11NR19fH4aGhrJCy2ZbtWoVrr/+elx//fV47LHH8MADD+Bf/uVf8N3vfhdDQ0P4xCc+gXw+j7/7u7+b8nMee+yxk16/fPnyKd0+NjY2zXcxPWEY4rLLLsMdd9xxyPvt27evKa/3+OOPA3A1NwfbF0466ST8/Oc/z+5bb9myZZOucZLWeRy4vT74wQ/ipz/9Kd797nfjuuuuw3/4D/8B5557brYIGlEnYMaCKDEwMIAvfOELOOKII7B161Z85zvfmdXzHXHEEQCAbdu2NaN5h/TCF74Q//k//2d89atfxZNPPolXvOIVAIBPfvKTqFarU36e7u7uSa9PO9XD3S7TXD10uq699lrccccdWLVqFW655Rb88Y9/RKVSgbhhXZxzzjkA3CyOZkg7/vqCzwOlGaM0Q1XvYNmqdB2TA73mNa/BD37wA5x99tl4/PHH8ZnPfAZvetObsGrVKrz5zW/Gs88+O923QDTvWhZY3HvvvXjta1+LNWvWQCl12COQyYgIPv3pT+P4449HPp/H2rVr8YlPfKL5jaVFI5/P4yUveQkAV6E/G2effTYAYMuWLbNu13QsXbo0W9SrVCrht7/97by+fr3DBRzTzeak63fcfPPNePvb345169Yhn89nt2/fvn2GLZ1cb28vADfF92Cef/55AJjSVOGp+NM//VPcf//92L17N+644w68//3vx8DAAL7xjW/gta99bdOCJqK50rLAolQq4bTTTsPnPve5GT/HBz7wAXzpS1/Cpz/9afzud7/D9773Pbz0pS9tYitpMUrrEmabTr/ssssAAN///vfxzDPPzLpd0/Enf/In2e/NWJNjptIj9t27d096+5NPPjmt50vXmEiDtnp79+496BH9TIe0jj/+eADAY489dtDg6NFHH224b7MMDg7ida97Hf7xH/8Rv/nNb1AsFvHQQw9lU6KJ2lXLAosNGzbg4x//ON74xjdOensYhvjwhz+MI444Aj09PXjZy17WsMjOY489hptuugnf+c538Gd/9mc45phj8OIXvxivetWr5ukd0EJUqVTw0EMPAWjsnGfila98JdavX48oirBx40ZUKpVD3v+f/umfJk2nHyiO48MWl/7sZz8D4FLuB6uLmA/pNnzggQcm3LZ161b827/927SeL11kLM0S1LvuuutgjDnk48rl8rRe79xzz0V3dze2b98+6dDY1q1b8fOf/xxKKVx88cXTeu7pWLlyJY455hgAwHPPPTdnr0PUDG1bY/HOd74T999/P2677TY8/PDDeNOb3oRXv/rVWbX39773PfzJn/wJvv/97+OYY47B0Ucfjb/6q79qWtEWLT779+/Hu9/9bjz33HPI5XJ485vfPOvnvPXWW7F06VJs3rwZ5513HjZv3twwU8Nai/vuuw+vfvWr8d73vvegHWO9sbExHH300fjwhz+MRx55pOFIWkTw/e9/Hxs3bgTgFueqX4Bpvm3YsAEA8MUvfrFhaOmJJ57Axo0b4fvTqx8/99xzAQAf+tCHsvoHEcEtt9yCT3/60wc9z0oa4Nx7773TqgPp7+/He9/7XgDA+973vizoBNzJ5dLt/OY3v7kpAdxb3vIW/OAHP5iQZfrmN7+JRx55BEqpSWflELWVFk1zbYAD5og/+eSTopSSZ599tuF+r3zlK+XKK68UEZH/+l//q+TzeXnZy14m9957r9xzzz3y4he/WC666KL5bDp1mHStguOOO07OOeec7HLiiSdKPp/PFjU61HoHKRxmHYvU448/LieffHJ2/8HBQTn99NPlxS9+sSxZsiS7/mUve5lUKpXDvu7Q0FDD+hVLliyR008/XU477bSG5zv55JNlx44dDY893DoWF1xwwaSvebDHpQ627oS1Vl71qlcJANFaywknnCAnn3yyaK3l/PPPlz//8z+f1joWW7duzT6n/v5+OeOMM2TNmjUCQN7+9rcfdN2MJ598UnK5nACQdevWyXnnnScXXHBBw+sebIGs8fFxueiii7Lt+qIXvUhOO+008TxPAMhpp50me/bsaXhMuo7FunXrJt1eIrX9p16xWMwWGzv55JPlrLPOktWrV2f3/du//duDPh9Ru2jLjMWvfvUriAiOP/549Pb2ZpctW7bgD3/4AwB3pFetVnHLLbfgvPPOw4UXXogvf/nLuOeee/D73/++xe+A2t0TTzyB+++/P7ts27YNRxxxBN75zndi69atE6aizsZxxx2HX//617j11lvxxje+ET09PXjsscfw+9//HoODg3jb296GO++8Ez//+c8bChEPplgs4vHHH8cNN9yA17zmNVixYgWefPJJ/Pa3v0Uul8PFF1+Mm266CQ8++CBWrVrVtPcxE0op3H777bjiiiuwZs0abNu2DaVSCVdeeSV+8pOfTPsU5WeccQbuvfdeXHzxxbDW4ne/+x1WrFiBf/zHf8zOBzKZY489Ft/73vdwwQUXYP/+/bjvvvuwZcuWSc8LcqCuri78+Mc/xmc+8xmceeaZePrpp/H444/jRS96ET7+8Y/jZz/7WdOmgn71q1/Ff/kv/wXHHXccnnvuOTz88MPo7u7GG97wBmzZsgV///d/35TXIZpLSmSO54dNpRHJl0+6MM/Xv/51vO1tb8Ojjz464WyPvb29WLVqFa666ip84hOfaKiQLpfL6O7uxk9+8pM5He8kIiKiybXlAlmnn346jDHYtWsXzjvvvEnvc8455yCOY/zhD3/IxjbTBWrSM1QSERHR/GpZxmJsbCybanb66afj+uuvx0UXXYTBwUEcddRR+Iu/+Avcf//9uO6663D66adjz549uPvuu3HKKafgT//0T2GtxVlnnYXe3l7ccMMNsNbi8ssvR39/P37yk5+04i0REREtei0LLDZv3oyLLrpowvUbN27EzTffjCiK8PGPfxy33HILnn32WSxduhTr16/HNddcg1NOOQWAm3b1/ve/Hz/5yU/Q09ODDRs24LrrrsPg4OB8vx0iIiJCm9RYEBER0cLQlrNCiIiIqDMxsCAiIqKmmfdZIdZaPPfcc+jr65vVKamJiIho/ogIRkdHsWbNmoOeoRdoQWDx3HPPYe3atfP9skRERNQE27dvx5FHHnnQ2+c9sEhPLbx9+3b09/fP98sTERHRDIyMjGDt2rVZP34w8x5YpMMf/f39DCyIiIg6zOHKGFi8SURERE3DwIKIiIiahoEFERERNQ0DCyIiImoaBhZERETUNAwsiIiIqGkYWBAREVHTMLAgIiKipmFgQURERE3DwIKIiIiahoEFERERNQ0DCyIiImoaBhZEREQLxMjICEZHRyEiLWvDvJ/dlIiIiJovDEOMjY0BAHK5HPL5fEvawYwFERFRh7PWYmhoCADQ1dXVsqACYGBBRETU8cbGxhDHMbTW6O/vb2lbGFgQERF1sPohkGKxCM/zWtqeaQUWV199NZRSDZdVq1bNVduIiIjoEEQkGwIpFAro6upqbYMwg+LNk046CT/96U+zf7c6MiIiIlqs6odAisViq5sDYAaBhe/708pSVKtVVKvV7N8jIyPTfUkiIiI6QBRFGB0dBdAeQyCpaddYPPHEE1izZg2OOeYYvOUtb8FTTz11yPtv2rQJxWIxu6xdu3bGjSUiIqL2HAJJKZnGKhp33nknxsfHcfzxx+P555/Hxz/+cfzud7/Do48+iqVLl076mMkyFmvXrsXw8HDLK1eJiIg60ejoKEZHR6GUwooVK+YlWzEyMoJisXjY/ntagcWBSqUSjj32WHz4wx/GFVdc0dSGERER0URRFGH37t0AgIGBAXR3d8/L6061/57VdNOenh6ccsopeOKJJ2bzNERERDQF9UMg+Xx+3oKK6ZhVYFGtVvHYY49h9erVzWoPERERHUSpVEIURVBKtc0skANNK7D47//9v2PLli3Ytm0b/t//+3/4T//pP2FkZAQbN26cq/YRERERgDiOs1kg/f398P32PN3XtFr17//+73jrW9+KPXv2YPny5Xj5y1+OX/ziF1i3bt1ctY+IiIgADA0NQUSQy+XQ09PT6uYc1LQCi9tuu22u2kFEREQHUSqVEIYhlFIYGBhodXMOiecKISIiamNxHGeLS/b19bXtEEiKgQUREVEbGx4ezoZAent7W92cw2JgQURE1KZKpRKq1WpbzwI5EAMLIiKiNmSMaRgCCYKgxS2aGgYWREREbSidBRIEQVvPAjkQAwsiIqI2Mz4+np1na2BgAEqpFrdo6hhYEBERtZFOHQJJMbAgIiJqI8PDw7DWIgiCjpgFciAGFkRERG3CWotKpQIAKBaLHTUEkmJgQURE1CastQAApRRyuVyLWzMzDCyIiIjahDEGAKB153bPndtyIiKiBSbNWDCwICIiollLAwvP81rckpljYEFERNQmOBRCRERETcOMBRERETUNayyIiIioaTgUQkRERE3DoRAiIiJqGmYsiIiIqCnSbAXAwIKIiIhmKc1WKKUYWBAREdHsLIT6CoCBBRERUVtYCPUVAAMLIiKitrAQ1rAAGFgQERG1BQ6FEBERUdNwKISIiIiahhkLIiIiahrWWBAREVHTcCiEiIiImkJEOBRCREREzbFQlvMGGFgQERG1XH19hVKqxa2ZHQYWRERELbZQ6isABhZEREQtt1DqKwAGFkRERC3HjAURERE1zUJZwwJgYEFERNRyHAohIiKipuFQCBERETUNMxZERETUNKyxICIioqaoX86bgQURERHNSlpfAXAohIiIiGZpIWUrAAYWRERELbWQCjcBBhZEREQttZCmmgIMLIiIiFqKGQsiIiJqGtZYEBERUdNwKISIiIiahkMhRERE1DTMWBAREVHTMGNBRERETWGthYgAYMaCiIiIZinNViilGFgQERHR7Cy0+gpgloHFpk2boJTCBz/4wSY1h4iIaPFYaGtYALMILB544AF84QtfwKmnntrM9hARES0aC61wE5hhYDE2Noa3ve1t+OIXv4glS5Y0u01ERESLAodCEpdffjle85rX4FWvetVh71utVjEyMtJwISIiooWZsfCn+4DbbrsNv/rVr/DAAw9M6f6bNm3CNddcM+2GERERLXSLvsZi+/bt+MAHPoCvfe1rKBQKU3rMlVdeieHh4eyyffv2GTWUiIhooVmIQyHTylg8+OCD2LVrF84444zsOmMM7r33Xnzuc59DtVqdkM7J5/PI5/PNaS0REdECsuiHQl75ylfikUceabjune98J0488UR85CMfWVAbhoiIaK4t+oxFX18fTj755Ibrenp6sHTp0gnXExER0cGl2QpgYQUWC+edEBERdZA0W7GQlvMGZjAr5ECbN29uQjOIiIgWl4VYXwEwY0FERNQSC7G+AmBgQURE1BILcQ0LgIEFERFRS3AohIiIiJqGQyFERETUNMxYEBERUdOwxoKIiIiahkMhRERE1BQiwqEQIiIiao6Fupw3wMCCiIho3tXXVyilWtya5mJgQURENM8Wan0FwMCCiIho3i3U+gqAgQUREdG8W6hTTQEGFkRERPOOQyFERETUNBwKISIioqZhxoKIiIiahhkLIiIiahoWbxIREVFT1C/nzcCCiIiIZiWtrwA4FEJERESztJCzFQADCyIionm1kAs3AQYWRERE82ohTzUFGFgQERHNK2YsiIiIqGlYY0FERERNw6EQIiIiahoOhRAREVHTMGNBRERETcOMBRERETWFtRYiAoAZCyIiIpqlNFuhlGJgQURERLOz0OsrAAYWRERE82ahr2EBMLAgIiKaNwu9cBNgYEFERDRvOBRCRERETcOMBRERETUNayyIiIioaTgUQkRERE3DoRAiIiJqGmYsiIiIqCnSbAXAwIKIiIhmKc1WLOTlvAEGFkRERPNiMdRXAAwsiIiI5sViqK8AGFgQERHNi8WwhgXAwIKIiGhecCiEiIiImoZDIURERNQ0zFgQERFR07DGgoiIiJqGQyFERETUFCLCoRAiIiJqjsWynDfAwIKIiGjO1ddXKKVa3Jq5xcCCiIhoji2W+gqAgQUREdGcWyz1FcA0A4ubbroJp556Kvr7+9Hf34/169fjzjvvnKu2ERERLQiLZaopMM3A4sgjj8S1116LrVu3YuvWrXjFK16B173udXj00Ufnqn1EREQdbzENhSgRkdk8weDgID71qU/hXe9615TuPzIygmKxiOHhYfT398/mpYmIiDrC/v37US6X0d/fj97e3lY3Z0am2n/7M30BYwy+8Y1voFQqYf369Qe9X7VaRbVabWgYERHRYrKYMhbTfoePPPIIent7kc/n8Z73vAe33347XvSiFx30/ps2bUKxWMwua9eunVWDiYiIOs1iKt6c9lBIGIZ45plnMDQ0hG9961v40pe+hC1bthw0uJgsY7F27VoOhRAR0aKxc+dOWGuxfPlyBEHQ6ubMyFSHQmZdY/GqV70Kxx57LD7/+c83tWFEREQLgYhgx44dAICVK1d2bNZiqv33rAd7RKQhI0FEREQ1aX0FsDiGQqZVvPnRj34UGzZswNq1azE6OorbbrsNmzdvxo9+9KO5ah8REVFHW0xrWADTDCyef/55vP3tb8eOHTtQLBZx6qmn4kc/+hEuvvjiuWofERFRR1tMhZvANAOLL3/5y3PVDiIiogVpMU01BXiuECIiojm12DIWDCyIiIjm0GKrsVgc75KIiKhFOBRCRERETcOhECIiImoaZiyIiIioaZixICIioqaw1iI9cwYzFkRERDQrabZCKcXAgoiIiGZnsdVXAAwsiIiI5sxiW8MCYGBBREQ0ZxZb4SbAwIKIiGjOcCiEiIiImoYZCyIiImoa1lgQERFR03AohIiIiJqGQyFERETUNMxYEBERUVOk2QqAgQURERHNUpqtWEzLeQMMLIiIiObEYqyvABhYEBERzYnFONUUYGBBREQ0JxZj4SbAwIKIiGhOcCiEiIiImoYZCyIiImoaZiyIiIioaVi8SURERE3DoRAiIiJqChHhUAgRERE1x2JdzhtgYEFERNR09fUVSqkWt2Z+MbAgIiJqssVaXwEwsCAiImq6xVpfATCwICIiarrFOtUUYGBBRETUdBwKISIioqbhUAgRERE1DTMWRERE1DTMWBAREVHTsHiTiIiImsJay8CCiIiImmN0dBQA4Ps+h0KIiIho5qIoQqlUAgD09/e3uDWtwcCCiIioSYaHhwEAhUIBhUKhxa1pDQYWRERETVAulxGGIYDFm60AGFgQERHNmrUWIyMjAIDe3l74vt/iFrUOAwsiIqJZGhsbgzEGnueht7e31c1pKQYWREREsxDHMcbGxgC4IZDFOMW03uJ+90RERLOUFmzm83l0dXW1uDWtx8CCiIhohiqVCqrVKoDFXbBZj4EFERHRDIhIlq3o6elBEAQtblF7YGBBREQ0A2nBptYafX19rW5O22BgQURENE0s2Dw4bgkiIqJpGh0dhYggl8uhu7u71c1pKwwsiIiIpqFaraJcLgNgweZkGFgQERFNUX3BZnd3N3K5XItb1H4YWBAREU1RqVRCHMcs2DyEaQUWmzZtwllnnYW+vj6sWLECr3/96/H73/9+rtpGRETUNowxGB0dBQD09fXB87wWt6g9TSuw2LJlCy6//HL84he/wF133YU4jnHJJZdk554nIiJaqNKCzSAIWLB5CNM6/dqPfvSjhn9/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fvazn7WoVe3riSeewJo1a3DMMcfgLW95C5566qlWN6ntbdu2DTt37mzYx/L5PC644ALuYwexefNmrFixAscffzze/e53Y9euXa1uUlsYHh4GAAwODgLgvnUoB26rFPetRsYY3HbbbSiVSli/fn1b7FMdH1js2bMHxhisXLmy4fqVK1di586dLWpVe3rZy16GW265BT/+8Y/xxS9+ETt37sTZZ5+NvXv3trppbS3dj7iPTc2GDRtw66234u6778Z1112HBx54AK94xStQrVZb3bSWEhFcccUVOPfcc3HyyScD4L51MJNtK4D7Vr1HHnkEvb29yOfzeM973oPbb78dL3rRi9pin5r306bPFaVUw79FZMJ1i92GDRuy30855RSsX78exx57LL761a/iiiuuaGHLOgP3sam57LLLst9PPvlknHnmmVi3bh1+8IMf4I1vfGMLW9Za73vf+/Dwww/jvvvum3Ab961GB9tW3LdqTjjhBPz617/G0NAQvvWtb2Hjxo3YsmVLdnsr96mOz1gsW7YMnudNiMR27do1IWKjRj09PTjllFPwxBNPtLopbS2dOcN9bGZWr16NdevWLer97P3vfz+++93v4p577sGRRx6ZXc99a6KDbavJLOZ9K5fL4QUveAHOPPNMbNq0Caeddho+85nPtMU+1fGBRS6XwxlnnIG77rqr4fq77roLZ599dota1Rmq1Soee+wxrF69utVNaWvHHHMMVq1a1bCPhWGILVu2cB+bgr1792L79u2Lcj8TEbzvfe/Dt7/9bdx999045phjGm7nvlVzuG01mcW8bx1IRFCtVttjn5qXEtE5dtttt0kQBPLlL39Zfvvb38oHP/hB6enpkT/+8Y+tblpb+dCHPiSbN2+Wp556Sn7xi1/IpZdeKn19fdxOIjI6OioPPfSQPPTQQwJArr/+ennooYfk6aefFhGRa6+9VorFonz729+WRx55RN761rfK6tWrZWRkpMUtn3+H2lajo6PyoQ99SH72s5/Jtm3b5J577pH169fLEUccsSi31Xvf+14pFouyefNm2bFjR3YZHx/P7sN9yznctuK+VXPllVfKvffeK9u2bZOHH35YPvrRj4rWWn7yk5+ISOv3qQURWIiI/K//9b9k3bp1ksvl5CUveUnDFCVyLrvsMlm9erUEQSBr1qyRN77xjfLoo4+2ullt4Z577hEAEy4bN24UETct8KqrrpJVq1ZJPp+X888/Xx555JHWNrpFDrWtxsfH5ZJLLpHly5dLEARy1FFHycaNG+WZZ55pdbNbYrLtBEC+8pWvZPfhvuUcbltx36r5y7/8y6y/W758ubzyla/MggqR1u9TSkRkfnIjREREtNB1fI0FERERtQ8GFkRERNQ0DCyIiIioaRhYEBERUdMwsCAiIqKmYWBBRERETcPAgoiIiJqGgQURERE1DQMLIiIiahoGFkRERNQ0DCyIiIioaf5/scz/D68vUpsAAAAASUVORK5CYII=",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gbm_simulations_df = pd.DataFrame(np.transpose(gbm_simulations))\n",
"\n",
"# plotting\n",
"ax = gbm_simulations_df.plot(alpha=0.2, legend=False)\n",
"\n",
"ax.set_title('BTC Simulations', fontsize=16);\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"The y-axis has a very wide range, since some extreme values are possible, given this simulation."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Using pandas-datareader and yfinance\n",
"\n",
"The [pandas data-reader](https://pydata.github.io/pandas-datareader/) API lets us access additional data sources, such as [FRED](https://fred.stlouisfed.org). \n",
"\n",
"There are also API that let you access the same data. For example, Yahoo! Finance has several, like [yfinance](https://pypi.org/project/yfinance/). I think that the Yahoo! Finance access for `pandas-datareader` was [broken in a recent update](https://stackoverflow.com/questions/74834834/pdr-datareader-typeerror-string-indices-must-be-integers). See my comments below.\n",
"\n",
"Lots of developers have written APIs to access different data sources. \n",
"\n",
"```{note}\n",
"Different data sources might require API keys. Sometimes you have to pay. Always read the documentation.\n",
"```\n",
"\n",
"Here's another FRED example, but using `pandas-datareader`."
]
},
{
"cell_type": "code",
"execution_count": 128,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 128,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start = dt.datetime(2010, 1, 1)\n",
"\n",
"end = dt.datetime(2013, 1, 27)\n",
"\n",
"gdp = pdr.DataReader('GDP', 'fred', start, end)\n",
"\n",
"gdp.head"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"As mentioned, the [pandas data-reader](https://pydata.github.io/pandas-datareader/) and [yfinance](https://pypi.org/project/yfinance/) APIs let you pull stock data from Yahoo! Finance. However, Yahoo! Finance keeps breaking what you need to scrape the data, so these packages can sometimes be unreliable. However, we can get aspects of them to work.\n",
"\n",
"Here's some basic set-up that gets [yfinance](https://pypi.org/project/yfinance/) working."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# The usual type of set-up.\n",
"import pandas as pd\n",
"import numpy as np\n",
"import bt as bt\n",
"import ffn as ffn\n",
"\n",
"# This will get our plots to automatically show up.\n",
"%matplotlib inline\n",
"\n",
"# As of Dec 2022, looks like yfinance broke the ffn/bt data import. Add this to get it to work. See https://github.com/pmorissette/ffn/issues/185\n",
"import yfinance as yf\n",
"yf.pdr_override()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"I'll do the example from the [yfinance](https://pypi.org/project/yfinance/) webpage. This brings in information on MSFT as a `yfinance` ticker object. It looks like a JSON file to me. See below for more on JSON as a storage type."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'address1': 'One Microsoft Way',\n",
" 'city': 'Redmond',\n",
" 'state': 'WA',\n",
" 'zip': '98052-6399',\n",
" 'country': 'United States',\n",
" 'phone': '425 882 8080',\n",
" 'fax': '425 706 7329',\n",
" 'website': 'https://www.microsoft.com',\n",
" 'industry': 'Software—Infrastructure',\n",
" 'sector': 'Technology',\n",
" 'longBusinessSummary': 'Microsoft Corporation develops, licenses, and supports software, services, devices, and solutions worldwide. The company operates in three segments: Productivity and Business Processes, Intelligent Cloud, and More Personal Computing. The Productivity and Business Processes segment offers Office, Exchange, SharePoint, Microsoft Teams, Office 365 Security and Compliance, Microsoft Viva, and Skype for Business; Skype, Outlook.com, OneDrive, and LinkedIn; and Dynamics 365, a set of cloud-based and on-premises business solutions for organizations and enterprise divisions. The Intelligent Cloud segment licenses SQL, Windows Servers, Visual Studio, System Center, and related Client Access Licenses; GitHub that provides a collaboration platform and code hosting service for developers; Nuance provides healthcare and enterprise AI solutions; and Azure, a cloud platform. It also offers enterprise support, Microsoft consulting, and nuance professional services to assist customers in developing, deploying, and managing Microsoft server and desktop solutions; and training and certification on Microsoft products. The More Personal Computing segment provides Windows original equipment manufacturer (OEM) licensing and other non-volume licensing of the Windows operating system; Windows Commercial, such as volume licensing of the Windows operating system, Windows cloud services, and other Windows commercial offerings; patent licensing; and Windows Internet of Things. It also offers Surface, PC accessories, PCs, tablets, gaming and entertainment consoles, and other devices; Gaming, including Xbox hardware, and Xbox content and services; video games and third-party video game royalties; and Search, including Bing and Microsoft advertising. The company sells its products through OEMs, distributors, and resellers; and directly through digital marketplaces, online stores, and retail stores. Microsoft Corporation was founded in 1975 and is headquartered in Redmond, Washington.',\n",
" 'fullTimeEmployees': 221000,\n",
" 'companyOfficers': [{'maxAge': 1,\n",
" 'name': 'Mr. Satya Nadella',\n",
" 'age': 55,\n",
" 'title': 'Chairman & CEO',\n",
" 'yearBorn': 1967,\n",
" 'fiscalYear': 2022,\n",
" 'totalPay': 12676750,\n",
" 'exercisedValue': 0,\n",
" 'unexercisedValue': 0},\n",
" {'maxAge': 1,\n",
" 'name': 'Mr. Bradford L. Smith LCA',\n",
" 'age': 63,\n",
" 'title': 'Pres & Vice Chairman',\n",
" 'yearBorn': 1959,\n",
" 'fiscalYear': 2022,\n",
" 'totalPay': 4655274,\n",
" 'exercisedValue': 0,\n",
" 'unexercisedValue': 0},\n",
" {'maxAge': 1,\n",
" 'name': 'Ms. Amy E. Hood',\n",
" 'age': 50,\n",
" 'title': 'Exec. VP & CFO',\n",
" 'yearBorn': 1972,\n",
" 'fiscalYear': 2022,\n",
" 'totalPay': 4637915,\n",
" 'exercisedValue': 0,\n",
" 'unexercisedValue': 0},\n",
" {'maxAge': 1,\n",
" 'name': 'Mr. Judson Althoff',\n",
" 'age': 49,\n",
" 'title': 'Exec. VP & Chief Commercial Officer',\n",
" 'yearBorn': 1973,\n",
" 'fiscalYear': 2022,\n",
" 'totalPay': 4428268,\n",
" 'exercisedValue': 0,\n",
" 'unexercisedValue': 0},\n",
" {'maxAge': 1,\n",
" 'name': 'Mr. Christopher David Young',\n",
" 'age': 50,\n",
" 'title': 'Exec. VP of Bus. Devel., Strategy & Ventures',\n",
" 'yearBorn': 1972,\n",
" 'fiscalYear': 2022,\n",
" 'totalPay': 4588876,\n",
" 'exercisedValue': 0,\n",
" 'unexercisedValue': 0},\n",
" {'maxAge': 1,\n",
" 'name': 'Ms. Alice L. Jolla',\n",
" 'age': 55,\n",
" 'title': 'Corp. VP & Chief Accounting Officer',\n",
" 'yearBorn': 1967,\n",
" 'exercisedValue': 0,\n",
" 'unexercisedValue': 0},\n",
" {'maxAge': 1,\n",
" 'name': 'Brett Iversen',\n",
" 'title': 'Gen. Mang. of Investor Relations',\n",
" 'exercisedValue': 0,\n",
" 'unexercisedValue': 0},\n",
" {'maxAge': 1,\n",
" 'name': 'Mr. Frank X. Shaw',\n",
" 'title': 'Corp. VP for Corp. Communications',\n",
" 'exercisedValue': 0,\n",
" 'unexercisedValue': 0},\n",
" {'maxAge': 1,\n",
" 'name': 'Mr. Christopher C. Capossela',\n",
" 'age': 52,\n",
" 'title': 'Exec. VP & Chief Marketing Officer',\n",
" 'yearBorn': 1970,\n",
" 'exercisedValue': 0,\n",
" 'unexercisedValue': 0},\n",
" {'maxAge': 1,\n",
" 'name': 'Mr. Keith Ranger Dolliver Esq.',\n",
" 'title': 'VP, Deputy Gen. Counsel of Corp., External & Legal Affairs and Assistant Sec.',\n",
" 'exercisedValue': 0,\n",
" 'unexercisedValue': 0}],\n",
" 'auditRisk': 6,\n",
" 'boardRisk': 5,\n",
" 'compensationRisk': 2,\n",
" 'shareHolderRightsRisk': 2,\n",
" 'overallRisk': 2,\n",
" 'governanceEpochDate': 1682899200,\n",
" 'compensationAsOfEpochDate': 1672444800,\n",
" 'maxAge': 86400,\n",
" 'priceHint': 2,\n",
" 'previousClose': 305.56,\n",
" 'open': 307.76,\n",
" 'dayLow': 303.91,\n",
" 'dayHigh': 309.165,\n",
" 'regularMarketPreviousClose': 305.56,\n",
" 'regularMarketOpen': 307.76,\n",
" 'regularMarketDayLow': 303.91,\n",
" 'regularMarketDayHigh': 309.165,\n",
" 'dividendRate': 2.72,\n",
" 'dividendYield': 0.0089,\n",
" 'exDividendDate': 1684281600,\n",
" 'payoutRatio': 0.28170002,\n",
" 'fiveYearAvgDividendYield': 1.1,\n",
" 'beta': 0.929757,\n",
" 'trailingPE': 33.088844,\n",
" 'forwardPE': 27.865875,\n",
" 'volume': 26404431,\n",
" 'regularMarketVolume': 26404431,\n",
" 'averageVolume': 31077618,\n",
" 'averageVolume10days': 32338860,\n",
" 'averageDailyVolume10Day': 32338860,\n",
" 'bid': 305.95,\n",
" 'ask': 306.26,\n",
" 'bidSize': 800,\n",
" 'askSize': 900,\n",
" 'marketCap': 2270872993792,\n",
" 'fiftyTwoWeekLow': 213.43,\n",
" 'fiftyTwoWeekHigh': 309.165,\n",
" 'priceToSalesTrailing12Months': 10.939169,\n",
" 'fiftyDayAverage': 273.8126,\n",
" 'twoHundredDayAverage': 256.3663,\n",
" 'trailingAnnualDividendRate': 2.66,\n",
" 'trailingAnnualDividendYield': 0.008705328,\n",
" 'currency': 'USD',\n",
" 'enterpriseValue': 2245765365760,\n",
" 'profitMargins': 0.33248,\n",
" 'floatShares': 7428646926,\n",
" 'sharesOutstanding': 7435489792,\n",
" 'sharesShort': 40038879,\n",
" 'sharesShortPriorMonth': 35907039,\n",
" 'sharesShortPreviousMonthDate': 1678838400,\n",
" 'dateShortInterest': 1681430400,\n",
" 'sharesPercentSharesOut': 0.0054,\n",
" 'heldPercentInsiders': 0.00052,\n",
" 'heldPercentInstitutions': 0.73767,\n",
" 'shortRatio': 1.25,\n",
" 'shortPercentOfFloat': 0.0054,\n",
" 'impliedSharesOutstanding': 0,\n",
" 'bookValue': 26.178,\n",
" 'priceToBook': 11.666667,\n",
" 'lastFiscalYearEnd': 1656547200,\n",
" 'nextFiscalYearEnd': 1688083200,\n",
" 'mostRecentQuarter': 1680220800,\n",
" 'earningsQuarterlyGrowth': 0.094,\n",
" 'netIncomeToCommon': 69020000256,\n",
" 'trailingEps': 9.23,\n",
" 'forwardEps': 10.96,\n",
" 'pegRatio': 2.61,\n",
" 'lastSplitFactor': '2:1',\n",
" 'lastSplitDate': 1045526400,\n",
" 'enterpriseToRevenue': 10.818,\n",
" 'enterpriseToEbitda': 22.44,\n",
" '52WeekChange': 0.08439207,\n",
" 'SandP52WeekChange': -0.0018225312,\n",
" 'lastDividendValue': 0.68,\n",
" 'lastDividendDate': 1676419200,\n",
" 'exchange': 'NMS',\n",
" 'quoteType': 'EQUITY',\n",
" 'symbol': 'MSFT',\n",
" 'underlyingSymbol': 'MSFT',\n",
" 'shortName': 'Microsoft Corporation',\n",
" 'longName': 'Microsoft Corporation',\n",
" 'firstTradeDateEpochUtc': 511108200,\n",
" 'timeZoneFullName': 'America/New_York',\n",
" 'timeZoneShortName': 'EDT',\n",
" 'uuid': 'b004b3ec-de24-385e-b2c1-923f10d3fb62',\n",
" 'messageBoardId': 'finmb_21835',\n",
" 'gmtOffSetMilliseconds': -14400000,\n",
" 'currentPrice': 305.41,\n",
" 'targetHighPrice': 400.0,\n",
" 'targetLowPrice': 232.0,\n",
" 'targetMeanPrice': 327.6,\n",
" 'targetMedianPrice': 333.0,\n",
" 'recommendationMean': 1.8,\n",
" 'recommendationKey': 'buy',\n",
" 'numberOfAnalystOpinions': 45,\n",
" 'totalCash': 104419000320,\n",
" 'totalCashPerShare': 14.043,\n",
" 'ebitda': 100080001024,\n",
" 'totalDebt': 79312003072,\n",
" 'quickRatio': 1.655,\n",
" 'currentRatio': 1.913,\n",
" 'totalRevenue': 207590998016,\n",
" 'debtToEquity': 40.739,\n",
" 'revenuePerShare': 27.844,\n",
" 'returnOnAssets': 0.14829001,\n",
" 'returnOnEquity': 0.38601002,\n",
" 'grossProfits': 135620000000,\n",
" 'freeCashflow': 42964873216,\n",
" 'operatingCashflow': 83441000448,\n",
" 'earningsGrowth': 0.104,\n",
" 'revenueGrowth': 0.071,\n",
" 'grossMargins': 0.68522,\n",
" 'ebitdaMargins': 0.48209998,\n",
" 'operatingMargins': 0.41415,\n",
" 'financialCurrency': 'USD',\n",
" 'trailingPegRatio': 2.0698}"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"msft = yf.Ticker(\"MSFT\")\n",
"\n",
"# get all stock info\n",
"msft.info"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"In VS Code, you can open the rest of that in a text editor (see the message) and look at every variable in there. You can pull specific information out this object."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Technology'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get the sector.\n",
"msft.info['sector']"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's something a bit more complex. I'll pull the first company officer. Note the indexing, starting at 0, the usual Python way."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'maxAge': 1,\n",
" 'name': 'Mr. Satya Nadella',\n",
" 'age': 55,\n",
" 'title': 'Chairman & CEO',\n",
" 'yearBorn': 1967,\n",
" 'fiscalYear': 2022,\n",
" 'totalPay': 12676750,\n",
" 'exercisedValue': 0,\n",
" 'unexercisedValue': 0}"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"msft.info['companyOfficers'][0]"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"You can drill down even more. Honestly, I was guessing a bit at how to access this data. This just seemed like a \"Python\" or \"JSON\" way to do it and it worked."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"12676750"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"msft.info['companyOfficers'][0]['totalPay']"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"They have recent accounting data, too."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.68522"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"msft.info['grossMargins']"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's two years of price, volume, dividend, and split data. Remember when we looked at return calculations? You need the dividends if you're going to accurately calculate returns. You also need the stock splits, or you'll be comparing prices pre- and post- splits, getting funky returns!"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" Open High Low Close \\\n",
"Date \n",
"2023-04-03 00:00:00-04:00 164.270004 166.289993 164.220001 166.169998 \n",
"2023-04-04 00:00:00-04:00 166.600006 166.839996 165.110001 165.630005 \n",
"2023-04-05 00:00:00-04:00 164.740005 165.050003 161.800003 163.759995 \n",
"2023-04-06 00:00:00-04:00 162.429993 164.960007 162.000000 164.660004 \n",
"2023-04-10 00:00:00-04:00 161.419998 162.029999 160.080002 162.029999 \n",
"2023-04-11 00:00:00-04:00 162.350006 162.360001 160.509995 160.800003 \n",
"2023-04-12 00:00:00-04:00 161.220001 162.059998 159.779999 160.100006 \n",
"2023-04-13 00:00:00-04:00 161.630005 165.800003 161.419998 165.559998 \n",
"2023-04-14 00:00:00-04:00 164.589996 166.320007 163.820007 165.210007 \n",
"2023-04-17 00:00:00-04:00 165.089996 165.389999 164.029999 165.229996 \n",
"2023-04-18 00:00:00-04:00 166.100006 167.410004 165.649994 166.470001 \n",
"2023-04-19 00:00:00-04:00 165.800003 168.160004 165.539993 167.630005 \n",
"2023-04-20 00:00:00-04:00 166.089996 167.869995 165.559998 166.649994 \n",
"2023-04-21 00:00:00-04:00 165.050003 166.449997 164.490005 165.020004 \n",
"2023-04-24 00:00:00-04:00 165.000000 165.600006 163.889999 165.330002 \n",
"2023-04-25 00:00:00-04:00 165.190002 166.309998 163.729996 163.770004 \n",
"2023-04-26 00:00:00-04:00 163.059998 165.279999 162.800003 163.759995 \n",
"2023-04-27 00:00:00-04:00 165.190002 168.559998 165.190002 168.410004 \n",
"2023-04-28 00:00:00-04:00 168.490005 169.850006 167.880005 169.679993 \n",
"2023-05-01 00:00:00-04:00 169.279999 170.449997 168.639999 169.589996 \n",
"2023-05-02 00:00:00-04:00 170.089996 170.350006 167.539993 168.539993 \n",
"\n",
" Volume Dividends Stock Splits \n",
"Date \n",
"2023-04-03 00:00:00-04:00 56976200 0.0 0.0 \n",
"2023-04-04 00:00:00-04:00 46278300 0.0 0.0 \n",
"2023-04-05 00:00:00-04:00 51511700 0.0 0.0 \n",
"2023-04-06 00:00:00-04:00 45390100 0.0 0.0 \n",
"2023-04-10 00:00:00-04:00 47716900 0.0 0.0 \n",
"2023-04-11 00:00:00-04:00 47644200 0.0 0.0 \n",
"2023-04-12 00:00:00-04:00 50133100 0.0 0.0 \n",
"2023-04-13 00:00:00-04:00 68445600 0.0 0.0 \n",
"2023-04-14 00:00:00-04:00 49337200 0.0 0.0 \n",
"2023-04-17 00:00:00-04:00 41516200 0.0 0.0 \n",
"2023-04-18 00:00:00-04:00 49923000 0.0 0.0 \n",
"2023-04-19 00:00:00-04:00 47720200 0.0 0.0 \n",
"2023-04-20 00:00:00-04:00 52456400 0.0 0.0 \n",
"2023-04-21 00:00:00-04:00 58311900 0.0 0.0 \n",
"2023-04-24 00:00:00-04:00 41949600 0.0 0.0 \n",
"2023-04-25 00:00:00-04:00 48714100 0.0 0.0 \n",
"2023-04-26 00:00:00-04:00 45498800 0.0 0.0 \n",
"2023-04-27 00:00:00-04:00 64902300 0.0 0.0 \n",
"2023-04-28 00:00:00-04:00 55209200 0.0 0.0 \n",
"2023-05-01 00:00:00-04:00 52472900 0.0 0.0 \n",
"2023-05-02 00:00:00-04:00 48425696 0.0 0.0 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tickers = yf.Tickers('msft aapl goog')\n",
"\n",
"tickers.tickers['AAPL'].history(period=\"1mo\")"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"I wasn't able to figure out how to get historical financial statement data out of `yfinance`. I would suggest using our Bloomberg terminals or Factset to do that. Easy enough to just pull historical data, by ticker, into Excel or a CSV file from those data sources. You can then import that into Python to use as part of a trading signal or just to do some basic comparisons and graphs."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Details - Using APIs\n",
"\n",
"This notes above use the [NASDAQ Datalink API](https://www.nasdaq.com/nasdaq-data-link) to pull some BTC data. Now, I'll discuss using this API more generally, as well as using [Rapid API](https://rapidapi.com/hub), another website with a variety of data options. I'll also show you an API from Github.\n",
"\n",
"As mentioned above, APIs are ways for one program or piece of software to talk to another. In our case, we're using them to get data. That data might come in as a `pandas` DataFrame, ready to use. Other times, it might come in as something called a [JSON](https://realpython.com/python-json/) file. We'll have to do a bit more work with this common data structure. "
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### NASDAQ API - Another Example\n",
"\n",
"Let's look at the NASDAQ API one more time. Once you log in, you'll see the home page below. Note the strip across the upper-left, that has API, Python, Excel, etc. You can use the NASDAQ API in a variety of settings. There's a **SEARCH FOR DATA** box at the top. \n",
"\n",
"```{figure} ../images/07-nasdaq-home.png\n",
"---\n",
"name: 07-nasdaq-home.png\n",
"align: center\n",
"---\n",
"NASDAQ API homepage.\n",
"```\n",
"\n",
"If you click **EXPLORE** next to the search box, you're taken to a list of all of their data. Much of it is premium - you have to pay. However, you can filter for free data. There's free data for house prices, gold and silver markets, IMF macro data, the Fed, etc. Much of this free data comes from Quandl, which was purchased by Nasdaq recently. \n",
"\n",
"Quandl has been completely integrated by NASDAQ now, though you will see legacy instructions on the website that refer to its older API commands.\n",
"\n",
"```{figure} ../images/07-nasdaq-explore.png\n",
"---\n",
"name: 07-nasdaq-explore.png\n",
"align: center\n",
"---\n",
"Exploring NASDAQ data options.\n",
"```\n",
"\n",
"Let's look at the Zillow data, the first option presented when I look for free data. I've used them in labs and exams. \n",
"\n",
"```{figure} ../images/07-nasdaq-zillow.png\n",
"---\n",
"name: 07-nasdaq-zillow.png\n",
"align: center\n",
"---\n",
"NASDAQ has an API for Zillow housing data.\n",
"```\n",
"\n",
"Each the data APIs shows you samples of what you can access. So, we see an example table with data for a particular indicator and region. We also see a table that has a list of all of the indicators and what they measure. Finally, we see a table with all of the regions and what they represent.\n",
"\n",
"This data structure makes it clear that we can download value data and then merge in ID and region descriptions if needed. But, how do we do that? See the tab in the upper-left, with **DATA** highlighted? You can click on **DOCUMENTATION** and **USAGE** to learn more. We'll look at a quick example here.\n",
"\n",
"Click **USAGE** and then the **Python** icon. You'll seen an example that lets you filter by a single *indicator_id* and *region*. It has your API key and the `.get_table` method. \n",
"\n",
"However, note the `quandl` stuff. They haven't transitioned this code yet. You'll need to do a `pip` install for quandl.\n",
"\n",
"Also, we didn't use `.get_table` above for BTC. The Zillow data is stored differently. \n",
"\n",
"Make sure that you include your API key. You can input it directly, using the code that they provide. I'm using a different way to do the key that doesn't require me to type my API key into this publicly available code."
]
},
{
"cell_type": "code",
"execution_count": 135,
"metadata": {},
"outputs": [],
"source": [
"#! pip install quandl\n",
"\n",
"# Bring in quandl for downloading data\n",
"import quandl\n",
"# quandl.ApiConfig.api_key = 'YOUR_KEY_HERE'\n",
"quandl.read_key()\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"You need that `paginate=True` in there in order to download all of the available data. Without it, it will only pull the first 10,000 rows. Using paginate extends the limit to 1,000,000 rows, or observations. Now, note that this could be a lot of data! You might need to download the data in chunks to get what you want.\n",
"\n",
"Let's try pulling in the *indicator_id* ZATT for all regions. "
]
},
{
"cell_type": "code",
"execution_count": 136,
"metadata": {},
"outputs": [],
"source": [
"# zillow = quandl.get_table('ZILLOW/DATA', indicator_id = 'ZATT', paginate=True)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"I've commented out the code above, because I know it will exceed the download limit! So, we need to be more selective.\n",
"\n",
"If you look on the NASDAQ Zillow documentation page, you'll see the three tables that you can download, the variables inside of each, and what you're allowed to filter on. You unfortunately can't filter on date in the ZILLOW/DATA table. Other data sets, like FRED, do let you specify start and end dates. Every API is different. \n",
"\n",
"You can find examples of how to filter and sub-select your data on the NASDAQ website: [https://docs.data.nasdaq.com/docs/python-tables](https://docs.data.nasdaq.com/docs/python-tables)\n",
"\n",
"However, you can filter on *region_id*. Let's pull the ZILLOW/REGIONS table to see what we can use."
]
},
{
"cell_type": "code",
"execution_count": 137,
"metadata": {},
"outputs": [],
"source": [
"regions = quandl.get_table('ZILLOW/REGIONS', paginate=True)"
]
},
{
"cell_type": "code",
"execution_count": 138,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
region_id
\n",
"
region_type
\n",
"
region
\n",
"
\n",
"
\n",
"
None
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
99999
\n",
"
zip
\n",
"
98847; WA; Wenatchee, WA; Chelan County; Pesha...
\n",
"
\n",
"
\n",
"
1
\n",
"
99998
\n",
"
zip
\n",
"
98846; WA; Okanogan County; Pateros
\n",
"
\n",
"
\n",
"
2
\n",
"
99997
\n",
"
zip
\n",
"
98845; WA; Wenatchee; Douglas County; Palisades
\n",
"
\n",
"
\n",
"
3
\n",
"
99996
\n",
"
zip
\n",
"
98844; WA; Okanogan County; Oroville
\n",
"
\n",
"
\n",
"
4
\n",
"
99995
\n",
"
zip
\n",
"
98843; WA; Wenatchee, WA; Douglas County; Orondo
\n",
"
\n",
"
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
\n",
"
\n",
"
89300
\n",
"
100000
\n",
"
zip
\n",
"
98848; WA; Moses Lake, WA; Grant County; Quincy
\n",
"
\n",
"
\n",
"
89301
\n",
"
10000
\n",
"
city
\n",
"
Bloomington; MD; Garrett County
\n",
"
\n",
"
\n",
"
89302
\n",
"
1000
\n",
"
county
\n",
"
Echols County; GA; Valdosta, GA
\n",
"
\n",
"
\n",
"
89303
\n",
"
100
\n",
"
county
\n",
"
Bibb County; AL; Birmingham-Hoover, AL
\n",
"
\n",
"
\n",
"
89304
\n",
"
10
\n",
"
state
\n",
"
Colorado
\n",
"
\n",
" \n",
"
\n",
"
89305 rows × 3 columns
\n",
"
"
],
"text/plain": [
" region_id region_type region\n",
"None \n",
"0 99999 zip 98847; WA; Wenatchee, WA; Chelan County; Pesha...\n",
"1 99998 zip 98846; WA; Okanogan County; Pateros\n",
"2 99997 zip 98845; WA; Wenatchee; Douglas County; Palisades\n",
"3 99996 zip 98844; WA; Okanogan County; Oroville\n",
"4 99995 zip 98843; WA; Wenatchee, WA; Douglas County; Orondo\n",
"... ... ... ...\n",
"89300 100000 zip 98848; WA; Moses Lake, WA; Grant County; Quincy\n",
"89301 10000 city Bloomington; MD; Garrett County\n",
"89302 1000 county Echols County; GA; Valdosta, GA\n",
"89303 100 county Bibb County; AL; Birmingham-Hoover, AL\n",
"89304 10 state Colorado\n",
"\n",
"[89305 rows x 3 columns]"
]
},
"execution_count": 138,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"regions"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"What if we just want cities?"
]
},
{
"cell_type": "code",
"execution_count": 139,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
region_id
\n",
"
region_type
\n",
"
region
\n",
"
\n",
"
\n",
"
None
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
10
\n",
"
9999
\n",
"
city
\n",
"
Carrsville; VA; Virginia Beach-Norfolk-Newport...
\n",
"
\n",
"
\n",
"
20
\n",
"
9998
\n",
"
city
\n",
"
Birchleaf; VA; Dickenson County
\n",
"
\n",
"
\n",
"
56
\n",
"
9994
\n",
"
city
\n",
"
Wright; KS; Dodge City, KS; Ford County
\n",
"
\n",
"
\n",
"
124
\n",
"
9987
\n",
"
city
\n",
"
Weston; CT; Bridgeport-Stamford-Norwalk, CT; F...
\n",
"
\n",
"
\n",
"
168
\n",
"
9980
\n",
"
city
\n",
"
South Wilmington; IL; Chicago-Naperville-Elgin...
\n",
"
\n",
"
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
\n",
"
\n",
"
89203
\n",
"
10010
\n",
"
city
\n",
"
Atwood; KS; Rawlins County
\n",
"
\n",
"
\n",
"
89224
\n",
"
10008
\n",
"
city
\n",
"
Bound Brook; NJ; New York-Newark-Jersey City, ...
\n",
"
\n",
"
\n",
"
89254
\n",
"
10005
\n",
"
city
\n",
"
Chanute; KS; Neosho County
\n",
"
\n",
"
\n",
"
89290
\n",
"
10001
\n",
"
city
\n",
"
Blountsville; AL; Birmingham-Hoover, AL; Bloun...
\n",
"
\n",
"
\n",
"
89301
\n",
"
10000
\n",
"
city
\n",
"
Bloomington; MD; Garrett County
\n",
"
\n",
" \n",
"
\n",
"
28131 rows × 3 columns
\n",
"
"
],
"text/plain": [
" region_id region_type region\n",
"None \n",
"10 9999 city Carrsville; VA; Virginia Beach-Norfolk-Newport...\n",
"20 9998 city Birchleaf; VA; Dickenson County\n",
"56 9994 city Wright; KS; Dodge City, KS; Ford County\n",
"124 9987 city Weston; CT; Bridgeport-Stamford-Norwalk, CT; F...\n",
"168 9980 city South Wilmington; IL; Chicago-Naperville-Elgin...\n",
"... ... ... ...\n",
"89203 10010 city Atwood; KS; Rawlins County\n",
"89224 10008 city Bound Brook; NJ; New York-Newark-Jersey City, ...\n",
"89254 10005 city Chanute; KS; Neosho County\n",
"89290 10001 city Blountsville; AL; Birmingham-Hoover, AL; Bloun...\n",
"89301 10000 city Bloomington; MD; Garrett County\n",
"\n",
"[28131 rows x 3 columns]"
]
},
"execution_count": 139,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cities = regions[regions.region_type == 'city']\n",
"cities"
]
},
{
"cell_type": "code",
"execution_count": 140,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Int64Index: 28131 entries, 10 to 89301\n",
"Data columns (total 3 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 region_id 28131 non-null object\n",
" 1 region_type 28131 non-null object\n",
" 2 region 28131 non-null object\n",
"dtypes: object(3)\n",
"memory usage: 879.1+ KB\n"
]
}
],
"source": [
"cities.info()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"I like to look and see what things are stored as, too. Remember, the `object` type is very generic. \n",
"\n",
"There are 28,131 rows of cities! How about counties?"
]
},
{
"cell_type": "code",
"execution_count": 141,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
region_id
\n",
"
region_type
\n",
"
region
\n",
"
\n",
"
\n",
"
None
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
94
\n",
"
999
\n",
"
county
\n",
"
Durham County; NC; Durham-Chapel Hill, NC
\n",
"
\n",
"
\n",
"
169
\n",
"
998
\n",
"
county
\n",
"
Duplin County; NC
\n",
"
\n",
"
\n",
"
246
\n",
"
997
\n",
"
county
\n",
"
Dubois County; IN; Jasper, IN
\n",
"
\n",
"
\n",
"
401
\n",
"
995
\n",
"
county
\n",
"
Donley County; TX
\n",
"
\n",
"
\n",
"
589
\n",
"
993
\n",
"
county
\n",
"
Dimmit County; TX
\n",
"
\n",
"
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
\n",
"
\n",
"
89069
\n",
"
1003
\n",
"
county
\n",
"
Elmore County; AL; Montgomery, AL
\n",
"
\n",
"
\n",
"
89120
\n",
"
1002
\n",
"
county
\n",
"
Elbert County; GA
\n",
"
\n",
"
\n",
"
89204
\n",
"
1001
\n",
"
county
\n",
"
Elbert County; CO; Denver-Aurora-Lakewood, CO
\n",
"
\n",
"
\n",
"
89302
\n",
"
1000
\n",
"
county
\n",
"
Echols County; GA; Valdosta, GA
\n",
"
\n",
"
\n",
"
89303
\n",
"
100
\n",
"
county
\n",
"
Bibb County; AL; Birmingham-Hoover, AL
\n",
"
\n",
" \n",
"
\n",
"
3097 rows × 3 columns
\n",
"
"
],
"text/plain": [
" region_id region_type region\n",
"None \n",
"94 999 county Durham County; NC; Durham-Chapel Hill, NC\n",
"169 998 county Duplin County; NC\n",
"246 997 county Dubois County; IN; Jasper, IN\n",
"401 995 county Donley County; TX\n",
"589 993 county Dimmit County; TX\n",
"... ... ... ...\n",
"89069 1003 county Elmore County; AL; Montgomery, AL\n",
"89120 1002 county Elbert County; GA\n",
"89204 1001 county Elbert County; CO; Denver-Aurora-Lakewood, CO\n",
"89302 1000 county Echols County; GA; Valdosta, GA\n",
"89303 100 county Bibb County; AL; Birmingham-Hoover, AL\n",
"\n",
"[3097 rows x 3 columns]"
]
},
"execution_count": 141,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"counties = regions[regions.region_type == 'county']\n",
"counties"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Can't find the regions you want? You could export the whole thing to a CSV file and explore it in Excel. This will show up in whatever folder you currently have as your home in VS Code."
]
},
{
"cell_type": "code",
"execution_count": 142,
"metadata": {},
"outputs": [],
"source": [
"counties.to_csv('counties.csv', index = True)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also open up the **Variables** window at the top of VS Code (or the equivalent in Google Colab) and scroll through the file, looking for the *region_id* values that you want. \n",
"\n",
"Finally, you can search the text in a column directly. Let's find counties in NC."
]
},
{
"cell_type": "code",
"execution_count": 143,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
region_id
\n",
"
region_type
\n",
"
region
\n",
"
\n",
"
\n",
"
None
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
94
\n",
"
999
\n",
"
county
\n",
"
Durham County; NC; Durham-Chapel Hill, NC
\n",
"
\n",
"
\n",
"
169
\n",
"
998
\n",
"
county
\n",
"
Duplin County; NC
\n",
"
\n",
"
\n",
"
2683
\n",
"
962
\n",
"
county
\n",
"
Craven County; NC; New Bern, NC
\n",
"
\n",
"
\n",
"
4637
\n",
"
935
\n",
"
county
\n",
"
Chowan County; NC
\n",
"
\n",
"
\n",
"
4972
\n",
"
93
\n",
"
county
\n",
"
Ashe County; NC
\n",
"
\n",
"
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
\n",
"
\n",
"
87475
\n",
"
1180
\n",
"
county
\n",
"
Martin County; NC
\n",
"
\n",
"
\n",
"
87821
\n",
"
1147
\n",
"
county
\n",
"
Lenoir County; NC; Kinston, NC
\n",
"
\n",
"
\n",
"
88578
\n",
"
1059
\n",
"
county
\n",
"
Greene County; NC
\n",
"
\n",
"
\n",
"
88670
\n",
"
1049
\n",
"
county
\n",
"
Graham County; NC
\n",
"
\n",
"
\n",
"
88823
\n",
"
1032
\n",
"
county
\n",
"
Gaston County; NC; Charlotte-Concord-Gastonia,...
\n",
"
\n",
" \n",
"
\n",
"
100 rows × 3 columns
\n",
"
"
],
"text/plain": [
" region_id region_type region\n",
"None \n",
"94 999 county Durham County; NC; Durham-Chapel Hill, NC\n",
"169 998 county Duplin County; NC\n",
"2683 962 county Craven County; NC; New Bern, NC\n",
"4637 935 county Chowan County; NC\n",
"4972 93 county Ashe County; NC\n",
"... ... ... ...\n",
"87475 1180 county Martin County; NC\n",
"87821 1147 county Lenoir County; NC; Kinston, NC\n",
"88578 1059 county Greene County; NC\n",
"88670 1049 county Graham County; NC\n",
"88823 1032 county Gaston County; NC; Charlotte-Concord-Gastonia,...\n",
"\n",
"[100 rows x 3 columns]"
]
},
"execution_count": 143,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nc_counties = counties[counties['region'].str.contains(\"; NC\")]\n",
"nc_counties"
]
},
{
"cell_type": "code",
"execution_count": 144,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Int64Index: 100 entries, 94 to 88823\n",
"Data columns (total 3 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 region_id 100 non-null object\n",
" 1 region_type 100 non-null object\n",
" 2 region 100 non-null object\n",
"dtypes: object(3)\n",
"memory usage: 3.1+ KB\n"
]
}
],
"source": [
"nc_counties.info()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"There are 100 counties in NC, so this worked. Now, we can save these regions to a **list** and use that to pull data.\n",
"\n",
"By exploring the data like this, you can maybe find the *region_id* values that you want and give them as a list. I'm also going to use the `qopts = ` option to name the columns that I want to pull. This isn't necessary here, since I want all of the columns, but I wanted to show you that you could do this."
]
},
{
"cell_type": "code",
"execution_count": 145,
"metadata": {},
"outputs": [],
"source": [
"nc_county_list = nc_counties['region_id'].to_list()"
]
},
{
"cell_type": "code",
"execution_count": 146,
"metadata": {},
"outputs": [],
"source": [
"zillow_nc = quandl.get_table('ZILLOW/DATA', indicator_id = 'ZATT', paginate = True, region_id = nc_county_list, qopts = {'columns': ['indicator_id', 'region_id', 'date', 'value']})"
]
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
indicator_id
\n",
"
region_id
\n",
"
date
\n",
"
value
\n",
"
\n",
"
\n",
"
None
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
ZATT
\n",
"
999
\n",
"
2023-03-31
\n",
"
541442.450359
\n",
"
\n",
"
\n",
"
1
\n",
"
ZATT
\n",
"
999
\n",
"
2023-02-28
\n",
"
542934.945251
\n",
"
\n",
"
\n",
"
2
\n",
"
ZATT
\n",
"
999
\n",
"
2023-01-31
\n",
"
546725.963769
\n",
"
\n",
"
\n",
"
3
\n",
"
ZATT
\n",
"
999
\n",
"
2022-12-31
\n",
"
539928.263825
\n",
"
\n",
"
\n",
"
4
\n",
"
ZATT
\n",
"
999
\n",
"
2022-11-30
\n",
"
542585.370376
\n",
"
\n",
"
\n",
"
5
\n",
"
ZATT
\n",
"
999
\n",
"
2022-10-31
\n",
"
598375.000000
\n",
"
\n",
"
\n",
"
6
\n",
"
ZATT
\n",
"
999
\n",
"
2022-09-30
\n",
"
601490.000000
\n",
"
\n",
"
\n",
"
7
\n",
"
ZATT
\n",
"
999
\n",
"
2022-08-31
\n",
"
606467.000000
\n",
"
\n",
"
\n",
"
8
\n",
"
ZATT
\n",
"
999
\n",
"
2022-07-31
\n",
"
607902.000000
\n",
"
\n",
"
\n",
"
9
\n",
"
ZATT
\n",
"
999
\n",
"
2022-06-30
\n",
"
608465.000000
\n",
"
\n",
"
\n",
"
10
\n",
"
ZATT
\n",
"
999
\n",
"
2022-05-31
\n",
"
597607.000000
\n",
"
\n",
"
\n",
"
11
\n",
"
ZATT
\n",
"
999
\n",
"
2022-04-30
\n",
"
585235.000000
\n",
"
\n",
"
\n",
"
12
\n",
"
ZATT
\n",
"
999
\n",
"
2022-03-31
\n",
"
572754.000000
\n",
"
\n",
"
\n",
"
13
\n",
"
ZATT
\n",
"
999
\n",
"
2022-02-28
\n",
"
556641.000000
\n",
"
\n",
"
\n",
"
14
\n",
"
ZATT
\n",
"
999
\n",
"
2022-01-31
\n",
"
538430.000000
\n",
"
\n",
"
\n",
"
15
\n",
"
ZATT
\n",
"
999
\n",
"
2021-12-31
\n",
"
516010.000000
\n",
"
\n",
"
\n",
"
16
\n",
"
ZATT
\n",
"
999
\n",
"
2021-11-30
\n",
"
506505.000000
\n",
"
\n",
"
\n",
"
17
\n",
"
ZATT
\n",
"
999
\n",
"
2021-10-31
\n",
"
498382.000000
\n",
"
\n",
"
\n",
"
18
\n",
"
ZATT
\n",
"
999
\n",
"
2021-09-30
\n",
"
486909.000000
\n",
"
\n",
"
\n",
"
19
\n",
"
ZATT
\n",
"
999
\n",
"
2021-08-31
\n",
"
475100.000000
\n",
"
\n",
"
\n",
"
20
\n",
"
ZATT
\n",
"
999
\n",
"
2021-07-31
\n",
"
469689.000000
\n",
"
\n",
"
\n",
"
21
\n",
"
ZATT
\n",
"
999
\n",
"
2021-06-30
\n",
"
456018.000000
\n",
"
\n",
"
\n",
"
22
\n",
"
ZATT
\n",
"
999
\n",
"
2021-05-31
\n",
"
443594.000000
\n",
"
\n",
"
\n",
"
23
\n",
"
ZATT
\n",
"
999
\n",
"
2021-04-30
\n",
"
435319.000000
\n",
"
\n",
"
\n",
"
24
\n",
"
ZATT
\n",
"
999
\n",
"
2021-03-31
\n",
"
427213.000000
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" indicator_id region_id date value\n",
"None \n",
"0 ZATT 999 2023-03-31 541442.450359\n",
"1 ZATT 999 2023-02-28 542934.945251\n",
"2 ZATT 999 2023-01-31 546725.963769\n",
"3 ZATT 999 2022-12-31 539928.263825\n",
"4 ZATT 999 2022-11-30 542585.370376\n",
"5 ZATT 999 2022-10-31 598375.000000\n",
"6 ZATT 999 2022-09-30 601490.000000\n",
"7 ZATT 999 2022-08-31 606467.000000\n",
"8 ZATT 999 2022-07-31 607902.000000\n",
"9 ZATT 999 2022-06-30 608465.000000\n",
"10 ZATT 999 2022-05-31 597607.000000\n",
"11 ZATT 999 2022-04-30 585235.000000\n",
"12 ZATT 999 2022-03-31 572754.000000\n",
"13 ZATT 999 2022-02-28 556641.000000\n",
"14 ZATT 999 2022-01-31 538430.000000\n",
"15 ZATT 999 2021-12-31 516010.000000\n",
"16 ZATT 999 2021-11-30 506505.000000\n",
"17 ZATT 999 2021-10-31 498382.000000\n",
"18 ZATT 999 2021-09-30 486909.000000\n",
"19 ZATT 999 2021-08-31 475100.000000\n",
"20 ZATT 999 2021-07-31 469689.000000\n",
"21 ZATT 999 2021-06-30 456018.000000\n",
"22 ZATT 999 2021-05-31 443594.000000\n",
"23 ZATT 999 2021-04-30 435319.000000\n",
"24 ZATT 999 2021-03-31 427213.000000"
]
},
"execution_count": 147,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zillow_nc.head(25)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Hey, there's Durham County!"
]
},
{
"cell_type": "code",
"execution_count": 148,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"RangeIndex: 26510 entries, 0 to 26509\n",
"Data columns (total 4 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 indicator_id 26510 non-null object \n",
" 1 region_id 26510 non-null object \n",
" 2 date 26510 non-null datetime64[ns]\n",
" 3 value 26510 non-null float64 \n",
"dtypes: datetime64[ns](1), float64(1), object(2)\n",
"memory usage: 828.6+ KB\n"
]
}
],
"source": [
"zillow_nc.info()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Now you can filter by *date* if you like. And, you could pull down multiple states this way, change the variable type, etc. You could also merge in the region names using *region_id* as your key."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Using Rapid API\n",
"\n",
"Another data option is [Rapid API](https://rapidapi.com/hub). There's all types of data here - markets, sports, gambling, housing, etc. People will write their own APIs, perhaps interfacing with the websites that contain the information. They can then publish their APIs on this webpage. Many have free options, some you have to pay for. There are thousands here, so you'll have to dig around.\n",
"\n",
"```{figure} ../images/07-rapidapi.png\n",
"---\n",
"name: 07-rapidapi.png\n",
"align: center\n",
"---\n",
"Main Rapid API webpage\n",
"```\n",
"\n",
"One you have an account, you'll be able to subscribe to different APIs. You probably want the data to have a free option.\n",
"\n",
"The quick start guide is [here](https://docs.rapidapi.com/docs/consumer-quick-start-guide). \n",
"\n",
"Luckily, all of the APIs here tend to have the same structures. These are called **REST APIs**. This stands for \"Representational State Transfer\" and is just a standardized way for computers to talk to each other. They are going to use a standard data format, like JSON. More on this below.\n",
"\n",
"You can read more on their [API Learn page](https://rapidapi.com/learn/rest). \n",
"\n",
"We'll look at one example, Pinnacle Odds, which has some sports gambling information: [https://rapidapi.com/tipsters/api/pinnacle-odds/](https://rapidapi.com/tipsters/api/pinnacle-odds/)\n",
"\n",
"Once you've subscribed, you see the main **endpoint** screen. \n",
"\n",
"```{figure} ../images/07-rapidapi-endpoint.png\n",
"---\n",
"name: 07-rapidapi-endpoint.png\n",
"align: center\n",
"---\n",
"Pinnacle Odds endpoint page. I've blocked my API key with two different windows.\n",
"```\n",
"\n",
"At the top, you'll see Endpoints, About, Tutorials, Discussions, and Pricing. Click around to read more about the API.\n",
"\n",
"We are currently on **Endpoints**. Endpoints are basically like URLs. They are where different tables of data live. We are going to use this page to figure out the data that we need. And, the webpage page will also create the Python code needed to download the data!\n",
"\n",
"You can start on the left of the screen. You'll see a list of the different tables available. I'll try **List of Sports** in this example. You'll see why in a minute.\n",
"\n",
"You'll note that the middle section now changed. This is where you can filter and ask for particular types of data from that table. In this case, there are no options to change.\n",
"\n",
"On the right, you'll see Code Snippets. The default is Node.js, a type of Javascript. We don't want that. Click the dropdown box and look for Python. They have three ways, using three different packages, to interface with the API from Python and download the data. I'll pick `Requests` - it seemed to work below. \n",
"\n",
"This will change the code. You'll see the package import, your API key, the host, and the data request. You can click **Copy Code**. \n",
"\n",
"But, before we run this on our end, let's click **Test Endpoint**. That's the blue box in the middle. Then, click **Results** on the left and **Body**. By doing this, we essentially just ran that code in the browser. We can see what data we're going to get. This is a **JSON file** with 9 items. Each item has 6 keys. You can see what the keys are - they are giving us the ids for each sport. For example, \"Soccer\" is \"id = 1\". \n",
"\n",
"This is very helpful! We need to know these id values if we want to pull particular sports.\n",
"\n",
"For fun, let's pull this simple JSON file on our end. I've copied and pasted the code below. It didn't like the `print` function, so I just dropped it. I am again loading in my API key from an separate file. You'll use your own."
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{\"id\":1,\"p_id\":29,\"name\":\"Soccer\",\"last\":1681571699,\"special_last\":1681571658,\"last_call\":1681571702},{\"id\":2,\"p_id\":33,\"name\":\"Tennis\",\"last\":1681571703,\"special_last\":1681556172,\"last_call\":1681571705},{\"id\":3,\"p_id\":4,\"name\":\"Basketball\",\"last\":1681571705,\"special_last\":1681571632,\"last_call\":1681571706},{\"id\":4,\"p_id\":19,\"name\":\"Hockey\",\"last\":1681571474,\"special_last\":1681568468,\"last_call\":1681571707},{\"id\":5,\"p_id\":34,\"name\":\"Volleyball\",\"last\":1681571707,\"last_call\":1681571709},{\"id\":6,\"p_id\":18,\"name\":\"Handball\",\"last\":1681571709,\"last_call\":1681571710},{\"id\":7,\"p_id\":15,\"name\":\"American Football\",\"last\":1681571125,\"special_last\":1681520390,\"last_call\":1681571711},{\"id\":8,\"p_id\":22,\"name\":\"Mixed Martial Arts\",\"last\":1681571386,\"special_last\":1681571395,\"last_call\":1681571697},{\"id\":9,\"p_id\":3,\"name\":\"Baseball\",\"last\":1681571697,\"special_last\":1681571666,\"last_call\":1681571698}]\n"
]
}
],
"source": [
"import requests\n",
"from dotenv import load_dotenv # For my .env file which contains my API keys locally\n",
"import os # For my .env file which contains my API keys locally\n",
"\n",
"load_dotenv() # For my .env file which contains my API keys locally\n",
"RAPID_API_KEY = os.getenv('RAPID_API_KEY')\n",
"\n",
"url = \"https://pinnacle-odds.p.rapidapi.com/kit/v1/sports\"\n",
"\n",
"headers = {\n",
"\t\"X-RapidAPI-Key\": RAPID_API_KEY,\n",
"\t\"X-RapidAPI-Host\": \"pinnacle-odds.p.rapidapi.com\"\n",
"}\n",
"\n",
"sports_ids = requests.request(\"GET\", url, headers=headers)\n",
"\n",
"print(sports_ids.text)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"We can turn that response file into a JSON file. This is what it wants to be!\n",
"\n",
"All of the code that follows is also commented out so that it doesn't run every time I edit this online book. The output from the code is still there, however."
]
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'id': 1,\n",
" 'p_id': 29,\n",
" 'name': 'Soccer',\n",
" 'last': 1681571699,\n",
" 'special_last': 1681571658,\n",
" 'last_call': 1681571702},\n",
" {'id': 2,\n",
" 'p_id': 33,\n",
" 'name': 'Tennis',\n",
" 'last': 1681571703,\n",
" 'special_last': 1681556172,\n",
" 'last_call': 1681571705},\n",
" {'id': 3,\n",
" 'p_id': 4,\n",
" 'name': 'Basketball',\n",
" 'last': 1681571705,\n",
" 'special_last': 1681571632,\n",
" 'last_call': 1681571706},\n",
" {'id': 4,\n",
" 'p_id': 19,\n",
" 'name': 'Hockey',\n",
" 'last': 1681571474,\n",
" 'special_last': 1681568468,\n",
" 'last_call': 1681571707},\n",
" {'id': 5,\n",
" 'p_id': 34,\n",
" 'name': 'Volleyball',\n",
" 'last': 1681571707,\n",
" 'last_call': 1681571709},\n",
" {'id': 6,\n",
" 'p_id': 18,\n",
" 'name': 'Handball',\n",
" 'last': 1681571709,\n",
" 'last_call': 1681571710},\n",
" {'id': 7,\n",
" 'p_id': 15,\n",
" 'name': 'American Football',\n",
" 'last': 1681571125,\n",
" 'special_last': 1681520390,\n",
" 'last_call': 1681571711},\n",
" {'id': 8,\n",
" 'p_id': 22,\n",
" 'name': 'Mixed Martial Arts',\n",
" 'last': 1681571386,\n",
" 'special_last': 1681571395,\n",
" 'last_call': 1681571697},\n",
" {'id': 9,\n",
" 'p_id': 3,\n",
" 'name': 'Baseball',\n",
" 'last': 1681571697,\n",
" 'special_last': 1681571666,\n",
" 'last_call': 1681571698}]"
]
},
"execution_count": 150,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sports_ids_json = sports_ids.json()\n",
"sports_ids_json"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"That's JSON. I was able to show the whole thing in the notebook.\n",
"\n",
"Let's get that into a `pandas` DataFrame now. To do that, we have to know a bit about how JSON files are structured. This one is easy. `pd.json_normalize` is a useful tool here."
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" sport_id sport_name last last_call \\\n",
"0 3 Basketball 1681571705 1681571706 \n",
"\n",
" events \n",
"0 [{'event_id': 1570671674, 'sport_id': 3, 'leag... "
]
},
"execution_count": 154,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"current_df = pd.json_normalize(data = current_json)\n",
"current_df\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"We need to **flatten** this file. JSON files are nested. That's what all those brackets are doing. Let's think a little more about that.\n",
"\n",
"```{figure} ../images/07-json.png\n",
"---\n",
"name: 07-json.png\n",
"align: center\n",
"---\n",
"JSON structure. Source: https://towardsdatascience.com/all-pandas-json-normalize-you-should-know-for-flattening-json-13eae1dfb7dd\n",
"```\n",
"\n",
"JSON files are like dictionaries, as you can see in the picture above. There's a key and a value. However, they can get complicated where there's a list of dictionaries embedded in the same data structure. You can think of navigating them like working through the branches of a tree. Which branch do you want?\n",
"\n",
"To do this, we'll use the [pd.json_normalize](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.json_normalize.html) method. We've just used it, but that was with a simple JSON file. It didn't really work with the current odds data, unless we add more arguments.\n",
"\n",
"You can read more [here](https://towardsdatascience.com/all-pandas-json-normalize-you-should-know-for-flattening-json-13eae1dfb7dd).\n",
"\n",
"Everything is packed into that *events* column. Let's flatten it. This will take every item in it and convert it into a new column. Keys will be combined together to create compound names that combine different levels. "
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"