{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"plt.style.use('ggplot')\n",
"plt.rcParams['figure.figsize'] = (15, 3)\n",
"plt.rcParams['font.family'] = 'sans-serif'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We saw earlier that pandas is really good at dealing with dates. It is also amazing with strings! We're going to go back to our weather data from Chapter 5, here."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Temp (C)
\n",
"
Dew Point Temp (C)
\n",
"
Rel Hum (%)
\n",
"
Wind Spd (km/h)
\n",
"
Visibility (km)
\n",
"
Stn Press (kPa)
\n",
"
Weather
\n",
"
\n",
"
\n",
"
Date/Time
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
2012-01-01 00:00:00
\n",
"
-1.8
\n",
"
-3.9
\n",
"
86
\n",
"
4
\n",
"
8.0
\n",
"
101.24
\n",
"
Fog
\n",
"
\n",
"
\n",
"
2012-01-01 01:00:00
\n",
"
-1.8
\n",
"
-3.7
\n",
"
87
\n",
"
4
\n",
"
8.0
\n",
"
101.24
\n",
"
Fog
\n",
"
\n",
"
\n",
"
2012-01-01 02:00:00
\n",
"
-1.8
\n",
"
-3.4
\n",
"
89
\n",
"
7
\n",
"
4.0
\n",
"
101.26
\n",
"
Freezing Drizzle,Fog
\n",
"
\n",
"
\n",
"
2012-01-01 03:00:00
\n",
"
-1.5
\n",
"
-3.2
\n",
"
88
\n",
"
6
\n",
"
4.0
\n",
"
101.27
\n",
"
Freezing Drizzle,Fog
\n",
"
\n",
"
\n",
"
2012-01-01 04:00:00
\n",
"
-1.5
\n",
"
-3.3
\n",
"
88
\n",
"
7
\n",
"
4.8
\n",
"
101.23
\n",
"
Fog
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Temp (C) Dew Point Temp (C) Rel Hum (%) \\\n",
"Date/Time \n",
"2012-01-01 00:00:00 -1.8 -3.9 86 \n",
"2012-01-01 01:00:00 -1.8 -3.7 87 \n",
"2012-01-01 02:00:00 -1.8 -3.4 89 \n",
"2012-01-01 03:00:00 -1.5 -3.2 88 \n",
"2012-01-01 04:00:00 -1.5 -3.3 88 \n",
"\n",
" Wind Spd (km/h) Visibility (km) Stn Press (kPa) \\\n",
"Date/Time \n",
"2012-01-01 00:00:00 4 8.0 101.24 \n",
"2012-01-01 01:00:00 4 8.0 101.24 \n",
"2012-01-01 02:00:00 7 4.0 101.26 \n",
"2012-01-01 03:00:00 6 4.0 101.27 \n",
"2012-01-01 04:00:00 7 4.8 101.23 \n",
"\n",
" Weather \n",
"Date/Time \n",
"2012-01-01 00:00:00 Fog \n",
"2012-01-01 01:00:00 Fog \n",
"2012-01-01 02:00:00 Freezing Drizzle,Fog \n",
"2012-01-01 03:00:00 Freezing Drizzle,Fog \n",
"2012-01-01 04:00:00 Fog "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"weather_2012 = pd.read_csv('../data/weather_2012.csv', parse_dates=True, index_col='Date/Time')\n",
"weather_2012[:5]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 6.1 String operations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You'll see that the 'Weather' column has a text description of the weather that was going on each hour. We'll assume it's snowing if the text description contains \"Snow\".\n",
"\n",
"pandas provides vectorized string functions, to make it easy to operate on columns containing text. There are some great [examples](http://pandas.pydata.org/pandas-docs/stable/basics.html#vectorized-string-methods) in the documentation."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"weather_description = weather_2012['Weather']\n",
"is_snowing = weather_description.str.contains('Snow')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This gives us a binary vector, which is a bit hard to look at, so we'll plot it."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Date/Time\n",
"2012-01-01 00:00:00 False\n",
"2012-01-01 01:00:00 False\n",
"2012-01-01 02:00:00 False\n",
"2012-01-01 03:00:00 False\n",
"2012-01-01 04:00:00 False\n",
"Name: Weather, dtype: bool"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Not super useful\n",
"is_snowing[:5]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# More useful!\n",
"is_snowing=is_snowing.astype(float)\n",
"is_snowing.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 6.2 Use resampling to find the snowiest month"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we wanted the median temperature each month, we could use the `resample()` method like this:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"weather_2012['Temp (C)'].resample('M').apply(np.median).plot(kind='bar')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Unsurprisingly, July and August are the warmest."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So we can think of snowiness as being a bunch of 1s and 0s instead of `True`s and `False`s:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Date/Time\n",
"2012-01-01 00:00:00 0.0\n",
"2012-01-01 01:00:00 0.0\n",
"2012-01-01 02:00:00 0.0\n",
"2012-01-01 03:00:00 0.0\n",
"2012-01-01 04:00:00 0.0\n",
"2012-01-01 05:00:00 0.0\n",
"2012-01-01 06:00:00 0.0\n",
"2012-01-01 07:00:00 0.0\n",
"2012-01-01 08:00:00 0.0\n",
"2012-01-01 09:00:00 0.0\n",
"Name: Weather, dtype: float64"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"is_snowing.astype(float)[:10]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and then use `resample` to find the percentage of time it was snowing each month"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Date/Time\n",
"2012-01-31 0.240591\n",
"2012-02-29 0.162356\n",
"2012-03-31 0.087366\n",
"2012-04-30 0.015278\n",
"2012-05-31 0.000000\n",
"2012-06-30 0.000000\n",
"2012-07-31 0.000000\n",
"2012-08-31 0.000000\n",
"2012-09-30 0.000000\n",
"2012-10-31 0.000000\n",
"2012-11-30 0.038889\n",
"2012-12-31 0.251344\n",
"Freq: M, Name: Weather, dtype: float64"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"is_snowing.astype(float).resample('M').apply(np.mean)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"is_snowing.astype(float).resample('M').apply(np.mean).plot(kind='bar')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So now we know! In 2012, December was the snowiest month. Also, this graph suggests something that I feel -- it starts snowing pretty abruptly in November, and then tapers off slowly and takes a long time to stop, with the last snow usually being in April or May."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 6.3 Plotting temperature and snowiness stats together"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also combine these two statistics (temperature, and snowiness) into one dataframe and plot them together:"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"temperature = weather_2012['Temp (C)'].resample('M').apply(np.median)\n",
"is_snowing = weather_2012['Weather'].str.contains('Snow')\n",
"snowiness = is_snowing.astype(float).resample('M').apply(np.mean)\n",
"\n",
"# Name the columns\n",
"temperature.name = \"Temperature\"\n",
"snowiness.name = \"Snowiness\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We'll use `concat` again to combine the two statistics into a single dataframe."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"