{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "(c) 2016 - present, Enplus Advisors, Inc." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "\n", "from IPython.display import Image\n", "\n", "pd.set_option('precision', 2)\n", "\n", "def image(name, **kwargs):\n", " return Image(filename=f'assets/{name}', retina=True, **kwargs)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Programming with Data
Foundations of Python and Pandas\n", "\n", "# Lesson 1: Series" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Download slides and exercises\n", "\n", "View pre-rendered notebooks at\n", "```\n", "github.com/dgerlanc/programming-with-data\n", "```\n", "\n", "Clone the `git` repo by running\n", "```\n", "git clone https://github.com/dgerlanc/programming-with-data\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Goals:\n", "\n", "* pandas has a huge API\n", "* Our goal is to distill some wisdom about python" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Pandas" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Expansive library with a huge API." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Distill some `pandas` wisdom." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "I try to present a conceptual approach to \"Programming with Data\",\n", "starting with primitive data types and working up from there.\n", "\n", "I like to think about Series in two primary ways (on next slide):\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## What is a `Series`?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Series is the building block of `pandas`." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Two ways I conceptualize them..." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Ordered key-value pairs with homogenous data type\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 3, "metadata": { "image/png": { "height": 518, "width": 545 } }, "output_type": "execute_result" } ], "source": [ "image('lesson-01-key-value.png')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### A label array and a data array" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 4, "metadata": { "image/png": { "height": 409, "width": 409 } }, "output_type": "execute_result" } ], "source": [ "image('data-label-arrays.png')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Create a simple `Series`" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "* These are the standard imports we'll assume.\n", "* Let's create a Series." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "0 6\n", "1 8\n", "2 7\n", "3 5\n", "dtype: int64" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "\n", "s = pd.Series([6, 8, 7, 5])\n", "s" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "`dtype` is the `Series` datatype. Corresponds to the `numpy` dtype (mostly)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "More information on `numpy` data types [here](https://numpy.org/doc/stable/reference/arrays.dtypes.html)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Convert to another `numpy` dtype" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "A benefit of having `numpy` imported is that you can convert to\n", "any `numpy` type (as long as the operation is defined)." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "0 6\n", "1 8\n", "2 7\n", "3 5\n", "dtype: int64" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "0 6.0\n", "1 8.0\n", "2 7.0\n", "3 5.0\n", "dtype: float64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.astype(np.float64)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Series from a `pandas` perspective" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "In `pandas`:\n", "* the keys/labels are called the `index`\n", "* The data are the `values`\n", "\n", "\n", "Note: The `index` is not required to be unique but some operations are not supported\n", "if there are duplicates, e.g., unstacking" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "This is important because the index determines alignment of pandas\n", "objects, as we will see shortly." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Series - Implicit Index" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "s = pd.Series([6, 8, 7, 5])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "RangeIndex(start=0, stop=4, step=1)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.index" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "If you don't provide explicit labels you get increasing integer labels." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "\n", "[6, 8, 7, 5]\n", "Length: 4, dtype: int64" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s.array" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "`s.array` is a `numpy` compatible array" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Series - Explicit Index" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "b 8\n", "d 6\n", "c 7\n", "a 5\n", "dtype: int64" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s1 = pd.Series([8, 6, 7, 5], index=['b', 'd', 'c', 'a'])\n", "s1" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "Index(['b', 'd', 'c', 'a'], dtype='object')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s1.index" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Now we have a new kind of `Index`, but the values stay the same." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "\n", "[8, 6, 7, 5]\n", "Length: 4, dtype: int64" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s1.array # pandas > 0.24.0" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Series from `dict`" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Can also create a series from a `dict`." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "`dict`s preserve insertion order since Python 3.6 so you can no longer\n", "rely on `pandas` automatically sorting the index" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "b 8\n", "d 6\n", "c 7\n", "a 5\n", "dtype: int64" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s2 = pd.Series({'b': 8, 'd': 6, 'c': 7, 'a': 5})\n", "s2" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Pre-Python 3.6 `index` sorting" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "a 5\n", "b 8\n", "c 7\n", "d 6\n", "dtype: int64" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s2.sort_index()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Selecting from a `Series`\n", "\n", "* Select by position: `iloc`\n", "* Select by label: `loc`\n", "* Let `pandas` decide if label or position" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Selection by position" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "b 8\n", "d 6\n", "c 7\n", "a 5\n", "dtype: int64" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s2" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "8" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s2.iloc[0]" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "8" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# shortcut method\n", "s2[0]" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Selection by label" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "b 8\n", "d 6\n", "c 7\n", "a 5\n", "dtype: int64" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s2" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "5" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s2.loc['a'] " ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "5" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# shortcut method\n", "s2['a']" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## So why do we need `pandas`?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* Vectorization\n", "* Missing Data\n", "* Alignment" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Vectorization" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Definition__: Applying a single operation to multiple data elements" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 22, "metadata": { "image/png": { "height": 351, "width": 709 } }, "output_type": "execute_result" } ], "source": [ "image('vectorized-multiplication.png')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Most operations in `pandas` are vectorized" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "b 24\n", "d 18\n", "c 21\n", "a 15\n", "dtype: int64" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3 * s2" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* Vectorization provides implicit iteration.\n", "* Would need to write a loop in base `Python`" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "`pandas` preserves the `index` in the result" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Vectorized selection" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "b 8\n", "d 6\n", "c 7\n", "a 5\n", "dtype: int64" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s2" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "a 5\n", "c 7\n", "dtype: int64" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s2.loc[['a', 'c']] # s3[['a', 'c']]" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Note how selection operations preserve the `index`." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Query a `Series`" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Use query operations to _search_ for elements that satisfy one or more conditions." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "b True\n", "d True\n", "c True\n", "a False\n", "dtype: bool" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idx = s2 > 5\n", "idx" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "b 8\n", "d 6\n", "c 7\n", "dtype: int64" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Selecting with a boolean vector\n", "s2[idx]" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Query with compound statements" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "b True\n", "d False\n", "c True\n", "a False\n", "dtype: bool" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idx = (6 < s2) & (s2 < 100)\n", "idx" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "`&` binds more tightly than comparison operators so you need parentheses." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Query missing data" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "0 6.0\n", "1 8.0\n", "2 NaN\n", "3 7.0\n", "dtype: float64" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s3 = pd.Series([6., 8., np.nan, 7.])\n", "s3" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "0 False\n", "1 False\n", "2 True\n", "3 False\n", "dtype: bool" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s3.isnull() # method" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "0 6.0\n", "1 8.0\n", "3 7.0\n", "dtype: float64" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s3[pd.notnull(s3)] # function" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Note the preservation of labels (index)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Types of Missing Data" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "What is the `dtype` of `s4`?" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "s4 = pd.Series([1, 2, np.nan, 5], index=list('abcd'))" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "a 1.0\n", "b 2.0\n", "c NaN\n", "d 5.0\n", "dtype: float64" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s4" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__WARNING__: There is no integer NA type in `pandas < 0.24.0`" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Missingness in modern `pandas`" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* `pandas` supports missing data using extension types in version > 0.24\n", "* Allows you to have integers (and other non-`object` types) with missing values" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "a 1\n", "b 2\n", "c \n", "d 5\n", "dtype: Int64" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s4m = pd.Series([1, 2, np.nan, 5], index=list('abcd'), dtype='Int64')\n", "s4m" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Introducing alignment " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Operations in `pandas` are implicitly aligned by index!" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "s5 = pd.Series([6, 8, 7], index=list('abc'))\n", "s6 = pd.Series([1, 2, 3, 4], index=list('abcd'), dtype='Int64')" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "a 7.0\n", "b 10.0\n", "c 10.0\n", "d NaN\n", "dtype: float64" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s5 + s6" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Note that the \"NA-ness\" of `s6` does not propagate to the result!\n", "\n", "For consistent behavior, all `Series` must opt in to the NA-enabled extension types." ] } ], "metadata": { "celltoolbar": "Slideshow", "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.8.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": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "287px" }, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }