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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
openhighlowclosevolume
2015-01-02111.3900111.4400107.350109.3353204626
2015-01-05108.2900108.6500105.410106.2564285491
2015-01-06106.5400107.4300104.630106.2665797116
2015-01-07107.2000108.2000106.695107.7540105934
2015-01-08109.2300112.1500108.700111.8959364547
..................
2020-08-24514.7900515.1400495.745503.4386484442
2020-08-25498.7900500.7172492.210499.3052873947
2020-08-26504.7165507.9700500.330506.0940755567
2020-08-27508.5700509.9400495.330500.0438888096
2020-08-28504.0500505.7700498.310499.2346907479
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
openhighlowclosevolumestock
2015-01-02111.3900111.4400107.350109.3353204626AAPL
2015-01-05108.2900108.6500105.410106.2564285491AAPL
2015-01-06106.5400107.4300104.630106.2665797116AAPL
2015-01-07107.2000108.2000106.695107.7540105934AAPL
2015-01-08109.2300112.1500108.700111.8959364547AAPL
.....................
2020-08-24514.7900515.1400495.745503.4386484442AAPL
2020-08-25498.7900500.7172492.210499.3052873947AAPL
2020-08-26504.7165507.9700500.330506.0940755567AAPL
2020-08-27508.5700509.9400495.330500.0438888096AAPL
2020-08-28504.0500505.7700498.310499.2346907479AAPL
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
openhighlowclosevolumestock
2015-01-02111.39111.440107.350109.3353204626AAPL
2015-01-05108.29108.650105.410106.2564285491AAPL
2015-01-06106.54107.430104.630106.2665797116AAPL
2015-01-07107.20108.200106.695107.7540105934AAPL
2015-01-08109.23112.150108.700111.8959364547AAPL
.....................
2020-08-24214.79215.520212.430213.6925460147MSFT
2020-08-25213.10216.610213.100216.4723043696MSFT
2020-08-26217.88222.090217.360221.1539600828MSFT
2020-08-27222.89231.150219.400226.5857602195MSFT
2020-08-28228.18230.644226.580228.9126292896MSFT
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
openhighlowclosevolume
stock
2015-01-02AAPL111.39111.440107.350109.3353204626
2015-01-05AAPL108.29108.650105.410106.2564285491
2015-01-06AAPL106.54107.430104.630106.2665797116
2015-01-07AAPL107.20108.200106.695107.7540105934
2015-01-08AAPL109.23112.150108.700111.8959364547
.....................
2020-08-24MSFT214.79215.520212.430213.6925460147
2020-08-25MSFT213.10216.610213.100216.4723043696
2020-08-26MSFT217.88222.090217.360221.1539600828
2020-08-27MSFT222.89231.150219.400226.5857602195
2020-08-28MSFT228.18230.644226.580228.9126292896
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
volume
stock
2015-01-02AAPL53204626
2015-01-05AAPL64285491
2015-01-06AAPL65797116
2015-01-07AAPL40105934
2015-01-08AAPL59364547
.........
2020-08-24MSFT25460147
2020-08-25MSFT23043696
2020-08-26MSFT39600828
2020-08-27MSFT57602195
2020-08-28MSFT26292896
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
stockAAPLIBMMSFTTSLA
yearweek
20151532046265525341279138524764443
22828681872444036015859662422622034
33042266472327205615708813630799137
41987370413123079713735263216215501
54658426843292730743778677815720217
..................
2020312118986092001057814937242261152261
322508525551770169721759895037091084
332354744731863465914175209171049854
342084647581590897813225802190804281
352659095311695979417199976288736115
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
stockAAPLIBMMSFTTSLA
year
201513064316775110554552190575823111086708380
\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 -}