Created
June 10, 2020 11:45
-
-
Save keimina/107b6fcd655aca669cba244877554ea1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"data = pd.read_csv('examples/macrodata.csv')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"periods = pd.PeriodIndex(year=data.year, quarter=data.quarter, name='date')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 1959.0\n", | |
"1 1959.0\n", | |
"2 1959.0\n", | |
"3 1959.0\n", | |
"4 1960.0\n", | |
" ... \n", | |
"198 2008.0\n", | |
"199 2008.0\n", | |
"200 2009.0\n", | |
"201 2009.0\n", | |
"202 2009.0\n", | |
"Name: year, Length: 203, dtype: float64" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data.year" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 1.0\n", | |
"1 2.0\n", | |
"2 3.0\n", | |
"3 4.0\n", | |
"4 1.0\n", | |
" ... \n", | |
"198 3.0\n", | |
"199 4.0\n", | |
"200 1.0\n", | |
"201 2.0\n", | |
"202 3.0\n", | |
"Name: quarter, Length: 203, dtype: float64" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"data.quarter" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"PeriodIndex(['1959Q1', '1959Q2', '1959Q3', '1959Q4', '1960Q1', '1960Q2',\n", | |
" '1960Q3', '1960Q4', '1961Q1', '1961Q2',\n", | |
" ...\n", | |
" '2007Q2', '2007Q3', '2007Q4', '2008Q1', '2008Q2', '2008Q3',\n", | |
" '2008Q4', '2009Q1', '2009Q2', '2009Q3'],\n", | |
" dtype='period[Q-DEC]', name='date', length=203, freq='Q-DEC')" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"periods" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"columns = pd.Index(['realgdp', 'infl', 'unemp'], name='item')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"data = data.reindex(columns=columns)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"DatetimeIndex(['1959-03-31 23:59:59.999999999',\n", | |
" '1959-06-30 23:59:59.999999999',\n", | |
" '1959-09-30 23:59:59.999999999',\n", | |
" '1959-12-31 23:59:59.999999999',\n", | |
" '1960-03-31 23:59:59.999999999',\n", | |
" '1960-06-30 23:59:59.999999999',\n", | |
" '1960-09-30 23:59:59.999999999',\n", | |
" '1960-12-31 23:59:59.999999999',\n", | |
" '1961-03-31 23:59:59.999999999',\n", | |
" '1961-06-30 23:59:59.999999999',\n", | |
" ...\n", | |
" '2007-06-30 23:59:59.999999999',\n", | |
" '2007-09-30 23:59:59.999999999',\n", | |
" '2007-12-31 23:59:59.999999999',\n", | |
" '2008-03-31 23:59:59.999999999',\n", | |
" '2008-06-30 23:59:59.999999999',\n", | |
" '2008-09-30 23:59:59.999999999',\n", | |
" '2008-12-31 23:59:59.999999999',\n", | |
" '2009-03-31 23:59:59.999999999',\n", | |
" '2009-06-30 23:59:59.999999999',\n", | |
" '2009-09-30 23:59:59.999999999'],\n", | |
" dtype='datetime64[ns]', name='date', length=203, freq='Q-DEC')" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"periods.to_timestamp('D', 'end')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"data.index = periods.to_timestamp('D', 'end')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"date item \n", | |
"1959-03-31 23:59:59.999999999 realgdp 2710.349\n", | |
" infl 0.000\n", | |
" unemp 5.800\n", | |
"1959-06-30 23:59:59.999999999 realgdp 2778.801\n", | |
" infl 2.340\n", | |
" ... \n", | |
"2009-06-30 23:59:59.999999999 infl 3.370\n", | |
" unemp 9.200\n", | |
"2009-09-30 23:59:59.999999999 realgdp 12990.341\n", | |
" infl 3.560\n", | |
" unemp 9.600\n", | |
"Length: 609, dtype: float64" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ldata = data.stack()\n", | |
"ldata" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>date</th>\n", | |
" <th>item</th>\n", | |
" <th>0</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <td>0</td>\n", | |
" <td>1959-03-31 23:59:59.999999999</td>\n", | |
" <td>realgdp</td>\n", | |
" <td>2710.349</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>1</td>\n", | |
" <td>1959-03-31 23:59:59.999999999</td>\n", | |
" <td>infl</td>\n", | |
" <td>0.000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>2</td>\n", | |
" <td>1959-03-31 23:59:59.999999999</td>\n", | |
" <td>unemp</td>\n", | |
" <td>5.800</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>3</td>\n", | |
" <td>1959-06-30 23:59:59.999999999</td>\n", | |
" <td>realgdp</td>\n", | |
" <td>2778.801</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>4</td>\n", | |
" <td>1959-06-30 23:59:59.999999999</td>\n", | |
" <td>infl</td>\n", | |
" <td>2.340</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>604</td>\n", | |
" <td>2009-06-30 23:59:59.999999999</td>\n", | |
" <td>infl</td>\n", | |
" <td>3.370</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>605</td>\n", | |
" <td>2009-06-30 23:59:59.999999999</td>\n", | |
" <td>unemp</td>\n", | |
" <td>9.200</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>606</td>\n", | |
" <td>2009-09-30 23:59:59.999999999</td>\n", | |
" <td>realgdp</td>\n", | |
" <td>12990.341</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>607</td>\n", | |
" <td>2009-09-30 23:59:59.999999999</td>\n", | |
" <td>infl</td>\n", | |
" <td>3.560</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>608</td>\n", | |
" <td>2009-09-30 23:59:59.999999999</td>\n", | |
" <td>unemp</td>\n", | |
" <td>9.600</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>609 rows × 3 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" date item 0\n", | |
"0 1959-03-31 23:59:59.999999999 realgdp 2710.349\n", | |
"1 1959-03-31 23:59:59.999999999 infl 0.000\n", | |
"2 1959-03-31 23:59:59.999999999 unemp 5.800\n", | |
"3 1959-06-30 23:59:59.999999999 realgdp 2778.801\n", | |
"4 1959-06-30 23:59:59.999999999 infl 2.340\n", | |
".. ... ... ...\n", | |
"604 2009-06-30 23:59:59.999999999 infl 3.370\n", | |
"605 2009-06-30 23:59:59.999999999 unemp 9.200\n", | |
"606 2009-09-30 23:59:59.999999999 realgdp 12990.341\n", | |
"607 2009-09-30 23:59:59.999999999 infl 3.560\n", | |
"608 2009-09-30 23:59:59.999999999 unemp 9.600\n", | |
"\n", | |
"[609 rows x 3 columns]" | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ldata = ldata.reset_index()\n", | |
"ldata" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>date</th>\n", | |
" <th>item</th>\n", | |
" <th>value</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <td>0</td>\n", | |
" <td>1959-03-31 23:59:59.999999999</td>\n", | |
" <td>realgdp</td>\n", | |
" <td>2710.349</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>1</td>\n", | |
" <td>1959-03-31 23:59:59.999999999</td>\n", | |
" <td>infl</td>\n", | |
" <td>0.000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>2</td>\n", | |
" <td>1959-03-31 23:59:59.999999999</td>\n", | |
" <td>unemp</td>\n", | |
" <td>5.800</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>3</td>\n", | |
" <td>1959-06-30 23:59:59.999999999</td>\n", | |
" <td>realgdp</td>\n", | |
" <td>2778.801</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>4</td>\n", | |
" <td>1959-06-30 23:59:59.999999999</td>\n", | |
" <td>infl</td>\n", | |
" <td>2.340</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>604</td>\n", | |
" <td>2009-06-30 23:59:59.999999999</td>\n", | |
" <td>infl</td>\n", | |
" <td>3.370</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>605</td>\n", | |
" <td>2009-06-30 23:59:59.999999999</td>\n", | |
" <td>unemp</td>\n", | |
" <td>9.200</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>606</td>\n", | |
" <td>2009-09-30 23:59:59.999999999</td>\n", | |
" <td>realgdp</td>\n", | |
" <td>12990.341</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>607</td>\n", | |
" <td>2009-09-30 23:59:59.999999999</td>\n", | |
" <td>infl</td>\n", | |
" <td>3.560</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <td>608</td>\n", | |
" <td>2009-09-30 23:59:59.999999999</td>\n", | |
" <td>unemp</td>\n", | |
" <td>9.600</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>609 rows × 3 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" date item value\n", | |
"0 1959-03-31 23:59:59.999999999 realgdp 2710.349\n", | |
"1 1959-03-31 23:59:59.999999999 infl 0.000\n", | |
"2 1959-03-31 23:59:59.999999999 unemp 5.800\n", | |
"3 1959-06-30 23:59:59.999999999 realgdp 2778.801\n", | |
"4 1959-06-30 23:59:59.999999999 infl 2.340\n", | |
".. ... ... ...\n", | |
"604 2009-06-30 23:59:59.999999999 infl 3.370\n", | |
"605 2009-06-30 23:59:59.999999999 unemp 9.200\n", | |
"606 2009-09-30 23:59:59.999999999 realgdp 12990.341\n", | |
"607 2009-09-30 23:59:59.999999999 infl 3.560\n", | |
"608 2009-09-30 23:59:59.999999999 unemp 9.600\n", | |
"\n", | |
"[609 rows x 3 columns]" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ldata = ldata.rename(columns={0: 'value'})\n", | |
"ldata" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# pd.pivot は reset_index と unstack でも実現できる" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.7.4" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment