{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"___\n",
"\n",
" \n",
"___\n",
"
Copyright Pierian Data \n",
"For more information, visit us at www.pieriandata.com "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Time Resampling\n",
"\n",
"Let's learn how to sample time series data! This will be useful later on in the course!"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import the data\n",
"For this exercise we'll look at Starbucks stock data from 2015 to 2018 which includes daily closing prices and trading volumes."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.read_csv('../Data/starbucks.csv', index_col='Date', parse_dates=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note: the above code is a faster way of doing the following:\n",
"df = pd.read_csv('../Data/starbucks.csv')\n",
"df['Date'] = pd.to_datetime(df['Date'])\n",
"df.set_index('Date',inplace=True) "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Close \n",
" Volume \n",
" \n",
" \n",
" Date \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 2015-01-02 \n",
" 38.0061 \n",
" 6906098 \n",
" \n",
" \n",
" 2015-01-05 \n",
" 37.2781 \n",
" 11623796 \n",
" \n",
" \n",
" 2015-01-06 \n",
" 36.9748 \n",
" 7664340 \n",
" \n",
" \n",
" 2015-01-07 \n",
" 37.8848 \n",
" 9732554 \n",
" \n",
" \n",
" 2015-01-08 \n",
" 38.4961 \n",
" 13170548 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Close Volume\n",
"Date \n",
"2015-01-02 38.0061 6906098\n",
"2015-01-05 37.2781 11623796\n",
"2015-01-06 36.9748 7664340\n",
"2015-01-07 37.8848 9732554\n",
"2015-01-08 38.4961 13170548"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## resample()\n",
"\n",
"A common operation with time series data is resampling based on the time series index. Let's see how to use the resample() method. [[reference](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.resample.html)]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"DatetimeIndex(['2015-01-02', '2015-01-05', '2015-01-06', '2015-01-07',\n",
" '2015-01-08', '2015-01-09', '2015-01-12', '2015-01-13',\n",
" '2015-01-14', '2015-01-15',\n",
" ...\n",
" '2018-12-17', '2018-12-18', '2018-12-19', '2018-12-20',\n",
" '2018-12-21', '2018-12-24', '2018-12-26', '2018-12-27',\n",
" '2018-12-28', '2018-12-31'],\n",
" dtype='datetime64[ns]', name='Date', length=1006, freq=None)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Our index\n",
"df.index"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When calling `.resample()` you first need to pass in a **rule** parameter, then you need to call some sort of aggregation function.\n",
"\n",
"The **rule** parameter describes the frequency with which to apply the aggregation function (daily, monthly, yearly, etc.) \n",
"It is passed in using an \"offset alias\" - refer to the table below. [[reference](http://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases)]\n",
"\n",
"The aggregation function is needed because, due to resampling, we need some sort of mathematical rule to join the rows (mean, sum, count, etc.)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
" TIME SERIES OFFSET ALIASES \n",
"ALIAS DESCRIPTION \n",
"B business day frequency \n",
"C custom business day frequency (experimental) \n",
"D calendar day frequency \n",
"W weekly frequency \n",
"M month end frequency \n",
"SM semi-month end frequency (15th and end of month) \n",
"BM business month end frequency \n",
"CBM custom business month end frequency \n",
"MS month start frequency \n",
"SMS semi-month start frequency (1st and 15th) \n",
"BMS business month start frequency \n",
"CBMS custom business month start frequency \n",
"Q quarter end frequency \n",
"intentionally left blank
\n",
"\n",
"\n",
" \n",
"ALIAS DESCRIPTION \n",
"BQ business quarter endfrequency \n",
"QS quarter start frequency \n",
"BQS business quarter start frequency \n",
"A year end frequency \n",
"BA business year end frequency \n",
"AS year start frequency \n",
"BAS business year start frequency \n",
"BH business hour frequency \n",
"H hourly frequency \n",
"T, min minutely frequency \n",
"S secondly frequency \n",
"L, ms milliseconds \n",
"U, us microseconds \n",
"N nanoseconds
"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Close \n",
" Volume \n",
" \n",
" \n",
" Date \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 2015-12-31 \n",
" 50.078100 \n",
" 8.649190e+06 \n",
" \n",
" \n",
" 2016-12-31 \n",
" 53.891732 \n",
" 9.300633e+06 \n",
" \n",
" \n",
" 2017-12-31 \n",
" 55.457310 \n",
" 9.296078e+06 \n",
" \n",
" \n",
" 2018-12-31 \n",
" 56.870005 \n",
" 1.122883e+07 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Close Volume\n",
"Date \n",
"2015-12-31 50.078100 8.649190e+06\n",
"2016-12-31 53.891732 9.300633e+06\n",
"2017-12-31 55.457310 9.296078e+06\n",
"2018-12-31 56.870005 1.122883e+07"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Yearly Means\n",
"df.resample(rule='A').mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Resampling rule 'A' takes all of the data points in a given year, applies the aggregation function (in this case we calculate the mean), and reports the result as the last day of that year."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Custom Resampling Functions\n",
"\n",
"We're not limited to pandas built-in summary functions (min/max/mean etc.). We can define our own function:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def first_day(entry):\n",
" \"\"\"\n",
" Returns the first instance of the period, regardless of sampling rate.\n",
" \"\"\"\n",
" if len(entry): # handles the case of missing data\n",
" return entry[0]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Close \n",
" Volume \n",
" \n",
" \n",
" Date \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" \n",
" 2015-12-31 \n",
" 38.0061 \n",
" 6906098 \n",
" \n",
" \n",
" 2016-12-31 \n",
" 55.0780 \n",
" 13521544 \n",
" \n",
" \n",
" 2017-12-31 \n",
" 53.1100 \n",
" 7809307 \n",
" \n",
" \n",
" 2018-12-31 \n",
" 56.3243 \n",
" 7215978 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Close Volume\n",
"Date \n",
"2015-12-31 38.0061 6906098\n",
"2016-12-31 55.0780 13521544\n",
"2017-12-31 53.1100 7809307\n",
"2018-12-31 56.3243 7215978"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.resample(rule='A').apply(first_day)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plotting"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df['Close'].resample('A').mean().plot.bar(title='Yearly Mean Closing Price for Starbucks');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pandas treats each sample as its own trace, and by default assigns different colors to each one. If you want, you can pass a color argument to assign your own color collection, or to set a uniform color. For example, color='#1f77b4' sets a uniform \"steel blue\" color.\n",
"\n",
"Also, the above code can be broken into two lines for improved readability."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"title = 'Yearly Mean Closing Price for Starbucks'\n",
"df['Close'].resample('A').mean().plot.bar(title=title,color=['#1f77b4']);"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"title = 'Monthly Max Closing Price for Starbucks'\n",
"df['Close'].resample('M').max().plot.bar(figsize=(16,6), title=title,color='#1f77b4');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That is it! Up next we'll learn about time shifts!"
]
}
],
"metadata": {
"anaconda-cloud": {},
"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.6"
}
},
"nbformat": 4,
"nbformat_minor": 1
}