Created
January 9, 2019 15:02
-
-
Save jorisvandenbossche/37c17bf6f3a67df8decb1d55fdd6def4 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": [ | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Regarding discussion of https://github.com/pandas-dev/pandas/issues/24559" | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "ts = pd.Timestamp('2000', tz='US/Pacific')\ntz = ts.tz", | |
"execution_count": 1, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "ts", | |
"execution_count": 2, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 2, | |
"data": { | |
"text/plain": "Timestamp('2000-01-01 00:00:00-0800', tz='US/Pacific')" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "value = ts.value", | |
"execution_count": 3, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "pd.Timestamp(value)", | |
"execution_count": 4, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 4, | |
"data": { | |
"text/plain": "Timestamp('2000-01-01 08:00:00')" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "res_wall_time = pd.Timestamp(value).tz_localize('US/Pacific')\nres_wall_time", | |
"execution_count": 5, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 5, | |
"data": { | |
"text/plain": "Timestamp('2000-01-01 08:00:00-0800', tz='US/Pacific')" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "res_unix_epoch = pd.Timestamp(value).tz_localize('UTC').tz_convert('US/Pacific')\nres_unix_epoch", | |
"execution_count": 6, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 6, | |
"data": { | |
"text/plain": "Timestamp('2000-01-01 00:00:00-0800', tz='US/Pacific')" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "results = {'constructor': [], 'arg_type': [], 'result': [], 'action': []}\n\nfor name, con in [\n ('Timestamp', lambda x, tz: pd.Timestamp(x, tz=tz)), \n ('DatetimeIndex', lambda x, tz: pd.DatetimeIndex([x], tz=tz)),\n ('DatetimeArray', lambda x, tz: pd.core.arrays.DatetimeArray(np.array([x]), dtype=pd.api.types.DatetimeTZDtype(tz=tz)))]:\n for val in [np.int64(value), np.datetime64(value, 'ns')]:\n results['constructor'].append(name)\n results['arg_type'].append(type(val).__name__)\n try:\n res = con(val, tz)\n except:\n res = '--'\n else:\n try:\n res = res[0]\n except:\n pass\n \n results['result'].append(res)\n \n if res == res_wall_time:\n results['action'].append('wall time')\n elif res == res_unix_epoch:\n results['action'].append('unix epoch')\n else:\n results['action'].append('--')", | |
"execution_count": 7, | |
"outputs": [] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "pandas 0.24.3:" | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "pd.DataFrame(results, dtype=object)[['constructor', 'arg_type', 'result', 'action']]", | |
"execution_count": 8, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 8, | |
"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>constructor</th>\n <th>arg_type</th>\n <th>result</th>\n <th>action</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Timestamp</td>\n <td>int64</td>\n <td>2000-01-01 00:00:00-08:00</td>\n <td>unix epoch</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Timestamp</td>\n <td>datetime64</td>\n <td>2000-01-01 00:00:00-08:00</td>\n <td>unix epoch</td>\n </tr>\n <tr>\n <th>2</th>\n <td>DatetimeIndex</td>\n <td>int64</td>\n <td>2000-01-01 08:00:00-08:00</td>\n <td>wall time</td>\n </tr>\n <tr>\n <th>3</th>\n <td>DatetimeIndex</td>\n <td>datetime64</td>\n <td>2000-01-01 08:00:00-08:00</td>\n <td>wall time</td>\n </tr>\n <tr>\n <th>4</th>\n <td>DatetimeArray</td>\n <td>int64</td>\n <td>--</td>\n <td>--</td>\n </tr>\n <tr>\n <th>5</th>\n <td>DatetimeArray</td>\n <td>datetime64</td>\n <td>--</td>\n <td>--</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " constructor arg_type result action\n0 Timestamp int64 2000-01-01 00:00:00-08:00 unix epoch\n1 Timestamp datetime64 2000-01-01 00:00:00-08:00 unix epoch\n2 DatetimeIndex int64 2000-01-01 08:00:00-08:00 wall time\n3 DatetimeIndex datetime64 2000-01-01 08:00:00-08:00 wall time\n4 DatetimeArray int64 -- --\n5 DatetimeArray datetime64 -- --" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Master:" | |
}, | |
{ | |
"metadata": { | |
"trusted": true, | |
"scrolled": true | |
}, | |
"cell_type": "code", | |
"source": "pd.DataFrame(results, dtype=object)[['constructor', 'arg_type', 'result', 'action']]", | |
"execution_count": 8, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 8, | |
"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>constructor</th>\n <th>arg_type</th>\n <th>result</th>\n <th>action</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Timestamp</td>\n <td>int64</td>\n <td>2000-01-01 00:00:00-08:00</td>\n <td>unix epoch</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Timestamp</td>\n <td>datetime64</td>\n <td>2000-01-01 00:00:00-08:00</td>\n <td>unix epoch</td>\n </tr>\n <tr>\n <th>2</th>\n <td>DatetimeIndex</td>\n <td>int64</td>\n <td>2000-01-01 00:00:00-08:00</td>\n <td>unix epoch</td>\n </tr>\n <tr>\n <th>3</th>\n <td>DatetimeIndex</td>\n <td>datetime64</td>\n <td>2000-01-01 08:00:00-08:00</td>\n <td>wall time</td>\n </tr>\n <tr>\n <th>4</th>\n <td>DatetimeArray</td>\n <td>int64</td>\n <td>2000-01-01 00:00:00-08:00</td>\n <td>unix epoch</td>\n </tr>\n <tr>\n <th>5</th>\n <td>DatetimeArray</td>\n <td>datetime64</td>\n <td>2000-01-01 00:00:00-08:00</td>\n <td>unix epoch</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " constructor arg_type result action\n0 Timestamp int64 2000-01-01 00:00:00-08:00 unix epoch\n1 Timestamp datetime64 2000-01-01 00:00:00-08:00 unix epoch\n2 DatetimeIndex int64 2000-01-01 00:00:00-08:00 unix epoch\n3 DatetimeIndex datetime64 2000-01-01 08:00:00-08:00 wall time\n4 DatetimeArray int64 2000-01-01 00:00:00-08:00 unix epoch\n5 DatetimeArray datetime64 2000-01-01 00:00:00-08:00 unix epoch" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "[PR #24623 (EA: treatment of i8 values)](https://github.com/pandas-dev/pandas/pull/24623):" | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "pd.DataFrame(results, dtype=object)[['constructor', 'arg_type', 'result', 'action']]", | |
"execution_count": 8, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 8, | |
"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>constructor</th>\n <th>arg_type</th>\n <th>result</th>\n <th>action</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Timestamp</td>\n <td>int64</td>\n <td>2000-01-01 00:00:00-08:00</td>\n <td>unix epoch</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Timestamp</td>\n <td>datetime64</td>\n <td>2000-01-01 00:00:00-08:00</td>\n <td>unix epoch</td>\n </tr>\n <tr>\n <th>2</th>\n <td>DatetimeIndex</td>\n <td>int64</td>\n <td>2000-01-01 00:00:00-08:00</td>\n <td>unix epoch</td>\n </tr>\n <tr>\n <th>3</th>\n <td>DatetimeIndex</td>\n <td>datetime64</td>\n <td>2000-01-01 08:00:00-08:00</td>\n <td>wall time</td>\n </tr>\n <tr>\n <th>4</th>\n <td>DatetimeArray</td>\n <td>int64</td>\n <td>2000-01-01 00:00:00-08:00</td>\n <td>unix epoch</td>\n </tr>\n <tr>\n <th>5</th>\n <td>DatetimeArray</td>\n <td>datetime64</td>\n <td>2000-01-01 08:00:00-08:00</td>\n <td>wall time</td>\n </tr>\n </tbody>\n</table>\n</div>", | |
"text/plain": " constructor arg_type result action\n0 Timestamp int64 2000-01-01 00:00:00-08:00 unix epoch\n1 Timestamp datetime64 2000-01-01 00:00:00-08:00 unix epoch\n2 DatetimeIndex int64 2000-01-01 00:00:00-08:00 unix epoch\n3 DatetimeIndex datetime64 2000-01-01 08:00:00-08:00 wall time\n4 DatetimeArray int64 2000-01-01 00:00:00-08:00 unix epoch\n5 DatetimeArray datetime64 2000-01-01 08:00:00-08:00 wall time" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "", | |
"execution_count": null, | |
"outputs": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"name": "dev", | |
"display_name": "Python 3 (dev)", | |
"language": "python" | |
}, | |
"language_info": { | |
"file_extension": ".py", | |
"version": "3.5.5", | |
"nbconvert_exporter": "python", | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"name": "python", | |
"mimetype": "text/x-python", | |
"pygments_lexer": "ipython3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment