diff --git a/09_Time_Series/Getting_Financial_Data/Exercises_with_solutions.ipynb b/09_Time_Series/Getting_Financial_Data/Exercises_with_solutions.ipynb
deleted file mode 100644
index b7ffdd5a2..000000000
--- a/09_Time_Series/Getting_Financial_Data/Exercises_with_solutions.ipynb
+++ /dev/null
@@ -1,1221 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Getting Financial Data - Pandas Datareader"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Introduction:\n",
- "\n",
- "This time you will get data from a website.\n",
- "\n",
- "\n",
- "### Step 1. Import the necessary libraries"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [],
- "source": [
- "import numpy as np\n",
- "import pandas as pd\n",
- "\n",
- "# package to extract data from various Internet sources into a DataFrame\n",
- "# make sure you have it installed\n",
- "import pandas_datareader.data as web\n",
- "\n",
- "# package for dates\n",
- "import datetime as dt"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step 2. Create your time range (start and end variables). The start date should be 01/01/2015 and the end should today (whatever your today is)."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "datetime.datetime(2015, 1, 1, 0, 0)"
- ]
- },
- "execution_count": 2,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "start = dt.datetime(2015, 1, 1)\n",
- "end = dt.datetime.today()\n",
- "\n",
- "start"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step 3. Get an API key for one of the APIs that are supported by Pandas Datareader, preferably for AlphaVantage.\n",
- "\n",
- "If you do not have an API key for any of the supported APIs, it is easiest to get one for [AlphaVantage](https://www.alphavantage.co/support/#api-key). (Note that the API key is shown directly after the signup. You do *not* receive it via e-mail.)\n",
- "\n",
- "(For a full list of the APIs that are supported by Pandas Datareader, [see here](https://pydata.github.io/pandas-datareader/readers/index.html). As the APIs are provided by third parties, this list may change.)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step 4. Use Pandas Datarader to read the daily time series for the Apple stock (ticker symbol AAPL) between 01/01/2015 and today, assign it to df_apple and print it."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " open | \n",
- " high | \n",
- " low | \n",
- " close | \n",
- " volume | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 2015-01-02 | \n",
- " 111.3900 | \n",
- " 111.4400 | \n",
- " 107.350 | \n",
- " 109.33 | \n",
- " 53204626 | \n",
- "
\n",
- " \n",
- " 2015-01-05 | \n",
- " 108.2900 | \n",
- " 108.6500 | \n",
- " 105.410 | \n",
- " 106.25 | \n",
- " 64285491 | \n",
- "
\n",
- " \n",
- " 2015-01-06 | \n",
- " 106.5400 | \n",
- " 107.4300 | \n",
- " 104.630 | \n",
- " 106.26 | \n",
- " 65797116 | \n",
- "
\n",
- " \n",
- " 2015-01-07 | \n",
- " 107.2000 | \n",
- " 108.2000 | \n",
- " 106.695 | \n",
- " 107.75 | \n",
- " 40105934 | \n",
- "
\n",
- " \n",
- " 2015-01-08 | \n",
- " 109.2300 | \n",
- " 112.1500 | \n",
- " 108.700 | \n",
- " 111.89 | \n",
- " 59364547 | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 2020-08-24 | \n",
- " 514.7900 | \n",
- " 515.1400 | \n",
- " 495.745 | \n",
- " 503.43 | \n",
- " 86484442 | \n",
- "
\n",
- " \n",
- " 2020-08-25 | \n",
- " 498.7900 | \n",
- " 500.7172 | \n",
- " 492.210 | \n",
- " 499.30 | \n",
- " 52873947 | \n",
- "
\n",
- " \n",
- " 2020-08-26 | \n",
- " 504.7165 | \n",
- " 507.9700 | \n",
- " 500.330 | \n",
- " 506.09 | \n",
- " 40755567 | \n",
- "
\n",
- " \n",
- " 2020-08-27 | \n",
- " 508.5700 | \n",
- " 509.9400 | \n",
- " 495.330 | \n",
- " 500.04 | \n",
- " 38888096 | \n",
- "
\n",
- " \n",
- " 2020-08-28 | \n",
- " 504.0500 | \n",
- " 505.7700 | \n",
- " 498.310 | \n",
- " 499.23 | \n",
- " 46907479 | \n",
- "
\n",
- " \n",
- "
\n",
- "
1425 rows × 5 columns
\n",
- "
"
- ],
- "text/plain": [
- " open high low close volume\n",
- "2015-01-02 111.3900 111.4400 107.350 109.33 53204626\n",
- "2015-01-05 108.2900 108.6500 105.410 106.25 64285491\n",
- "2015-01-06 106.5400 107.4300 104.630 106.26 65797116\n",
- "2015-01-07 107.2000 108.2000 106.695 107.75 40105934\n",
- "2015-01-08 109.2300 112.1500 108.700 111.89 59364547\n",
- "... ... ... ... ... ...\n",
- "2020-08-24 514.7900 515.1400 495.745 503.43 86484442\n",
- "2020-08-25 498.7900 500.7172 492.210 499.30 52873947\n",
- "2020-08-26 504.7165 507.9700 500.330 506.09 40755567\n",
- "2020-08-27 508.5700 509.9400 495.330 500.04 38888096\n",
- "2020-08-28 504.0500 505.7700 498.310 499.23 46907479\n",
- "\n",
- "[1425 rows x 5 columns]"
- ]
- },
- "execution_count": 3,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "df_apple = web.DataReader(name=\"AAPL\",\n",
- " data_source=\"av-daily\",\n",
- " start=start,\n",
- " end=end,\n",
- " api_key=\"your_alpha_vantage_api_key_goes_here\")\n",
- "\n",
- "df_apple"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step 5. Add a new column \"stock\" to the dataframe and add the ticker symbol"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " open | \n",
- " high | \n",
- " low | \n",
- " close | \n",
- " volume | \n",
- " stock | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 2015-01-02 | \n",
- " 111.3900 | \n",
- " 111.4400 | \n",
- " 107.350 | \n",
- " 109.33 | \n",
- " 53204626 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2015-01-05 | \n",
- " 108.2900 | \n",
- " 108.6500 | \n",
- " 105.410 | \n",
- " 106.25 | \n",
- " 64285491 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2015-01-06 | \n",
- " 106.5400 | \n",
- " 107.4300 | \n",
- " 104.630 | \n",
- " 106.26 | \n",
- " 65797116 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2015-01-07 | \n",
- " 107.2000 | \n",
- " 108.2000 | \n",
- " 106.695 | \n",
- " 107.75 | \n",
- " 40105934 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2015-01-08 | \n",
- " 109.2300 | \n",
- " 112.1500 | \n",
- " 108.700 | \n",
- " 111.89 | \n",
- " 59364547 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 2020-08-24 | \n",
- " 514.7900 | \n",
- " 515.1400 | \n",
- " 495.745 | \n",
- " 503.43 | \n",
- " 86484442 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2020-08-25 | \n",
- " 498.7900 | \n",
- " 500.7172 | \n",
- " 492.210 | \n",
- " 499.30 | \n",
- " 52873947 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2020-08-26 | \n",
- " 504.7165 | \n",
- " 507.9700 | \n",
- " 500.330 | \n",
- " 506.09 | \n",
- " 40755567 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2020-08-27 | \n",
- " 508.5700 | \n",
- " 509.9400 | \n",
- " 495.330 | \n",
- " 500.04 | \n",
- " 38888096 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2020-08-28 | \n",
- " 504.0500 | \n",
- " 505.7700 | \n",
- " 498.310 | \n",
- " 499.23 | \n",
- " 46907479 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- "
\n",
- "
1425 rows × 6 columns
\n",
- "
"
- ],
- "text/plain": [
- " open high low close volume stock\n",
- "2015-01-02 111.3900 111.4400 107.350 109.33 53204626 AAPL\n",
- "2015-01-05 108.2900 108.6500 105.410 106.25 64285491 AAPL\n",
- "2015-01-06 106.5400 107.4300 104.630 106.26 65797116 AAPL\n",
- "2015-01-07 107.2000 108.2000 106.695 107.75 40105934 AAPL\n",
- "2015-01-08 109.2300 112.1500 108.700 111.89 59364547 AAPL\n",
- "... ... ... ... ... ... ...\n",
- "2020-08-24 514.7900 515.1400 495.745 503.43 86484442 AAPL\n",
- "2020-08-25 498.7900 500.7172 492.210 499.30 52873947 AAPL\n",
- "2020-08-26 504.7165 507.9700 500.330 506.09 40755567 AAPL\n",
- "2020-08-27 508.5700 509.9400 495.330 500.04 38888096 AAPL\n",
- "2020-08-28 504.0500 505.7700 498.310 499.23 46907479 AAPL\n",
- "\n",
- "[1425 rows x 6 columns]"
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "df_apple[\"stock\"] = \"AAPL\"\n",
- "df_apple"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step 6. Repeat the two previous steps for a few other stocks, always creating a new dataframe: Tesla, IBM and Microsoft. (Ticker symbols TSLA, IBM and MSFT.)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Tesla\n",
- "df_tesla = web.DataReader(name=\"TSLA\",\n",
- " data_source=\"av-daily\",\n",
- " start=start,\n",
- " end=end,\n",
- " api_key=\"your_alpha_vantage_api_key_goes_here\")\n",
- "\n",
- "df_tesla[\"stock\"] = \"TSLA\"\n",
- "\n",
- "# IBM\n",
- "df_ibm = web.DataReader(name=\"IBM\",\n",
- " data_source=\"av-daily\",\n",
- " start=start,\n",
- " end=end,\n",
- " api_key=\"your_alpha_vantage_api_key_goes_here\")\n",
- "\n",
- "df_ibm[\"stock\"] = \"IBM\"\n",
- "\n",
- "# Microsoft\n",
- "df_microsoft = web.DataReader(name=\"MSFT\",\n",
- " data_source=\"av-daily\",\n",
- " start=start,\n",
- " end=end,\n",
- " api_key=\"your_alpha_vantage_api_key_goes_here\")\n",
- "\n",
- "df_microsoft[\"stock\"] = \"MSFT\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step 7. Combine the four separate dataFrames into one combined dataFrame df that holds the information for all four stocks"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " open | \n",
- " high | \n",
- " low | \n",
- " close | \n",
- " volume | \n",
- " stock | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 2015-01-02 | \n",
- " 111.39 | \n",
- " 111.440 | \n",
- " 107.350 | \n",
- " 109.33 | \n",
- " 53204626 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2015-01-05 | \n",
- " 108.29 | \n",
- " 108.650 | \n",
- " 105.410 | \n",
- " 106.25 | \n",
- " 64285491 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2015-01-06 | \n",
- " 106.54 | \n",
- " 107.430 | \n",
- " 104.630 | \n",
- " 106.26 | \n",
- " 65797116 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2015-01-07 | \n",
- " 107.20 | \n",
- " 108.200 | \n",
- " 106.695 | \n",
- " 107.75 | \n",
- " 40105934 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " 2015-01-08 | \n",
- " 109.23 | \n",
- " 112.150 | \n",
- " 108.700 | \n",
- " 111.89 | \n",
- " 59364547 | \n",
- " AAPL | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 2020-08-24 | \n",
- " 214.79 | \n",
- " 215.520 | \n",
- " 212.430 | \n",
- " 213.69 | \n",
- " 25460147 | \n",
- " MSFT | \n",
- "
\n",
- " \n",
- " 2020-08-25 | \n",
- " 213.10 | \n",
- " 216.610 | \n",
- " 213.100 | \n",
- " 216.47 | \n",
- " 23043696 | \n",
- " MSFT | \n",
- "
\n",
- " \n",
- " 2020-08-26 | \n",
- " 217.88 | \n",
- " 222.090 | \n",
- " 217.360 | \n",
- " 221.15 | \n",
- " 39600828 | \n",
- " MSFT | \n",
- "
\n",
- " \n",
- " 2020-08-27 | \n",
- " 222.89 | \n",
- " 231.150 | \n",
- " 219.400 | \n",
- " 226.58 | \n",
- " 57602195 | \n",
- " MSFT | \n",
- "
\n",
- " \n",
- " 2020-08-28 | \n",
- " 228.18 | \n",
- " 230.644 | \n",
- " 226.580 | \n",
- " 228.91 | \n",
- " 26292896 | \n",
- " MSFT | \n",
- "
\n",
- " \n",
- "
\n",
- "
5700 rows × 6 columns
\n",
- "
"
- ],
- "text/plain": [
- " open high low close volume stock\n",
- "2015-01-02 111.39 111.440 107.350 109.33 53204626 AAPL\n",
- "2015-01-05 108.29 108.650 105.410 106.25 64285491 AAPL\n",
- "2015-01-06 106.54 107.430 104.630 106.26 65797116 AAPL\n",
- "2015-01-07 107.20 108.200 106.695 107.75 40105934 AAPL\n",
- "2015-01-08 109.23 112.150 108.700 111.89 59364547 AAPL\n",
- "... ... ... ... ... ... ...\n",
- "2020-08-24 214.79 215.520 212.430 213.69 25460147 MSFT\n",
- "2020-08-25 213.10 216.610 213.100 216.47 23043696 MSFT\n",
- "2020-08-26 217.88 222.090 217.360 221.15 39600828 MSFT\n",
- "2020-08-27 222.89 231.150 219.400 226.58 57602195 MSFT\n",
- "2020-08-28 228.18 230.644 226.580 228.91 26292896 MSFT\n",
- "\n",
- "[5700 rows x 6 columns]"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "frames = [df_apple, df_tesla, df_ibm, df_microsoft]\n",
- "\n",
- "df = pd.concat(frames)\n",
- "df"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step 8. Shift the stock column into the index (making it a multi-level index consisting of the ticker symbol and the date)."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " | \n",
- " open | \n",
- " high | \n",
- " low | \n",
- " close | \n",
- " volume | \n",
- "
\n",
- " \n",
- " | \n",
- " stock | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 2015-01-02 | \n",
- " AAPL | \n",
- " 111.39 | \n",
- " 111.440 | \n",
- " 107.350 | \n",
- " 109.33 | \n",
- " 53204626 | \n",
- "
\n",
- " \n",
- " 2015-01-05 | \n",
- " AAPL | \n",
- " 108.29 | \n",
- " 108.650 | \n",
- " 105.410 | \n",
- " 106.25 | \n",
- " 64285491 | \n",
- "
\n",
- " \n",
- " 2015-01-06 | \n",
- " AAPL | \n",
- " 106.54 | \n",
- " 107.430 | \n",
- " 104.630 | \n",
- " 106.26 | \n",
- " 65797116 | \n",
- "
\n",
- " \n",
- " 2015-01-07 | \n",
- " AAPL | \n",
- " 107.20 | \n",
- " 108.200 | \n",
- " 106.695 | \n",
- " 107.75 | \n",
- " 40105934 | \n",
- "
\n",
- " \n",
- " 2015-01-08 | \n",
- " AAPL | \n",
- " 109.23 | \n",
- " 112.150 | \n",
- " 108.700 | \n",
- " 111.89 | \n",
- " 59364547 | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 2020-08-24 | \n",
- " MSFT | \n",
- " 214.79 | \n",
- " 215.520 | \n",
- " 212.430 | \n",
- " 213.69 | \n",
- " 25460147 | \n",
- "
\n",
- " \n",
- " 2020-08-25 | \n",
- " MSFT | \n",
- " 213.10 | \n",
- " 216.610 | \n",
- " 213.100 | \n",
- " 216.47 | \n",
- " 23043696 | \n",
- "
\n",
- " \n",
- " 2020-08-26 | \n",
- " MSFT | \n",
- " 217.88 | \n",
- " 222.090 | \n",
- " 217.360 | \n",
- " 221.15 | \n",
- " 39600828 | \n",
- "
\n",
- " \n",
- " 2020-08-27 | \n",
- " MSFT | \n",
- " 222.89 | \n",
- " 231.150 | \n",
- " 219.400 | \n",
- " 226.58 | \n",
- " 57602195 | \n",
- "
\n",
- " \n",
- " 2020-08-28 | \n",
- " MSFT | \n",
- " 228.18 | \n",
- " 230.644 | \n",
- " 226.580 | \n",
- " 228.91 | \n",
- " 26292896 | \n",
- "
\n",
- " \n",
- "
\n",
- "
5700 rows × 5 columns
\n",
- "
"
- ],
- "text/plain": [
- " open high low close volume\n",
- " stock \n",
- "2015-01-02 AAPL 111.39 111.440 107.350 109.33 53204626\n",
- "2015-01-05 AAPL 108.29 108.650 105.410 106.25 64285491\n",
- "2015-01-06 AAPL 106.54 107.430 104.630 106.26 65797116\n",
- "2015-01-07 AAPL 107.20 108.200 106.695 107.75 40105934\n",
- "2015-01-08 AAPL 109.23 112.150 108.700 111.89 59364547\n",
- "... ... ... ... ... ...\n",
- "2020-08-24 MSFT 214.79 215.520 212.430 213.69 25460147\n",
- "2020-08-25 MSFT 213.10 216.610 213.100 216.47 23043696\n",
- "2020-08-26 MSFT 217.88 222.090 217.360 221.15 39600828\n",
- "2020-08-27 MSFT 222.89 231.150 219.400 226.58 57602195\n",
- "2020-08-28 MSFT 228.18 230.644 226.580 228.91 26292896\n",
- "\n",
- "[5700 rows x 5 columns]"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "df.set_index(keys=\"stock\", append=True, inplace=True)\n",
- "df"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step 7. Create a dataFrame called vol, with the volume values."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " | \n",
- " volume | \n",
- "
\n",
- " \n",
- " | \n",
- " stock | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 2015-01-02 | \n",
- " AAPL | \n",
- " 53204626 | \n",
- "
\n",
- " \n",
- " 2015-01-05 | \n",
- " AAPL | \n",
- " 64285491 | \n",
- "
\n",
- " \n",
- " 2015-01-06 | \n",
- " AAPL | \n",
- " 65797116 | \n",
- "
\n",
- " \n",
- " 2015-01-07 | \n",
- " AAPL | \n",
- " 40105934 | \n",
- "
\n",
- " \n",
- " 2015-01-08 | \n",
- " AAPL | \n",
- " 59364547 | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 2020-08-24 | \n",
- " MSFT | \n",
- " 25460147 | \n",
- "
\n",
- " \n",
- " 2020-08-25 | \n",
- " MSFT | \n",
- " 23043696 | \n",
- "
\n",
- " \n",
- " 2020-08-26 | \n",
- " MSFT | \n",
- " 39600828 | \n",
- "
\n",
- " \n",
- " 2020-08-27 | \n",
- " MSFT | \n",
- " 57602195 | \n",
- "
\n",
- " \n",
- " 2020-08-28 | \n",
- " MSFT | \n",
- " 26292896 | \n",
- "
\n",
- " \n",
- "
\n",
- "
5700 rows × 1 columns
\n",
- "
"
- ],
- "text/plain": [
- " volume\n",
- " stock \n",
- "2015-01-02 AAPL 53204626\n",
- "2015-01-05 AAPL 64285491\n",
- "2015-01-06 AAPL 65797116\n",
- "2015-01-07 AAPL 40105934\n",
- "2015-01-08 AAPL 59364547\n",
- "... ...\n",
- "2020-08-24 MSFT 25460147\n",
- "2020-08-25 MSFT 23043696\n",
- "2020-08-26 MSFT 39600828\n",
- "2020-08-27 MSFT 57602195\n",
- "2020-08-28 MSFT 26292896\n",
- "\n",
- "[5700 rows x 1 columns]"
- ]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "vol = df['volume']\n",
- "vol = pd.DataFrame(vol)\n",
- "vol"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step 8. Aggregate the data of volume to weekly.\n",
- "Hint: Be careful to not sum data from the same week of 2015 and other years."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " stock | \n",
- " AAPL | \n",
- " IBM | \n",
- " MSFT | \n",
- " TSLA | \n",
- "
\n",
- " \n",
- " year | \n",
- " week | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 2015 | \n",
- " 1 | \n",
- " 53204626 | \n",
- " 5525341 | \n",
- " 27913852 | \n",
- " 4764443 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 282868187 | \n",
- " 24440360 | \n",
- " 158596624 | \n",
- " 22622034 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 304226647 | \n",
- " 23272056 | \n",
- " 157088136 | \n",
- " 30799137 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 198737041 | \n",
- " 31230797 | \n",
- " 137352632 | \n",
- " 16215501 | \n",
- "
\n",
- " \n",
- " 5 | \n",
- " 465842684 | \n",
- " 32927307 | \n",
- " 437786778 | \n",
- " 15720217 | \n",
- "
\n",
- " \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- " ... | \n",
- "
\n",
- " \n",
- " 2020 | \n",
- " 31 | \n",
- " 211898609 | \n",
- " 20010578 | \n",
- " 149372422 | \n",
- " 61152261 | \n",
- "
\n",
- " \n",
- " 32 | \n",
- " 250852555 | \n",
- " 17701697 | \n",
- " 217598950 | \n",
- " 37091084 | \n",
- "
\n",
- " \n",
- " 33 | \n",
- " 235474473 | \n",
- " 18634659 | \n",
- " 141752091 | \n",
- " 71049854 | \n",
- "
\n",
- " \n",
- " 34 | \n",
- " 208464758 | \n",
- " 15908978 | \n",
- " 132258021 | \n",
- " 90804281 | \n",
- "
\n",
- " \n",
- " 35 | \n",
- " 265909531 | \n",
- " 16959794 | \n",
- " 171999762 | \n",
- " 88736115 | \n",
- "
\n",
- " \n",
- "
\n",
- "
296 rows × 4 columns
\n",
- "
"
- ],
- "text/plain": [
- "stock AAPL IBM MSFT TSLA\n",
- "year week \n",
- "2015 1 53204626 5525341 27913852 4764443\n",
- " 2 282868187 24440360 158596624 22622034\n",
- " 3 304226647 23272056 157088136 30799137\n",
- " 4 198737041 31230797 137352632 16215501\n",
- " 5 465842684 32927307 437786778 15720217\n",
- "... ... ... ... ...\n",
- "2020 31 211898609 20010578 149372422 61152261\n",
- " 32 250852555 17701697 217598950 37091084\n",
- " 33 235474473 18634659 141752091 71049854\n",
- " 34 208464758 15908978 132258021 90804281\n",
- " 35 265909531 16959794 171999762 88736115\n",
- "\n",
- "[296 rows x 4 columns]"
- ]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "date = vol.index.get_level_values(0)\n",
- "date = pd.DatetimeIndex(date) # ensure that it's a datetimeindex, instead of a regular index\n",
- "\n",
- "vol['week'] = date.isocalendar().week.values\n",
- "# .values is necessary to obtain only the week *values*\n",
- "# otherwise pandas interprets it as a part of an index; this would be a problem as the same week appears multiple times\n",
- "# (same week number in different years, same week for different stocks)\n",
- "\n",
- "vol['year'] = date.year\n",
- "\n",
- "pd.pivot_table(vol, values='volume', index=['year', 'week'],\n",
- " columns=['stock'], aggfunc=np.sum)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Step 9. Find all the volume traded in the year of 2015"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " stock | \n",
- " AAPL | \n",
- " IBM | \n",
- " MSFT | \n",
- " TSLA | \n",
- "
\n",
- " \n",
- " year | \n",
- " | \n",
- " | \n",
- " | \n",
- " | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 2015 | \n",
- " 13064316775 | \n",
- " 1105545521 | \n",
- " 9057582311 | \n",
- " 1086708380 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- "stock AAPL IBM MSFT TSLA\n",
- "year \n",
- "2015 13064316775 1105545521 9057582311 1086708380"
- ]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "vol_2015 = vol[vol['year'] == 2015]\n",
- "\n",
- "pd.pivot_table(vol_2015, values='volume', index=['year'],\n",
- " columns=['stock'], aggfunc=np.sum)"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.7.4"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 1
-}