-
-
Save ccomte/41b78e562552db683b1d855629afc9e0 to your computer and use it in GitHub Desktop.
Manipulating and analysing data with pandas
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": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Manipulating and analysing data with pandas" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"This notebook contains the examples showed during the session [Manipulating and analysing data with pandas](https://www.lincs.fr/events/manipulating-and-analyzing-data-with-pandas/) of the [Python Academy](https://www.lincs.fr/research/working-groups/python-academy/) working group at [LINCS](https://www.lincs.fr). The slides of the presentation are available [here](https://www.lincs.fr/wp-content/uploads/2019/05/pandas.pdf)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.854184Z", | |
"start_time": "2019-05-20T11:19:47.318740Z" | |
} | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"import matplotlib.pyplot as plt" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true | |
}, | |
"source": [ | |
"## NumPy" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.867872Z", | |
"start_time": "2019-05-20T11:19:47.857768Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 3., 0.],\n", | |
" [ 20., 230.],\n", | |
" [ 21., 275.]])" | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a = np.array([[3., 0.], [20., 230.], [21., 275.]])\n", | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.880504Z", | |
"start_time": "2019-05-20T11:19:47.870799Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"21.0" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a[2,0]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.887766Z", | |
"start_time": "2019-05-20T11:19:47.882836Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 3., 0.],\n", | |
" [ 20., 230.]])" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a[:2, :]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.897828Z", | |
"start_time": "2019-05-20T11:19:47.889722Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 3., 0.],\n", | |
" [ 20., 230.]])" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"b = a[:2, :]\n", | |
"b" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.906623Z", | |
"start_time": "2019-05-20T11:19:47.899513Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 0., 0.],\n", | |
" [ 20., 230.],\n", | |
" [ 21., 275.]])" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"b[0,0] = 0.\n", | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.914063Z", | |
"start_time": "2019-05-20T11:19:47.908855Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 3., 0.],\n", | |
" [ 20., 230.],\n", | |
" [ 21., 275.]])" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a = np.array([[3., 0.], [20., 230.], [21., 275.]])\n", | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.925159Z", | |
"start_time": "2019-05-20T11:19:47.917548Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(3, 2)" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.shape" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.936086Z", | |
"start_time": "2019-05-20T11:19:47.928536Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dtype('float64')" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.dtype" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.944769Z", | |
"start_time": "2019-05-20T11:19:47.938364Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"8" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.itemsize" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.953083Z", | |
"start_time": "2019-05-20T11:19:47.947486Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 3., 0., 20.],\n", | |
" [230., 21., 275.]])" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"b = a.reshape(2,3)\n", | |
"b" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.963857Z", | |
"start_time": "2019-05-20T11:19:47.954665Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 3., 0.],\n", | |
" [ 20., 230.],\n", | |
" [ 21., 275.]])" | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.974137Z", | |
"start_time": "2019-05-20T11:19:47.965965Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 3., 0., 20.],\n", | |
" [230., 21., 275.]])" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.resize(2,3)\n", | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.985749Z", | |
"start_time": "2019-05-20T11:19:47.976552Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 3., 0.],\n", | |
" [ 20., 230.],\n", | |
" [ 21., 275.]])" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.resize(3,2)\n", | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:47.991043Z", | |
"start_time": "2019-05-20T11:19:47.987680Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [], | |
"source": [ | |
"b = np.resize(a, (2,3))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.001918Z", | |
"start_time": "2019-05-20T11:19:47.993555Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 3., 0.],\n", | |
" [ 20., 230.],\n", | |
" [ 21., 275.]])" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"b[0,0] = 0\n", | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.012783Z", | |
"start_time": "2019-05-20T11:19:48.004136Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"549.0" | |
] | |
}, | |
"execution_count": 17, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.sum()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.021546Z", | |
"start_time": "2019-05-20T11:19:48.015098Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 44., 505.])" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.sum(axis=0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.028708Z", | |
"start_time": "2019-05-20T11:19:48.023791Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"275.0" | |
] | |
}, | |
"execution_count": 19, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.max()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.039997Z", | |
"start_time": "2019-05-20T11:19:48.030994Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 21., 275.])" | |
] | |
}, | |
"execution_count": 20, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a.max(axis=0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.050717Z", | |
"start_time": "2019-05-20T11:19:48.041747Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([( 3, 0.), (20, 230.), (21, 275.)],\n", | |
" dtype=[('Age', '<i8'), ('Weight', '<f8')])" | |
] | |
}, | |
"execution_count": 21, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a = np.array([(3., 0.), (20., 230.), (21., 275.)],\n", | |
" dtype=np.dtype([('Age', int), ('Weight', float)]))\n", | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.059135Z", | |
"start_time": "2019-05-20T11:19:48.052661Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 3, 20, 21])" | |
] | |
}, | |
"execution_count": 22, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a['Age']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.069844Z", | |
"start_time": "2019-05-20T11:19:48.064548Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 0., 230., 275.])" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a['Weight']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.080500Z", | |
"start_time": "2019-05-20T11:19:48.075102Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(3, 0.)" | |
] | |
}, | |
"execution_count": 24, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a[0]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true | |
}, | |
"source": [ | |
"## Data structures in pandas" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Series" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.091504Z", | |
"start_time": "2019-05-20T11:19:48.082662Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Bei Bei 3\n", | |
"Mei Xiang 20\n", | |
"Tian Tian 21\n", | |
"Name: Age, dtype: int64" | |
] | |
}, | |
"execution_count": 25, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s = pd.Series([3, 20, 21],\n", | |
" index=['Bei Bei', 'Mei Xiang', 'Tian Tian'],\n", | |
" name='Age')\n", | |
"s" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.100222Z", | |
"start_time": "2019-05-20T11:19:48.093809Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<PandasArray>\n", | |
"[3, 20, 21]\n", | |
"Length: 3, dtype: int64" | |
] | |
}, | |
"execution_count": 26, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s.array" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.107041Z", | |
"start_time": "2019-05-20T11:19:48.101880Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dtype('int64')" | |
] | |
}, | |
"execution_count": 27, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s.dtype" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.117096Z", | |
"start_time": "2019-05-20T11:19:48.108426Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'Age'" | |
] | |
}, | |
"execution_count": 28, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s.name" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.128566Z", | |
"start_time": "2019-05-20T11:19:48.119470Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Index(['Bei Bei', 'Mei Xiang', 'Tian Tian'], dtype='object')" | |
] | |
}, | |
"execution_count": 29, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s.index" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.137381Z", | |
"start_time": "2019-05-20T11:19:48.131055Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"20" | |
] | |
}, | |
"execution_count": 30, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s['Mei Xiang']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.144055Z", | |
"start_time": "2019-05-20T11:19:48.139791Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"20" | |
] | |
}, | |
"execution_count": 31, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s[1]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.154477Z", | |
"start_time": "2019-05-20T11:19:48.145841Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Mei Xiang 20\n", | |
"Tian Tian 21\n", | |
"Name: Age, dtype: int64" | |
] | |
}, | |
"execution_count": 32, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s['Mei Xiang':'Tian Tian']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.165256Z", | |
"start_time": "2019-05-20T11:19:48.156239Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Mei Xiang 20\n", | |
"Tian Tian 21\n", | |
"Name: Age, dtype: int64" | |
] | |
}, | |
"execution_count": 33, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s[1:3]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.175884Z", | |
"start_time": "2019-05-20T11:19:48.167785Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Mei Xiang 20\n", | |
"Tian Tian 21\n", | |
"Name: Age, dtype: int64" | |
] | |
}, | |
"execution_count": 34, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s[1:]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.183993Z", | |
"start_time": "2019-05-20T11:19:48.178238Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Mei Xiang 20\n", | |
"Tian Tian 21\n", | |
"Name: Age, dtype: int64" | |
] | |
}, | |
"execution_count": 35, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"t = s['Mei Xiang':'Tian Tian']\n", | |
"t" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.192775Z", | |
"start_time": "2019-05-20T11:19:48.185491Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [], | |
"source": [ | |
"t['Tian Tian'] = 22" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.204706Z", | |
"start_time": "2019-05-20T11:19:48.194807Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Bei Bei 3\n", | |
"Mei Xiang 20\n", | |
"Tian Tian 22\n", | |
"Name: Age, dtype: int64" | |
] | |
}, | |
"execution_count": 37, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.213850Z", | |
"start_time": "2019-05-20T11:19:48.206406Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Bei Bei 3\n", | |
"Mei Xiang 20\n", | |
"Tian Tian 21\n", | |
"Name: Age, dtype: int64" | |
] | |
}, | |
"execution_count": 38, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s = pd.Series([3, 20, 21],\n", | |
" index=['Bei Bei', 'Mei Xiang', 'Tian Tian'],\n", | |
" name='Age')\n", | |
"s" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.221728Z", | |
"start_time": "2019-05-20T11:19:48.215724Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Mei Xiang 230.0\n", | |
"Tian Tian 275.0\n", | |
"Name: Weight, dtype: float64" | |
] | |
}, | |
"execution_count": 39, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"u = pd.Series([230., 275.],\n", | |
" index=['Mei Xiang', 'Tian Tian'],\n", | |
" name='Weight')\n", | |
"u" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.233000Z", | |
"start_time": "2019-05-20T11:19:48.223337Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Bei Bei NaN\n", | |
"Mei Xiang 250.0\n", | |
"Tian Tian 296.0\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 40, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s.add(u)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.246104Z", | |
"start_time": "2019-05-20T11:19:48.234552Z" | |
}, | |
"hidden": true, | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Bei Bei 3.0\n", | |
"Mei Xiang 250.0\n", | |
"Tian Tian 296.0\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 41, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s.add(u, fill_value=0)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### DataFrame" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 42, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.262026Z", | |
"start_time": "2019-05-20T11:19:48.248305Z" | |
}, | |
"hidden": true | |
}, | |
"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>Age</th>\n", | |
" <th>Weight</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Bei Bei</th>\n", | |
" <td>3</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Mei Xiang</th>\n", | |
" <td>20</td>\n", | |
" <td>230.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Tian Tian</th>\n", | |
" <td>21</td>\n", | |
" <td>275.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Age Weight\n", | |
"Bei Bei 3 NaN\n", | |
"Mei Xiang 20 230.0\n", | |
"Tian Tian 21 275.0" | |
] | |
}, | |
"execution_count": 42, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df = pd.DataFrame({'Age': [3, 20, 21],\n", | |
" 'Weight': [np.nan, 230., 275.]},\n", | |
" index=['Bei Bei', 'Mei Xiang', 'Tian Tian'])\n", | |
"df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.272166Z", | |
"start_time": "2019-05-20T11:19:48.264478Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Age int64\n", | |
"Weight float64\n", | |
"dtype: object" | |
] | |
}, | |
"execution_count": 43, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.dtypes" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.281907Z", | |
"start_time": "2019-05-20T11:19:48.274577Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(3, 2)" | |
] | |
}, | |
"execution_count": 44, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.shape" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.292929Z", | |
"start_time": "2019-05-20T11:19:48.284143Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Index(['Age', 'Weight'], dtype='object')" | |
] | |
}, | |
"execution_count": 45, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.columns" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 46, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.301831Z", | |
"start_time": "2019-05-20T11:19:48.295306Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Index(['Bei Bei', 'Mei Xiang', 'Tian Tian'], dtype='object')" | |
] | |
}, | |
"execution_count": 46, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.index" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.310085Z", | |
"start_time": "2019-05-20T11:19:48.304929Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"6" | |
] | |
}, | |
"execution_count": 47, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.size" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 48, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.321746Z", | |
"start_time": "2019-05-20T11:19:48.312699Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Bei Bei 3\n", | |
"Mei Xiang 20\n", | |
"Tian Tian 21\n", | |
"Name: Age, dtype: int64" | |
] | |
}, | |
"execution_count": 48, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df['Age']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 49, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.336780Z", | |
"start_time": "2019-05-20T11:19:48.323760Z" | |
}, | |
"hidden": true | |
}, | |
"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>Age</th>\n", | |
" <th>Weight</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Mei Xiang</th>\n", | |
" <td>20</td>\n", | |
" <td>230.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Tian Tian</th>\n", | |
" <td>21</td>\n", | |
" <td>275.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Age Weight\n", | |
"Mei Xiang 20 230.0\n", | |
"Tian Tian 21 275.0" | |
] | |
}, | |
"execution_count": 49, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df['Mei Xiang':'Tian Tian']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 50, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.344150Z", | |
"start_time": "2019-05-20T11:19:48.338681Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# df['Mei Xiang']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 51, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.354612Z", | |
"start_time": "2019-05-20T11:19:48.345825Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Age 20.0\n", | |
"Weight 230.0\n", | |
"Name: Mei Xiang, dtype: float64" | |
] | |
}, | |
"execution_count": 51, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.loc['Mei Xiang','Age':'Weight']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 52, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.370244Z", | |
"start_time": "2019-05-20T11:19:48.356886Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Age 44.0\n", | |
"Weight 505.0\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 52, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.sum()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 53, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.382072Z", | |
"start_time": "2019-05-20T11:19:48.372293Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Age 44.0\n", | |
"Weight 505.0\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 53, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.sum(axis=0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 54, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.392189Z", | |
"start_time": "2019-05-20T11:19:48.384396Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Bei Bei 3.0\n", | |
"Mei Xiang 250.0\n", | |
"Tian Tian 296.0\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 54, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.sum(axis=1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 55, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.398939Z", | |
"start_time": "2019-05-20T11:19:48.394281Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [], | |
"source": [ | |
"#del(df['Weight'])\n", | |
"#df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 56, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.407860Z", | |
"start_time": "2019-05-20T11:19:48.401210Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [], | |
"source": [ | |
"#s = df.pop('Age')\n", | |
"#s" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true | |
}, | |
"source": [ | |
"## Data analysis tools in pandas" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"hidden": true | |
}, | |
"source": [ | |
"The organization and most of the examples of this part come from pandas' official tutorial [10 minutes to pandas](http://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html). Some examples also originate from the [user guide](http://pandas.pydata.org/pandas-docs/stable/user_guide/index.html)." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Object creation" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 57, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.420709Z", | |
"start_time": "2019-05-20T11:19:48.410242Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',\n", | |
" '2013-01-05'],\n", | |
" dtype='datetime64[ns]', freq='D')" | |
] | |
}, | |
"execution_count": 57, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"dates = pd.date_range('20130101', periods=5)\n", | |
"dates" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 58, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.441663Z", | |
"start_time": "2019-05-20T11:19:48.423279Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-01</th>\n", | |
" <td>1.159100</td>\n", | |
" <td>-0.377109</td>\n", | |
" <td>0.865423</td>\n", | |
" <td>0.024703</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-02</th>\n", | |
" <td>0.991748</td>\n", | |
" <td>-2.545407</td>\n", | |
" <td>1.001357</td>\n", | |
" <td>-0.649275</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-03</th>\n", | |
" <td>-1.283808</td>\n", | |
" <td>-1.018828</td>\n", | |
" <td>1.221888</td>\n", | |
" <td>-0.964830</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-04</th>\n", | |
" <td>-0.110649</td>\n", | |
" <td>0.431603</td>\n", | |
" <td>1.549942</td>\n", | |
" <td>-1.553638</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-05</th>\n", | |
" <td>-1.025729</td>\n", | |
" <td>-2.389124</td>\n", | |
" <td>-2.182942</td>\n", | |
" <td>-0.012242</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"2013-01-01 1.159100 -0.377109 0.865423 0.024703\n", | |
"2013-01-02 0.991748 -2.545407 1.001357 -0.649275\n", | |
"2013-01-03 -1.283808 -1.018828 1.221888 -0.964830\n", | |
"2013-01-04 -0.110649 0.431603 1.549942 -1.553638\n", | |
"2013-01-05 -1.025729 -2.389124 -2.182942 -0.012242" | |
] | |
}, | |
"execution_count": 58, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df = pd.DataFrame(np.random.randn(5, 4), index=dates, columns=list('ABCD'))\n", | |
"df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 59, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.458847Z", | |
"start_time": "2019-05-20T11:19:48.443227Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" <th>E</th>\n", | |
" <th>F</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1.0</td>\n", | |
" <td>2013-01-02</td>\n", | |
" <td>1.0</td>\n", | |
" <td>3</td>\n", | |
" <td>test</td>\n", | |
" <td>foo</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>1.0</td>\n", | |
" <td>2013-01-02</td>\n", | |
" <td>1.0</td>\n", | |
" <td>3</td>\n", | |
" <td>train</td>\n", | |
" <td>foo</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>1.0</td>\n", | |
" <td>2013-01-02</td>\n", | |
" <td>1.0</td>\n", | |
" <td>3</td>\n", | |
" <td>test</td>\n", | |
" <td>foo</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>1.0</td>\n", | |
" <td>2013-01-02</td>\n", | |
" <td>1.0</td>\n", | |
" <td>3</td>\n", | |
" <td>train</td>\n", | |
" <td>foo</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D E F\n", | |
"0 1.0 2013-01-02 1.0 3 test foo\n", | |
"1 1.0 2013-01-02 1.0 3 train foo\n", | |
"2 1.0 2013-01-02 1.0 3 test foo\n", | |
"3 1.0 2013-01-02 1.0 3 train foo" | |
] | |
}, | |
"execution_count": 59, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df2 = pd.DataFrame({'A': 1.,\n", | |
" 'B': pd.Timestamp('20130102'),\n", | |
" 'C': pd.Series(1, index=list(range(4)), dtype='float32'),\n", | |
" 'D': np.array([3] * 4, dtype='int32'),\n", | |
" 'E': pd.Categorical([\"test\", \"train\", \"test\", \"train\"]),\n", | |
" 'F': 'foo'})\n", | |
"df2" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 60, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.471665Z", | |
"start_time": "2019-05-20T11:19:48.460785Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"A float64\n", | |
"B datetime64[ns]\n", | |
"C float32\n", | |
"D int32\n", | |
"E category\n", | |
"F object\n", | |
"dtype: object" | |
] | |
}, | |
"execution_count": 60, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df2.dtypes" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Viewing data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 61, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.490230Z", | |
"start_time": "2019-05-20T11:19:48.474320Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-01</th>\n", | |
" <td>1.159100</td>\n", | |
" <td>-0.377109</td>\n", | |
" <td>0.865423</td>\n", | |
" <td>0.024703</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-02</th>\n", | |
" <td>0.991748</td>\n", | |
" <td>-2.545407</td>\n", | |
" <td>1.001357</td>\n", | |
" <td>-0.649275</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-03</th>\n", | |
" <td>-1.283808</td>\n", | |
" <td>-1.018828</td>\n", | |
" <td>1.221888</td>\n", | |
" <td>-0.964830</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"2013-01-01 1.159100 -0.377109 0.865423 0.024703\n", | |
"2013-01-02 0.991748 -2.545407 1.001357 -0.649275\n", | |
"2013-01-03 -1.283808 -1.018828 1.221888 -0.964830" | |
] | |
}, | |
"execution_count": 61, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.head(3)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 62, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.503465Z", | |
"start_time": "2019-05-20T11:19:48.492466Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-03</th>\n", | |
" <td>-1.283808</td>\n", | |
" <td>-1.018828</td>\n", | |
" <td>1.221888</td>\n", | |
" <td>-0.964830</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-04</th>\n", | |
" <td>-0.110649</td>\n", | |
" <td>0.431603</td>\n", | |
" <td>1.549942</td>\n", | |
" <td>-1.553638</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-05</th>\n", | |
" <td>-1.025729</td>\n", | |
" <td>-2.389124</td>\n", | |
" <td>-2.182942</td>\n", | |
" <td>-0.012242</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"2013-01-03 -1.283808 -1.018828 1.221888 -0.964830\n", | |
"2013-01-04 -0.110649 0.431603 1.549942 -1.553638\n", | |
"2013-01-05 -1.025729 -2.389124 -2.182942 -0.012242" | |
] | |
}, | |
"execution_count": 62, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.tail(3)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 63, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.512153Z", | |
"start_time": "2019-05-20T11:19:48.505787Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',\n", | |
" '2013-01-05'],\n", | |
" dtype='datetime64[ns]', freq='D')" | |
] | |
}, | |
"execution_count": 63, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.index" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 64, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.524389Z", | |
"start_time": "2019-05-20T11:19:48.514349Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Index(['A', 'B', 'C', 'D'], dtype='object')" | |
] | |
}, | |
"execution_count": 64, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.columns" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 65, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.537240Z", | |
"start_time": "2019-05-20T11:19:48.527648Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"2013-01-01 1.159100\n", | |
"2013-01-02 0.991748\n", | |
"2013-01-03 -1.283808\n", | |
"2013-01-04 -0.110649\n", | |
"2013-01-05 -1.025729\n", | |
"Freq: D, Name: A, dtype: float64" | |
] | |
}, | |
"execution_count": 65, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.A" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 66, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.545439Z", | |
"start_time": "2019-05-20T11:19:48.539132Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[ 1.15909981, -0.37710932, 0.86542348, 0.0247032 ],\n", | |
" [ 0.99174807, -2.54540728, 1.00135698, -0.64927482],\n", | |
" [-1.28380839, -1.01882835, 1.22188822, -0.96483024],\n", | |
" [-0.11064882, 0.43160327, 1.54994242, -1.55363829],\n", | |
" [-1.02572943, -2.38912399, -2.18294221, -0.01224229]])" | |
] | |
}, | |
"execution_count": 66, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a = df.to_numpy()\n", | |
"a" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 67, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.549933Z", | |
"start_time": "2019-05-20T11:19:48.547141Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [], | |
"source": [ | |
"a[0,0] = 0" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 68, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.561679Z", | |
"start_time": "2019-05-20T11:19:48.556970Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.0" | |
] | |
}, | |
"execution_count": 68, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df['A'][0]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 69, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.572547Z", | |
"start_time": "2019-05-20T11:19:48.563912Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([[1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'test', 'foo'],\n", | |
" [1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'train', 'foo'],\n", | |
" [1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'test', 'foo'],\n", | |
" [1.0, Timestamp('2013-01-02 00:00:00'), 1.0, 3, 'train', 'foo']],\n", | |
" dtype=object)" | |
] | |
}, | |
"execution_count": 69, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a2 = df2.to_numpy()\n", | |
"a2" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 70, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.580072Z", | |
"start_time": "2019-05-20T11:19:48.575027Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"1.0" | |
] | |
}, | |
"execution_count": 70, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"a2[0,0] = 0\n", | |
"df2['A'][0]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 71, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.593570Z", | |
"start_time": "2019-05-20T11:19:48.581834Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" <th>E</th>\n", | |
" <th>F</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1.0</td>\n", | |
" <td>2013-01-02</td>\n", | |
" <td>1.0</td>\n", | |
" <td>3</td>\n", | |
" <td>test</td>\n", | |
" <td>foo</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>1.0</td>\n", | |
" <td>2013-01-02</td>\n", | |
" <td>1.0</td>\n", | |
" <td>3</td>\n", | |
" <td>train</td>\n", | |
" <td>foo</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>1.0</td>\n", | |
" <td>2013-01-02</td>\n", | |
" <td>1.0</td>\n", | |
" <td>3</td>\n", | |
" <td>test</td>\n", | |
" <td>foo</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>1.0</td>\n", | |
" <td>2013-01-02</td>\n", | |
" <td>1.0</td>\n", | |
" <td>3</td>\n", | |
" <td>train</td>\n", | |
" <td>foo</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D E F\n", | |
"0 1.0 2013-01-02 1.0 3 test foo\n", | |
"1 1.0 2013-01-02 1.0 3 train foo\n", | |
"2 1.0 2013-01-02 1.0 3 test foo\n", | |
"3 1.0 2013-01-02 1.0 3 train foo" | |
] | |
}, | |
"execution_count": 71, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df2.values[0,0] = 0\n", | |
"df2" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Selection" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 72, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.609760Z", | |
"start_time": "2019-05-20T11:19:48.595165Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-02</th>\n", | |
" <td>0.991748</td>\n", | |
" <td>-2.545407</td>\n", | |
" <td>1.001357</td>\n", | |
" <td>-0.649275</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"2013-01-02 0.991748 -2.545407 1.001357 -0.649275" | |
] | |
}, | |
"execution_count": 72, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df[df.A > 0]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 73, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.638483Z", | |
"start_time": "2019-05-20T11:19:48.617377Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-01</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.865423</td>\n", | |
" <td>0.024703</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-02</th>\n", | |
" <td>0.991748</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.001357</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-03</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.221888</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-04</th>\n", | |
" <td>NaN</td>\n", | |
" <td>0.431603</td>\n", | |
" <td>1.549942</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-05</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"2013-01-01 NaN NaN 0.865423 0.024703\n", | |
"2013-01-02 0.991748 NaN 1.001357 NaN\n", | |
"2013-01-03 NaN NaN 1.221888 NaN\n", | |
"2013-01-04 NaN 0.431603 1.549942 NaN\n", | |
"2013-01-05 NaN NaN NaN NaN" | |
] | |
}, | |
"execution_count": 73, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df = df[df > 0]\n", | |
"df" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Missing Data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 74, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.649823Z", | |
"start_time": "2019-05-20T11:19:48.640389Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"Empty DataFrame\n", | |
"Columns: [A, B, C, D]\n", | |
"Index: []" | |
] | |
}, | |
"execution_count": 74, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.dropna()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 75, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.659961Z", | |
"start_time": "2019-05-20T11:19:48.651475Z" | |
}, | |
"hidden": true | |
}, | |
"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", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-01</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-02</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-03</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-04</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-05</th>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"Empty DataFrame\n", | |
"Columns: []\n", | |
"Index: [2013-01-01 00:00:00, 2013-01-02 00:00:00, 2013-01-03 00:00:00, 2013-01-04 00:00:00, 2013-01-05 00:00:00]" | |
] | |
}, | |
"execution_count": 75, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.dropna(axis=1)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"hidden": true | |
}, | |
"source": [ | |
"Doesn't modify the original DataFrame:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 76, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.675886Z", | |
"start_time": "2019-05-20T11:19:48.661794Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-01</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.865423</td>\n", | |
" <td>0.024703</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-02</th>\n", | |
" <td>0.991748</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.001357</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-03</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.221888</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-04</th>\n", | |
" <td>NaN</td>\n", | |
" <td>0.431603</td>\n", | |
" <td>1.549942</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-05</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"2013-01-01 NaN NaN 0.865423 0.024703\n", | |
"2013-01-02 0.991748 NaN 1.001357 NaN\n", | |
"2013-01-03 NaN NaN 1.221888 NaN\n", | |
"2013-01-04 NaN 0.431603 1.549942 NaN\n", | |
"2013-01-05 NaN NaN NaN NaN" | |
] | |
}, | |
"execution_count": 76, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 77, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.692007Z", | |
"start_time": "2019-05-20T11:19:48.678116Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-01</th>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.865423</td>\n", | |
" <td>0.024703</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-02</th>\n", | |
" <td>0.991748</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1.001357</td>\n", | |
" <td>0.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-03</th>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1.221888</td>\n", | |
" <td>0.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-04</th>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.431603</td>\n", | |
" <td>1.549942</td>\n", | |
" <td>0.000000</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-05</th>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"2013-01-01 0.000000 0.000000 0.865423 0.024703\n", | |
"2013-01-02 0.991748 0.000000 1.001357 0.000000\n", | |
"2013-01-03 0.000000 0.000000 1.221888 0.000000\n", | |
"2013-01-04 0.000000 0.431603 1.549942 0.000000\n", | |
"2013-01-05 0.000000 0.000000 0.000000 0.000000" | |
] | |
}, | |
"execution_count": 77, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.fillna(value=0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 78, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.705342Z", | |
"start_time": "2019-05-20T11:19:48.694120Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-01</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.865423</td>\n", | |
" <td>0.024703</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-02</th>\n", | |
" <td>0.991748</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.001357</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-03</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.221888</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-04</th>\n", | |
" <td>NaN</td>\n", | |
" <td>0.431603</td>\n", | |
" <td>1.549942</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-05</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"2013-01-01 NaN NaN 0.865423 0.024703\n", | |
"2013-01-02 0.991748 NaN 1.001357 NaN\n", | |
"2013-01-03 NaN NaN 1.221888 NaN\n", | |
"2013-01-04 NaN 0.431603 1.549942 NaN\n", | |
"2013-01-05 NaN NaN NaN NaN" | |
] | |
}, | |
"execution_count": 78, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 79, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.717620Z", | |
"start_time": "2019-05-20T11:19:48.707304Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-01</th>\n", | |
" <td>True</td>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-02</th>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-03</th>\n", | |
" <td>True</td>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-04</th>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-05</th>\n", | |
" <td>True</td>\n", | |
" <td>True</td>\n", | |
" <td>True</td>\n", | |
" <td>True</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"2013-01-01 True True False False\n", | |
"2013-01-02 False True False True\n", | |
"2013-01-03 True True False True\n", | |
"2013-01-04 True False False True\n", | |
"2013-01-05 True True True True" | |
] | |
}, | |
"execution_count": 79, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.isna()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 80, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.737066Z", | |
"start_time": "2019-05-20T11:19:48.719983Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-01</th>\n", | |
" <td>True</td>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-02</th>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-03</th>\n", | |
" <td>True</td>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-04</th>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-05</th>\n", | |
" <td>True</td>\n", | |
" <td>True</td>\n", | |
" <td>True</td>\n", | |
" <td>True</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"2013-01-01 True True False False\n", | |
"2013-01-02 False True False True\n", | |
"2013-01-03 True True False True\n", | |
"2013-01-04 True False False True\n", | |
"2013-01-05 True True True True" | |
] | |
}, | |
"execution_count": 80, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.isna(df)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Getting Data In/Out" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 81, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.747435Z", | |
"start_time": "2019-05-20T11:19:48.739130Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [], | |
"source": [ | |
"df.to_csv('foo.csv')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 82, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.765695Z", | |
"start_time": "2019-05-20T11:19:48.750022Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" <th>D</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2013-01-01</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>0.865423</td>\n", | |
" <td>0.024703</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-02</th>\n", | |
" <td>0.991748</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.001357</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-03</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.221888</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-04</th>\n", | |
" <td>NaN</td>\n", | |
" <td>0.431603</td>\n", | |
" <td>1.549942</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2013-01-05</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C D\n", | |
"2013-01-01 NaN NaN 0.865423 0.024703\n", | |
"2013-01-02 0.991748 NaN 1.001357 NaN\n", | |
"2013-01-03 NaN NaN 1.221888 NaN\n", | |
"2013-01-04 NaN 0.431603 1.549942 NaN\n", | |
"2013-01-05 NaN NaN NaN NaN" | |
] | |
}, | |
"execution_count": 82, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df = pd.read_csv('foo.csv', index_col=0)\n", | |
"df" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Hierarchical indexing (MultiIndex)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"hidden": true | |
}, | |
"source": [ | |
"Example from http://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html#advanced-hierarchical" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 83, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.775061Z", | |
"start_time": "2019-05-20T11:19:48.768069Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[array(['bar', 'bar', 'foo', 'foo'], dtype='<U3'),\n", | |
" array(['one', 'two', 'one', 'two'], dtype='<U3')]" | |
] | |
}, | |
"execution_count": 83, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"arrays = [np.array(['bar', 'bar', 'foo', 'foo']),\n", | |
" np.array(['one', 'two', 'one', 'two'])]\n", | |
"arrays" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 84, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.786669Z", | |
"start_time": "2019-05-20T11:19:48.777858Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"bar one -0.840014\n", | |
" two -0.756362\n", | |
"foo one -0.547463\n", | |
" two -0.613027\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 84, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s = pd.Series(np.random.randn(4), index=arrays)\n", | |
"s" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 85, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.805754Z", | |
"start_time": "2019-05-20T11:19:48.788798Z" | |
}, | |
"hidden": true | |
}, | |
"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></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th rowspan=\"2\" valign=\"top\">bar</th>\n", | |
" <th>one</th>\n", | |
" <td>-0.075528</td>\n", | |
" <td>-2.227210</td>\n", | |
" <td>-1.484136</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>two</th>\n", | |
" <td>0.707189</td>\n", | |
" <td>0.207465</td>\n", | |
" <td>0.094467</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th rowspan=\"2\" valign=\"top\">foo</th>\n", | |
" <th>one</th>\n", | |
" <td>-1.311922</td>\n", | |
" <td>-1.140869</td>\n", | |
" <td>0.140230</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>two</th>\n", | |
" <td>1.157357</td>\n", | |
" <td>0.816002</td>\n", | |
" <td>0.041543</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2\n", | |
"bar one -0.075528 -2.227210 -1.484136\n", | |
" two 0.707189 0.207465 0.094467\n", | |
"foo one -1.311922 -1.140869 0.140230\n", | |
" two 1.157357 0.816002 0.041543" | |
] | |
}, | |
"execution_count": 85, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df = pd.DataFrame(np.random.randn(4, 3), index=arrays)\n", | |
"df" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Various operations" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 86, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.815203Z", | |
"start_time": "2019-05-20T11:19:48.808316Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 0.119274\n", | |
"1 -0.586153\n", | |
"2 -0.301974\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 86, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 87, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.825814Z", | |
"start_time": "2019-05-20T11:19:48.817959Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 0.119274\n", | |
"1 -0.586153\n", | |
"2 -0.301974\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 87, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.mean(axis=0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 88, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.850484Z", | |
"start_time": "2019-05-20T11:19:48.827967Z" | |
}, | |
"hidden": true | |
}, | |
"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></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th rowspan=\"2\" valign=\"top\">bar</th>\n", | |
" <th>one</th>\n", | |
" <td>-0.075528</td>\n", | |
" <td>-2.227210</td>\n", | |
" <td>-1.484136</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>two</th>\n", | |
" <td>0.631661</td>\n", | |
" <td>-2.019745</td>\n", | |
" <td>-1.389669</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th rowspan=\"2\" valign=\"top\">foo</th>\n", | |
" <th>one</th>\n", | |
" <td>-0.680261</td>\n", | |
" <td>-3.160614</td>\n", | |
" <td>-1.249439</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>two</th>\n", | |
" <td>0.477096</td>\n", | |
" <td>-2.344612</td>\n", | |
" <td>-1.207896</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2\n", | |
"bar one -0.075528 -2.227210 -1.484136\n", | |
" two 0.631661 -2.019745 -1.389669\n", | |
"foo one -0.680261 -3.160614 -1.249439\n", | |
" two 0.477096 -2.344612 -1.207896" | |
] | |
}, | |
"execution_count": 88, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.apply(np.cumsum)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 89, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.859697Z", | |
"start_time": "2019-05-20T11:19:48.851969Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"-0.613027 1\n", | |
"-0.840014 1\n", | |
"-0.756362 1\n", | |
"-0.547463 1\n", | |
"dtype: int64" | |
] | |
}, | |
"execution_count": 89, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s.value_counts()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Gather Series or DataFrames" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 90, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.870360Z", | |
"start_time": "2019-05-20T11:19:48.861531Z" | |
}, | |
"hidden": true | |
}, | |
"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>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>-0.244737</td>\n", | |
" <td>0.193583</td>\n", | |
" <td>0.618107</td>\n", | |
" <td>1.367776</td>\n", | |
" <td>0.421097</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>-0.136700</td>\n", | |
" <td>0.492938</td>\n", | |
" <td>0.585207</td>\n", | |
" <td>0.075231</td>\n", | |
" <td>0.299545</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>-1.093732</td>\n", | |
" <td>-0.232071</td>\n", | |
" <td>0.678656</td>\n", | |
" <td>0.882982</td>\n", | |
" <td>0.824984</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>0.576383</td>\n", | |
" <td>0.463082</td>\n", | |
" <td>0.592405</td>\n", | |
" <td>-0.747336</td>\n", | |
" <td>0.420204</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2 3 4\n", | |
"0 -0.244737 0.193583 0.618107 1.367776 0.421097\n", | |
"1 -0.136700 0.492938 0.585207 0.075231 0.299545\n", | |
"2 -1.093732 -0.232071 0.678656 0.882982 0.824984\n", | |
"3 0.576383 0.463082 0.592405 -0.747336 0.420204" | |
] | |
}, | |
"execution_count": 90, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df = pd.DataFrame(np.random.randn(4, 5))\n", | |
"df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 91, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.880758Z", | |
"start_time": "2019-05-20T11:19:48.872522Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" 0 1 2 3 4\n", | |
"0 -0.244737 0.193583 0.618107 1.367776 0.421097\n", | |
"1 -0.136700 0.492938 0.585207 0.075231 0.299545\n", | |
"2 -1.093732 -0.232071 0.678656 0.882982 0.824984\n", | |
"3 0.576383 0.463082 0.592405 -0.747336 0.420204\n" | |
] | |
} | |
], | |
"source": [ | |
"print(df)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 92, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.896870Z", | |
"start_time": "2019-05-20T11:19:48.882288Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[ 0 1 2 3 4\n", | |
" 0 -0.244737 0.193583 0.618107 1.367776 0.421097\n", | |
" 1 -0.136700 0.492938 0.585207 0.075231 0.299545,\n", | |
" 0 1 2 3 4\n", | |
" 2 -1.093732 -0.232071 0.678656 0.882982 0.824984\n", | |
" 3 0.576383 0.463082 0.592405 -0.747336 0.420204]" | |
] | |
}, | |
"execution_count": 92, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pieces = [df[:2], df[2:]]\n", | |
"pieces" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 93, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.910874Z", | |
"start_time": "2019-05-20T11:19:48.898491Z" | |
}, | |
"hidden": true | |
}, | |
"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>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>-0.244737</td>\n", | |
" <td>0.193583</td>\n", | |
" <td>0.618107</td>\n", | |
" <td>1.367776</td>\n", | |
" <td>0.421097</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>-0.136700</td>\n", | |
" <td>0.492938</td>\n", | |
" <td>0.585207</td>\n", | |
" <td>0.075231</td>\n", | |
" <td>0.299545</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>-1.093732</td>\n", | |
" <td>-0.232071</td>\n", | |
" <td>0.678656</td>\n", | |
" <td>0.882982</td>\n", | |
" <td>0.824984</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>0.576383</td>\n", | |
" <td>0.463082</td>\n", | |
" <td>0.592405</td>\n", | |
" <td>-0.747336</td>\n", | |
" <td>0.420204</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2 3 4\n", | |
"0 -0.244737 0.193583 0.618107 1.367776 0.421097\n", | |
"1 -0.136700 0.492938 0.585207 0.075231 0.299545\n", | |
"2 -1.093732 -0.232071 0.678656 0.882982 0.824984\n", | |
"3 0.576383 0.463082 0.592405 -0.747336 0.420204" | |
] | |
}, | |
"execution_count": 93, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pd.concat(pieces)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Grouping" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 94, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.922679Z", | |
"start_time": "2019-05-20T11:19:48.912452Z" | |
}, | |
"hidden": true | |
}, | |
"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>A</th>\n", | |
" <th>B</th>\n", | |
" <th>C</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>foo</td>\n", | |
" <td>-0.553484</td>\n", | |
" <td>1.462874</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>bar</td>\n", | |
" <td>-0.131502</td>\n", | |
" <td>-0.151523</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>foo</td>\n", | |
" <td>0.699913</td>\n", | |
" <td>0.490660</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>bar</td>\n", | |
" <td>0.492997</td>\n", | |
" <td>-2.148453</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" A B C\n", | |
"0 foo -0.553484 1.462874\n", | |
"1 bar -0.131502 -0.151523\n", | |
"2 foo 0.699913 0.490660\n", | |
"3 bar 0.492997 -2.148453" | |
] | |
}, | |
"execution_count": 94, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar'],\n", | |
" 'B': np.random.randn(4),\n", | |
" 'C': np.random.randn(4)})\n", | |
"df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 95, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.935918Z", | |
"start_time": "2019-05-20T11:19:48.924256Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" A B C\n", | |
"0 foo -0.553484 1.462874\n", | |
"1 bar -0.131502 -0.151523\n", | |
"2 foo 0.699913 0.490660\n", | |
"3 bar 0.492997 -2.148453\n" | |
] | |
} | |
], | |
"source": [ | |
"print(df)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 96, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.950540Z", | |
"start_time": "2019-05-20T11:19:48.937671Z" | |
}, | |
"hidden": true | |
}, | |
"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>B</th>\n", | |
" <th>C</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>A</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>bar</th>\n", | |
" <td>0.361495</td>\n", | |
" <td>-2.299976</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>foo</th>\n", | |
" <td>0.146429</td>\n", | |
" <td>1.953534</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" B C\n", | |
"A \n", | |
"bar 0.361495 -2.299976\n", | |
"foo 0.146429 1.953534" | |
] | |
}, | |
"execution_count": 96, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.groupby('A').sum()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 97, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.961146Z", | |
"start_time": "2019-05-20T11:19:48.952364Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" B C\n", | |
"A \n", | |
"bar 0.361495 -2.299976\n", | |
"foo 0.146429 1.953534\n" | |
] | |
} | |
], | |
"source": [ | |
"print(df.groupby('A').sum())" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Time Series" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 98, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.979698Z", | |
"start_time": "2019-05-20T11:19:48.963420Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"DatetimeIndex(['2012-01-01 00:00:00', '2012-01-01 00:00:01',\n", | |
" '2012-01-01 00:00:02', '2012-01-01 00:00:03'],\n", | |
" dtype='datetime64[ns]', freq='S')" | |
] | |
}, | |
"execution_count": 98, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"rng = pd.date_range('1/1/2012', periods=4, freq='S')\n", | |
"rng" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 99, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:48.990993Z", | |
"start_time": "2019-05-20T11:19:48.982003Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"2012-01-01 00:00:00 172\n", | |
"2012-01-01 00:00:01 257\n", | |
"2012-01-01 00:00:02 452\n", | |
"2012-01-01 00:00:03 400\n", | |
"Freq: S, dtype: int64" | |
] | |
}, | |
"execution_count": 99, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ts = pd.Series(np.random.randint(0, 500, len(rng)), index=rng)\n", | |
"ts" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 100, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:49.006453Z", | |
"start_time": "2019-05-20T11:19:48.993252Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"2012-01-01 00:00:00 429\n", | |
"2012-01-01 00:00:02 852\n", | |
"Freq: 2S, dtype: int64" | |
] | |
}, | |
"execution_count": 100, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ts.resample('2S').sum()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Categorical" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 101, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:49.017460Z", | |
"start_time": "2019-05-20T11:19:49.008481Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 a\n", | |
"1 b\n", | |
"2 c\n", | |
"3 a\n", | |
"dtype: category\n", | |
"Categories (3, object): [a, b, c]" | |
] | |
}, | |
"execution_count": 101, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"s = pd.Series([\"a\", \"b\", \"c\", \"a\"], dtype=\"category\")\n", | |
"s" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"heading_collapsed": true, | |
"hidden": true | |
}, | |
"source": [ | |
"### Plotting" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 102, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:49.026305Z", | |
"start_time": "2019-05-20T11:19:49.019037Z" | |
}, | |
"code_folding": [ | |
0 | |
], | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"2000-01-01 -0.914553\n", | |
"2000-01-02 -0.533403\n", | |
"2000-01-03 2.094352\n", | |
"2000-01-04 0.923388\n", | |
"2000-01-05 1.378172\n", | |
"Freq: D, dtype: float64" | |
] | |
}, | |
"execution_count": 102, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ts = pd.Series(np.random.randn(1000),\n", | |
" index=pd.date_range('1/1/2000', periods=1000))\n", | |
"ts.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 103, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:49.037762Z", | |
"start_time": "2019-05-20T11:19:49.028015Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"2000-01-01 -0.914553\n", | |
"2000-01-02 -1.447956\n", | |
"2000-01-03 0.646397\n", | |
"2000-01-04 1.569784\n", | |
"2000-01-05 2.947957\n", | |
"Freq: D, dtype: float64" | |
] | |
}, | |
"execution_count": 103, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ts = ts.cumsum()\n", | |
"ts.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 104, | |
"metadata": { | |
"ExecuteTime": { | |
"end_time": "2019-05-20T11:19:49.360267Z", | |
"start_time": "2019-05-20T11:19:49.039323Z" | |
}, | |
"hidden": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f2f28c3e588>" | |
] | |
}, | |
"execution_count": 104, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"ts.plot()" | |
] | |
} | |
], | |
"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.3" | |
}, | |
"toc": { | |
"base_numbering": 1, | |
"nav_menu": {}, | |
"number_sections": false, | |
"sideBar": true, | |
"skip_h1_title": true, | |
"title_cell": "Table of Contents", | |
"title_sidebar": "Contents", | |
"toc_cell": false, | |
"toc_position": {}, | |
"toc_section_display": true, | |
"toc_window_display": false | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment