{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Calender" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2017-02-09T22:06:22.687238", "start_time": "2017-02-09T22:06:22.630852" }, "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "| date | weekday | holiday_name | time | note |\n", "|:-----------|:----------|:---------------|:-------|:-------|\n", "| 2017-03-01 | 水 | | | |\n", "| 2017-03-02 | 木 | | | |\n", "| 2017-03-03 | 金 | | | |\n", "| 2017-03-04 | 土 | | | |\n", "| 2017-03-05 | 日 | | | |\n", "| 2017-03-06 | 月 | | | |\n", "| 2017-03-07 | 火 | | | |\n", "| 2017-03-08 | 水 | | | |\n", "| 2017-03-09 | 木 | | | |\n", "| 2017-03-10 | 金 | | | |\n", "| 2017-03-11 | 土 | | | |\n", "| 2017-03-12 | 日 | | | |\n", "| 2017-03-13 | 月 | | | |\n", "| 2017-03-14 | 火 | | | |\n", "| 2017-03-15 | 水 | | | |\n", "| 2017-03-16 | 木 | | | |\n", "| 2017-03-17 | 金 | | | |\n", "| 2017-03-18 | 土 | | | |\n", "| 2017-03-19 | 日 | | | |\n", "| 2017-03-20 | 月 | 春分の日 | | |\n", "| 2017-03-21 | 火 | | | |\n", "| 2017-03-22 | 水 | | | |\n", "| 2017-03-23 | 木 | | | |\n", "| 2017-03-24 | 金 | | | |\n", "| 2017-03-25 | 土 | | | |\n", "| 2017-03-26 | 日 | | | |\n", "| 2017-03-27 | 月 | | | |\n", "| 2017-03-28 | 火 | | | |\n", "| 2017-03-29 | 水 | | | |\n", "| 2017-03-30 | 木 | | | |\n", "| 2017-03-31 | 金 | | | |\n" ] } ], "source": [ "import pandas as pd\n", "import japandas as jpd\n", "import datetime\n", "import tabulate\n", "\n", "\n", "def make_schedule_table(start_date):\n", " end_date = jpd.to_datetime(start_date) + pd.offsets.MonthEnd(1)\n", " df = pd.DataFrame(dict(date=jpd.date_range(start_date, end_date)))\n", " weekdays = dict(enumerate(\"月火水木金土日\"))\n", " df[\"weekday\"] = df.date.dt.weekday.map(weekdays)\n", " df[\"date\"] = df.date.dt.date\n", "\n", " holiday_calender = jpd.JapaneseHolidayCalendar()\n", " rules = holiday_calender.rules\n", " holidays = pd.DataFrame(dict(holiday_name=list(map(lambda r: r.name, rules)),\n", " date=list(map(lambda r: datetime.date(r.year, r.month, r.day), rules))))\n", " df = df.merge(holidays, on=\"date\", how=\"left\")\n", " df[\"time\"] = \"\"\n", " df[\"note\"] = \"\"\n", " df = df.fillna(\"\")\n", "\n", " print(tabulate.tabulate(df, headers=\"keys\", tablefmt=\"pipe\", missingval=\"\", showindex=False))\n", "\n", "make_schedule_table(\"2017年3月1日\")" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2017-02-09T22:05:24.162447", "start_time": "2017-02-09T22:05:24.152857" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0 2011-01-01\n", "1 2011-01-02\n", "2 2011-01-03\n", "3 2011-01-04\n", "4 2011-01-05\n", "5 2011-01-06\n", "6 2011-01-07\n", "7 2011-01-08\n", "8 2011-01-09\n", "9 2011-01-10\n", "dtype: datetime64[ns]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.Series(pd.date_range(\"20110101\", \"20110110\"))#.dt.date" ] } ], "metadata": { "hide_input": false, "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" }, "toc": { "toc_cell": false, "toc_number_sections": true, "toc_threshold": 6, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }