{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# time_series" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "matplotlib.style.use(\"ggplot\")" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(DatetimeIndex(['2016-03-01', '2016-03-02', '2016-03-03', '2016-03-04',\n", " '2016-03-05', '2016-03-06', '2016-03-07', '2016-03-08',\n", " '2016-03-09', '2016-03-10', '2016-03-11', '2016-03-12',\n", " '2016-03-13', '2016-03-14', '2016-03-15', '2016-03-16',\n", " '2016-03-17', '2016-03-18', '2016-03-19', '2016-03-20',\n", " '2016-03-21', '2016-03-22', '2016-03-23', '2016-03-24',\n", " '2016-03-25', '2016-03-26', '2016-03-27', '2016-03-28',\n", " '2016-03-29', '2016-03-30', '2016-03-31'],\n", " dtype='datetime64[ns]', freq='D'), 31)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dates = pd.date_range(start=\"2016-03-01\", end=\"2016-03-31\")\n", "dates, len(dates)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(DatetimeIndex(['2016-03-01', '2016-03-02', '2016-03-03', '2016-03-04',\n", " '2016-03-07', '2016-03-08', '2016-03-09', '2016-03-10',\n", " '2016-03-11', '2016-03-14', '2016-03-15', '2016-03-16',\n", " '2016-03-17', '2016-03-18', '2016-03-21', '2016-03-22',\n", " '2016-03-23', '2016-03-24', '2016-03-25', '2016-03-28',\n", " '2016-03-29', '2016-03-30', '2016-03-31'],\n", " dtype='datetime64[ns]', freq='B'), 23)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# b is business\n", "bdates = pd.bdate_range(start=\"2016-03-01\", end=\"2016-03-31\")\n", "bdates, len(bdates)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "TimedeltaIndex([ '1 days', '2 days', '3 days', '4 days', '5 days',\n", " '6 days', '7 days', '8 days', '9 days', '10 days',\n", " '11 days', '12 days', '13 days', '14 days', '15 days',\n", " '16 days', '17 days', '18 days', '19 days', '20 days',\n", " '21 days', '22 days', '23 days', '24 days', '25 days',\n", " '26 days', '27 days', '28 days', '29 days', '30 days',\n", " '31 days'],\n", " dtype='timedelta64[ns]', freq='D')" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.timedelta_range(start=\"1 days\", end=\"31 days\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.period_range" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "PeriodIndex(['2016-03-01', '2016-03-02', '2016-03-03', '2016-03-04',\n", " '2016-03-05', '2016-03-06', '2016-03-07', '2016-03-08',\n", " '2016-03-09', '2016-03-10', '2016-03-11', '2016-03-12',\n", " '2016-03-13', '2016-03-14', '2016-03-15', '2016-03-16',\n", " '2016-03-17', '2016-03-18', '2016-03-19', '2016-03-20',\n", " '2016-03-21', '2016-03-22', '2016-03-23', '2016-03-24',\n", " '2016-03-25', '2016-03-26', '2016-03-27', '2016-03-28',\n", " '2016-03-29', '2016-03-30', '2016-03-31'],\n", " dtype='int64', freq='D')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pindex = pd.period_range(start=\"2016-03-01\", end=\"2016-03-31\")\n", "pindex" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(Period('2016-03-01', 'D'), pandas._period.Period)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pindex[0], type(pindex[0])" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(pandas._period.Period, pandas.core.frame.DataFrame)" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.Period, pd.DataFrame" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# http://docs.python.jp/3/library/io.html\n", "# http://stackoverflow.com/questions/4330812/how-do-i-clear-a-stringio-object\n", "import sys\n", "import io\n", "from contextlib import contextmanager\n", "\n", "\n", "@contextmanager\n", "def capture():\n", " _stdout = sys.stdout\n", " with io.StringIO() as strio:\n", " try:\n", " sys.stdout = strio\n", " yield strio\n", " finally:\n", " sys.stdout = _stdout" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "output\n", "<_io.StringIO object at 0x11721fdc8> False\n", "<_io.StringIO object at 0x11721fdc8> False\n", "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000Help on class Period in module pandas._period:\n", "\n", "class Period(builtins.object)\n", " | Represents an period of time\n", " | \n", " | Parameters\n", " | ----------\n", " | value : Period or compat.string_types, default None\n", " | The time period represented (e.g., '4Q2005')\n", " | freq : str, default None\n", " | One of pandas period strings or corresponding objects\n", " | year : int, default None\n", " | month : int, default 1\n", " | quarter : int, default None\n", " | day : int, default 1\n", " | hour : int, default 0\n", " | minute : int, default 0\n", " | second : int, default 0\n", " | \n", " | Methods defined here:\n", "True\n" ] } ], "source": [ "import pandas as pd\n", "\n", "with capture() as c:\n", " print(c, c.closed)\n", " c.flush()\n", " c_log1 = c.getvalue()\n", " c.truncate()\n", " c_log2 = c.getvalue()\n", " c.truncate(0)\n", " help(pd.Period)\n", " help_doc = c.getvalue()\n", " \n", "print(\"output\")\n", "print(c_log1.strip())\n", "print(c_log2.strip())\n", "print(\"\\n\".join(help_doc.splitlines()[:20]))\n", "print(c.closed)\n" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [], "source": [ "pd.Period?" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Period('2016-03-06', 'D')" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "period = pd.Period(year=2016, month=3, day=6, freq=\"D\")\n", "period" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Period('2016-03-06', 'D')" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.Period(\"2016-03-06\")" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "(Timestamp('2016-03-06 00:00:00'), Timestamp('2016-03-06 23:59:59.999999999'))" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "period.start_time, period.end_time" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[False, True, True, True]" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import datetime\n", "dt_start = datetime.datetime(2016, 3, 6)\n", "dt_end = datetime.datetime(2016, 3, 6, 23, 59, 59)\n", "[\n", " period.start_time < dt_start <= period.end_time,\n", " period.start_time <= dt_start <= period.end_time,\n", " period.start_time <= dt_end <= period.end_time,\n", " period.start_time <= dt_end < period.end_time,\n", "]" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "DatetimeIndex(['2016-03-02', '2016-03-03', '2016-03-04', '2016-03-05',\n", " '2016-03-06', '2016-03-07', '2016-03-08', '2016-03-09',\n", " '2016-03-10', '2016-03-11', '2016-03-12', '2016-03-13',\n", " '2016-03-14', '2016-03-15', '2016-03-16', '2016-03-17',\n", " '2016-03-18', '2016-03-19', '2016-03-20', '2016-03-21',\n", " '2016-03-22', '2016-03-23', '2016-03-24', '2016-03-25',\n", " '2016-03-26', '2016-03-27', '2016-03-28', '2016-03-29',\n", " '2016-03-30', '2016-03-31', '2016-04-01'],\n", " dtype='datetime64[ns]', freq='D')" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "date_range = pd.date_range(\"2016-03-01\", periods=31)\n", "end_exclude = date_range.shift(1)\n", "end_exclude" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "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", "
end_excludestart_date
262016-03-282016-03-27
272016-03-292016-03-28
282016-03-302016-03-29
292016-03-312016-03-30
302016-04-012016-03-31
\n", "
" ], "text/plain": [ " end_exclude start_date\n", "26 2016-03-28 2016-03-27\n", "27 2016-03-29 2016-03-28\n", "28 2016-03-30 2016-03-29\n", "29 2016-03-31 2016-03-30\n", "30 2016-04-01 2016-03-31" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "date_df = pd.DataFrame({\n", " \"start_date\": date_range,\n", " \"end_exclude\": end_exclude\n", "})\n", "date_df.tail()" ] } ], "metadata": { "kernelspec": { "display_name": "Python [default]", "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.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }