{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv('walmart_stock.csv', index_col=0, parse_dates=True)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Volume | \n",
" Adj Close | \n",
"
\n",
" \n",
" Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-01-03 | \n",
" 59.970001 | \n",
" 61.060001 | \n",
" 59.869999 | \n",
" 60.330002 | \n",
" 12668800 | \n",
" 52.619235 | \n",
"
\n",
" \n",
" 2012-01-04 | \n",
" 60.209999 | \n",
" 60.349998 | \n",
" 59.470001 | \n",
" 59.709999 | \n",
" 9593300 | \n",
" 52.078475 | \n",
"
\n",
" \n",
" 2012-01-05 | \n",
" 59.349998 | \n",
" 59.619999 | \n",
" 58.369999 | \n",
" 59.419998 | \n",
" 12768200 | \n",
" 51.825539 | \n",
"
\n",
" \n",
" 2012-01-06 | \n",
" 59.419998 | \n",
" 59.450001 | \n",
" 58.869999 | \n",
" 59.000000 | \n",
" 8069400 | \n",
" 51.459220 | \n",
"
\n",
" \n",
" 2012-01-09 | \n",
" 59.029999 | \n",
" 59.549999 | \n",
" 58.919998 | \n",
" 59.180000 | \n",
" 6679300 | \n",
" 51.616215 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 2016-12-23 | \n",
" 69.430000 | \n",
" 69.750000 | \n",
" 69.360001 | \n",
" 69.540001 | \n",
" 4803900 | \n",
" 69.032411 | \n",
"
\n",
" \n",
" 2016-12-27 | \n",
" 69.300003 | \n",
" 69.820000 | \n",
" 69.250000 | \n",
" 69.699997 | \n",
" 4435700 | \n",
" 69.191240 | \n",
"
\n",
" \n",
" 2016-12-28 | \n",
" 69.940002 | \n",
" 70.000000 | \n",
" 69.260002 | \n",
" 69.309998 | \n",
" 4875700 | \n",
" 68.804087 | \n",
"
\n",
" \n",
" 2016-12-29 | \n",
" 69.209999 | \n",
" 69.519997 | \n",
" 69.120003 | \n",
" 69.260002 | \n",
" 4298400 | \n",
" 68.754456 | \n",
"
\n",
" \n",
" 2016-12-30 | \n",
" 69.120003 | \n",
" 69.430000 | \n",
" 68.830002 | \n",
" 69.120003 | \n",
" 6889500 | \n",
" 68.615479 | \n",
"
\n",
" \n",
"
\n",
"
1258 rows × 6 columns
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume Adj Close\n",
"Date \n",
"2012-01-03 59.970001 61.060001 59.869999 60.330002 12668800 52.619235\n",
"2012-01-04 60.209999 60.349998 59.470001 59.709999 9593300 52.078475\n",
"2012-01-05 59.349998 59.619999 58.369999 59.419998 12768200 51.825539\n",
"2012-01-06 59.419998 59.450001 58.869999 59.000000 8069400 51.459220\n",
"2012-01-09 59.029999 59.549999 58.919998 59.180000 6679300 51.616215\n",
"... ... ... ... ... ... ...\n",
"2016-12-23 69.430000 69.750000 69.360001 69.540001 4803900 69.032411\n",
"2016-12-27 69.300003 69.820000 69.250000 69.699997 4435700 69.191240\n",
"2016-12-28 69.940002 70.000000 69.260002 69.309998 4875700 68.804087\n",
"2016-12-29 69.209999 69.519997 69.120003 69.260002 4298400 68.754456\n",
"2016-12-30 69.120003 69.430000 68.830002 69.120003 6889500 68.615479\n",
"\n",
"[1258 rows x 6 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"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",
" Adj Close | \n",
"
\n",
" \n",
" Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-03-29 | \n",
" 60.770000 | \n",
" 60.950001 | \n",
" 60.619999 | \n",
" 60.820000 | \n",
" 6691700 | \n",
" 53.401665 | \n",
"
\n",
" \n",
" 2012-03-30 | \n",
" 61.070000 | \n",
" 61.419998 | \n",
" 60.919998 | \n",
" 61.200001 | \n",
" 6941400 | \n",
" 53.735316 | \n",
"
\n",
" \n",
" 2012-04-02 | \n",
" 61.080002 | \n",
" 61.490002 | \n",
" 60.970001 | \n",
" 61.360001 | \n",
" 6465900 | \n",
" 53.875801 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume Adj Close\n",
"Date \n",
"2012-03-29 60.770000 60.950001 60.619999 60.820000 6691700 53.401665\n",
"2012-03-30 61.070000 61.419998 60.919998 61.200001 6941400 53.735316\n",
"2012-04-02 61.080002 61.490002 60.970001 61.360001 6465900 53.875801"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"2012-03-29\":\"2012-04-02\"]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"ename": "FileNotFoundError",
"evalue": "[Errno 2] No such file or directory: 'quarterly_data.csv'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn [8], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m df2 \u001b[38;5;241m=\u001b[39m \u001b[43mpd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread_csv\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mquarterly_data.csv\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindex_col\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparse_dates\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/.local/share/virtualenvs/Note-Vc8kZtnp/lib64/python3.11/site-packages/pandas/util/_decorators.py:211\u001b[0m, in \u001b[0;36mdeprecate_kwarg.._deprecate_kwarg..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 209\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 210\u001b[0m kwargs[new_arg_name] \u001b[38;5;241m=\u001b[39m new_arg_value\n\u001b[0;32m--> 211\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/.local/share/virtualenvs/Note-Vc8kZtnp/lib64/python3.11/site-packages/pandas/util/_decorators.py:331\u001b[0m, in \u001b[0;36mdeprecate_nonkeyword_arguments..decorate..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 325\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(args) \u001b[38;5;241m>\u001b[39m num_allow_args:\n\u001b[1;32m 326\u001b[0m warnings\u001b[38;5;241m.\u001b[39mwarn(\n\u001b[1;32m 327\u001b[0m msg\u001b[38;5;241m.\u001b[39mformat(arguments\u001b[38;5;241m=\u001b[39m_format_argument_list(allow_args)),\n\u001b[1;32m 328\u001b[0m \u001b[38;5;167;01mFutureWarning\u001b[39;00m,\n\u001b[1;32m 329\u001b[0m stacklevel\u001b[38;5;241m=\u001b[39mfind_stack_level(),\n\u001b[1;32m 330\u001b[0m )\n\u001b[0;32m--> 331\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/.local/share/virtualenvs/Note-Vc8kZtnp/lib64/python3.11/site-packages/pandas/io/parsers/readers.py:950\u001b[0m, in \u001b[0;36mread_csv\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[1;32m 935\u001b[0m kwds_defaults \u001b[38;5;241m=\u001b[39m _refine_defaults_read(\n\u001b[1;32m 936\u001b[0m dialect,\n\u001b[1;32m 937\u001b[0m delimiter,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 946\u001b[0m defaults\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdelimiter\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m,\u001b[39m\u001b[38;5;124m\"\u001b[39m},\n\u001b[1;32m 947\u001b[0m )\n\u001b[1;32m 948\u001b[0m kwds\u001b[38;5;241m.\u001b[39mupdate(kwds_defaults)\n\u001b[0;32m--> 950\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_read\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/.local/share/virtualenvs/Note-Vc8kZtnp/lib64/python3.11/site-packages/pandas/io/parsers/readers.py:605\u001b[0m, in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 602\u001b[0m _validate_names(kwds\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnames\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[1;32m 604\u001b[0m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[0;32m--> 605\u001b[0m parser \u001b[38;5;241m=\u001b[39m \u001b[43mTextFileReader\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 607\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[1;32m 608\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n",
"File \u001b[0;32m~/.local/share/virtualenvs/Note-Vc8kZtnp/lib64/python3.11/site-packages/pandas/io/parsers/readers.py:1442\u001b[0m, in \u001b[0;36mTextFileReader.__init__\u001b[0;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[1;32m 1439\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwds[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 1441\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles: IOHandles \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m-> 1442\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_engine\u001b[49m\u001b[43m(\u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mengine\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/.local/share/virtualenvs/Note-Vc8kZtnp/lib64/python3.11/site-packages/pandas/io/parsers/readers.py:1735\u001b[0m, in \u001b[0;36mTextFileReader._make_engine\u001b[0;34m(self, f, engine)\u001b[0m\n\u001b[1;32m 1733\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[1;32m 1734\u001b[0m mode \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m-> 1735\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;241m=\u001b[39m \u001b[43mget_handle\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1736\u001b[0m \u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1737\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1738\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1739\u001b[0m \u001b[43m \u001b[49m\u001b[43mcompression\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcompression\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1740\u001b[0m \u001b[43m \u001b[49m\u001b[43mmemory_map\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmemory_map\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1741\u001b[0m \u001b[43m \u001b[49m\u001b[43mis_text\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_text\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1742\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding_errors\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstrict\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1743\u001b[0m \u001b[43m \u001b[49m\u001b[43mstorage_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstorage_options\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1744\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1745\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1746\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles\u001b[38;5;241m.\u001b[39mhandle\n",
"File \u001b[0;32m~/.local/share/virtualenvs/Note-Vc8kZtnp/lib64/python3.11/site-packages/pandas/io/common.py:856\u001b[0m, in \u001b[0;36mget_handle\u001b[0;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[1;32m 851\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[1;32m 852\u001b[0m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[1;32m 853\u001b[0m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[1;32m 854\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mencoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mmode:\n\u001b[1;32m 855\u001b[0m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[0;32m--> 856\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 857\u001b[0m \u001b[43m \u001b[49m\u001b[43mhandle\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 858\u001b[0m \u001b[43m \u001b[49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 859\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencoding\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 860\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43merrors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 861\u001b[0m \u001b[43m \u001b[49m\u001b[43mnewline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 862\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 863\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 864\u001b[0m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[1;32m 865\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(handle, ioargs\u001b[38;5;241m.\u001b[39mmode)\n",
"\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'quarterly_data.csv'"
]
}
],
"source": [
"df2 = pd.read_csv(\"quarterly_data.csv\", index_col = 0, parse_dates=True)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" num | \n",
"
\n",
" \n",
" Date | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-03-31 | \n",
" 10 | \n",
"
\n",
" \n",
" 2012-06-30 | \n",
" 20 | \n",
"
\n",
" \n",
" 2012-09-30 | \n",
" 30 | \n",
"
\n",
" \n",
" 2012-12-31 | \n",
" 40 | \n",
"
\n",
" \n",
" 2013-03-31 | \n",
" 11 | \n",
"
\n",
" \n",
" 2013-06-30 | \n",
" 23 | \n",
"
\n",
" \n",
" 2013-09-30 | \n",
" 36 | \n",
"
\n",
" \n",
" 2013-12-31 | \n",
" 43 | \n",
"
\n",
" \n",
" 2014-03-31 | \n",
" 45 | \n",
"
\n",
" \n",
" 2014-06-30 | \n",
" 34 | \n",
"
\n",
" \n",
" 2014-09-30 | \n",
" 30 | \n",
"
\n",
" \n",
" 2014-12-31 | \n",
" 47 | \n",
"
\n",
" \n",
" 2015-03-31 | \n",
" 10 | \n",
"
\n",
" \n",
" 2015-06-30 | \n",
" 44 | \n",
"
\n",
" \n",
" 2015-09-30 | \n",
" 46 | \n",
"
\n",
" \n",
" 2015-12-31 | \n",
" 46 | \n",
"
\n",
" \n",
" 2016-03-31 | \n",
" 22 | \n",
"
\n",
" \n",
" 2016-06-30 | \n",
" 23 | \n",
"
\n",
" \n",
" 2016-09-30 | \n",
" 30 | \n",
"
\n",
" \n",
" 2016-12-31 | \n",
" 30 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" num\n",
"Date \n",
"2012-03-31 10\n",
"2012-06-30 20\n",
"2012-09-30 30\n",
"2012-12-31 40\n",
"2013-03-31 11\n",
"2013-06-30 23\n",
"2013-09-30 36\n",
"2013-12-31 43\n",
"2014-03-31 45\n",
"2014-06-30 34\n",
"2014-09-30 30\n",
"2014-12-31 47\n",
"2015-03-31 10\n",
"2015-06-30 44\n",
"2015-09-30 46\n",
"2015-12-31 46\n",
"2016-03-31 22\n",
"2016-06-30 23\n",
"2016-09-30 30\n",
"2016-12-31 30"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Approach 1a - Quarterly timeframe, use the quarter end price"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Volume | \n",
" Adj Close | \n",
" num | \n",
"
\n",
" \n",
" Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-03-31 | \n",
" 61.070000 | \n",
" 61.419998 | \n",
" 60.919998 | \n",
" 61.200001 | \n",
" 6941400 | \n",
" 53.735316 | \n",
" 10 | \n",
"
\n",
" \n",
" 2012-06-30 | \n",
" 68.940002 | \n",
" 69.720001 | \n",
" 68.559998 | \n",
" 69.720001 | \n",
" 10663400 | \n",
" 61.631517 | \n",
" 20 | \n",
"
\n",
" \n",
" 2012-09-30 | \n",
" 73.860001 | \n",
" 74.059998 | \n",
" 73.419998 | \n",
" 73.800003 | \n",
" 6021000 | \n",
" 65.591003 | \n",
" 30 | \n",
"
\n",
" \n",
" 2012-12-31 | \n",
" 67.489998 | \n",
" 68.300003 | \n",
" 67.370003 | \n",
" 68.230003 | \n",
" 7012500 | \n",
" 60.977077 | \n",
" 40 | \n",
"
\n",
" \n",
" 2013-03-31 | \n",
" 74.839996 | \n",
" 74.970001 | \n",
" 74.379997 | \n",
" 74.830002 | \n",
" 7368300 | \n",
" 67.306943 | \n",
" 11 | \n",
"
\n",
" \n",
" 2013-06-30 | \n",
" 75.110001 | \n",
" 75.660004 | \n",
" 74.449997 | \n",
" 74.489998 | \n",
" 14548300 | \n",
" 67.402994 | \n",
" 23 | \n",
"
\n",
" \n",
" 2013-09-30 | \n",
" 74.279999 | \n",
" 74.599998 | \n",
" 73.739998 | \n",
" 73.959999 | \n",
" 6752500 | \n",
" 67.329800 | \n",
" 36 | \n",
"
\n",
" \n",
" 2013-12-31 | \n",
" 78.660004 | \n",
" 78.870003 | \n",
" 78.349998 | \n",
" 78.690002 | \n",
" 3859100 | \n",
" 72.052783 | \n",
" 43 | \n",
"
\n",
" \n",
" 2014-03-31 | \n",
" 76.349998 | \n",
" 76.779999 | \n",
" 76.019997 | \n",
" 76.430000 | \n",
" 4695600 | \n",
" 70.434908 | \n",
" 45 | \n",
"
\n",
" \n",
" 2014-06-30 | \n",
" 75.400002 | \n",
" 75.690002 | \n",
" 74.940002 | \n",
" 75.070000 | \n",
" 6653800 | \n",
" 69.609899 | \n",
" 34 | \n",
"
\n",
" \n",
" 2014-09-30 | \n",
" 76.040001 | \n",
" 76.720001 | \n",
" 75.769997 | \n",
" 76.470001 | \n",
" 5640700 | \n",
" 71.375215 | \n",
" 30 | \n",
"
\n",
" \n",
" 2014-12-31 | \n",
" 87.080002 | \n",
" 87.440002 | \n",
" 85.860001 | \n",
" 85.879997 | \n",
" 4151400 | \n",
" 80.606085 | \n",
" 47 | \n",
"
\n",
" \n",
" 2015-03-31 | \n",
" 82.389999 | \n",
" 83.040001 | \n",
" 82.250000 | \n",
" 82.250000 | \n",
" 5587700 | \n",
" 77.662694 | \n",
" 10 | \n",
"
\n",
" \n",
" 2015-06-30 | \n",
" 71.809998 | \n",
" 71.809998 | \n",
" 70.779999 | \n",
" 70.930000 | \n",
" 11102600 | \n",
" 67.396724 | \n",
" 44 | \n",
"
\n",
" \n",
" 2015-09-30 | \n",
" 64.430000 | \n",
" 64.940002 | \n",
" 63.930000 | \n",
" 64.839996 | \n",
" 7979200 | \n",
" 62.030780 | \n",
" 46 | \n",
"
\n",
" \n",
" 2015-12-31 | \n",
" 61.330002 | \n",
" 61.720001 | \n",
" 61.169998 | \n",
" 61.299999 | \n",
" 6555100 | \n",
" 59.135363 | \n",
" 46 | \n",
"
\n",
" \n",
" 2016-03-31 | \n",
" 68.750000 | \n",
" 69.190002 | \n",
" 68.470001 | \n",
" 68.489998 | \n",
" 6283500 | \n",
" 66.560595 | \n",
" 22 | \n",
"
\n",
" \n",
" 2016-06-30 | \n",
" 72.570000 | \n",
" 73.190002 | \n",
" 72.320000 | \n",
" 73.019997 | \n",
" 8713600 | \n",
" 71.482549 | \n",
" 23 | \n",
"
\n",
" \n",
" 2016-09-30 | \n",
" 71.500000 | \n",
" 72.459999 | \n",
" 71.400002 | \n",
" 72.120003 | \n",
" 9982600 | \n",
" 71.084814 | \n",
" 30 | \n",
"
\n",
" \n",
" 2016-12-31 | \n",
" 69.120003 | \n",
" 69.430000 | \n",
" 68.830002 | \n",
" 69.120003 | \n",
" 6889500 | \n",
" 68.615479 | \n",
" 30 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume Adj Close \\\n",
"Date \n",
"2012-03-31 61.070000 61.419998 60.919998 61.200001 6941400 53.735316 \n",
"2012-06-30 68.940002 69.720001 68.559998 69.720001 10663400 61.631517 \n",
"2012-09-30 73.860001 74.059998 73.419998 73.800003 6021000 65.591003 \n",
"2012-12-31 67.489998 68.300003 67.370003 68.230003 7012500 60.977077 \n",
"2013-03-31 74.839996 74.970001 74.379997 74.830002 7368300 67.306943 \n",
"2013-06-30 75.110001 75.660004 74.449997 74.489998 14548300 67.402994 \n",
"2013-09-30 74.279999 74.599998 73.739998 73.959999 6752500 67.329800 \n",
"2013-12-31 78.660004 78.870003 78.349998 78.690002 3859100 72.052783 \n",
"2014-03-31 76.349998 76.779999 76.019997 76.430000 4695600 70.434908 \n",
"2014-06-30 75.400002 75.690002 74.940002 75.070000 6653800 69.609899 \n",
"2014-09-30 76.040001 76.720001 75.769997 76.470001 5640700 71.375215 \n",
"2014-12-31 87.080002 87.440002 85.860001 85.879997 4151400 80.606085 \n",
"2015-03-31 82.389999 83.040001 82.250000 82.250000 5587700 77.662694 \n",
"2015-06-30 71.809998 71.809998 70.779999 70.930000 11102600 67.396724 \n",
"2015-09-30 64.430000 64.940002 63.930000 64.839996 7979200 62.030780 \n",
"2015-12-31 61.330002 61.720001 61.169998 61.299999 6555100 59.135363 \n",
"2016-03-31 68.750000 69.190002 68.470001 68.489998 6283500 66.560595 \n",
"2016-06-30 72.570000 73.190002 72.320000 73.019997 8713600 71.482549 \n",
"2016-09-30 71.500000 72.459999 71.400002 72.120003 9982600 71.084814 \n",
"2016-12-31 69.120003 69.430000 68.830002 69.120003 6889500 68.615479 \n",
"\n",
" num \n",
"Date \n",
"2012-03-31 10 \n",
"2012-06-30 20 \n",
"2012-09-30 30 \n",
"2012-12-31 40 \n",
"2013-03-31 11 \n",
"2013-06-30 23 \n",
"2013-09-30 36 \n",
"2013-12-31 43 \n",
"2014-03-31 45 \n",
"2014-06-30 34 \n",
"2014-09-30 30 \n",
"2014-12-31 47 \n",
"2015-03-31 10 \n",
"2015-06-30 44 \n",
"2015-09-30 46 \n",
"2015-12-31 46 \n",
"2016-03-31 22 \n",
"2016-06-30 23 \n",
"2016-09-30 30 \n",
"2016-12-31 30 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.resample(rule='Q').last().join(df2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Approach 1b - Quarterly timeframe, use average price"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Volume | \n",
" Adj Close | \n",
" num | \n",
"
\n",
" \n",
" Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-03-31 | \n",
" 60.462903 | \n",
" 60.807258 | \n",
" 60.160484 | \n",
" 60.519516 | \n",
" 8.850221e+06 | \n",
" 52.881839 | \n",
" 10 | \n",
"
\n",
" \n",
" 2012-06-30 | \n",
" 62.888889 | \n",
" 63.400159 | \n",
" 62.592222 | \n",
" 63.057143 | \n",
" 1.155795e+07 | \n",
" 55.594392 | \n",
" 20 | \n",
"
\n",
" \n",
" 2012-09-30 | \n",
" 73.081587 | \n",
" 73.549682 | \n",
" 72.717619 | \n",
" 73.174921 | \n",
" 7.871587e+06 | \n",
" 64.891949 | \n",
" 30 | \n",
"
\n",
" \n",
" 2012-12-31 | \n",
" 72.174678 | \n",
" 72.623226 | \n",
" 71.647741 | \n",
" 72.079839 | \n",
" 8.660958e+06 | \n",
" 64.161672 | \n",
" 40 | \n",
"
\n",
" \n",
" 2013-03-31 | \n",
" 70.898834 | \n",
" 71.393000 | \n",
" 70.552666 | \n",
" 71.026000 | \n",
" 8.482003e+06 | \n",
" 63.581880 | \n",
" 11 | \n",
"
\n",
" \n",
" 2013-06-30 | \n",
" 76.873906 | \n",
" 77.417813 | \n",
" 76.413281 | \n",
" 76.885781 | \n",
" 7.656086e+06 | \n",
" 69.393600 | \n",
" 23 | \n",
"
\n",
" \n",
" 2013-09-30 | \n",
" 75.637969 | \n",
" 76.030469 | \n",
" 75.213594 | \n",
" 75.629063 | \n",
" 5.796625e+06 | \n",
" 68.676662 | \n",
" 36 | \n",
"
\n",
" \n",
" 2013-12-31 | \n",
" 77.372656 | \n",
" 77.805313 | \n",
" 76.924531 | \n",
" 77.472813 | \n",
" 5.966927e+06 | \n",
" 70.651242 | \n",
" 43 | \n",
"
\n",
" \n",
" 2014-03-31 | \n",
" 75.339344 | \n",
" 75.802787 | \n",
" 74.863278 | \n",
" 75.337213 | \n",
" 7.050402e+06 | \n",
" 69.106983 | \n",
" 45 | \n",
"
\n",
" \n",
" 2014-06-30 | \n",
" 77.036508 | \n",
" 77.391111 | \n",
" 76.689524 | \n",
" 77.066508 | \n",
" 6.048765e+06 | \n",
" 71.284646 | \n",
" 34 | \n",
"
\n",
" \n",
" 2014-09-30 | \n",
" 75.674843 | \n",
" 76.062501 | \n",
" 75.375938 | \n",
" 75.748593 | \n",
" 5.550031e+06 | \n",
" 70.520795 | \n",
" 30 | \n",
"
\n",
" \n",
" 2014-12-31 | \n",
" 80.952969 | \n",
" 81.607500 | \n",
" 80.432344 | \n",
" 81.059844 | \n",
" 7.431025e+06 | \n",
" 75.797780 | \n",
" 47 | \n",
"
\n",
" \n",
" 2015-03-31 | \n",
" 85.096229 | \n",
" 85.699017 | \n",
" 84.491803 | \n",
" 85.107213 | \n",
" 7.209713e+06 | \n",
" 79.994746 | \n",
" 10 | \n",
"
\n",
" \n",
" 2015-06-30 | \n",
" 76.678730 | \n",
" 77.066191 | \n",
" 76.191111 | \n",
" 76.492540 | \n",
" 7.481765e+06 | \n",
" 72.501821 | \n",
" 44 | \n",
"
\n",
" \n",
" 2015-09-30 | \n",
" 68.884375 | \n",
" 69.366094 | \n",
" 68.328594 | \n",
" 68.825313 | \n",
" 8.883412e+06 | \n",
" 65.666534 | \n",
" 46 | \n",
"
\n",
" \n",
" 2015-12-31 | \n",
" 60.269688 | \n",
" 60.780156 | \n",
" 59.776563 | \n",
" 60.193281 | \n",
" 1.247800e+07 | \n",
" 57.743235 | \n",
" 46 | \n",
"
\n",
" \n",
" 2016-03-31 | \n",
" 65.564754 | \n",
" 66.346065 | \n",
" 65.015574 | \n",
" 65.776557 | \n",
" 1.198041e+07 | \n",
" 63.580834 | \n",
" 22 | \n",
"
\n",
" \n",
" 2016-06-30 | \n",
" 69.350000 | \n",
" 69.857656 | \n",
" 68.918906 | \n",
" 69.438437 | \n",
" 8.751062e+06 | \n",
" 67.762903 | \n",
" 23 | \n",
"
\n",
" \n",
" 2016-09-30 | \n",
" 72.808594 | \n",
" 73.230938 | \n",
" 72.371719 | \n",
" 72.782812 | \n",
" 8.236991e+06 | \n",
" 71.530300 | \n",
" 30 | \n",
"
\n",
" \n",
" 2016-12-31 | \n",
" 70.026985 | \n",
" 70.478889 | \n",
" 69.609048 | \n",
" 70.021111 | \n",
" 8.628798e+06 | \n",
" 69.150314 | \n",
" 30 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume \\\n",
"Date \n",
"2012-03-31 60.462903 60.807258 60.160484 60.519516 8.850221e+06 \n",
"2012-06-30 62.888889 63.400159 62.592222 63.057143 1.155795e+07 \n",
"2012-09-30 73.081587 73.549682 72.717619 73.174921 7.871587e+06 \n",
"2012-12-31 72.174678 72.623226 71.647741 72.079839 8.660958e+06 \n",
"2013-03-31 70.898834 71.393000 70.552666 71.026000 8.482003e+06 \n",
"2013-06-30 76.873906 77.417813 76.413281 76.885781 7.656086e+06 \n",
"2013-09-30 75.637969 76.030469 75.213594 75.629063 5.796625e+06 \n",
"2013-12-31 77.372656 77.805313 76.924531 77.472813 5.966927e+06 \n",
"2014-03-31 75.339344 75.802787 74.863278 75.337213 7.050402e+06 \n",
"2014-06-30 77.036508 77.391111 76.689524 77.066508 6.048765e+06 \n",
"2014-09-30 75.674843 76.062501 75.375938 75.748593 5.550031e+06 \n",
"2014-12-31 80.952969 81.607500 80.432344 81.059844 7.431025e+06 \n",
"2015-03-31 85.096229 85.699017 84.491803 85.107213 7.209713e+06 \n",
"2015-06-30 76.678730 77.066191 76.191111 76.492540 7.481765e+06 \n",
"2015-09-30 68.884375 69.366094 68.328594 68.825313 8.883412e+06 \n",
"2015-12-31 60.269688 60.780156 59.776563 60.193281 1.247800e+07 \n",
"2016-03-31 65.564754 66.346065 65.015574 65.776557 1.198041e+07 \n",
"2016-06-30 69.350000 69.857656 68.918906 69.438437 8.751062e+06 \n",
"2016-09-30 72.808594 73.230938 72.371719 72.782812 8.236991e+06 \n",
"2016-12-31 70.026985 70.478889 69.609048 70.021111 8.628798e+06 \n",
"\n",
" Adj Close num \n",
"Date \n",
"2012-03-31 52.881839 10 \n",
"2012-06-30 55.594392 20 \n",
"2012-09-30 64.891949 30 \n",
"2012-12-31 64.161672 40 \n",
"2013-03-31 63.581880 11 \n",
"2013-06-30 69.393600 23 \n",
"2013-09-30 68.676662 36 \n",
"2013-12-31 70.651242 43 \n",
"2014-03-31 69.106983 45 \n",
"2014-06-30 71.284646 34 \n",
"2014-09-30 70.520795 30 \n",
"2014-12-31 75.797780 47 \n",
"2015-03-31 79.994746 10 \n",
"2015-06-30 72.501821 44 \n",
"2015-09-30 65.666534 46 \n",
"2015-12-31 57.743235 46 \n",
"2016-03-31 63.580834 22 \n",
"2016-06-30 67.762903 23 \n",
"2016-09-30 71.530300 30 \n",
"2016-12-31 69.150314 30 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.resample(rule='Q').mean().join(df2)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Open 6.046290e+01\n",
"High 6.080726e+01\n",
"Low 6.016048e+01\n",
"Close 6.051952e+01\n",
"Volume 8.850221e+06\n",
"Adj Close 5.288184e+01\n",
"dtype: float64"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"2012-01-01\":\"2012-03-31\"].mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Can use other aggregation function"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Volume | \n",
" Adj Close | \n",
" num | \n",
"
\n",
" \n",
" Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-03-31 | \n",
" 60.525002 | \n",
" 60.925002 | \n",
" 60.390000 | \n",
" 60.725001 | \n",
" 7506500.0 | \n",
" 53.210409 | \n",
" 10 | \n",
"
\n",
" \n",
" 2012-06-30 | \n",
" 61.700001 | \n",
" 62.490002 | \n",
" 61.549999 | \n",
" 62.060001 | \n",
" 10036900.0 | \n",
" 54.524268 | \n",
" 20 | \n",
"
\n",
" \n",
" 2012-09-30 | \n",
" 73.050003 | \n",
" 73.949997 | \n",
" 72.940002 | \n",
" 73.510002 | \n",
" 7407400.0 | \n",
" 65.235495 | \n",
" 30 | \n",
"
\n",
" \n",
" 2012-12-31 | \n",
" 72.095001 | \n",
" 72.594997 | \n",
" 71.619999 | \n",
" 72.135002 | \n",
" 7439350.0 | \n",
" 64.182305 | \n",
" 40 | \n",
"
\n",
" \n",
" 2013-03-31 | \n",
" 70.490002 | \n",
" 71.329998 | \n",
" 70.370002 | \n",
" 70.774998 | \n",
" 7102200.0 | \n",
" 63.251536 | \n",
" 11 | \n",
"
\n",
" \n",
" 2013-06-30 | \n",
" 77.215000 | \n",
" 77.850003 | \n",
" 76.680001 | \n",
" 77.299999 | \n",
" 7244050.0 | \n",
" 69.646462 | \n",
" 23 | \n",
"
\n",
" \n",
" 2013-09-30 | \n",
" 75.534999 | \n",
" 76.439999 | \n",
" 75.049999 | \n",
" 75.790001 | \n",
" 5459000.0 | \n",
" 68.995750 | \n",
" 36 | \n",
"
\n",
" \n",
" 2013-12-31 | \n",
" 77.735000 | \n",
" 78.104999 | \n",
" 77.275002 | \n",
" 77.905002 | \n",
" 5887050.0 | \n",
" 71.168100 | \n",
" 43 | \n",
"
\n",
" \n",
" 2014-03-31 | \n",
" 74.839996 | \n",
" 75.330002 | \n",
" 74.449997 | \n",
" 74.919998 | \n",
" 6511200.0 | \n",
" 68.793051 | \n",
" 45 | \n",
"
\n",
" \n",
" 2014-06-30 | \n",
" 77.000000 | \n",
" 77.379997 | \n",
" 76.540001 | \n",
" 77.010002 | \n",
" 5652300.0 | \n",
" 71.186249 | \n",
" 34 | \n",
"
\n",
" \n",
" 2014-09-30 | \n",
" 75.904999 | \n",
" 76.215000 | \n",
" 75.625000 | \n",
" 75.935001 | \n",
" 4979900.0 | \n",
" 70.777852 | \n",
" 30 | \n",
"
\n",
" \n",
" 2014-12-31 | \n",
" 81.770001 | \n",
" 83.105000 | \n",
" 81.479999 | \n",
" 82.950001 | \n",
" 6778750.0 | \n",
" 77.423487 | \n",
" 47 | \n",
"
\n",
" \n",
" 2015-03-31 | \n",
" 85.430000 | \n",
" 85.970001 | \n",
" 84.900002 | \n",
" 85.650002 | \n",
" 6505700.0 | \n",
" 80.390214 | \n",
" 10 | \n",
"
\n",
" \n",
" 2015-06-30 | \n",
" 77.830002 | \n",
" 78.360001 | \n",
" 77.300003 | \n",
" 77.879997 | \n",
" 6815000.0 | \n",
" 73.536418 | \n",
" 44 | \n",
"
\n",
" \n",
" 2015-09-30 | \n",
" 71.314999 | \n",
" 71.700001 | \n",
" 70.685001 | \n",
" 71.314999 | \n",
" 7721700.0 | \n",
" 67.919326 | \n",
" 46 | \n",
"
\n",
" \n",
" 2015-12-31 | \n",
" 59.405000 | \n",
" 60.220001 | \n",
" 59.000000 | \n",
" 59.555000 | \n",
" 10406450.0 | \n",
" 57.309593 | \n",
" 46 | \n",
"
\n",
" \n",
" 2016-03-31 | \n",
" 66.139999 | \n",
" 66.669998 | \n",
" 65.500000 | \n",
" 66.339996 | \n",
" 11360500.0 | \n",
" 63.997387 | \n",
" 22 | \n",
"
\n",
" \n",
" 2016-06-30 | \n",
" 69.479999 | \n",
" 69.895001 | \n",
" 68.965000 | \n",
" 69.444999 | \n",
" 7437400.0 | \n",
" 67.627985 | \n",
" 23 | \n",
"
\n",
" \n",
" 2016-09-30 | \n",
" 72.959999 | \n",
" 73.279999 | \n",
" 72.459999 | \n",
" 72.935001 | \n",
" 7381850.0 | \n",
" 71.712602 | \n",
" 30 | \n",
"
\n",
" \n",
" 2016-12-31 | \n",
" 69.940002 | \n",
" 70.389999 | \n",
" 69.470001 | \n",
" 69.940002 | \n",
" 7621300.0 | \n",
" 69.032411 | \n",
" 30 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume Adj Close \\\n",
"Date \n",
"2012-03-31 60.525002 60.925002 60.390000 60.725001 7506500.0 53.210409 \n",
"2012-06-30 61.700001 62.490002 61.549999 62.060001 10036900.0 54.524268 \n",
"2012-09-30 73.050003 73.949997 72.940002 73.510002 7407400.0 65.235495 \n",
"2012-12-31 72.095001 72.594997 71.619999 72.135002 7439350.0 64.182305 \n",
"2013-03-31 70.490002 71.329998 70.370002 70.774998 7102200.0 63.251536 \n",
"2013-06-30 77.215000 77.850003 76.680001 77.299999 7244050.0 69.646462 \n",
"2013-09-30 75.534999 76.439999 75.049999 75.790001 5459000.0 68.995750 \n",
"2013-12-31 77.735000 78.104999 77.275002 77.905002 5887050.0 71.168100 \n",
"2014-03-31 74.839996 75.330002 74.449997 74.919998 6511200.0 68.793051 \n",
"2014-06-30 77.000000 77.379997 76.540001 77.010002 5652300.0 71.186249 \n",
"2014-09-30 75.904999 76.215000 75.625000 75.935001 4979900.0 70.777852 \n",
"2014-12-31 81.770001 83.105000 81.479999 82.950001 6778750.0 77.423487 \n",
"2015-03-31 85.430000 85.970001 84.900002 85.650002 6505700.0 80.390214 \n",
"2015-06-30 77.830002 78.360001 77.300003 77.879997 6815000.0 73.536418 \n",
"2015-09-30 71.314999 71.700001 70.685001 71.314999 7721700.0 67.919326 \n",
"2015-12-31 59.405000 60.220001 59.000000 59.555000 10406450.0 57.309593 \n",
"2016-03-31 66.139999 66.669998 65.500000 66.339996 11360500.0 63.997387 \n",
"2016-06-30 69.479999 69.895001 68.965000 69.444999 7437400.0 67.627985 \n",
"2016-09-30 72.959999 73.279999 72.459999 72.935001 7381850.0 71.712602 \n",
"2016-12-31 69.940002 70.389999 69.470001 69.940002 7621300.0 69.032411 \n",
"\n",
" num \n",
"Date \n",
"2012-03-31 10 \n",
"2012-06-30 20 \n",
"2012-09-30 30 \n",
"2012-12-31 40 \n",
"2013-03-31 11 \n",
"2013-06-30 23 \n",
"2013-09-30 36 \n",
"2013-12-31 43 \n",
"2014-03-31 45 \n",
"2014-06-30 34 \n",
"2014-09-30 30 \n",
"2014-12-31 47 \n",
"2015-03-31 10 \n",
"2015-06-30 44 \n",
"2015-09-30 46 \n",
"2015-12-31 46 \n",
"2016-03-31 22 \n",
"2016-06-30 23 \n",
"2016-09-30 30 \n",
"2016-12-31 30 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.resample(rule='Q').median().join(df2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Approach 2 - use Daily timeframe, forward fill value"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"first a wrong way of doing it, because the stock data doesn't have date of weekend"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Volume | \n",
" Adj Close | \n",
" num | \n",
"
\n",
" \n",
" Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-01-03 | \n",
" 59.970001 | \n",
" 61.060001 | \n",
" 59.869999 | \n",
" 60.330002 | \n",
" 12668800 | \n",
" 52.619235 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-01-04 | \n",
" 60.209999 | \n",
" 60.349998 | \n",
" 59.470001 | \n",
" 59.709999 | \n",
" 9593300 | \n",
" 52.078475 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-01-05 | \n",
" 59.349998 | \n",
" 59.619999 | \n",
" 58.369999 | \n",
" 59.419998 | \n",
" 12768200 | \n",
" 51.825539 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-01-06 | \n",
" 59.419998 | \n",
" 59.450001 | \n",
" 58.869999 | \n",
" 59.000000 | \n",
" 8069400 | \n",
" 51.459220 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-01-09 | \n",
" 59.029999 | \n",
" 59.549999 | \n",
" 58.919998 | \n",
" 59.180000 | \n",
" 6679300 | \n",
" 51.616215 | \n",
" NaN | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 2016-12-23 | \n",
" 69.430000 | \n",
" 69.750000 | \n",
" 69.360001 | \n",
" 69.540001 | \n",
" 4803900 | \n",
" 69.032411 | \n",
" NaN | \n",
"
\n",
" \n",
" 2016-12-27 | \n",
" 69.300003 | \n",
" 69.820000 | \n",
" 69.250000 | \n",
" 69.699997 | \n",
" 4435700 | \n",
" 69.191240 | \n",
" NaN | \n",
"
\n",
" \n",
" 2016-12-28 | \n",
" 69.940002 | \n",
" 70.000000 | \n",
" 69.260002 | \n",
" 69.309998 | \n",
" 4875700 | \n",
" 68.804087 | \n",
" NaN | \n",
"
\n",
" \n",
" 2016-12-29 | \n",
" 69.209999 | \n",
" 69.519997 | \n",
" 69.120003 | \n",
" 69.260002 | \n",
" 4298400 | \n",
" 68.754456 | \n",
" NaN | \n",
"
\n",
" \n",
" 2016-12-30 | \n",
" 69.120003 | \n",
" 69.430000 | \n",
" 68.830002 | \n",
" 69.120003 | \n",
" 6889500 | \n",
" 68.615479 | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
1258 rows × 7 columns
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume Adj Close \\\n",
"Date \n",
"2012-01-03 59.970001 61.060001 59.869999 60.330002 12668800 52.619235 \n",
"2012-01-04 60.209999 60.349998 59.470001 59.709999 9593300 52.078475 \n",
"2012-01-05 59.349998 59.619999 58.369999 59.419998 12768200 51.825539 \n",
"2012-01-06 59.419998 59.450001 58.869999 59.000000 8069400 51.459220 \n",
"2012-01-09 59.029999 59.549999 58.919998 59.180000 6679300 51.616215 \n",
"... ... ... ... ... ... ... \n",
"2016-12-23 69.430000 69.750000 69.360001 69.540001 4803900 69.032411 \n",
"2016-12-27 69.300003 69.820000 69.250000 69.699997 4435700 69.191240 \n",
"2016-12-28 69.940002 70.000000 69.260002 69.309998 4875700 68.804087 \n",
"2016-12-29 69.209999 69.519997 69.120003 69.260002 4298400 68.754456 \n",
"2016-12-30 69.120003 69.430000 68.830002 69.120003 6889500 68.615479 \n",
"\n",
" num \n",
"Date \n",
"2012-01-03 NaN \n",
"2012-01-04 NaN \n",
"2012-01-05 NaN \n",
"2012-01-06 NaN \n",
"2012-01-09 NaN \n",
"... ... \n",
"2016-12-23 NaN \n",
"2016-12-27 NaN \n",
"2016-12-28 NaN \n",
"2016-12-29 NaN \n",
"2016-12-30 NaN \n",
"\n",
"[1258 rows x 7 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.join(df2)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"ffill_df = df.join(df2).fillna(method=\"ffill\")"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Volume | \n",
" Adj Close | \n",
" num | \n",
"
\n",
" \n",
" Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-01-03 | \n",
" 59.970001 | \n",
" 61.060001 | \n",
" 59.869999 | \n",
" 60.330002 | \n",
" 12668800 | \n",
" 52.619235 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-01-04 | \n",
" 60.209999 | \n",
" 60.349998 | \n",
" 59.470001 | \n",
" 59.709999 | \n",
" 9593300 | \n",
" 52.078475 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-01-05 | \n",
" 59.349998 | \n",
" 59.619999 | \n",
" 58.369999 | \n",
" 59.419998 | \n",
" 12768200 | \n",
" 51.825539 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-01-06 | \n",
" 59.419998 | \n",
" 59.450001 | \n",
" 58.869999 | \n",
" 59.000000 | \n",
" 8069400 | \n",
" 51.459220 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-01-09 | \n",
" 59.029999 | \n",
" 59.549999 | \n",
" 58.919998 | \n",
" 59.180000 | \n",
" 6679300 | \n",
" 51.616215 | \n",
" NaN | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 2016-12-23 | \n",
" 69.430000 | \n",
" 69.750000 | \n",
" 69.360001 | \n",
" 69.540001 | \n",
" 4803900 | \n",
" 69.032411 | \n",
" 30.0 | \n",
"
\n",
" \n",
" 2016-12-27 | \n",
" 69.300003 | \n",
" 69.820000 | \n",
" 69.250000 | \n",
" 69.699997 | \n",
" 4435700 | \n",
" 69.191240 | \n",
" 30.0 | \n",
"
\n",
" \n",
" 2016-12-28 | \n",
" 69.940002 | \n",
" 70.000000 | \n",
" 69.260002 | \n",
" 69.309998 | \n",
" 4875700 | \n",
" 68.804087 | \n",
" 30.0 | \n",
"
\n",
" \n",
" 2016-12-29 | \n",
" 69.209999 | \n",
" 69.519997 | \n",
" 69.120003 | \n",
" 69.260002 | \n",
" 4298400 | \n",
" 68.754456 | \n",
" 30.0 | \n",
"
\n",
" \n",
" 2016-12-30 | \n",
" 69.120003 | \n",
" 69.430000 | \n",
" 68.830002 | \n",
" 69.120003 | \n",
" 6889500 | \n",
" 68.615479 | \n",
" 30.0 | \n",
"
\n",
" \n",
"
\n",
"
1258 rows × 7 columns
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume Adj Close \\\n",
"Date \n",
"2012-01-03 59.970001 61.060001 59.869999 60.330002 12668800 52.619235 \n",
"2012-01-04 60.209999 60.349998 59.470001 59.709999 9593300 52.078475 \n",
"2012-01-05 59.349998 59.619999 58.369999 59.419998 12768200 51.825539 \n",
"2012-01-06 59.419998 59.450001 58.869999 59.000000 8069400 51.459220 \n",
"2012-01-09 59.029999 59.549999 58.919998 59.180000 6679300 51.616215 \n",
"... ... ... ... ... ... ... \n",
"2016-12-23 69.430000 69.750000 69.360001 69.540001 4803900 69.032411 \n",
"2016-12-27 69.300003 69.820000 69.250000 69.699997 4435700 69.191240 \n",
"2016-12-28 69.940002 70.000000 69.260002 69.309998 4875700 68.804087 \n",
"2016-12-29 69.209999 69.519997 69.120003 69.260002 4298400 68.754456 \n",
"2016-12-30 69.120003 69.430000 68.830002 69.120003 6889500 68.615479 \n",
"\n",
" num \n",
"Date \n",
"2012-01-03 NaN \n",
"2012-01-04 NaN \n",
"2012-01-05 NaN \n",
"2012-01-06 NaN \n",
"2012-01-09 NaN \n",
"... ... \n",
"2016-12-23 30.0 \n",
"2016-12-27 30.0 \n",
"2016-12-28 30.0 \n",
"2016-12-29 30.0 \n",
"2016-12-30 30.0 \n",
"\n",
"[1258 rows x 7 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ffill_df"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Volume | \n",
" Adj Close | \n",
" num | \n",
"
\n",
" \n",
" Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-03-28 | \n",
" 61.150002 | \n",
" 61.480000 | \n",
" 60.980000 | \n",
" 61.189999 | \n",
" 7124000 | \n",
" 53.726534 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-03-29 | \n",
" 60.770000 | \n",
" 60.950001 | \n",
" 60.619999 | \n",
" 60.820000 | \n",
" 6691700 | \n",
" 53.401665 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-03-30 | \n",
" 61.070000 | \n",
" 61.419998 | \n",
" 60.919998 | \n",
" 61.200001 | \n",
" 6941400 | \n",
" 53.735316 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-04-02 | \n",
" 61.080002 | \n",
" 61.490002 | \n",
" 60.970001 | \n",
" 61.360001 | \n",
" 6465900 | \n",
" 53.875801 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-04-03 | \n",
" 61.139999 | \n",
" 61.410000 | \n",
" 60.240002 | \n",
" 60.650002 | \n",
" 11180100 | \n",
" 53.252402 | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume Adj Close \\\n",
"Date \n",
"2012-03-28 61.150002 61.480000 60.980000 61.189999 7124000 53.726534 \n",
"2012-03-29 60.770000 60.950001 60.619999 60.820000 6691700 53.401665 \n",
"2012-03-30 61.070000 61.419998 60.919998 61.200001 6941400 53.735316 \n",
"2012-04-02 61.080002 61.490002 60.970001 61.360001 6465900 53.875801 \n",
"2012-04-03 61.139999 61.410000 60.240002 60.650002 11180100 53.252402 \n",
"\n",
" num \n",
"Date \n",
"2012-03-28 NaN \n",
"2012-03-29 NaN \n",
"2012-03-30 NaN \n",
"2012-04-02 NaN \n",
"2012-04-03 NaN "
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ffill_df[\"2012-03-28\":\"2012-04-03\"]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"One way to solve the problem (there are many other way to fix it)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"df_all_date = df.reindex(pd.date_range(\"2012-01-03\", \"2016-12-31\"))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Open NaN\n",
"High NaN\n",
"Low NaN\n",
"Close NaN\n",
"Volume NaN\n",
"Adj Close NaN\n",
"Name: 2012-03-31 00:00:00, dtype: float64"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_all_date.loc[\"2012-03-31\"]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"ffill_df = df_all_date.join(df2)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Volume | \n",
" Adj Close | \n",
" num | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-03-28 | \n",
" 61.150002 | \n",
" 61.480000 | \n",
" 60.980000 | \n",
" 61.189999 | \n",
" 7124000.0 | \n",
" 53.726534 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-03-29 | \n",
" 60.770000 | \n",
" 60.950001 | \n",
" 60.619999 | \n",
" 60.820000 | \n",
" 6691700.0 | \n",
" 53.401665 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-03-30 | \n",
" 61.070000 | \n",
" 61.419998 | \n",
" 60.919998 | \n",
" 61.200001 | \n",
" 6941400.0 | \n",
" 53.735316 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-03-31 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" 10.0 | \n",
"
\n",
" \n",
" 2012-04-01 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-04-02 | \n",
" 61.080002 | \n",
" 61.490002 | \n",
" 60.970001 | \n",
" 61.360001 | \n",
" 6465900.0 | \n",
" 53.875801 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-04-03 | \n",
" 61.139999 | \n",
" 61.410000 | \n",
" 60.240002 | \n",
" 60.650002 | \n",
" 11180100.0 | \n",
" 53.252402 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-04-04 | \n",
" 60.529999 | \n",
" 60.590000 | \n",
" 60.020000 | \n",
" 60.259998 | \n",
" 10851700.0 | \n",
" 52.909968 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-04-05 | \n",
" 60.200001 | \n",
" 60.689999 | \n",
" 60.070000 | \n",
" 60.669998 | \n",
" 6528700.0 | \n",
" 53.269959 | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume Adj Close \\\n",
"2012-03-28 61.150002 61.480000 60.980000 61.189999 7124000.0 53.726534 \n",
"2012-03-29 60.770000 60.950001 60.619999 60.820000 6691700.0 53.401665 \n",
"2012-03-30 61.070000 61.419998 60.919998 61.200001 6941400.0 53.735316 \n",
"2012-03-31 NaN NaN NaN NaN NaN NaN \n",
"2012-04-01 NaN NaN NaN NaN NaN NaN \n",
"2012-04-02 61.080002 61.490002 60.970001 61.360001 6465900.0 53.875801 \n",
"2012-04-03 61.139999 61.410000 60.240002 60.650002 11180100.0 53.252402 \n",
"2012-04-04 60.529999 60.590000 60.020000 60.259998 10851700.0 52.909968 \n",
"2012-04-05 60.200001 60.689999 60.070000 60.669998 6528700.0 53.269959 \n",
"\n",
" num \n",
"2012-03-28 NaN \n",
"2012-03-29 NaN \n",
"2012-03-30 NaN \n",
"2012-03-31 10.0 \n",
"2012-04-01 NaN \n",
"2012-04-02 NaN \n",
"2012-04-03 NaN \n",
"2012-04-04 NaN \n",
"2012-04-05 NaN "
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ffill_df.loc[\"2012-03-28\":\"2012-04-05\"]"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"ffill_df[\"num\"] = ffill_df[\"num\"].fillna(method=\"ffill\")"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Volume | \n",
" Adj Close | \n",
" num | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-03-28 | \n",
" 61.150002 | \n",
" 61.480000 | \n",
" 60.980000 | \n",
" 61.189999 | \n",
" 7124000.0 | \n",
" 53.726534 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-03-29 | \n",
" 60.770000 | \n",
" 60.950001 | \n",
" 60.619999 | \n",
" 60.820000 | \n",
" 6691700.0 | \n",
" 53.401665 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-03-30 | \n",
" 61.070000 | \n",
" 61.419998 | \n",
" 60.919998 | \n",
" 61.200001 | \n",
" 6941400.0 | \n",
" 53.735316 | \n",
" NaN | \n",
"
\n",
" \n",
" 2012-03-31 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" 10.0 | \n",
"
\n",
" \n",
" 2012-04-01 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" 10.0 | \n",
"
\n",
" \n",
" 2012-04-02 | \n",
" 61.080002 | \n",
" 61.490002 | \n",
" 60.970001 | \n",
" 61.360001 | \n",
" 6465900.0 | \n",
" 53.875801 | \n",
" 10.0 | \n",
"
\n",
" \n",
" 2012-04-03 | \n",
" 61.139999 | \n",
" 61.410000 | \n",
" 60.240002 | \n",
" 60.650002 | \n",
" 11180100.0 | \n",
" 53.252402 | \n",
" 10.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume Adj Close \\\n",
"2012-03-28 61.150002 61.480000 60.980000 61.189999 7124000.0 53.726534 \n",
"2012-03-29 60.770000 60.950001 60.619999 60.820000 6691700.0 53.401665 \n",
"2012-03-30 61.070000 61.419998 60.919998 61.200001 6941400.0 53.735316 \n",
"2012-03-31 NaN NaN NaN NaN NaN NaN \n",
"2012-04-01 NaN NaN NaN NaN NaN NaN \n",
"2012-04-02 61.080002 61.490002 60.970001 61.360001 6465900.0 53.875801 \n",
"2012-04-03 61.139999 61.410000 60.240002 60.650002 11180100.0 53.252402 \n",
"\n",
" num \n",
"2012-03-28 NaN \n",
"2012-03-29 NaN \n",
"2012-03-30 NaN \n",
"2012-03-31 10.0 \n",
"2012-04-01 10.0 \n",
"2012-04-02 10.0 \n",
"2012-04-03 10.0 "
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ffill_df[\"2012-03-28\":\"2012-04-03\"]"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Volume | \n",
" Adj Close | \n",
" num | \n",
"
\n",
" \n",
" \n",
" \n",
" 2012-04-02 | \n",
" 61.080002 | \n",
" 61.490002 | \n",
" 60.970001 | \n",
" 61.360001 | \n",
" 6465900.0 | \n",
" 53.875801 | \n",
" 10.0 | \n",
"
\n",
" \n",
" 2012-04-03 | \n",
" 61.139999 | \n",
" 61.410000 | \n",
" 60.240002 | \n",
" 60.650002 | \n",
" 11180100.0 | \n",
" 53.252402 | \n",
" 10.0 | \n",
"
\n",
" \n",
" 2012-04-04 | \n",
" 60.529999 | \n",
" 60.590000 | \n",
" 60.020000 | \n",
" 60.259998 | \n",
" 10851700.0 | \n",
" 52.909968 | \n",
" 10.0 | \n",
"
\n",
" \n",
" 2012-04-05 | \n",
" 60.200001 | \n",
" 60.689999 | \n",
" 60.070000 | \n",
" 60.669998 | \n",
" 6528700.0 | \n",
" 53.269959 | \n",
" 10.0 | \n",
"
\n",
" \n",
" 2012-04-09 | \n",
" 60.220001 | \n",
" 60.340000 | \n",
" 60.080002 | \n",
" 60.130001 | \n",
" 6831700.0 | \n",
" 52.795827 | \n",
" 10.0 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 2016-12-23 | \n",
" 69.430000 | \n",
" 69.750000 | \n",
" 69.360001 | \n",
" 69.540001 | \n",
" 4803900.0 | \n",
" 69.032411 | \n",
" 30.0 | \n",
"
\n",
" \n",
" 2016-12-27 | \n",
" 69.300003 | \n",
" 69.820000 | \n",
" 69.250000 | \n",
" 69.699997 | \n",
" 4435700.0 | \n",
" 69.191240 | \n",
" 30.0 | \n",
"
\n",
" \n",
" 2016-12-28 | \n",
" 69.940002 | \n",
" 70.000000 | \n",
" 69.260002 | \n",
" 69.309998 | \n",
" 4875700.0 | \n",
" 68.804087 | \n",
" 30.0 | \n",
"
\n",
" \n",
" 2016-12-29 | \n",
" 69.209999 | \n",
" 69.519997 | \n",
" 69.120003 | \n",
" 69.260002 | \n",
" 4298400.0 | \n",
" 68.754456 | \n",
" 30.0 | \n",
"
\n",
" \n",
" 2016-12-30 | \n",
" 69.120003 | \n",
" 69.430000 | \n",
" 68.830002 | \n",
" 69.120003 | \n",
" 6889500.0 | \n",
" 68.615479 | \n",
" 30.0 | \n",
"
\n",
" \n",
"
\n",
"
1196 rows × 7 columns
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume Adj Close \\\n",
"2012-04-02 61.080002 61.490002 60.970001 61.360001 6465900.0 53.875801 \n",
"2012-04-03 61.139999 61.410000 60.240002 60.650002 11180100.0 53.252402 \n",
"2012-04-04 60.529999 60.590000 60.020000 60.259998 10851700.0 52.909968 \n",
"2012-04-05 60.200001 60.689999 60.070000 60.669998 6528700.0 53.269959 \n",
"2012-04-09 60.220001 60.340000 60.080002 60.130001 6831700.0 52.795827 \n",
"... ... ... ... ... ... ... \n",
"2016-12-23 69.430000 69.750000 69.360001 69.540001 4803900.0 69.032411 \n",
"2016-12-27 69.300003 69.820000 69.250000 69.699997 4435700.0 69.191240 \n",
"2016-12-28 69.940002 70.000000 69.260002 69.309998 4875700.0 68.804087 \n",
"2016-12-29 69.209999 69.519997 69.120003 69.260002 4298400.0 68.754456 \n",
"2016-12-30 69.120003 69.430000 68.830002 69.120003 6889500.0 68.615479 \n",
"\n",
" num \n",
"2012-04-02 10.0 \n",
"2012-04-03 10.0 \n",
"2012-04-04 10.0 \n",
"2012-04-05 10.0 \n",
"2012-04-09 10.0 \n",
"... ... \n",
"2016-12-23 30.0 \n",
"2016-12-27 30.0 \n",
"2016-12-28 30.0 \n",
"2016-12-29 30.0 \n",
"2016-12-30 30.0 \n",
"\n",
"[1196 rows x 7 columns]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ffill_df.dropna()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.11.0"
}
},
"nbformat": 4,
"nbformat_minor": 4
}