diff --git a/09_Time_Series/Getting_Financial_Data/Exercises_solutions.ipynb b/09_Time_Series/Getting_Financial_Data/Exercises_solutions.ipynb new file mode 100644 index 000000000..7880b7e3d --- /dev/null +++ b/09_Time_Series/Getting_Financial_Data/Exercises_solutions.ipynb @@ -0,0 +1,1194 @@ +{ + "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 = dt.datetime(2015, 1, 1, 0, 0)\n", + "start_dt" + ] + }, + { + "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.390111.440107.3500109.3353204626
2015-01-05108.290108.650105.4100106.2564285491
2015-01-06106.540107.430104.6300106.2665797116
2015-01-07107.200108.200106.6950107.7540105934
2015-01-08109.230112.150108.7000111.8959364547
..................
2021-11-15150.370151.880149.4300150.0059222803
2021-11-16149.940151.488149.3400151.0059256210
2021-11-17150.995155.000150.9900153.4988807000
2021-11-18153.710158.670153.0500157.87137827673
2021-11-19157.650161.020156.5328160.55116744360
\n", + "

1735 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " open high low close volume\n", + "2015-01-02 111.390 111.440 107.3500 109.33 53204626\n", + "2015-01-05 108.290 108.650 105.4100 106.25 64285491\n", + "2015-01-06 106.540 107.430 104.6300 106.26 65797116\n", + "2015-01-07 107.200 108.200 106.6950 107.75 40105934\n", + "2015-01-08 109.230 112.150 108.7000 111.89 59364547\n", + "... ... ... ... ... ...\n", + "2021-11-15 150.370 151.880 149.4300 150.00 59222803\n", + "2021-11-16 149.940 151.488 149.3400 151.00 59256210\n", + "2021-11-17 150.995 155.000 150.9900 153.49 88807000\n", + "2021-11-18 153.710 158.670 153.0500 157.87 137827673\n", + "2021-11-19 157.650 161.020 156.5328 160.55 116744360\n", + "\n", + "[1735 rows x 5 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_apple = web.DataReader(\"AAPL\", \"av-daily\", start=start_dt, api_key=\"AZOBAQ2SK8AC1MUD\")\n", + "df_apple\n" + ] + }, + { + "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.390111.440107.3500109.3353204626AAPL
2015-01-05108.290108.650105.4100106.2564285491AAPL
2015-01-06106.540107.430104.6300106.2665797116AAPL
2015-01-07107.200108.200106.6950107.7540105934AAPL
2015-01-08109.230112.150108.7000111.8959364547AAPL
.....................
2021-11-15150.370151.880149.4300150.0059222803AAPL
2021-11-16149.940151.488149.3400151.0059256210AAPL
2021-11-17150.995155.000150.9900153.4988807000AAPL
2021-11-18153.710158.670153.0500157.87137827673AAPL
2021-11-19157.650161.020156.5328160.55116744360AAPL
\n", + "

1735 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " open high low close volume stock\n", + "2015-01-02 111.390 111.440 107.3500 109.33 53204626 AAPL\n", + "2015-01-05 108.290 108.650 105.4100 106.25 64285491 AAPL\n", + "2015-01-06 106.540 107.430 104.6300 106.26 65797116 AAPL\n", + "2015-01-07 107.200 108.200 106.6950 107.75 40105934 AAPL\n", + "2015-01-08 109.230 112.150 108.7000 111.89 59364547 AAPL\n", + "... ... ... ... ... ... ...\n", + "2021-11-15 150.370 151.880 149.4300 150.00 59222803 AAPL\n", + "2021-11-16 149.940 151.488 149.3400 151.00 59256210 AAPL\n", + "2021-11-17 150.995 155.000 150.9900 153.49 88807000 AAPL\n", + "2021-11-18 153.710 158.670 153.0500 157.87 137827673 AAPL\n", + "2021-11-19 157.650 161.020 156.5328 160.55 116744360 AAPL\n", + "\n", + "[1735 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": [ + "df_tesla = web.DataReader(\"TSLA\", \"av-daily\", start=start_dt, api_key=\"AZOBAQ2SK8AC1MUD\")\n", + "df_tesla['stock'] = \"TSLA\"\n", + "\n", + "df_ibm = web.DataReader(\"IBM\", \"av-daily\", start=start_dt, api_key=\"AZOBAQ2SK8AC1MUD\")\n", + "df_ibm['stock'] = \"IBM\"\n", + "\n", + "df_microsoft = web.DataReader(\"MSFT\", \"av-daily\", start=start_dt, api_key=\"AZOBAQ2SK8AC1MUD\")\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.44107.350109.3353204626AAPL
2015-01-05108.29108.65105.410106.2564285491AAPL
2015-01-06106.54107.43104.630106.2665797116AAPL
2015-01-07107.20108.20106.695107.7540105934AAPL
2015-01-08109.23112.15108.700111.8959364547AAPL
.....................
2021-11-15337.54337.88334.034336.0716723009MSFT
2021-11-16335.68340.67335.510339.5120886832MSFT
2021-11-17338.94342.19338.000339.1219053380MSFT
2021-11-18338.18342.45337.120341.2722463533MSFT
2021-11-19342.64345.10342.200343.1121095274MSFT
\n", + "

6940 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " open high low close volume stock\n", + "2015-01-02 111.39 111.44 107.350 109.33 53204626 AAPL\n", + "2015-01-05 108.29 108.65 105.410 106.25 64285491 AAPL\n", + "2015-01-06 106.54 107.43 104.630 106.26 65797116 AAPL\n", + "2015-01-07 107.20 108.20 106.695 107.75 40105934 AAPL\n", + "2015-01-08 109.23 112.15 108.700 111.89 59364547 AAPL\n", + "... ... ... ... ... ... ...\n", + "2021-11-15 337.54 337.88 334.034 336.07 16723009 MSFT\n", + "2021-11-16 335.68 340.67 335.510 339.51 20886832 MSFT\n", + "2021-11-17 338.94 342.19 338.000 339.12 19053380 MSFT\n", + "2021-11-18 338.18 342.45 337.120 341.27 22463533 MSFT\n", + "2021-11-19 342.64 345.10 342.200 343.11 21095274 MSFT\n", + "\n", + "[6940 rows x 6 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_all = pd.concat([df_apple, df_tesla, df_ibm, df_microsoft])\n", + "df_all" + ] + }, + { + "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.44107.350109.3353204626
2015-01-05AAPL108.29108.65105.410106.2564285491
2015-01-06AAPL106.54107.43104.630106.2665797116
2015-01-07AAPL107.20108.20106.695107.7540105934
2015-01-08AAPL109.23112.15108.700111.8959364547
.....................
2021-11-15MSFT337.54337.88334.034336.0716723009
2021-11-16MSFT335.68340.67335.510339.5120886832
2021-11-17MSFT338.94342.19338.000339.1219053380
2021-11-18MSFT338.18342.45337.120341.2722463533
2021-11-19MSFT342.64345.10342.200343.1121095274
\n", + "

6940 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " open high low close volume\n", + " stock \n", + "2015-01-02 AAPL 111.39 111.44 107.350 109.33 53204626\n", + "2015-01-05 AAPL 108.29 108.65 105.410 106.25 64285491\n", + "2015-01-06 AAPL 106.54 107.43 104.630 106.26 65797116\n", + "2015-01-07 AAPL 107.20 108.20 106.695 107.75 40105934\n", + "2015-01-08 AAPL 109.23 112.15 108.700 111.89 59364547\n", + "... ... ... ... ... ...\n", + "2021-11-15 MSFT 337.54 337.88 334.034 336.07 16723009\n", + "2021-11-16 MSFT 335.68 340.67 335.510 339.51 20886832\n", + "2021-11-17 MSFT 338.94 342.19 338.000 339.12 19053380\n", + "2021-11-18 MSFT 338.18 342.45 337.120 341.27 22463533\n", + "2021-11-19 MSFT 342.64 345.10 342.200 343.11 21095274\n", + "\n", + "[6940 rows x 5 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_all = df_all.set_index('stock', append=True)\n", + "df_all" + ] + }, + { + "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
.........
2021-11-15MSFT16723009
2021-11-16MSFT20886832
2021-11-17MSFT19053380
2021-11-18MSFT22463533
2021-11-19MSFT21095274
\n", + "

6940 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", + "2021-11-15 MSFT 16723009\n", + "2021-11-16 MSFT 20886832\n", + "2021-11-17 MSFT 19053380\n", + "2021-11-18 MSFT 22463533\n", + "2021-11-19 MSFT 21095274\n", + "\n", + "[6940 rows x 1 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vol = df_all.filter(['volume'])\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
..................
2021423406912905973158291315937109982713
4339273993634288134159314433220925116
4432268895829791780120621826178974628
4528102655629109912106622220182318404
4646185804624205817100222028134998459
\n", + "

360 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", + "2021 42 340691290 59731582 91315937 109982713\n", + " 43 392739936 34288134 159314433 220925116\n", + " 44 322688958 29791780 120621826 178974628\n", + " 45 281026556 29109912 106622220 182318404\n", + " 46 461858046 24205817 100222028 134998459\n", + "\n", + "[360 rows x 4 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "vol_week = vol.rename_axis(index=['dt', 'stock'])\n", + "vol_week.reset_index(inplace=True)\n", + "vol_week.dt = pd.to_datetime(vol_week.dt)\n", + "vol_week['year'] = vol_week['dt'].map(lambda x: x.year)\n", + "vol_week['week'] = vol_week['dt'].map(lambda x: x.week)\n", + "vol_week.pop('dt')\n", + "\n", + "vol_week.set_index(['year', 'week', 'stock'], inplace=True)\n", + "vol_week = vol_week.groupby([pd.Grouper(level='stock'), pd.Grouper(level='year'), pd.Grouper(level='week')]).sum()\n", + "\n", + "vol_week = vol_week.reset_index()\n", + "vol_week = vol_week.pivot(index=['year', 'week'], columns='stock')\n", + "vol_week.columns.droplevel(0)\n", + "vol_week.columns = vol_week.columns.droplevel(0)\n", + "vol_week" + ] + }, + { + "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_year = vol_week.groupby('year').sum()\n", + "vol_year.loc[2015:2015]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.5" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +}