Skip to content

Instantly share code, notes, and snippets.

@makoscafee
Forked from TomAugspurger/dplyr_pandas.ipynb
Last active September 16, 2015 05:41
Show Gist options
  • Save makoscafee/ee10da45160992201145 to your computer and use it in GitHub Desktop.
Save makoscafee/ee10da45160992201145 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook compares [pandas](http://pandas.pydata.org)\n",
"and [dplyr](http://cran.r-project.org/web/packages/dplyr/index.html).\n",
"The comparison is just on syntax (verbage), not performance. Whether you're an R user looking to switch to pandas (or the other way around), I hope this guide will help ease the transition.\n",
"\n",
"We'll work through the [introductory dplyr vignette](http://cran.r-project.org/web/packages/dplyr/vignettes/introduction.html) to analyze some flight data.\n",
"\n",
"I'm working on a better layout to show the two packages side by side.\n",
"But for now I'm just putting the ``dplyr`` code in a comment above each python call."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/tom.augspurger/Envs/py3/lib/python3.4/site-packages/IPython/extensions/rmagic.py:693: UserWarning: The rmagic extension in IPython is deprecated in favour of rpy2.ipython. If available, that will be loaded instead.\n",
"http://rpy.sourceforge.net/\n",
" warnings.warn(\"The rmagic extension in IPython is deprecated in favour of \"\n"
]
}
],
"source": [
"# Some prep work to get the data from R and into pandas\n",
"%matplotlib inline\n",
"%load_ext rmagic\n",
"\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"\n",
"pd.set_option(\"display.max_rows\", 5)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"trying URL 'http://cran.us.r-project.org/src/contrib/nycflights13_0.1.tar.gz'\n",
"Content type 'application/x-gzip' length 3585227 bytes (3.4 MB)\n",
"opened URL\n",
"==================================================\n",
"downloaded 3.4 MB\n",
"\n",
"\n",
"The downloaded source packages are in\n",
"\t‘/private/var/folders/n5/t6my_m7n17sgt4m7j9vmnrlm0000gp/T/Rtmpn3AEi1/downloaded_packages’\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%R\n",
"install.packages(\"nycflights13\", repos='http://cran.us.r-project.org')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%%R\n",
"library(nycflights13)\n",
"write.csv(flights, \"flights.csv\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Data: nycflights13"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"flights = pd.read_csv(\"flights.csv\", index_col=0)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(336776, 16)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# dim(flights) <--- The R code\n",
"flights.shape # <--- The python code"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>dep_time</th>\n",
" <th>dep_delay</th>\n",
" <th>arr_time</th>\n",
" <th>arr_delay</th>\n",
" <th>carrier</th>\n",
" <th>tailnum</th>\n",
" <th>flight</th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" <th>air_time</th>\n",
" <th>distance</th>\n",
" <th>hour</th>\n",
" <th>minute</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>517</td>\n",
" <td>2</td>\n",
" <td>830</td>\n",
" <td>11</td>\n",
" <td>UA</td>\n",
" <td>N14228</td>\n",
" <td>1545</td>\n",
" <td>EWR</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1400</td>\n",
" <td>5</td>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>533</td>\n",
" <td>4</td>\n",
" <td>850</td>\n",
" <td>20</td>\n",
" <td>UA</td>\n",
" <td>N24211</td>\n",
" <td>1714</td>\n",
" <td>LGA</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1416</td>\n",
" <td>5</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>542</td>\n",
" <td>2</td>\n",
" <td>923</td>\n",
" <td>33</td>\n",
" <td>AA</td>\n",
" <td>N619AA</td>\n",
" <td>1141</td>\n",
" <td>JFK</td>\n",
" <td>MIA</td>\n",
" <td>160</td>\n",
" <td>1089</td>\n",
" <td>5</td>\n",
" <td>42</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>544</td>\n",
" <td>-1</td>\n",
" <td>1004</td>\n",
" <td>-18</td>\n",
" <td>B6</td>\n",
" <td>N804JB</td>\n",
" <td>725</td>\n",
" <td>JFK</td>\n",
" <td>BQN</td>\n",
" <td>183</td>\n",
" <td>1576</td>\n",
" <td>5</td>\n",
" <td>44</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>554</td>\n",
" <td>-6</td>\n",
" <td>812</td>\n",
" <td>-25</td>\n",
" <td>DL</td>\n",
" <td>N668DN</td>\n",
" <td>461</td>\n",
" <td>LGA</td>\n",
" <td>ATL</td>\n",
" <td>116</td>\n",
" <td>762</td>\n",
" <td>5</td>\n",
" <td>54</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" year month day dep_time dep_delay arr_time arr_delay carrier tailnum \\\n",
"1 2013 1 1 517 2 830 11 UA N14228 \n",
"2 2013 1 1 533 4 850 20 UA N24211 \n",
"3 2013 1 1 542 2 923 33 AA N619AA \n",
"4 2013 1 1 544 -1 1004 -18 B6 N804JB \n",
"5 2013 1 1 554 -6 812 -25 DL N668DN \n",
"\n",
" flight origin dest air_time distance hour minute \n",
"1 1545 EWR IAH 227 1400 5 17 \n",
"2 1714 LGA IAH 227 1416 5 33 \n",
"3 1141 JFK MIA 160 1089 5 42 \n",
"4 725 JFK BQN 183 1576 5 44 \n",
"5 461 LGA ATL 116 762 5 54 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# head(flights)\n",
"flights.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Single table verbs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"``dplyr`` has a small set of nicely defined verbs. I've listed their closest pandas verbs.\n",
"\n",
"\n",
"<table>\n",
" <tr>\n",
" <td><b>dplyr</b></td>\n",
" <td><b>pandas</b></td>\n",
" </tr>\n",
" <tr>\n",
" <td>filter() (and slice())</td>\n",
" <td>query() (and loc[], iloc[])</td>\n",
" </tr>\n",
" <tr>\n",
" <td>arrange()</td>\n",
" <td>sort()</td>\n",
" </tr>\n",
" <tr>\n",
" <td>select() (and rename())</td>\n",
" <td>__getitem__ (and rename())</td>\n",
" </tr>\n",
" <tr>\n",
" <td>distinct()</td>\n",
" <td>drop_duplicates()</td>\n",
" </tr>\n",
" <tr>\n",
" <td>mutate() (and transmute())</td>\n",
" <td>assign</td>\n",
" </tr>\n",
" <tr>\n",
" <td>summarise()</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <td>sample_n() and sample_frac()</td>\n",
" <td>None</td>\n",
" </tr>\n",
"</table>\n",
"\n",
"\n",
"Some of the \"missing\" verbs in pandas are because there are other, different ways of achieving the same goal. For example `summarise` is spread across `mean`, `std`, etc. Others, like `sample_n`, just haven't been implemented yet."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Filter rows with filter(), query()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>dep_time</th>\n",
" <th>dep_delay</th>\n",
" <th>arr_time</th>\n",
" <th>arr_delay</th>\n",
" <th>carrier</th>\n",
" <th>tailnum</th>\n",
" <th>flight</th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" <th>air_time</th>\n",
" <th>distance</th>\n",
" <th>hour</th>\n",
" <th>minute</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>517</td>\n",
" <td>2</td>\n",
" <td>830</td>\n",
" <td>11</td>\n",
" <td>UA</td>\n",
" <td>N14228</td>\n",
" <td>1545</td>\n",
" <td>EWR</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1400</td>\n",
" <td>5</td>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>533</td>\n",
" <td>4</td>\n",
" <td>850</td>\n",
" <td>20</td>\n",
" <td>UA</td>\n",
" <td>N24211</td>\n",
" <td>1714</td>\n",
" <td>LGA</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1416</td>\n",
" <td>5</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>841</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>AA</td>\n",
" <td>N3EVAA</td>\n",
" <td>1925</td>\n",
" <td>LGA</td>\n",
" <td>MIA</td>\n",
" <td>NaN</td>\n",
" <td>1096</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>842</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>B6</td>\n",
" <td>N618JB</td>\n",
" <td>125</td>\n",
" <td>JFK</td>\n",
" <td>FLL</td>\n",
" <td>NaN</td>\n",
" <td>1069</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>842 rows × 16 columns</p>\n",
"</div>"
],
"text/plain": [
" year month day dep_time dep_delay arr_time arr_delay carrier \\\n",
"1 2013 1 1 517 2 830 11 UA \n",
"2 2013 1 1 533 4 850 20 UA \n",
".. ... ... ... ... ... ... ... ... \n",
"841 2013 1 1 NaN NaN NaN NaN AA \n",
"842 2013 1 1 NaN NaN NaN NaN B6 \n",
"\n",
" tailnum flight origin dest air_time distance hour minute \n",
"1 N14228 1545 EWR IAH 227 1400 5 17 \n",
"2 N24211 1714 LGA IAH 227 1416 5 33 \n",
".. ... ... ... ... ... ... ... ... \n",
"841 N3EVAA 1925 LGA MIA NaN 1096 NaN NaN \n",
"842 N618JB 125 JFK FLL NaN 1069 NaN NaN \n",
"\n",
"[842 rows x 16 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# filter(flights, month == 1, day == 1)\n",
"flights.query(\"month == 1 & day == 1\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The more verbose version:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>dep_time</th>\n",
" <th>dep_delay</th>\n",
" <th>arr_time</th>\n",
" <th>arr_delay</th>\n",
" <th>carrier</th>\n",
" <th>tailnum</th>\n",
" <th>flight</th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" <th>air_time</th>\n",
" <th>distance</th>\n",
" <th>hour</th>\n",
" <th>minute</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>517</td>\n",
" <td>2</td>\n",
" <td>830</td>\n",
" <td>11</td>\n",
" <td>UA</td>\n",
" <td>N14228</td>\n",
" <td>1545</td>\n",
" <td>EWR</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1400</td>\n",
" <td>5</td>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>533</td>\n",
" <td>4</td>\n",
" <td>850</td>\n",
" <td>20</td>\n",
" <td>UA</td>\n",
" <td>N24211</td>\n",
" <td>1714</td>\n",
" <td>LGA</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1416</td>\n",
" <td>5</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>841</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>AA</td>\n",
" <td>N3EVAA</td>\n",
" <td>1925</td>\n",
" <td>LGA</td>\n",
" <td>MIA</td>\n",
" <td>NaN</td>\n",
" <td>1096</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>842</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>B6</td>\n",
" <td>N618JB</td>\n",
" <td>125</td>\n",
" <td>JFK</td>\n",
" <td>FLL</td>\n",
" <td>NaN</td>\n",
" <td>1069</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>842 rows × 16 columns</p>\n",
"</div>"
],
"text/plain": [
" year month day dep_time dep_delay arr_time arr_delay carrier \\\n",
"1 2013 1 1 517 2 830 11 UA \n",
"2 2013 1 1 533 4 850 20 UA \n",
".. ... ... ... ... ... ... ... ... \n",
"841 2013 1 1 NaN NaN NaN NaN AA \n",
"842 2013 1 1 NaN NaN NaN NaN B6 \n",
"\n",
" tailnum flight origin dest air_time distance hour minute \n",
"1 N14228 1545 EWR IAH 227 1400 5 17 \n",
"2 N24211 1714 LGA IAH 227 1416 5 33 \n",
".. ... ... ... ... ... ... ... ... \n",
"841 N3EVAA 1925 LGA MIA NaN 1096 NaN NaN \n",
"842 N618JB 125 JFK FLL NaN 1069 NaN NaN \n",
"\n",
"[842 rows x 16 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# flights[flights$month == 1 & flights$day == 1, ]\n",
"flights[(flights.month == 1) & (flights.day == 1)]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>dep_time</th>\n",
" <th>dep_delay</th>\n",
" <th>arr_time</th>\n",
" <th>arr_delay</th>\n",
" <th>carrier</th>\n",
" <th>tailnum</th>\n",
" <th>flight</th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" <th>air_time</th>\n",
" <th>distance</th>\n",
" <th>hour</th>\n",
" <th>minute</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>517</td>\n",
" <td>2</td>\n",
" <td>830</td>\n",
" <td>11</td>\n",
" <td>UA</td>\n",
" <td>N14228</td>\n",
" <td>1545</td>\n",
" <td>EWR</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1400</td>\n",
" <td>5</td>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>533</td>\n",
" <td>4</td>\n",
" <td>850</td>\n",
" <td>20</td>\n",
" <td>UA</td>\n",
" <td>N24211</td>\n",
" <td>1714</td>\n",
" <td>LGA</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1416</td>\n",
" <td>5</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>557</td>\n",
" <td>-3</td>\n",
" <td>709</td>\n",
" <td>-14</td>\n",
" <td>EV</td>\n",
" <td>N829AS</td>\n",
" <td>5708</td>\n",
" <td>LGA</td>\n",
" <td>IAD</td>\n",
" <td>53</td>\n",
" <td>229</td>\n",
" <td>5</td>\n",
" <td>57</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>557</td>\n",
" <td>-3</td>\n",
" <td>838</td>\n",
" <td>-8</td>\n",
" <td>B6</td>\n",
" <td>N593JB</td>\n",
" <td>79</td>\n",
" <td>JFK</td>\n",
" <td>MCO</td>\n",
" <td>140</td>\n",
" <td>944</td>\n",
" <td>5</td>\n",
" <td>57</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>9 rows × 16 columns</p>\n",
"</div>"
],
"text/plain": [
" year month day dep_time dep_delay arr_time arr_delay carrier \\\n",
"1 2013 1 1 517 2 830 11 UA \n",
"2 2013 1 1 533 4 850 20 UA \n",
".. ... ... ... ... ... ... ... ... \n",
"8 2013 1 1 557 -3 709 -14 EV \n",
"9 2013 1 1 557 -3 838 -8 B6 \n",
"\n",
" tailnum flight origin dest air_time distance hour minute \n",
"1 N14228 1545 EWR IAH 227 1400 5 17 \n",
"2 N24211 1714 LGA IAH 227 1416 5 33 \n",
".. ... ... ... ... ... ... ... ... \n",
"8 N829AS 5708 LGA IAD 53 229 5 57 \n",
"9 N593JB 79 JFK MCO 140 944 5 57 \n",
"\n",
"[9 rows x 16 columns]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# slice(flights, 1:10)\n",
"flights.iloc[:9]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Arrange rows with arrange(), sort()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>dep_time</th>\n",
" <th>dep_delay</th>\n",
" <th>arr_time</th>\n",
" <th>arr_delay</th>\n",
" <th>carrier</th>\n",
" <th>tailnum</th>\n",
" <th>flight</th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" <th>air_time</th>\n",
" <th>distance</th>\n",
" <th>hour</th>\n",
" <th>minute</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>517</td>\n",
" <td>2</td>\n",
" <td>830</td>\n",
" <td>11</td>\n",
" <td>UA</td>\n",
" <td>N14228</td>\n",
" <td>1545</td>\n",
" <td>EWR</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1400</td>\n",
" <td>5</td>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>533</td>\n",
" <td>4</td>\n",
" <td>850</td>\n",
" <td>20</td>\n",
" <td>UA</td>\n",
" <td>N24211</td>\n",
" <td>1714</td>\n",
" <td>LGA</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1416</td>\n",
" <td>5</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>111295</th>\n",
" <td>2013</td>\n",
" <td>12</td>\n",
" <td>31</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>UA</td>\n",
" <td>NaN</td>\n",
" <td>219</td>\n",
" <td>EWR</td>\n",
" <td>ORD</td>\n",
" <td>NaN</td>\n",
" <td>719</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>111296</th>\n",
" <td>2013</td>\n",
" <td>12</td>\n",
" <td>31</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>UA</td>\n",
" <td>NaN</td>\n",
" <td>443</td>\n",
" <td>JFK</td>\n",
" <td>LAX</td>\n",
" <td>NaN</td>\n",
" <td>2475</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>336776 rows × 16 columns</p>\n",
"</div>"
],
"text/plain": [
" year month day dep_time dep_delay arr_time arr_delay carrier \\\n",
"1 2013 1 1 517 2 830 11 UA \n",
"2 2013 1 1 533 4 850 20 UA \n",
"... ... ... ... ... ... ... ... ... \n",
"111295 2013 12 31 NaN NaN NaN NaN UA \n",
"111296 2013 12 31 NaN NaN NaN NaN UA \n",
"\n",
" tailnum flight origin dest air_time distance hour minute \n",
"1 N14228 1545 EWR IAH 227 1400 5 17 \n",
"2 N24211 1714 LGA IAH 227 1416 5 33 \n",
"... ... ... ... ... ... ... ... ... \n",
"111295 NaN 219 EWR ORD NaN 719 NaN NaN \n",
"111296 NaN 443 JFK LAX NaN 2475 NaN NaN \n",
"\n",
"[336776 rows x 16 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# arrange(flights, year, month, day) \n",
"flights.sort(['year', 'month', 'day'])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>dep_time</th>\n",
" <th>dep_delay</th>\n",
" <th>arr_time</th>\n",
" <th>arr_delay</th>\n",
" <th>carrier</th>\n",
" <th>tailnum</th>\n",
" <th>flight</th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" <th>air_time</th>\n",
" <th>distance</th>\n",
" <th>hour</th>\n",
" <th>minute</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>7073</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>9</td>\n",
" <td>641</td>\n",
" <td>1301</td>\n",
" <td>1242</td>\n",
" <td>1272</td>\n",
" <td>HA</td>\n",
" <td>N384HA</td>\n",
" <td>51</td>\n",
" <td>JFK</td>\n",
" <td>HNL</td>\n",
" <td>640</td>\n",
" <td>4983</td>\n",
" <td>6</td>\n",
" <td>41</td>\n",
" </tr>\n",
" <tr>\n",
" <th>235779</th>\n",
" <td>2013</td>\n",
" <td>6</td>\n",
" <td>15</td>\n",
" <td>1432</td>\n",
" <td>1137</td>\n",
" <td>1607</td>\n",
" <td>1127</td>\n",
" <td>MQ</td>\n",
" <td>N504MQ</td>\n",
" <td>3535</td>\n",
" <td>JFK</td>\n",
" <td>CMH</td>\n",
" <td>74</td>\n",
" <td>483</td>\n",
" <td>14</td>\n",
" <td>32</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336775</th>\n",
" <td>2013</td>\n",
" <td>9</td>\n",
" <td>30</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>MQ</td>\n",
" <td>N511MQ</td>\n",
" <td>3572</td>\n",
" <td>LGA</td>\n",
" <td>CLE</td>\n",
" <td>NaN</td>\n",
" <td>419</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336776</th>\n",
" <td>2013</td>\n",
" <td>9</td>\n",
" <td>30</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>MQ</td>\n",
" <td>N839MQ</td>\n",
" <td>3531</td>\n",
" <td>LGA</td>\n",
" <td>RDU</td>\n",
" <td>NaN</td>\n",
" <td>431</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>336776 rows × 16 columns</p>\n",
"</div>"
],
"text/plain": [
" year month day dep_time dep_delay arr_time arr_delay carrier \\\n",
"7073 2013 1 9 641 1301 1242 1272 HA \n",
"235779 2013 6 15 1432 1137 1607 1127 MQ \n",
"... ... ... ... ... ... ... ... ... \n",
"336775 2013 9 30 NaN NaN NaN NaN MQ \n",
"336776 2013 9 30 NaN NaN NaN NaN MQ \n",
"\n",
" tailnum flight origin dest air_time distance hour minute \n",
"7073 N384HA 51 JFK HNL 640 4983 6 41 \n",
"235779 N504MQ 3535 JFK CMH 74 483 14 32 \n",
"... ... ... ... ... ... ... ... ... \n",
"336775 N511MQ 3572 LGA CLE NaN 419 NaN NaN \n",
"336776 N839MQ 3531 LGA RDU NaN 431 NaN NaN \n",
"\n",
"[336776 rows x 16 columns]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# arrange(flights, desc(arr_delay))\n",
"flights.sort('arr_delay', ascending=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Select columns with select(), []"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336775</th>\n",
" <td>2013</td>\n",
" <td>9</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336776</th>\n",
" <td>2013</td>\n",
" <td>9</td>\n",
" <td>30</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>336776 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" year month day\n",
"1 2013 1 1\n",
"2 2013 1 1\n",
"... ... ... ...\n",
"336775 2013 9 30\n",
"336776 2013 9 30\n",
"\n",
"[336776 rows x 3 columns]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# select(flights, year, month, day) \n",
"flights[['year', 'month', 'day']]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# select(flights, year:day) \n",
"\n",
"# No real equivalent here. Although I think this is OK.\n",
"# Typically I'll have the columns I want stored in a list\n",
"# somewhere, which can be passed right into __getitem__ ([])."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# select(flights, -(year:day)) \n",
"\n",
"# Again, simliar story. I would just use\n",
"# flights.drop(cols_to_drop, axis=1)\n",
"# or fligths[flights.columns.difference(pd.Index(cols_to_drop))]\n",
"# point to dplyr!"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"1 N14228\n",
"2 N24211\n",
" ... \n",
"336775 N511MQ\n",
"336776 N839MQ\n",
"Name: tail_num, dtype: object"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# select(flights, tail_num = tailnum)\n",
"flights.rename(columns={'tailnum': 'tail_num'})['tail_num']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"But like Hadley mentions, not that useful since it only returns the one column. ``dplyr`` and ``pandas`` compare well here."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>dep_time</th>\n",
" <th>dep_delay</th>\n",
" <th>arr_time</th>\n",
" <th>arr_delay</th>\n",
" <th>carrier</th>\n",
" <th>tail_num</th>\n",
" <th>flight</th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" <th>air_time</th>\n",
" <th>distance</th>\n",
" <th>hour</th>\n",
" <th>minute</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>517</td>\n",
" <td>2</td>\n",
" <td>830</td>\n",
" <td>11</td>\n",
" <td>UA</td>\n",
" <td>N14228</td>\n",
" <td>1545</td>\n",
" <td>EWR</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1400</td>\n",
" <td>5</td>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>533</td>\n",
" <td>4</td>\n",
" <td>850</td>\n",
" <td>20</td>\n",
" <td>UA</td>\n",
" <td>N24211</td>\n",
" <td>1714</td>\n",
" <td>LGA</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1416</td>\n",
" <td>5</td>\n",
" <td>33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336775</th>\n",
" <td>2013</td>\n",
" <td>9</td>\n",
" <td>30</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>MQ</td>\n",
" <td>N511MQ</td>\n",
" <td>3572</td>\n",
" <td>LGA</td>\n",
" <td>CLE</td>\n",
" <td>NaN</td>\n",
" <td>419</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336776</th>\n",
" <td>2013</td>\n",
" <td>9</td>\n",
" <td>30</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>MQ</td>\n",
" <td>N839MQ</td>\n",
" <td>3531</td>\n",
" <td>LGA</td>\n",
" <td>RDU</td>\n",
" <td>NaN</td>\n",
" <td>431</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>336776 rows × 16 columns</p>\n",
"</div>"
],
"text/plain": [
" year month day dep_time dep_delay arr_time arr_delay carrier \\\n",
"1 2013 1 1 517 2 830 11 UA \n",
"2 2013 1 1 533 4 850 20 UA \n",
"... ... ... ... ... ... ... ... ... \n",
"336775 2013 9 30 NaN NaN NaN NaN MQ \n",
"336776 2013 9 30 NaN NaN NaN NaN MQ \n",
"\n",
" tail_num flight origin dest air_time distance hour minute \n",
"1 N14228 1545 EWR IAH 227 1400 5 17 \n",
"2 N24211 1714 LGA IAH 227 1416 5 33 \n",
"... ... ... ... ... ... ... ... ... \n",
"336775 N511MQ 3572 LGA CLE NaN 419 NaN NaN \n",
"336776 N839MQ 3531 LGA RDU NaN 431 NaN NaN \n",
"\n",
"[336776 rows x 16 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# rename(flights, tail_num = tailnum)\n",
"flights.rename(columns={'tailnum': 'tail_num'})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pandas is more verbose, but the the argument to `columns` can be any mapping. So it's often used with a function to perform a common task, say `df.rename(columns=lambda x: x.replace('-', '_'))` to replace any dashes with underscores. Also, ``rename`` (the pandas version) can be applied to the Index."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Extract distinct (unique) rows "
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array(['N14228', 'N24211', 'N619AA', ..., 'N776SK', 'N785SK', 'N557AS'], dtype=object)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# distinct(select(flights, tailnum))\n",
"flights.tailnum.unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"FYI this returns a numpy array instead of a Series."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>EWR</td>\n",
" <td>IAH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>LGA</td>\n",
" <td>IAH</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>255456</th>\n",
" <td>EWR</td>\n",
" <td>ANC</td>\n",
" </tr>\n",
" <tr>\n",
" <th>275946</th>\n",
" <td>EWR</td>\n",
" <td>LGA</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>224 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" origin dest\n",
"1 EWR IAH\n",
"2 LGA IAH\n",
"... ... ...\n",
"255456 EWR ANC\n",
"275946 EWR LGA\n",
"\n",
"[224 rows x 2 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# distinct(select(flights, origin, dest))\n",
"flights[['origin', 'dest']].drop_duplicates()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"OK, so ``dplyr`` wins there from a consistency point of view. ``unique`` is only defined on Series, not DataFrames. The original intention for `drop_duplicates` is to check for records that were accidentally included twice. This feels a bit hacky using it to select the distinct combinations, but it works!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Add new columns with mutate() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We at pandas shamelessly stole this for [v0.16.0](http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#whatsnew-0160-enhancements-assign)."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>dep_time</th>\n",
" <th>dep_delay</th>\n",
" <th>arr_time</th>\n",
" <th>arr_delay</th>\n",
" <th>carrier</th>\n",
" <th>tailnum</th>\n",
" <th>flight</th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" <th>air_time</th>\n",
" <th>distance</th>\n",
" <th>hour</th>\n",
" <th>minute</th>\n",
" <th>gain</th>\n",
" <th>speed</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>517</td>\n",
" <td>2</td>\n",
" <td>830</td>\n",
" <td>11</td>\n",
" <td>UA</td>\n",
" <td>N14228</td>\n",
" <td>1545</td>\n",
" <td>EWR</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1400</td>\n",
" <td>5</td>\n",
" <td>17</td>\n",
" <td>9</td>\n",
" <td>370.044053</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>533</td>\n",
" <td>4</td>\n",
" <td>850</td>\n",
" <td>20</td>\n",
" <td>UA</td>\n",
" <td>N24211</td>\n",
" <td>1714</td>\n",
" <td>LGA</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1416</td>\n",
" <td>5</td>\n",
" <td>33</td>\n",
" <td>16</td>\n",
" <td>374.273128</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336775</th>\n",
" <td>2013</td>\n",
" <td>9</td>\n",
" <td>30</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>MQ</td>\n",
" <td>N511MQ</td>\n",
" <td>3572</td>\n",
" <td>LGA</td>\n",
" <td>CLE</td>\n",
" <td>NaN</td>\n",
" <td>419</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336776</th>\n",
" <td>2013</td>\n",
" <td>9</td>\n",
" <td>30</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>MQ</td>\n",
" <td>N839MQ</td>\n",
" <td>3531</td>\n",
" <td>LGA</td>\n",
" <td>RDU</td>\n",
" <td>NaN</td>\n",
" <td>431</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>336776 rows × 18 columns</p>\n",
"</div>"
],
"text/plain": [
" year month day dep_time dep_delay arr_time arr_delay carrier \\\n",
"1 2013 1 1 517 2 830 11 UA \n",
"2 2013 1 1 533 4 850 20 UA \n",
"... ... ... ... ... ... ... ... ... \n",
"336775 2013 9 30 NaN NaN NaN NaN MQ \n",
"336776 2013 9 30 NaN NaN NaN NaN MQ \n",
"\n",
" tailnum flight origin dest air_time distance hour minute gain \\\n",
"1 N14228 1545 EWR IAH 227 1400 5 17 9 \n",
"2 N24211 1714 LGA IAH 227 1416 5 33 16 \n",
"... ... ... ... ... ... ... ... ... ... \n",
"336775 N511MQ 3572 LGA CLE NaN 419 NaN NaN NaN \n",
"336776 N839MQ 3531 LGA RDU NaN 431 NaN NaN NaN \n",
"\n",
" speed \n",
"1 370.044053 \n",
"2 374.273128 \n",
"... ... \n",
"336775 NaN \n",
"336776 NaN \n",
"\n",
"[336776 rows x 18 columns]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# mutate(flights,\n",
"# gain = arr_delay - dep_delay,\n",
"# speed = distance / air_time * 60)\n",
"\n",
"flights.assign(gain=flights.arr_delay - flights.dep_delay,\n",
" speed=flights.distance / flights.air_time * 60)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>dep_time</th>\n",
" <th>dep_delay</th>\n",
" <th>arr_time</th>\n",
" <th>arr_delay</th>\n",
" <th>carrier</th>\n",
" <th>tailnum</th>\n",
" <th>flight</th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" <th>air_time</th>\n",
" <th>distance</th>\n",
" <th>hour</th>\n",
" <th>minute</th>\n",
" <th>gain</th>\n",
" <th>gain_per_hour</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>517</td>\n",
" <td>2</td>\n",
" <td>830</td>\n",
" <td>11</td>\n",
" <td>UA</td>\n",
" <td>N14228</td>\n",
" <td>1545</td>\n",
" <td>EWR</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1400</td>\n",
" <td>5</td>\n",
" <td>17</td>\n",
" <td>9</td>\n",
" <td>2.378855</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>533</td>\n",
" <td>4</td>\n",
" <td>850</td>\n",
" <td>20</td>\n",
" <td>UA</td>\n",
" <td>N24211</td>\n",
" <td>1714</td>\n",
" <td>LGA</td>\n",
" <td>IAH</td>\n",
" <td>227</td>\n",
" <td>1416</td>\n",
" <td>5</td>\n",
" <td>33</td>\n",
" <td>16</td>\n",
" <td>4.229075</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336775</th>\n",
" <td>2013</td>\n",
" <td>9</td>\n",
" <td>30</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>MQ</td>\n",
" <td>N511MQ</td>\n",
" <td>3572</td>\n",
" <td>LGA</td>\n",
" <td>CLE</td>\n",
" <td>NaN</td>\n",
" <td>419</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336776</th>\n",
" <td>2013</td>\n",
" <td>9</td>\n",
" <td>30</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>MQ</td>\n",
" <td>N839MQ</td>\n",
" <td>3531</td>\n",
" <td>LGA</td>\n",
" <td>RDU</td>\n",
" <td>NaN</td>\n",
" <td>431</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>336776 rows × 18 columns</p>\n",
"</div>"
],
"text/plain": [
" year month day dep_time dep_delay arr_time arr_delay carrier \\\n",
"1 2013 1 1 517 2 830 11 UA \n",
"2 2013 1 1 533 4 850 20 UA \n",
"... ... ... ... ... ... ... ... ... \n",
"336775 2013 9 30 NaN NaN NaN NaN MQ \n",
"336776 2013 9 30 NaN NaN NaN NaN MQ \n",
"\n",
" tailnum flight origin dest air_time distance hour minute gain \\\n",
"1 N14228 1545 EWR IAH 227 1400 5 17 9 \n",
"2 N24211 1714 LGA IAH 227 1416 5 33 16 \n",
"... ... ... ... ... ... ... ... ... ... \n",
"336775 N511MQ 3572 LGA CLE NaN 419 NaN NaN NaN \n",
"336776 N839MQ 3531 LGA RDU NaN 431 NaN NaN NaN \n",
"\n",
" gain_per_hour \n",
"1 2.378855 \n",
"2 4.229075 \n",
"... ... \n",
"336775 NaN \n",
"336776 NaN \n",
"\n",
"[336776 rows x 18 columns]"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# mutate(flights,\n",
"# gain = arr_delay - dep_delay,\n",
"# gain_per_hour = gain / (air_time / 60)\n",
"# )\n",
"\n",
"(flights.assign(gain=flights.arr_delay - flights.dep_delay)\n",
" .assign(gain_per_hour = lambda df: df.gain / (df.air_time / 60)))\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The first example is pretty much identical (aside from the names, `mutate` vs. `assign`).\n",
"\n",
"The second example just comes down to language differences. In `R`, it's possible to implement a function like `mutate` where you can refer to `gain` in the line calcuating `gain_per_hour`, even though `gain` hasn't actually been calcuated yet.\n",
"\n",
"In Python, you can have arbitrary keyword arguments to functions (which we needed for `.assign`), but the order of the argumnets is arbitrary. So you can't have something like `df.assign(x=df.a / df.b, y=x **2)`, because you don't know whether `x` or `y` will come first (you'd also get an error saying `x` is undefined.\n",
"\n",
"To work around that with pandas, you'll need to split up the assigns, and pass in a *callable* to the second assign. The callable looks at itself to find a column named `gain`. Since the line above returns a DataFrame with the `gain` column added, the pipeline goes through just fine."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>gain</th>\n",
" <th>gain_per_hour</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>9</td>\n",
" <td>2.378855</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>16</td>\n",
" <td>4.229075</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336775</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>336776</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>336776 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" gain gain_per_hour\n",
"1 9 2.378855\n",
"2 16 4.229075\n",
"... ... ...\n",
"336775 NaN NaN\n",
"336776 NaN NaN\n",
"\n",
"[336776 rows x 2 columns]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# transmute(flights,\n",
"# gain = arr_delay - dep_delay,\n",
"# gain_per_hour = gain / (air_time / 60)\n",
"# )\n",
"(flights.assign(gain=flights.arr_delay - flights.dep_delay)\n",
" .assign(gain_per_hour = lambda df: df.gain / (df.air_time / 60))\n",
" [['gain', 'gain_per_hour']])\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Summarise values with summarise()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"12.639070257304708"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flights.dep_delay.mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Randomly sample rows with sample_n() and sample_frac()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There's an open PR on [Github](https://github.com/pydata/pandas/pull/9666) to make this nicer (closer to ``dplyr``). For now you can drop down to numpy."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>dep_time</th>\n",
" <th>dep_delay</th>\n",
" <th>arr_time</th>\n",
" <th>arr_delay</th>\n",
" <th>carrier</th>\n",
" <th>tailnum</th>\n",
" <th>flight</th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" <th>air_time</th>\n",
" <th>distance</th>\n",
" <th>hour</th>\n",
" <th>minute</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>37234</th>\n",
" <td>2013</td>\n",
" <td>10</td>\n",
" <td>11</td>\n",
" <td>1931</td>\n",
" <td>156</td>\n",
" <td>2025</td>\n",
" <td>125</td>\n",
" <td>WN</td>\n",
" <td>N424WN</td>\n",
" <td>2988</td>\n",
" <td>LGA</td>\n",
" <td>MDW</td>\n",
" <td>96</td>\n",
" <td>725</td>\n",
" <td>19</td>\n",
" <td>31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>84860</th>\n",
" <td>2013</td>\n",
" <td>12</td>\n",
" <td>2</td>\n",
" <td>1708</td>\n",
" <td>-6</td>\n",
" <td>1841</td>\n",
" <td>6</td>\n",
" <td>EV</td>\n",
" <td>N15983</td>\n",
" <td>5815</td>\n",
" <td>EWR</td>\n",
" <td>RIC</td>\n",
" <td>49</td>\n",
" <td>277</td>\n",
" <td>17</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>283800</th>\n",
" <td>2013</td>\n",
" <td>8</td>\n",
" <td>5</td>\n",
" <td>815</td>\n",
" <td>-5</td>\n",
" <td>1039</td>\n",
" <td>13</td>\n",
" <td>EV</td>\n",
" <td>N14198</td>\n",
" <td>4380</td>\n",
" <td>EWR</td>\n",
" <td>MSP</td>\n",
" <td>167</td>\n",
" <td>1008</td>\n",
" <td>8</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>226411</th>\n",
" <td>2013</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>1551</td>\n",
" <td>-4</td>\n",
" <td>1720</td>\n",
" <td>-29</td>\n",
" <td>B6</td>\n",
" <td>N231JB</td>\n",
" <td>915</td>\n",
" <td>JFK</td>\n",
" <td>ORD</td>\n",
" <td>120</td>\n",
" <td>740</td>\n",
" <td>15</td>\n",
" <td>51</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>10 rows × 16 columns</p>\n",
"</div>"
],
"text/plain": [
" year month day dep_time dep_delay arr_time arr_delay carrier \\\n",
"37234 2013 10 11 1931 156 2025 125 WN \n",
"84860 2013 12 2 1708 -6 1841 6 EV \n",
"... ... ... ... ... ... ... ... ... \n",
"283800 2013 8 5 815 -5 1039 13 EV \n",
"226411 2013 6 5 1551 -4 1720 -29 B6 \n",
"\n",
" tailnum flight origin dest air_time distance hour minute \n",
"37234 N424WN 2988 LGA MDW 96 725 19 31 \n",
"84860 N15983 5815 EWR RIC 49 277 17 8 \n",
"... ... ... ... ... ... ... ... ... \n",
"283800 N14198 4380 EWR MSP 167 1008 8 15 \n",
"226411 N231JB 915 JFK ORD 120 740 15 51 \n",
"\n",
"[10 rows x 16 columns]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# sample_n(flights, 10)\n",
"flights.loc[np.random.choice(flights.index, 10)]"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th>dep_time</th>\n",
" <th>dep_delay</th>\n",
" <th>arr_time</th>\n",
" <th>arr_delay</th>\n",
" <th>carrier</th>\n",
" <th>tailnum</th>\n",
" <th>flight</th>\n",
" <th>origin</th>\n",
" <th>dest</th>\n",
" <th>air_time</th>\n",
" <th>distance</th>\n",
" <th>hour</th>\n",
" <th>minute</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>50321</th>\n",
" <td>2013</td>\n",
" <td>10</td>\n",
" <td>25</td>\n",
" <td>1932</td>\n",
" <td>2</td>\n",
" <td>2057</td>\n",
" <td>-27</td>\n",
" <td>9E</td>\n",
" <td>N909XJ</td>\n",
" <td>3331</td>\n",
" <td>JFK</td>\n",
" <td>RDU</td>\n",
" <td>65</td>\n",
" <td>427</td>\n",
" <td>19</td>\n",
" <td>32</td>\n",
" </tr>\n",
" <tr>\n",
" <th>132082</th>\n",
" <td>2013</td>\n",
" <td>2</td>\n",
" <td>24</td>\n",
" <td>1557</td>\n",
" <td>-3</td>\n",
" <td>1923</td>\n",
" <td>-7</td>\n",
" <td>DL</td>\n",
" <td>N377NW</td>\n",
" <td>161</td>\n",
" <td>JFK</td>\n",
" <td>MIA</td>\n",
" <td>156</td>\n",
" <td>1089</td>\n",
" <td>15</td>\n",
" <td>57</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>277795</th>\n",
" <td>2013</td>\n",
" <td>7</td>\n",
" <td>29</td>\n",
" <td>2113</td>\n",
" <td>18</td>\n",
" <td>2220</td>\n",
" <td>-10</td>\n",
" <td>WN</td>\n",
" <td>N905WN</td>\n",
" <td>579</td>\n",
" <td>LGA</td>\n",
" <td>MDW</td>\n",
" <td>111</td>\n",
" <td>725</td>\n",
" <td>21</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>274004</th>\n",
" <td>2013</td>\n",
" <td>7</td>\n",
" <td>25</td>\n",
" <td>2023</td>\n",
" <td>-5</td>\n",
" <td>2229</td>\n",
" <td>-18</td>\n",
" <td>B6</td>\n",
" <td>N524JB</td>\n",
" <td>135</td>\n",
" <td>JFK</td>\n",
" <td>PHX</td>\n",
" <td>279</td>\n",
" <td>2153</td>\n",
" <td>20</td>\n",
" <td>23</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>33677 rows × 16 columns</p>\n",
"</div>"
],
"text/plain": [
" year month day dep_time dep_delay arr_time arr_delay carrier \\\n",
"50321 2013 10 25 1932 2 2057 -27 9E \n",
"132082 2013 2 24 1557 -3 1923 -7 DL \n",
"... ... ... ... ... ... ... ... ... \n",
"277795 2013 7 29 2113 18 2220 -10 WN \n",
"274004 2013 7 25 2023 -5 2229 -18 B6 \n",
"\n",
" tailnum flight origin dest air_time distance hour minute \n",
"50321 N909XJ 3331 JFK RDU 65 427 19 32 \n",
"132082 N377NW 161 JFK MIA 156 1089 15 57 \n",
"... ... ... ... ... ... ... ... ... \n",
"277795 N905WN 579 LGA MDW 111 725 21 13 \n",
"274004 N524JB 135 JFK PHX 279 2153 20 23 \n",
"\n",
"[33677 rows x 16 columns]"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# sample_frac(flights, 0.01)\n",
"flights.iloc[np.random.randint(0, len(flights),\n",
" .1 * len(flights))]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Grouped operations "
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>count</th>\n",
" <th>delay</th>\n",
" <th>dist</th>\n",
" </tr>\n",
" <tr>\n",
" <th>tailnum</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>N0EGMQ</th>\n",
" <td>371</td>\n",
" <td>9.982955</td>\n",
" <td>676.188679</td>\n",
" </tr>\n",
" <tr>\n",
" <th>N10156</th>\n",
" <td>153</td>\n",
" <td>12.717241</td>\n",
" <td>757.947712</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>N999DN</th>\n",
" <td>61</td>\n",
" <td>14.311475</td>\n",
" <td>895.459016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>N9EAMQ</th>\n",
" <td>248</td>\n",
" <td>9.235294</td>\n",
" <td>674.665323</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2961 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" count delay dist\n",
"tailnum \n",
"N0EGMQ 371 9.982955 676.188679\n",
"N10156 153 12.717241 757.947712\n",
"... ... ... ...\n",
"N999DN 61 14.311475 895.459016\n",
"N9EAMQ 248 9.235294 674.665323\n",
"\n",
"[2961 rows x 3 columns]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# planes <- group_by(flights, tailnum)\n",
"# delay <- summarise(planes,\n",
"# count = n(),\n",
"# dist = mean(distance, na.rm = TRUE),\n",
"# delay = mean(arr_delay, na.rm = TRUE))\n",
"# delay <- filter(delay, count > 20, dist < 2000)\n",
"\n",
"planes = flights.groupby(\"tailnum\")\n",
"delay = (planes.agg({\"year\": \"count\",\n",
" \"distance\": \"mean\",\n",
" \"arr_delay\": \"mean\"})\n",
" .rename(columns={\"distance\": \"dist\",\n",
" \"arr_delay\": \"delay\",\n",
" \"year\": \"count\"})\n",
" .query(\"count > 20 & dist < 2000\"))\n",
"delay"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For me, dplyr's ``n()`` looked is a bit starge at first, but it's already growing on me.\n",
"\n",
"I think pandas is more difficult for this particular example.\n",
"There isn't as natural a way to mix column-agnostic aggregations (like ``count``) with column-specific aggregations like the other two. You end up writing could like `.agg{'year': 'count'}` which reads, \"I want the count of `year`\", even though you don't care about `year` specifically. You could just as easily have said `.agg('distance': 'count')`.\n",
"Additionally assigning names can't be done as cleanly in pandas; you have to just follow it up with a ``rename`` like before."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We may as well reproduce the graph. It looks like `ggplots` `geom_smooth` is some kind of lowess smoother. We can either us [seaborn](http://stanford.edu/~mwaskom/software/seaborn/):"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nlZE9tzJXwYqYWS9vX3bPPpfyAN/+wHfRuHoSvXfua2hfuxKfzOwSK7apZsKGVKXg+CAopcPk4S4U\nCt8DnigWi1P994XFYnF0A5t3jEa3gIcffphzzjmHLVu2kFKipqaGiRMncv/997PXXs0vedsY06dP\n59FH89XBE088kRNPPLHR76xbt45u3bqxfPlyli1bxqRJkwD47ne/y7PPPsvYsWMZM2YMo0aN4oEH\nHuDQQw/l05/+NHV1daxatYrvf//7AJx33nkccsghO+1/9erVLFu2jHHjxpFSyqr+AbB8+XKuv/56\nLrzwQmbPns0TTzzB888/z3777VdvHxdddBFjxoxp8vyfeuop7rrrLj7xiU9w4IEHArBhwwZuvfVW\n9t9/fwYPHsxxxx3Hpk2buOCCC/jHf/xHrrnmGgD+/u//nv7981o3Tz75JHfffTc9e/bk5JNP5vXX\nX6d3796cfPLJ9O7du+Lxm2LdunXcc889TJkyhb59+7ZqH23JmjVruPzyy3nkkUdYtmwZffv2ZfHi\nxYwaNYrBgwdz0UUX8ZGPfGSn7915553Mnj2bww47jMmTJ9OnT58dn48aNYq9996bGTNmcOmll7J+\n/Xp69OhB9+7d6dmzJz179qRbt247+ucTn/gEl1xyCWbGZZddxssvv8yqVavYunUrX/3qV5kyZcqO\n406bNo1nnnmGyZMnc+CBB9KvXz/69u3LU089xQ033MCECRO49dZb+dSnPsWFF17IW2+9xcyZMznj\njDPo378/CxYs4Pbbb2f27NnMnTuXY489lokTJ/Laa68xceJEzj///B3HevXVV7nhhhtIKdG7d2+6\ndOnCl7/8ZXr0qJzs5ze/+Q133HEHw4cPp2/fvvTv35/PfvazDBki3TdnzhymT5/OG2+8wXPPPcf4\n8eNZvXo1q1evZsGCBey7774ceOCBzJkzh3Xr1rFp0yaOO+44/uqv/oqpU6fy6quvMmrUKM4//3we\nffRRpk2bxooVKzj22GPZZ599mDdvHvvssw8zZszgiCOO4LDDDuP888+npqaGG264gcsvv5yxY8dy\n8803s337durq6li/fj233XYbTz/9NEOHDmXy5Mk88sgjLF++nH79+nHCCSfw6KOPMm/ePMaPH8/e\ne+/Nhz/8YUaMGEFtbS133HEHt912G4sXL+aLX/wip5xyCjU1NaxatYrRoxt6tMPUqVN56aWXGD58\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1080d05f8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(12, 6))\n",
"\n",
"sns.regplot(\"dist\", \"delay\", data=delay, lowess=True, ax=ax,\n",
" scatter_kws={'color': 'k', 'alpha': .5, 's': delay['count'] / 10}, ci=90,\n",
" line_kws={'linewidth': 3});"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Or using statsmodels directly for more control over the lowess, with an extremely lazy\n",
"\"confidence interval\"."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import statsmodels.api as sm"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nzKbh18D7Gn5EMhToejHEmdkYPJOps4G/Vu1CSqGAW1qJ2oXUonYhtahdSC1qF1IKTZoUERERESmR\nAm4RkSpmNsbMRjf7OEREpDVo0qSISIGZ7QJ8HthkZt+NMa5v9jGJiMjwph5uEZHNTQLagXF4lQQR\nEZGtokmT0krULqSWfrcLMzsYWB9jzMo5JBkCdL2QWtQupBQKuKWVqF1ILWoXUovahdSidiGlUEqJ\niIiIiEiJFHCLSEtbtmwZZtbR7OMQEZGRSwG3iLQsM2ufPXs2wKlNPhQRERnBFHCLSMuKMXbNmjUL\nYF6zj0VEREYuTZqUVqJ2IbWoXUgtahdSi9qFlEI93CIiIiIiJVLALSIiIiJSIgXcIiIiIiIlGtXI\nXxZC6AB+BkwAxgBfzLJsYQjhKOB7wCbgzizLvtHI4xIRERERKUuje7jPB+7Ksuw44EzgyvT4j4DT\nsiw7BjgyhHBIg49LRERERKQUDe3hBi4HNqR/jwbeCSFMAMZkWfZienwucALwZIOPTURERERk0JUW\ncIcQzga+UPXwmVmWPRZC2BW4DvhHoAN4s7DNWmDvso5LRERERKSRSgu4syy7Gri6+vEQwkHADcCX\nsiybH0KYiOd05yYCq/vwK4ZlAXEpndqF1KJ2IbWoXUgtahdSbatrszd60uQBwE3A32ZZtgggy7I3\nQwgbQwh7Ay8C04EL+7A7FaaXalqwQGpRu5Ba1C6kFrULKUWjc7j/Fa9OckUIAWB1lmUnA+cA1wPt\nwNwsyx5p8HGJiIiIiJRCS7tLK1G7kFrULqQWtQupRe1CSqGFb0RERERESqSAW0RERESkRAq4RURE\nRERKpIBbRERERKRECrhFREREREqkgFtEREREpEQKuEVERERESqSAW0RERESkRAq4RURERERKpIBb\nRERERKRECrhFREREREqkgFtEREREpEQKuEVERERESqSAW0RERESkRAq4RURERERKpIBbRERERKRE\nCrhFREREREqkgFtEREREpEQKuEVERERESqSAW0RERESkRAq4RURERERKpIBbRERERKRECrhFRERE\nREqkgFtEREREpEQKuEVERERESqSAW0RERESkRAq4RURERERKpIBbRERERKRECrhFREREREqkgFtE\nREREpEQWY2z2MYiIiIiItCz1cIuIiIiIlEgBt4iIiIhIiRRwi4iIiIiUSAG3iIiIiEiJFHCLiIiI\niJRIAbeIiIiISIlGNfsA+iOE0Ab8AHg/sAH4bJZly5p7VNJIIYTHgTXpvy8AFwOzgW7gGeDcLMti\nCOF/AJ8DNgEXZVn22yYcrpQshHAk8K0sy44PIUyhj20hhLAt8DNgJ2At8PdZlq1syouQQVfVLg4F\n5gB/SE//IMuym9QuRo4Qwmjg/wF7AmOBi4Cl6HoxotVpF68AtwHPpc0G7Xox3Hq4PwGMybLsaOB/\nA5c2+XikgUII2wBkWXZ8+nM2cBlwQZZlHwYMOCmEsCtwHnA0MAO4OIQwplnHLeUIIXwZuAq/UEL/\n2sLngafSttcCX2308Us5arSLw4HLCteNm9QuRpwzgNfS+/ox4Eo8ftD1YmSr1S4OAy4t43oxrHq4\nganA7wCyLHsohPCBJh+PNNbBwLgQwly87X4FOCzLst+n5+8ApgNdwIIsyzqBzhDC8/ioyKNNOGYp\nz/PAKcB16f/9aQtTgW+nbX8H/J+GHbWUrbpdHA7sF0I4Ce/l/gJwBGoXI8lNwM3p321AJ7peSO12\ncTgQyrheDLce7onAm4X/d6U0ExkZ1gGXZFk2AzgHuL7q+bVAB95O1tR4XFpIlmW34MN7OSv8u7e2\nULyWqH20kBrt4iHgn7Ism4anoX0dmIDaxYiRZdm6LMveCiFMwIOsr7J5/KPrxQhUo118BXiYkq4X\nwy1YfRN/4bm2LMu6m3Uw0nDPkYLsLMv+ALwO7FJ4fiKwmi3byQRgVYOOUZqneC3oqS1UP54/Jq3p\nV1mWPZH/GzgUtYsRJ4SwOzAPuDbLshvQ9ULYol3cSInXi+EWcC8ATgQIIRwFPN3cw5EGO4uUtx9C\n2A1v4HeGEKal5z8O/B6/Qz02hDA2hNAB7I9PipHW9kQ/2sK715LCttKafhdC+GD69wl4apnaxQgS\nQtgFuBP4cpZls9PDul6McHXaRWnXi+GWw/0r4KMhhAXp/2c182Ck4a4GfhpCyBv1WXgv91VpAsMS\n4OY00/wKYD5+U3lBlmUbm3LE0ggx/f0l+tYWNoQQfghcE0KYj1c8Or0ZBy6lytvFOcCVIYRO4D+B\nz6VhZLWLkeMCfLj/ayGEr6XH/hG4QteLEa1Wu/gCcHkZ1wuLMfb0vIiIiIiIbIXhllIiIiIiIjKs\nKOAWERERESmRAm4RERERkRIp4BYRERERKZECbhERERGREingFhEREREp0XCrwy0iIn0UQvi/wJ+B\nY7Ism1lnmw5gdpZlJzf04ERERhD1cIuItK4I/LlesJ1MAg5p0PGIiIxIWvhGRKSFhBC+C/wN8Cqw\nEbgOuDDLsr1CCKcD/wx0AS8CnwFuAmYAt2VZdmpzjlpEpLWph1tEpEWEEE4FPgAcAJwETKna5JvA\nR7Ms+wDwLBCA84DlCrZFRMqjgFtEpHUcB9ycZVlXlmWrgF9XPT8HeCCE8B28R/tpwBp8jCIiI44C\nbhGR1hHZ/Lq+qfhklmVfAE4F3gB+FkI4o4HHJiIyYingFhFpHXcBnw4hjAkhTARm5U+EENpCCBmw\nMsuybwHX4pMlO1HFKhGRUingFhFpEVmWzcGD7meAO/A8bYCYZVk38HXg7hDCI8CxwGX45MqXQwj3\nNOGQRURGBFUpEREREREpkXq4RURERERKpIBbRERERKRECrhFREREREqkgFtEREREpEQKuEVERERE\nSqSAW0RERESkRAq4RURERERKpIBbRERERKRE/x8IxXDrJIQOvwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1152784a8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"smooth = sm.nonparametric.lowess(delay.delay, delay.dist, frac=1/8)\n",
"ax = delay.plot(kind='scatter', x='dist', y = 'delay', figsize=(12, 6),\n",
" color='k', alpha=.5, s=delay['count'] / 10)\n",
"ax.plot(smooth[:, 0], smooth[:, 1], linewidth=3);\n",
"std = smooth[:, 1].std()\n",
"ax.fill_between(smooth[:, 0], smooth[:, 1] - std, smooth[:, 1] + std, alpha=.25);"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>flights</th>\n",
" <th>planes</th>\n",
" </tr>\n",
" <tr>\n",
" <th>dest</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>ABQ</th>\n",
" <td>254</td>\n",
" <td>108</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ACK</th>\n",
" <td>265</td>\n",
" <td>58</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>TYS</th>\n",
" <td>631</td>\n",
" <td>273</td>\n",
" </tr>\n",
" <tr>\n",
" <th>XNA</th>\n",
" <td>1036</td>\n",
" <td>176</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>105 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" flights planes\n",
"dest \n",
"ABQ 254 108\n",
"ACK 265 58\n",
"... ... ...\n",
"TYS 631 273\n",
"XNA 1036 176\n",
"\n",
"[105 rows x 2 columns]"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# destinations <- group_by(flights, dest)\n",
"# summarise(destinations,\n",
"# planes = n_distinct(tailnum),\n",
"# flights = n()\n",
"# )\n",
"\n",
"destinations = flights.groupby('dest')\n",
"destinations.agg({\n",
" 'tailnum': lambda x: len(x.unique()),\n",
" 'year': 'count'\n",
" }).rename(columns={'tailnum': 'planes',\n",
" 'year': 'flights'})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There's a little know feature to `groupby.agg`: it accepts a dict of dicts mapping\n",
"columns to `{name: aggfunc}` pairs. Here's the result:"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>tailnum</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>flights</th>\n",
" <th>planes</th>\n",
" </tr>\n",
" <tr>\n",
" <th>dest</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>ABQ</th>\n",
" <td>254</td>\n",
" <td>108</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ACK</th>\n",
" <td>265</td>\n",
" <td>58</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>TYS</th>\n",
" <td>631</td>\n",
" <td>273</td>\n",
" </tr>\n",
" <tr>\n",
" <th>XNA</th>\n",
" <td>1036</td>\n",
" <td>176</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>105 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" year tailnum\n",
" flights planes\n",
"dest \n",
"ABQ 254 108\n",
"ACK 265 58\n",
"... ... ...\n",
"TYS 631 273\n",
"XNA 1036 176\n",
"\n",
"[105 rows x 2 columns]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"destinations = flights.groupby('dest')\n",
"r = destinations.agg({'tailnum': {'planes': lambda x: len(x.unique())},\n",
" 'year': {'flights': 'count'}})\n",
"r"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The result is a `MultiIndex` in the columns which can be a bit awkard to work with (you can drop a level with `r.columns.droplevel()`). Also the syntax going into the `.agg` may not be the clearest."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Similar to how ``dplyr`` provides optimized C++ versions of most of the `summarise` functions, pandas uses [cython](http://cython.org) optimized versions for most of the `agg` methods."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"year month day\n",
"2013 1 1 842\n",
" 2 943\n",
" ... \n",
" 12 30 968\n",
" 31 776\n",
"Name: distance, dtype: int64"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# daily <- group_by(flights, year, month, day)\n",
"# (per_day <- summarise(daily, flights = n()))\n",
"\n",
"daily = flights.groupby(['year', 'month', 'day'])\n",
"per_day = daily['distance'].count()\n",
"per_day"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"year month\n",
"2013 1 27004\n",
" 2 24951\n",
" ... \n",
" 11 27268\n",
" 12 28135\n",
"Name: distance, dtype: int64"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (per_month <- summarise(per_day, flights = sum(flights)))\n",
"per_month = per_day.groupby(level=['year', 'month']).sum()\n",
"per_month"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"336776"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# (per_year <- summarise(per_month, flights = sum(flights)))\n",
"per_year = per_month.sum()\n",
"per_year"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I'm not sure how ``dplyr`` is handling the other columns, like `year`, in the last example. With pandas, it's clear that we're grouping by them since they're included in the groupby. For the last example, we didn't group by anything, so they aren't included in the result."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Chaining"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Any follower of Hadley's [twitter account](https://twitter.com/hadleywickham/) will know how much R users *love* the ``%>%`` (pipe) operator. And for good reason!"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>arr_delay</th>\n",
" <th>dep_delay</th>\n",
" </tr>\n",
" <tr>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>day</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">2013</th>\n",
" <th rowspan=\"2\" valign=\"top\">1</th>\n",
" <th>16</th>\n",
" <td>34.247362</td>\n",
" <td>24.612865</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>32.602854</td>\n",
" <td>28.658363</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">12</th>\n",
" <th>17</th>\n",
" <td>55.871856</td>\n",
" <td>40.705602</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>32.226042</td>\n",
" <td>32.254149</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>49 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" arr_delay dep_delay\n",
"year month day \n",
"2013 1 16 34.247362 24.612865\n",
" 31 32.602854 28.658363\n",
"... ... ...\n",
" 12 17 55.871856 40.705602\n",
" 23 32.226042 32.254149\n",
"\n",
"[49 rows x 2 columns]"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# flights %>%\n",
"# group_by(year, month, day) %>%\n",
"# select(arr_delay, dep_delay) %>%\n",
"# summarise(\n",
"# arr = mean(arr_delay, na.rm = TRUE),\n",
"# dep = mean(dep_delay, na.rm = TRUE)\n",
"# ) %>%\n",
"# filter(arr > 30 | dep > 30)\n",
"(\n",
"flights.groupby(['year', 'month', 'day'])\n",
" [['arr_delay', 'dep_delay']]\n",
" .mean()\n",
" .query('arr_delay > 30 | dep_delay > 30')\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Other Data Sources"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pandas has tons [IO tools](http://pandas.pydata.org/pandas-docs/version/0.15.0/io.html) to help you get data in and out, including SQL databases via [SQLAlchemy](http://www.sqlalchemy.org)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Summary"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I think pandas held up pretty well, considering this was a vignette written for dplyr. I found the degree of similarity more interesting than the differences. The most difficult task was renaming of columns within an operation; they had to be followed up with a call to ``rename`` *after* the operation, which isn't that burdensome honestly.\n",
"\n",
"More and more it looks like we're moving towards future where being a language or package partisan just doesn't make sense. Not when you can load up a [Jupyter](http://jupyter.org) (formerly IPython) notebook to call up a library written in R, and hand those results off to python or Julia or whatever for followup, before going back to R to make a cool [shiny](http://shiny.rstudio.com) web app.\n",
"\n",
"There will always be a place for your \"utility belt\" package like dplyr or pandas, but it wouldn't hurt to be familiar with both.\n",
"\n",
"If you want to contribute to pandas, we're always looking for help at https://github.com/pydata/pandas/.\n",
"You can get ahold of me directly on [twitter](https://twitter.com/tomaugspurger)."
]
}
],
"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.4.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment