{ "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Close
Date
2012-01-0359.97000161.06000159.86999960.3300021266880052.619235
2012-01-0460.20999960.34999859.47000159.709999959330052.078475
2012-01-0559.34999859.61999958.36999959.4199981276820051.825539
2012-01-0659.41999859.45000158.86999959.000000806940051.459220
2012-01-0959.02999959.54999958.91999859.180000667930051.616215
.....................
2016-12-2369.43000069.75000069.36000169.540001480390069.032411
2016-12-2769.30000369.82000069.25000069.699997443570069.191240
2016-12-2869.94000270.00000069.26000269.309998487570068.804087
2016-12-2969.20999969.51999769.12000369.260002429840068.754456
2016-12-3069.12000369.43000068.83000269.120003688950068.615479
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Close
Date
2012-03-2960.77000060.95000160.61999960.820000669170053.401665
2012-03-3061.07000061.41999860.91999861.200001694140053.735316
2012-04-0261.08000261.49000260.97000161.360001646590053.875801
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
num
Date
2012-03-3110
2012-06-3020
2012-09-3030
2012-12-3140
2013-03-3111
2013-06-3023
2013-09-3036
2013-12-3143
2014-03-3145
2014-06-3034
2014-09-3030
2014-12-3147
2015-03-3110
2015-06-3044
2015-09-3046
2015-12-3146
2016-03-3122
2016-06-3023
2016-09-3030
2016-12-3130
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Closenum
Date
2012-03-3161.07000061.41999860.91999861.200001694140053.73531610
2012-06-3068.94000269.72000168.55999869.7200011066340061.63151720
2012-09-3073.86000174.05999873.41999873.800003602100065.59100330
2012-12-3167.48999868.30000367.37000368.230003701250060.97707740
2013-03-3174.83999674.97000174.37999774.830002736830067.30694311
2013-06-3075.11000175.66000474.44999774.4899981454830067.40299423
2013-09-3074.27999974.59999873.73999873.959999675250067.32980036
2013-12-3178.66000478.87000378.34999878.690002385910072.05278343
2014-03-3176.34999876.77999976.01999776.430000469560070.43490845
2014-06-3075.40000275.69000274.94000275.070000665380069.60989934
2014-09-3076.04000176.72000175.76999776.470001564070071.37521530
2014-12-3187.08000287.44000285.86000185.879997415140080.60608547
2015-03-3182.38999983.04000182.25000082.250000558770077.66269410
2015-06-3071.80999871.80999870.77999970.9300001110260067.39672444
2015-09-3064.43000064.94000263.93000064.839996797920062.03078046
2015-12-3161.33000261.72000161.16999861.299999655510059.13536346
2016-03-3168.75000069.19000268.47000168.489998628350066.56059522
2016-06-3072.57000073.19000272.32000073.019997871360071.48254923
2016-09-3071.50000072.45999971.40000272.120003998260071.08481430
2016-12-3169.12000369.43000068.83000269.120003688950068.61547930
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Closenum
Date
2012-03-3160.46290360.80725860.16048460.5195168.850221e+0652.88183910
2012-06-3062.88888963.40015962.59222263.0571431.155795e+0755.59439220
2012-09-3073.08158773.54968272.71761973.1749217.871587e+0664.89194930
2012-12-3172.17467872.62322671.64774172.0798398.660958e+0664.16167240
2013-03-3170.89883471.39300070.55266671.0260008.482003e+0663.58188011
2013-06-3076.87390677.41781376.41328176.8857817.656086e+0669.39360023
2013-09-3075.63796976.03046975.21359475.6290635.796625e+0668.67666236
2013-12-3177.37265677.80531376.92453177.4728135.966927e+0670.65124243
2014-03-3175.33934475.80278774.86327875.3372137.050402e+0669.10698345
2014-06-3077.03650877.39111176.68952477.0665086.048765e+0671.28464634
2014-09-3075.67484376.06250175.37593875.7485935.550031e+0670.52079530
2014-12-3180.95296981.60750080.43234481.0598447.431025e+0675.79778047
2015-03-3185.09622985.69901784.49180385.1072137.209713e+0679.99474610
2015-06-3076.67873077.06619176.19111176.4925407.481765e+0672.50182144
2015-09-3068.88437569.36609468.32859468.8253138.883412e+0665.66653446
2015-12-3160.26968860.78015659.77656360.1932811.247800e+0757.74323546
2016-03-3165.56475466.34606565.01557465.7765571.198041e+0763.58083422
2016-06-3069.35000069.85765668.91890669.4384378.751062e+0667.76290323
2016-09-3072.80859473.23093872.37171972.7828128.236991e+0671.53030030
2016-12-3170.02698570.47888969.60904870.0211118.628798e+0669.15031430
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Closenum
Date
2012-03-3160.52500260.92500260.39000060.7250017506500.053.21040910
2012-06-3061.70000162.49000261.54999962.06000110036900.054.52426820
2012-09-3073.05000373.94999772.94000273.5100027407400.065.23549530
2012-12-3172.09500172.59499771.61999972.1350027439350.064.18230540
2013-03-3170.49000271.32999870.37000270.7749987102200.063.25153611
2013-06-3077.21500077.85000376.68000177.2999997244050.069.64646223
2013-09-3075.53499976.43999975.04999975.7900015459000.068.99575036
2013-12-3177.73500078.10499977.27500277.9050025887050.071.16810043
2014-03-3174.83999675.33000274.44999774.9199986511200.068.79305145
2014-06-3077.00000077.37999776.54000177.0100025652300.071.18624934
2014-09-3075.90499976.21500075.62500075.9350014979900.070.77785230
2014-12-3181.77000183.10500081.47999982.9500016778750.077.42348747
2015-03-3185.43000085.97000184.90000285.6500026505700.080.39021410
2015-06-3077.83000278.36000177.30000377.8799976815000.073.53641844
2015-09-3071.31499971.70000170.68500171.3149997721700.067.91932646
2015-12-3159.40500060.22000159.00000059.55500010406450.057.30959346
2016-03-3166.13999966.66999865.50000066.33999611360500.063.99738722
2016-06-3069.47999969.89500168.96500069.4449997437400.067.62798523
2016-09-3072.95999973.27999972.45999972.9350017381850.071.71260230
2016-12-3169.94000270.38999969.47000169.9400027621300.069.03241130
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Closenum
Date
2012-01-0359.97000161.06000159.86999960.3300021266880052.619235NaN
2012-01-0460.20999960.34999859.47000159.709999959330052.078475NaN
2012-01-0559.34999859.61999958.36999959.4199981276820051.825539NaN
2012-01-0659.41999859.45000158.86999959.000000806940051.459220NaN
2012-01-0959.02999959.54999958.91999859.180000667930051.616215NaN
........................
2016-12-2369.43000069.75000069.36000169.540001480390069.032411NaN
2016-12-2769.30000369.82000069.25000069.699997443570069.191240NaN
2016-12-2869.94000270.00000069.26000269.309998487570068.804087NaN
2016-12-2969.20999969.51999769.12000369.260002429840068.754456NaN
2016-12-3069.12000369.43000068.83000269.120003688950068.615479NaN
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Closenum
Date
2012-01-0359.97000161.06000159.86999960.3300021266880052.619235NaN
2012-01-0460.20999960.34999859.47000159.709999959330052.078475NaN
2012-01-0559.34999859.61999958.36999959.4199981276820051.825539NaN
2012-01-0659.41999859.45000158.86999959.000000806940051.459220NaN
2012-01-0959.02999959.54999958.91999859.180000667930051.616215NaN
........................
2016-12-2369.43000069.75000069.36000169.540001480390069.03241130.0
2016-12-2769.30000369.82000069.25000069.699997443570069.19124030.0
2016-12-2869.94000270.00000069.26000269.309998487570068.80408730.0
2016-12-2969.20999969.51999769.12000369.260002429840068.75445630.0
2016-12-3069.12000369.43000068.83000269.120003688950068.61547930.0
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Closenum
Date
2012-03-2861.15000261.48000060.98000061.189999712400053.726534NaN
2012-03-2960.77000060.95000160.61999960.820000669170053.401665NaN
2012-03-3061.07000061.41999860.91999861.200001694140053.735316NaN
2012-04-0261.08000261.49000260.97000161.360001646590053.875801NaN
2012-04-0361.13999961.41000060.24000260.6500021118010053.252402NaN
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Closenum
2012-03-2861.15000261.48000060.98000061.1899997124000.053.726534NaN
2012-03-2960.77000060.95000160.61999960.8200006691700.053.401665NaN
2012-03-3061.07000061.41999860.91999861.2000016941400.053.735316NaN
2012-03-31NaNNaNNaNNaNNaNNaN10.0
2012-04-01NaNNaNNaNNaNNaNNaNNaN
2012-04-0261.08000261.49000260.97000161.3600016465900.053.875801NaN
2012-04-0361.13999961.41000060.24000260.65000211180100.053.252402NaN
2012-04-0460.52999960.59000060.02000060.25999810851700.052.909968NaN
2012-04-0560.20000160.68999960.07000060.6699986528700.053.269959NaN
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Closenum
2012-03-2861.15000261.48000060.98000061.1899997124000.053.726534NaN
2012-03-2960.77000060.95000160.61999960.8200006691700.053.401665NaN
2012-03-3061.07000061.41999860.91999861.2000016941400.053.735316NaN
2012-03-31NaNNaNNaNNaNNaNNaN10.0
2012-04-01NaNNaNNaNNaNNaNNaN10.0
2012-04-0261.08000261.49000260.97000161.3600016465900.053.87580110.0
2012-04-0361.13999961.41000060.24000260.65000211180100.053.25240210.0
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Closenum
2012-04-0261.08000261.49000260.97000161.3600016465900.053.87580110.0
2012-04-0361.13999961.41000060.24000260.65000211180100.053.25240210.0
2012-04-0460.52999960.59000060.02000060.25999810851700.052.90996810.0
2012-04-0560.20000160.68999960.07000060.6699986528700.053.26995910.0
2012-04-0960.22000160.34000060.08000260.1300016831700.052.79582710.0
........................
2016-12-2369.43000069.75000069.36000169.5400014803900.069.03241130.0
2016-12-2769.30000369.82000069.25000069.6999974435700.069.19124030.0
2016-12-2869.94000270.00000069.26000269.3099984875700.068.80408730.0
2016-12-2969.20999969.51999769.12000369.2600024298400.068.75445630.0
2016-12-3069.12000369.43000068.83000269.1200036889500.068.61547930.0
\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 }