Skip to content

Instantly share code, notes, and snippets.

@firmai
Last active February 13, 2024 17:53
Show Gist options
  • Save firmai/2fe8aa360ffd6a1f916e59ac0ae88bbd to your computer and use it in GitHub Desktop.
Save firmai/2fe8aa360ffd6a1f916e59ac0ae88bbd to your computer and use it in GitHub Desktop.
Grabbing Data.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Grabbing Data.ipynb",
"provenance": [],
"authorship_tag": "ABX9TyMC4OPAeaD8Z9uixC53xpKd",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/firmai/2fe8aa360ffd6a1f916e59ac0ae88bbd/grabbing-data.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"source": [
"%%capture\n",
"!pip install wrds"
],
"metadata": {
"id": "ETpe9B8uAnJT"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# Access WRDS Data"
],
"metadata": {
"id": "hWiYkHF5Dp76"
}
},
{
"cell_type": "code",
"source": [
"import wrds\n",
"import numpy as np\n",
"import pandas as pd\n",
"from datetime import datetime"
],
"metadata": {
"id": "9vBVpyqg7oDj"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "5dBY9ZK__KG1"
},
"outputs": [],
"source": [
"now = datetime.now()\n",
"\n",
"\n",
"## Research Applications Code: https://wrds-www.wharton.upenn.edu/pages/support/applications/\n",
"## https://wrds-www.wharton.upenn.edu/pages/get-data/\n",
"## You will ONLY be able to access the data if you have an id and a secret code\n",
"## df_pricing_m = db.raw_sql(\"select * from comp.secm where datadate between '1975-01-01' and '2021-12-01'\")\n",
"\n",
"db = wrds.Connection()\n",
"\n",
"df_short_raw = db.raw_sql(\"select * from comp.sec_shortint where datadate between '2021-01-01' and '{}'\".format(now.strftime(\"%Y-%m-%d\")))\n",
"df_short_raw.to_csv(\"Short/df_short_raw.csv\", index=False)"
]
},
{
"cell_type": "code",
"source": [
"# df_short_raw = pd.read_csv(\"https://open-data.s3.filebase.com/df_short_raw.csv\") #longer"
],
"metadata": {
"id": "SD0aN4DKCWUg"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"df_short_raw.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "IurZrgpGDJOe",
"outputId": "a52a895b-b4bf-4e82-8df2-e71bae4369a3"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-d0667041-fcf0-48c4-a5d4-13aeac88fd4a\">\n",
" <div class=\"colab-df-container\">\n",
" <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>gvkey</th>\n",
" <th>iid</th>\n",
" <th>shortint</th>\n",
" <th>shortintadj</th>\n",
" <th>datadate</th>\n",
" <th>splitadjdate</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1000</td>\n",
" <td>1</td>\n",
" <td>200.0</td>\n",
" <td>200.0</td>\n",
" <td>1976-08-13</td>\n",
" <td>1976-08-31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1000</td>\n",
" <td>1</td>\n",
" <td>1000.0</td>\n",
" <td>1000.0</td>\n",
" <td>1977-07-15</td>\n",
" <td>1977-07-31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1000</td>\n",
" <td>1</td>\n",
" <td>1000.0</td>\n",
" <td>1000.0</td>\n",
" <td>1977-08-15</td>\n",
" <td>1977-08-31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1000</td>\n",
" <td>1</td>\n",
" <td>2400.0</td>\n",
" <td>2400.0</td>\n",
" <td>1977-09-15</td>\n",
" <td>1977-09-30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1000</td>\n",
" <td>1</td>\n",
" <td>2400.0</td>\n",
" <td>2400.0</td>\n",
" <td>1977-10-14</td>\n",
" <td>1977-10-31</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d0667041-fcf0-48c4-a5d4-13aeac88fd4a')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-d0667041-fcf0-48c4-a5d4-13aeac88fd4a button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-d0667041-fcf0-48c4-a5d4-13aeac88fd4a');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" gvkey iid shortint shortintadj datadate splitadjdate\n",
"0 1000 1 200.0 200.0 1976-08-13 1976-08-31\n",
"1 1000 1 1000.0 1000.0 1977-07-15 1977-07-31\n",
"2 1000 1 1000.0 1000.0 1977-08-15 1977-08-31\n",
"3 1000 1 2400.0 2400.0 1977-09-15 1977-09-30\n",
"4 1000 1 2400.0 2400.0 1977-10-14 1977-10-31"
]
},
"metadata": {},
"execution_count": 4
}
]
},
{
"cell_type": "markdown",
"source": [
"# Access Quandl"
],
"metadata": {
"id": "uNQ36m_QFSbt"
}
},
{
"cell_type": "code",
"source": [
"%%capture\n",
"!pip install quandl (NOW NASDAQ-LINK)"
],
"metadata": {
"id": "YLLoIRQfD1UV"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import quandl\n",
"from dateutil.relativedelta import relativedelta\n",
"from datetime import date\n",
"today = date.today()\n",
"years_ago = today - relativedelta(years=3)\n",
"d1 = today.strftime(\"%Y-%m-%d\")\n",
"dlate = years_ago.strftime(\"%Y-%m-%d\")\n",
"\n",
"rem=[\"AAPL\",\"MSFT\",\"GOOGL\"] ## add as many as you want\n",
"\n",
"your_key = \"xxxxxxxxxx\"\n",
"quandl.ApiConfig.api_key = 'your_key'\n",
"shad_df = quandl.get_table('SHARADAR/SF1', ticker=rem, calendardate={'gte':dlate,'lte':d1}, paginate=True)"
],
"metadata": {
"id": "u1E2Y_UXD44j"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# shad_df = pd.read_csv(\"https://open-data.s3.filebase.com/shad_df.csv\")\n",
"shad_df.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 386
},
"id": "MLVzbvwPFGjU",
"outputId": "fc773845-e36a-4ea5-a880-14047584c44d"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-74867b28-7ff2-450f-a9a9-36b849e58704\">\n",
" <div class=\"colab-df-container\">\n",
" <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>ticker</th>\n",
" <th>dimension</th>\n",
" <th>calendardate</th>\n",
" <th>datekey</th>\n",
" <th>reportperiod</th>\n",
" <th>lastupdated</th>\n",
" <th>accoci</th>\n",
" <th>assets</th>\n",
" <th>assetsavg</th>\n",
" <th>assetsc</th>\n",
" <th>assetsnc</th>\n",
" <th>assetturnover</th>\n",
" <th>bvps</th>\n",
" <th>capex</th>\n",
" <th>cashneq</th>\n",
" <th>cashnequsd</th>\n",
" <th>cor</th>\n",
" <th>consolinc</th>\n",
" <th>currentratio</th>\n",
" <th>de</th>\n",
" <th>debt</th>\n",
" <th>debtc</th>\n",
" <th>debtnc</th>\n",
" <th>debtusd</th>\n",
" <th>deferredrev</th>\n",
" <th>depamor</th>\n",
" <th>deposits</th>\n",
" <th>divyield</th>\n",
" <th>dps</th>\n",
" <th>ebit</th>\n",
" <th>ebitda</th>\n",
" <th>ebitdamargin</th>\n",
" <th>ebitdausd</th>\n",
" <th>ebitusd</th>\n",
" <th>ebt</th>\n",
" <th>eps</th>\n",
" <th>epsdil</th>\n",
" <th>epsusd</th>\n",
" <th>equity</th>\n",
" <th>equityavg</th>\n",
" <th>...</th>\n",
" <th>netinc</th>\n",
" <th>netinccmn</th>\n",
" <th>netinccmnusd</th>\n",
" <th>netincdis</th>\n",
" <th>netincnci</th>\n",
" <th>netmargin</th>\n",
" <th>opex</th>\n",
" <th>opinc</th>\n",
" <th>payables</th>\n",
" <th>payoutratio</th>\n",
" <th>pb</th>\n",
" <th>pe</th>\n",
" <th>pe1</th>\n",
" <th>ppnenet</th>\n",
" <th>prefdivis</th>\n",
" <th>price</th>\n",
" <th>ps</th>\n",
" <th>ps1</th>\n",
" <th>receivables</th>\n",
" <th>retearn</th>\n",
" <th>revenue</th>\n",
" <th>revenueusd</th>\n",
" <th>rnd</th>\n",
" <th>roa</th>\n",
" <th>roe</th>\n",
" <th>roic</th>\n",
" <th>ros</th>\n",
" <th>sbcomp</th>\n",
" <th>sgna</th>\n",
" <th>sharefactor</th>\n",
" <th>sharesbas</th>\n",
" <th>shareswa</th>\n",
" <th>shareswadil</th>\n",
" <th>sps</th>\n",
" <th>tangibles</th>\n",
" <th>taxassets</th>\n",
" <th>taxexp</th>\n",
" <th>taxliabilities</th>\n",
" <th>tbvps</th>\n",
" <th>workingcapital</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>MSFT</td>\n",
" <td>MRY</td>\n",
" <td>2021-12-31</td>\n",
" <td>2021-06-30</td>\n",
" <td>2021-06-30</td>\n",
" <td>2022-01-25</td>\n",
" <td>1822000000</td>\n",
" <td>333779000000</td>\n",
" <td>3.119490e+11</td>\n",
" <td>184406000000</td>\n",
" <td>149373000000</td>\n",
" <td>0.539</td>\n",
" <td>18.814</td>\n",
" <td>-20622000000</td>\n",
" <td>130334000000</td>\n",
" <td>130334000000</td>\n",
" <td>52232000000</td>\n",
" <td>61271000000</td>\n",
" <td>2.080</td>\n",
" <td>1.351</td>\n",
" <td>67775000000</td>\n",
" <td>8072000000</td>\n",
" <td>59703000000</td>\n",
" <td>67775000000</td>\n",
" <td>44141000000</td>\n",
" <td>11686000000</td>\n",
" <td>0</td>\n",
" <td>0.008</td>\n",
" <td>2.19</td>\n",
" <td>73448000000</td>\n",
" <td>85134000000</td>\n",
" <td>0.506</td>\n",
" <td>85134000000</td>\n",
" <td>73448000000</td>\n",
" <td>71102000000</td>\n",
" <td>8.12</td>\n",
" <td>8.05</td>\n",
" <td>8.12</td>\n",
" <td>141988000000</td>\n",
" <td>1.325302e+11</td>\n",
" <td>...</td>\n",
" <td>61271000000</td>\n",
" <td>61271000000</td>\n",
" <td>61271000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.365</td>\n",
" <td>45940000000</td>\n",
" <td>69916000000</td>\n",
" <td>15163000000</td>\n",
" <td>0.270</td>\n",
" <td>14.370</td>\n",
" <td>33.300</td>\n",
" <td>33.362</td>\n",
" <td>70803000000</td>\n",
" <td>0</td>\n",
" <td>270.90</td>\n",
" <td>12.138</td>\n",
" <td>12.163</td>\n",
" <td>38043000000</td>\n",
" <td>57055000000</td>\n",
" <td>168088000000</td>\n",
" <td>168088000000</td>\n",
" <td>20716000000</td>\n",
" <td>0.196</td>\n",
" <td>0.462</td>\n",
" <td>0.609</td>\n",
" <td>0.437</td>\n",
" <td>6118000000</td>\n",
" <td>25224000000</td>\n",
" <td>1.0</td>\n",
" <td>7531574551</td>\n",
" <td>7547000000</td>\n",
" <td>7.608000e+09</td>\n",
" <td>22.272</td>\n",
" <td>276268000000</td>\n",
" <td>0</td>\n",
" <td>9831000000</td>\n",
" <td>29562000000</td>\n",
" <td>36.606</td>\n",
" <td>95749000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>MSFT</td>\n",
" <td>MRY</td>\n",
" <td>2020-12-31</td>\n",
" <td>2020-06-30</td>\n",
" <td>2020-06-30</td>\n",
" <td>2022-01-25</td>\n",
" <td>3186000000</td>\n",
" <td>301311000000</td>\n",
" <td>2.871272e+11</td>\n",
" <td>181915000000</td>\n",
" <td>119396000000</td>\n",
" <td>0.498</td>\n",
" <td>15.546</td>\n",
" <td>-15441000000</td>\n",
" <td>136527000000</td>\n",
" <td>136527000000</td>\n",
" <td>46078000000</td>\n",
" <td>44281000000</td>\n",
" <td>2.516</td>\n",
" <td>1.547</td>\n",
" <td>70998000000</td>\n",
" <td>3749000000</td>\n",
" <td>67249000000</td>\n",
" <td>70998000000</td>\n",
" <td>39180000000</td>\n",
" <td>12796000000</td>\n",
" <td>0</td>\n",
" <td>0.010</td>\n",
" <td>1.99</td>\n",
" <td>55627000000</td>\n",
" <td>68423000000</td>\n",
" <td>0.478</td>\n",
" <td>68423000000</td>\n",
" <td>55627000000</td>\n",
" <td>53036000000</td>\n",
" <td>5.82</td>\n",
" <td>5.76</td>\n",
" <td>5.82</td>\n",
" <td>118304000000</td>\n",
" <td>1.122438e+11</td>\n",
" <td>...</td>\n",
" <td>44281000000</td>\n",
" <td>44281000000</td>\n",
" <td>44281000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.310</td>\n",
" <td>43978000000</td>\n",
" <td>52959000000</td>\n",
" <td>12530000000</td>\n",
" <td>0.342</td>\n",
" <td>13.045</td>\n",
" <td>34.853</td>\n",
" <td>34.967</td>\n",
" <td>52904000000</td>\n",
" <td>0</td>\n",
" <td>203.51</td>\n",
" <td>10.791</td>\n",
" <td>10.829</td>\n",
" <td>32011000000</td>\n",
" <td>34566000000</td>\n",
" <td>143015000000</td>\n",
" <td>143015000000</td>\n",
" <td>19269000000</td>\n",
" <td>0.154</td>\n",
" <td>0.395</td>\n",
" <td>0.490</td>\n",
" <td>0.389</td>\n",
" <td>5289000000</td>\n",
" <td>24709000000</td>\n",
" <td>1.0</td>\n",
" <td>7583440247</td>\n",
" <td>7610000000</td>\n",
" <td>7.683000e+09</td>\n",
" <td>18.793</td>\n",
" <td>250922000000</td>\n",
" <td>0</td>\n",
" <td>8755000000</td>\n",
" <td>31766000000</td>\n",
" <td>32.973</td>\n",
" <td>109605000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>MSFT</td>\n",
" <td>MRY</td>\n",
" <td>2019-12-31</td>\n",
" <td>2019-06-30</td>\n",
" <td>2019-06-30</td>\n",
" <td>2022-01-25</td>\n",
" <td>-340000000</td>\n",
" <td>286556000000</td>\n",
" <td>2.665788e+11</td>\n",
" <td>175552000000</td>\n",
" <td>111004000000</td>\n",
" <td>0.472</td>\n",
" <td>13.336</td>\n",
" <td>-13925000000</td>\n",
" <td>133819000000</td>\n",
" <td>133819000000</td>\n",
" <td>42910000000</td>\n",
" <td>39240000000</td>\n",
" <td>2.529</td>\n",
" <td>1.800</td>\n",
" <td>78366000000</td>\n",
" <td>5516000000</td>\n",
" <td>72850000000</td>\n",
" <td>78366000000</td>\n",
" <td>37206000000</td>\n",
" <td>11682000000</td>\n",
" <td>0</td>\n",
" <td>0.013</td>\n",
" <td>1.80</td>\n",
" <td>46374000000</td>\n",
" <td>58056000000</td>\n",
" <td>0.461</td>\n",
" <td>58056000000</td>\n",
" <td>46374000000</td>\n",
" <td>43688000000</td>\n",
" <td>5.11</td>\n",
" <td>5.06</td>\n",
" <td>5.11</td>\n",
" <td>102330000000</td>\n",
" <td>9.382225e+10</td>\n",
" <td>...</td>\n",
" <td>39240000000</td>\n",
" <td>39240000000</td>\n",
" <td>39240000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.312</td>\n",
" <td>39974000000</td>\n",
" <td>42959000000</td>\n",
" <td>9382000000</td>\n",
" <td>0.352</td>\n",
" <td>10.031</td>\n",
" <td>26.160</td>\n",
" <td>26.215</td>\n",
" <td>43856000000</td>\n",
" <td>0</td>\n",
" <td>133.96</td>\n",
" <td>8.157</td>\n",
" <td>8.168</td>\n",
" <td>29524000000</td>\n",
" <td>24150000000</td>\n",
" <td>125843000000</td>\n",
" <td>125843000000</td>\n",
" <td>16876000000</td>\n",
" <td>0.147</td>\n",
" <td>0.418</td>\n",
" <td>0.429</td>\n",
" <td>0.369</td>\n",
" <td>4652000000</td>\n",
" <td>23098000000</td>\n",
" <td>1.0</td>\n",
" <td>7662817920</td>\n",
" <td>7673000000</td>\n",
" <td>7.753000e+09</td>\n",
" <td>16.401</td>\n",
" <td>236780000000</td>\n",
" <td>0</td>\n",
" <td>4448000000</td>\n",
" <td>35510000000</td>\n",
" <td>30.859</td>\n",
" <td>106132000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>MSFT</td>\n",
" <td>MRT</td>\n",
" <td>2021-12-31</td>\n",
" <td>2021-12-31</td>\n",
" <td>2021-12-31</td>\n",
" <td>2022-01-25</td>\n",
" <td>437000000</td>\n",
" <td>340389000000</td>\n",
" <td>3.296162e+11</td>\n",
" <td>174188000000</td>\n",
" <td>166201000000</td>\n",
" <td>0.561</td>\n",
" <td>21.320</td>\n",
" <td>-23216000000</td>\n",
" <td>125369000000</td>\n",
" <td>125369000000</td>\n",
" <td>57642000000</td>\n",
" <td>71185000000</td>\n",
" <td>2.247</td>\n",
" <td>1.127</td>\n",
" <td>64032000000</td>\n",
" <td>4998000000</td>\n",
" <td>59034000000</td>\n",
" <td>64032000000</td>\n",
" <td>36769000000</td>\n",
" <td>12988000000</td>\n",
" <td>0</td>\n",
" <td>0.007</td>\n",
" <td>2.30</td>\n",
" <td>81930000000</td>\n",
" <td>94918000000</td>\n",
" <td>0.513</td>\n",
" <td>94918000000</td>\n",
" <td>81930000000</td>\n",
" <td>79680000000</td>\n",
" <td>9.47</td>\n",
" <td>9.39</td>\n",
" <td>9.47</td>\n",
" <td>160010000000</td>\n",
" <td>1.471202e+11</td>\n",
" <td>...</td>\n",
" <td>71185000000</td>\n",
" <td>71185000000</td>\n",
" <td>71185000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.385</td>\n",
" <td>48633000000</td>\n",
" <td>78628000000</td>\n",
" <td>15314000000</td>\n",
" <td>0.243</td>\n",
" <td>15.781</td>\n",
" <td>35.472</td>\n",
" <td>35.514</td>\n",
" <td>79568000000</td>\n",
" <td>0</td>\n",
" <td>336.32</td>\n",
" <td>13.656</td>\n",
" <td>13.651</td>\n",
" <td>33520000000</td>\n",
" <td>75045000000</td>\n",
" <td>184903000000</td>\n",
" <td>184903000000</td>\n",
" <td>22248000000</td>\n",
" <td>0.216</td>\n",
" <td>0.484</td>\n",
" <td>0.632</td>\n",
" <td>0.443</td>\n",
" <td>6695000000</td>\n",
" <td>26385000000</td>\n",
" <td>1.0</td>\n",
" <td>7507980444</td>\n",
" <td>7505000000</td>\n",
" <td>7.555000e+09</td>\n",
" <td>24.637</td>\n",
" <td>282006000000</td>\n",
" <td>0</td>\n",
" <td>8495000000</td>\n",
" <td>30051000000</td>\n",
" <td>37.576</td>\n",
" <td>96678000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>MSFT</td>\n",
" <td>MRT</td>\n",
" <td>2021-09-30</td>\n",
" <td>2021-09-30</td>\n",
" <td>2021-09-30</td>\n",
" <td>2022-01-25</td>\n",
" <td>1283000000</td>\n",
" <td>335418000000</td>\n",
" <td>3.205532e+11</td>\n",
" <td>174326000000</td>\n",
" <td>161092000000</td>\n",
" <td>0.550</td>\n",
" <td>20.229</td>\n",
" <td>-21525000000</td>\n",
" <td>130615000000</td>\n",
" <td>130615000000</td>\n",
" <td>54876000000</td>\n",
" <td>67883000000</td>\n",
" <td>2.165</td>\n",
" <td>1.207</td>\n",
" <td>63338000000</td>\n",
" <td>3249000000</td>\n",
" <td>60089000000</td>\n",
" <td>63338000000</td>\n",
" <td>41015000000</td>\n",
" <td>12253000000</td>\n",
" <td>0</td>\n",
" <td>0.008</td>\n",
" <td>2.24</td>\n",
" <td>77798000000</td>\n",
" <td>90051000000</td>\n",
" <td>0.511</td>\n",
" <td>90051000000</td>\n",
" <td>77798000000</td>\n",
" <td>75502000000</td>\n",
" <td>9.02</td>\n",
" <td>8.94</td>\n",
" <td>9.02</td>\n",
" <td>151978000000</td>\n",
" <td>1.396768e+11</td>\n",
" <td>...</td>\n",
" <td>67883000000</td>\n",
" <td>67883000000</td>\n",
" <td>67883000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.385</td>\n",
" <td>47097000000</td>\n",
" <td>74278000000</td>\n",
" <td>14832000000</td>\n",
" <td>0.248</td>\n",
" <td>13.940</td>\n",
" <td>31.210</td>\n",
" <td>31.255</td>\n",
" <td>75347000000</td>\n",
" <td>0</td>\n",
" <td>281.92</td>\n",
" <td>12.020</td>\n",
" <td>12.017</td>\n",
" <td>27349000000</td>\n",
" <td>66944000000</td>\n",
" <td>176251000000</td>\n",
" <td>176251000000</td>\n",
" <td>21389000000</td>\n",
" <td>0.212</td>\n",
" <td>0.486</td>\n",
" <td>0.624</td>\n",
" <td>0.441</td>\n",
" <td>6364000000</td>\n",
" <td>25708000000</td>\n",
" <td>1.0</td>\n",
" <td>7514891248</td>\n",
" <td>7513000000</td>\n",
" <td>7.567000e+09</td>\n",
" <td>23.459</td>\n",
" <td>277169000000</td>\n",
" <td>0</td>\n",
" <td>7619000000</td>\n",
" <td>32199000000</td>\n",
" <td>36.892</td>\n",
" <td>93798000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 111 columns</p>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-74867b28-7ff2-450f-a9a9-36b849e58704')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-74867b28-7ff2-450f-a9a9-36b849e58704 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-74867b28-7ff2-450f-a9a9-36b849e58704');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" ticker dimension calendardate ... taxliabilities tbvps workingcapital\n",
"0 MSFT MRY 2021-12-31 ... 29562000000 36.606 95749000000\n",
"1 MSFT MRY 2020-12-31 ... 31766000000 32.973 109605000000\n",
"2 MSFT MRY 2019-12-31 ... 35510000000 30.859 106132000000\n",
"3 MSFT MRT 2021-12-31 ... 30051000000 37.576 96678000000\n",
"4 MSFT MRT 2021-09-30 ... 32199000000 36.892 93798000000\n",
"\n",
"[5 rows x 111 columns]"
]
},
"metadata": {},
"execution_count": 5
}
]
},
{
"cell_type": "markdown",
"source": [
"# Access IEX"
],
"metadata": {
"id": "VZiqAN18ICyq"
}
},
{
"cell_type": "code",
"source": [
"Other ones: alpha advantage, TIINGO, EOD Data. (all pretty cheap)"
],
"metadata": {
"id": "Jn_e4SfTmY3C"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"%%capture\n",
"!pip3 install iexfinance"
],
"metadata": {
"id": "ML8rSgGnHZGd"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"from iexfinance.stocks import Stock\n",
"\n",
"batch = Stock([\"AAPL\",\"MSFT\",\"GOOGL\"], token=\"pk_1bb24df04623446ab8c7c105e775fcda\") # use your own token\n",
"batch.get_price()\n",
"batch.get_quote()"
],
"metadata": {
"id": "x8yWOQc5HW29"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# Yahoo Finance"
],
"metadata": {
"id": "iBhxCvfEIGIV"
}
},
{
"cell_type": "markdown",
"source": [],
"metadata": {
"id": "oKOV9KNPI349"
}
},
{
"cell_type": "code",
"source": [
"%%capture\n",
"!pip install yfinance"
],
"metadata": {
"id": "ld5Yg69iI5j_"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import yfinance as yf\n",
"from datetime import datetime\n",
"now = datetime.now()\n",
"\n",
"data = yf.download(\"AAPL MSFT GOOGL\", start=\"2017-01-01\", end=now.strftime(\"%Y-%m-%d\"))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "-xBDq_dyEoVV",
"outputId": "23de9a92-79da-4933-e8c5-6be30f598a9a"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"[*********************100%***********************] 3 of 3 completed\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"data.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 419
},
"id": "5xwLy6S6JAdb",
"outputId": "29385d76-d3a6-4424-cb42-08552b59b0a2"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-2f77c776-2f17-4aee-b587-cdd86e1342ae\">\n",
" <div class=\"colab-df-container\">\n",
" <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 tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"3\" halign=\"left\">Adj Close</th>\n",
" <th colspan=\"3\" halign=\"left\">Close</th>\n",
" <th colspan=\"3\" halign=\"left\">High</th>\n",
" <th colspan=\"3\" halign=\"left\">Low</th>\n",
" <th colspan=\"3\" halign=\"left\">Open</th>\n",
" <th colspan=\"3\" halign=\"left\">Volume</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>AAPL</th>\n",
" <th>GOOGL</th>\n",
" <th>MSFT</th>\n",
" <th>AAPL</th>\n",
" <th>GOOGL</th>\n",
" <th>MSFT</th>\n",
" <th>AAPL</th>\n",
" <th>GOOGL</th>\n",
" <th>MSFT</th>\n",
" <th>AAPL</th>\n",
" <th>GOOGL</th>\n",
" <th>MSFT</th>\n",
" <th>AAPL</th>\n",
" <th>GOOGL</th>\n",
" <th>MSFT</th>\n",
" <th>AAPL</th>\n",
" <th>GOOGL</th>\n",
" <th>MSFT</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",
" <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>2017-01-03</th>\n",
" <td>27.297691</td>\n",
" <td>808.010010</td>\n",
" <td>58.065456</td>\n",
" <td>29.037500</td>\n",
" <td>808.010010</td>\n",
" <td>62.580002</td>\n",
" <td>29.082500</td>\n",
" <td>811.440002</td>\n",
" <td>62.840000</td>\n",
" <td>28.690001</td>\n",
" <td>796.890015</td>\n",
" <td>62.130001</td>\n",
" <td>28.950001</td>\n",
" <td>800.619995</td>\n",
" <td>62.790001</td>\n",
" <td>115127600</td>\n",
" <td>1959000</td>\n",
" <td>20694100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-04</th>\n",
" <td>27.267143</td>\n",
" <td>807.770020</td>\n",
" <td>57.805656</td>\n",
" <td>29.004999</td>\n",
" <td>807.770020</td>\n",
" <td>62.299999</td>\n",
" <td>29.127501</td>\n",
" <td>813.429993</td>\n",
" <td>62.750000</td>\n",
" <td>28.937500</td>\n",
" <td>804.109985</td>\n",
" <td>62.119999</td>\n",
" <td>28.962500</td>\n",
" <td>809.890015</td>\n",
" <td>62.480000</td>\n",
" <td>84472400</td>\n",
" <td>1515300</td>\n",
" <td>21340000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-05</th>\n",
" <td>27.405806</td>\n",
" <td>813.020020</td>\n",
" <td>57.805656</td>\n",
" <td>29.152500</td>\n",
" <td>813.020020</td>\n",
" <td>62.299999</td>\n",
" <td>29.215000</td>\n",
" <td>813.739990</td>\n",
" <td>62.660000</td>\n",
" <td>28.952499</td>\n",
" <td>805.919983</td>\n",
" <td>62.029999</td>\n",
" <td>28.980000</td>\n",
" <td>807.500000</td>\n",
" <td>62.189999</td>\n",
" <td>88774400</td>\n",
" <td>1340500</td>\n",
" <td>24876000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-06</th>\n",
" <td>27.711329</td>\n",
" <td>825.210022</td>\n",
" <td>58.306698</td>\n",
" <td>29.477501</td>\n",
" <td>825.210022</td>\n",
" <td>62.840000</td>\n",
" <td>29.540001</td>\n",
" <td>828.960022</td>\n",
" <td>63.150002</td>\n",
" <td>29.117500</td>\n",
" <td>811.500000</td>\n",
" <td>62.040001</td>\n",
" <td>29.195000</td>\n",
" <td>814.989990</td>\n",
" <td>62.299999</td>\n",
" <td>127007600</td>\n",
" <td>2017100</td>\n",
" <td>19922900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-09</th>\n",
" <td>27.965151</td>\n",
" <td>827.179993</td>\n",
" <td>58.121132</td>\n",
" <td>29.747499</td>\n",
" <td>827.179993</td>\n",
" <td>62.639999</td>\n",
" <td>29.857500</td>\n",
" <td>830.429993</td>\n",
" <td>63.080002</td>\n",
" <td>29.485001</td>\n",
" <td>821.619995</td>\n",
" <td>62.540001</td>\n",
" <td>29.487499</td>\n",
" <td>826.369995</td>\n",
" <td>62.759998</td>\n",
" <td>134247600</td>\n",
" <td>1408900</td>\n",
" <td>20382700</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-2f77c776-2f17-4aee-b587-cdd86e1342ae')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-2f77c776-2f17-4aee-b587-cdd86e1342ae button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-2f77c776-2f17-4aee-b587-cdd86e1342ae');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" Adj Close ... Volume \n",
" AAPL GOOGL MSFT ... AAPL GOOGL MSFT\n",
"Date ... \n",
"2017-01-03 27.297691 808.010010 58.065456 ... 115127600 1959000 20694100\n",
"2017-01-04 27.267143 807.770020 57.805656 ... 84472400 1515300 21340000\n",
"2017-01-05 27.405806 813.020020 57.805656 ... 88774400 1340500 24876000\n",
"2017-01-06 27.711329 825.210022 58.306698 ... 127007600 2017100 19922900\n",
"2017-01-09 27.965151 827.179993 58.121132 ... 134247600 1408900 20382700\n",
"\n",
"[5 rows x 18 columns]"
]
},
"metadata": {},
"execution_count": 10
}
]
},
{
"cell_type": "markdown",
"source": [
"# Data Reader"
],
"metadata": {
"id": "ROn_ROklJn-4"
}
},
{
"cell_type": "code",
"source": [
"import os\n",
"import pandas_datareader.data as web\n",
"# https://pandas-datareader.readthedocs.io/en/latest/remote_data.html\n",
"\n",
"web.DataReader(\"USD/JPY\", \"av-forex\", api_key=\"OQK9STUXC0MSO2T5\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 331
},
"id": "YBVln49iKO4U",
"outputId": "9074c513-29af-443a-d916-6199ef897001"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-da30a999-e47f-488f-9305-78c067a4e151\">\n",
" <div class=\"colab-df-container\">\n",
" <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>USD/JPY</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>From_Currency Code</th>\n",
" <td>USD</td>\n",
" </tr>\n",
" <tr>\n",
" <th>From_Currency Name</th>\n",
" <td>United States Dollar</td>\n",
" </tr>\n",
" <tr>\n",
" <th>To_Currency Code</th>\n",
" <td>JPY</td>\n",
" </tr>\n",
" <tr>\n",
" <th>To_Currency Name</th>\n",
" <td>Japanese Yen</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Exchange Rate</th>\n",
" <td>115.25000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Last Refreshed</th>\n",
" <td>2022-02-28 15:26:24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Time Zone</th>\n",
" <td>UTC</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bid Price</th>\n",
" <td>115.25000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ask Price</th>\n",
" <td>115.25000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-da30a999-e47f-488f-9305-78c067a4e151')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-da30a999-e47f-488f-9305-78c067a4e151 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-da30a999-e47f-488f-9305-78c067a4e151');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" USD/JPY\n",
"From_Currency Code USD\n",
"From_Currency Name United States Dollar\n",
"To_Currency Code JPY\n",
"To_Currency Name Japanese Yen\n",
"Exchange Rate 115.25000000\n",
"Last Refreshed 2022-02-28 15:26:24\n",
"Time Zone UTC\n",
"Bid Price 115.25000000\n",
"Ask Price 115.25000000"
]
},
"metadata": {},
"execution_count": 11
}
]
},
{
"cell_type": "code",
"source": [
"web.get_sector_performance_av(api_key=\"OQK9STUXC0MSO2T5\").head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "HkzuerOgK1S0",
"outputId": "05d79866-8633-4c52-c398-9b6ddbdacb36"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-f88a5d0d-e5c2-40ea-97e0-06a76936013b\">\n",
" <div class=\"colab-df-container\">\n",
" <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>RT</th>\n",
" <th>1D</th>\n",
" <th>5D</th>\n",
" <th>1M</th>\n",
" <th>3M</th>\n",
" <th>YTD</th>\n",
" <th>1Y</th>\n",
" <th>3Y</th>\n",
" <th>5Y</th>\n",
" <th>10Y</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Energy</th>\n",
" <td>0.86%</td>\n",
" <td>2.74%</td>\n",
" <td>0.51%</td>\n",
" <td>8.78%</td>\n",
" <td>19.52%</td>\n",
" <td>23.37%</td>\n",
" <td>38.63%</td>\n",
" <td>7.89%</td>\n",
" <td>0.97%</td>\n",
" <td>-7.80%</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Industrials</th>\n",
" <td>-0.05%</td>\n",
" <td>2.40%</td>\n",
" <td>-0.13%</td>\n",
" <td>-2.71%</td>\n",
" <td>-6.52%</td>\n",
" <td>-6.49%</td>\n",
" <td>6.22%</td>\n",
" <td>30.78%</td>\n",
" <td>48.10%</td>\n",
" <td>159.85%</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Utilities</th>\n",
" <td>-0.15%</td>\n",
" <td>3.14%</td>\n",
" <td>1.71%</td>\n",
" <td>-1.28%</td>\n",
" <td>-0.23%</td>\n",
" <td>-5.96%</td>\n",
" <td>12.54%</td>\n",
" <td>18.62%</td>\n",
" <td>31.21%</td>\n",
" <td>92.73%</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Communication Services</th>\n",
" <td>-0.87%</td>\n",
" <td>1.48%</td>\n",
" <td>0.95%</td>\n",
" <td>-4.64%</td>\n",
" <td>-14.05%</td>\n",
" <td>-12.92%</td>\n",
" <td>-2.18%</td>\n",
" <td>50.98%</td>\n",
" <td>34.94%</td>\n",
" <td>80.62%</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Consumer Discretionary</th>\n",
" <td>-1.00%</td>\n",
" <td>1.89%</td>\n",
" <td>-2.85%</td>\n",
" <td>-3.13%</td>\n",
" <td>-16.27%</td>\n",
" <td>-13.89%</td>\n",
" <td>3.88%</td>\n",
" <td>58.76%</td>\n",
" <td>100.61%</td>\n",
" <td>309.39%</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f88a5d0d-e5c2-40ea-97e0-06a76936013b')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-f88a5d0d-e5c2-40ea-97e0-06a76936013b button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-f88a5d0d-e5c2-40ea-97e0-06a76936013b');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" RT 1D 5D ... 3Y 5Y 10Y\n",
"Energy 0.86% 2.74% 0.51% ... 7.89% 0.97% -7.80%\n",
"Industrials -0.05% 2.40% -0.13% ... 30.78% 48.10% 159.85%\n",
"Utilities -0.15% 3.14% 1.71% ... 18.62% 31.21% 92.73%\n",
"Communication Services -0.87% 1.48% 0.95% ... 50.98% 34.94% 80.62%\n",
"Consumer Discretionary -1.00% 1.89% -2.85% ... 58.76% 100.61% 309.39%\n",
"\n",
"[5 rows x 10 columns]"
]
},
"metadata": {},
"execution_count": 12
}
]
},
{
"cell_type": "code",
"source": [
"web.DataReader(['CPIAUCSL', 'CPILFESL'], 'fred').head(10)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 394
},
"id": "IrDn1uoVLDQz",
"outputId": "730e3a9a-44ea-4334-d59a-b19bc416ef90"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-5e0465ad-29ce-48e3-b299-4b34c8fb32c8\">\n",
" <div class=\"colab-df-container\">\n",
" <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>CPIAUCSL</th>\n",
" <th>CPILFESL</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>2017-03-01</th>\n",
" <td>243.892</td>\n",
" <td>250.944</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-04-01</th>\n",
" <td>244.193</td>\n",
" <td>251.227</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-05-01</th>\n",
" <td>244.004</td>\n",
" <td>251.430</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-06-01</th>\n",
" <td>244.163</td>\n",
" <td>251.746</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-07-01</th>\n",
" <td>244.243</td>\n",
" <td>251.985</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-08-01</th>\n",
" <td>245.183</td>\n",
" <td>252.535</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-09-01</th>\n",
" <td>246.435</td>\n",
" <td>252.812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-10-01</th>\n",
" <td>246.626</td>\n",
" <td>253.526</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-11-01</th>\n",
" <td>247.284</td>\n",
" <td>253.816</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-12-01</th>\n",
" <td>247.805</td>\n",
" <td>254.344</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5e0465ad-29ce-48e3-b299-4b34c8fb32c8')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-5e0465ad-29ce-48e3-b299-4b34c8fb32c8 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-5e0465ad-29ce-48e3-b299-4b34c8fb32c8');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" CPIAUCSL CPILFESL\n",
"DATE \n",
"2017-03-01 243.892 250.944\n",
"2017-04-01 244.193 251.227\n",
"2017-05-01 244.004 251.430\n",
"2017-06-01 244.163 251.746\n",
"2017-07-01 244.243 251.985\n",
"2017-08-01 245.183 252.535\n",
"2017-09-01 246.435 252.812\n",
"2017-10-01 246.626 253.526\n",
"2017-11-01 247.284 253.816\n",
"2017-12-01 247.805 254.344"
]
},
"metadata": {},
"execution_count": 13
}
]
},
{
"cell_type": "code",
"source": [
"web.DataReader('5_Industry_Portfolios', 'famafrench')[0].tail()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 238
},
"id": "S4YNbWq9KvNj",
"outputId": "94ede25c-e332-4786-f4e8-aea1c4c40075"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
" <div id=\"df-3c0bcb6b-06ee-4e64-8e2d-12dfe8efafa7\">\n",
" <div class=\"colab-df-container\">\n",
" <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>Cnsmr</th>\n",
" <th>Manuf</th>\n",
" <th>HiTec</th>\n",
" <th>Hlth</th>\n",
" <th>Other</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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2021-09</th>\n",
" <td>-3.29</td>\n",
" <td>-2.96</td>\n",
" <td>-6.21</td>\n",
" <td>-5.94</td>\n",
" <td>-2.35</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-10</th>\n",
" <td>8.55</td>\n",
" <td>5.94</td>\n",
" <td>6.63</td>\n",
" <td>2.32</td>\n",
" <td>7.07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-11</th>\n",
" <td>0.46</td>\n",
" <td>-1.80</td>\n",
" <td>0.30</td>\n",
" <td>-4.18</td>\n",
" <td>-4.96</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2021-12</th>\n",
" <td>1.61</td>\n",
" <td>5.91</td>\n",
" <td>1.95</td>\n",
" <td>6.74</td>\n",
" <td>5.05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2022-01</th>\n",
" <td>-7.43</td>\n",
" <td>-0.99</td>\n",
" <td>-7.85</td>\n",
" <td>-8.60</td>\n",
" <td>-2.86</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-3c0bcb6b-06ee-4e64-8e2d-12dfe8efafa7')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-3c0bcb6b-06ee-4e64-8e2d-12dfe8efafa7 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-3c0bcb6b-06ee-4e64-8e2d-12dfe8efafa7');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
],
"text/plain": [
" Cnsmr Manuf HiTec Hlth Other\n",
"Date \n",
"2021-09 -3.29 -2.96 -6.21 -5.94 -2.35\n",
"2021-10 8.55 5.94 6.63 2.32 7.07\n",
"2021-11 0.46 -1.80 0.30 -4.18 -4.96\n",
"2021-12 1.61 5.91 1.95 6.74 5.05\n",
"2022-01 -7.43 -0.99 -7.85 -8.60 -2.86"
]
},
"metadata": {},
"execution_count": 14
}
]
},
{
"cell_type": "markdown",
"source": [
"## Dukascopy"
],
"metadata": {
"id": "BJQrsTCBMA3e"
}
},
{
"cell_type": "code",
"source": [
"%%capture\n",
"!pip install findatapy"
],
"metadata": {
"id": "VZHHv4t1Jq8M"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"from findatapy.market import Market, MarketDataRequest, MarketDataGenerator\n",
"market = Market(market_data_generator=MarketDataGenerator())\n",
"\n",
"md_request = MarketDataRequest(start_date='7 Feb 2022', finish_date='8 Feb 2022',\n",
" category='fx', fields=['bid', 'ask'], freq='tick',\n",
" data_source='dukascopy', tickers=['EURUSD'])\n",
"\n",
"df = market.fetch_market(md_request)\n",
"df.shape"
],
"metadata": {
"id": "MKw918cIMD5h"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"df.tail(n=10)"
],
"metadata": {
"id": "Lih3dA2tMnY0"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# Read Excel"
],
"metadata": {
"id": "bUNrkpaLc1Si"
}
},
{
"cell_type": "code",
"source": [
"business_cond = pd.read_excel(\"https://www.philadelphiafed.org/-/media/frbp/assets/surveys-and-data/ads/ads_index_most_current_vintage.xlsx?la=en&hash=6DF4E54DFAE3EDC347F80A80142338E7\")\n",
"business_cond.columns = [\"Date\",\"ADS_BUSINESS\"]\n",
"business_cond['Date'] = business_cond['Date'].replace({':': '-'}, regex=True)\n",
"business_cond[\"Date\"] = pd.to_datetime(business_cond[\"Date\"])\n",
"business_cond = business_cond.set_index(\"Date\")"
],
"metadata": {
"id": "5n4GhKcVc0pH"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"business_cond.tail(10)"
],
"metadata": {
"id": "PIcnhPT7d2N2"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# OECD"
],
"metadata": {
"id": "kiOB08vDdxF3"
}
},
{
"cell_type": "code",
"source": [
"oecd = pd.read_csv(\"https://api.db.nomics.world/v22/series/BUBA/BBXS1/M.A806.AA.CLOECD.CONS.CONFID.TT.IND.I00.csv\")\n",
"\n",
"def trans(oecd, named=\"OECD_BRICS\"):\n",
" oecd[\"Date\"] = pd.to_datetime(oecd[\"period\"])\n",
" oecd[\"Date\"] = oecd[\"Date\"] + pd.DateOffset(months=1)\n",
" oecd[\"Date\"] = oecd[\"Date\"] - pd.DateOffset(days=1)\n",
" oecd = oecd.drop([\"period\"],axis=1).set_index(\"Date\")\n",
" oecd.columns = [named]\n",
" return oecd\n",
"\n",
"# manu: https://api.db.nomics.world/v22/series/BUBA/BBXS1/M.A806.AA.CLOECD.MANU.CONFID.TT.IND.I00.csv\n",
"\n",
"oecd = trans(oecd)\n",
"consumer_ics = pd.read_csv(\"https://api.db.nomics.world/v22/series/SCSMICH/MICS/ICS.csv\")"
],
"metadata": {
"id": "b1v38llodVbW"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "U1X6hYGz8PQz"
},
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment