{ "cells": [ { "cell_type": "markdown", "id": "39ce9fdc", "metadata": {}, "source": [ "# Advanced Data Manipulation\n", "\n", "Over the next two weeks or so, we'll develop a range of skills for advanced data analysis in Python. We'll handle questions like: \n", "\n", "1. What if our data is split over multiple files?\n", "2. What if our data is in the wrong shape?\n", "3. What if our data is too big to conveniently fit in memory? \n", "\n", "To approach these questions, we'll develop some more advanced skills with the familiar `pandas` library. We'll also introduce new tools for plotting, including spatial plots, and take a brief look at databases. \n", "\n", "## Case Study: Global Warming\n", "\n", "Throughout our study, we'll focus on a single data set. This is the Global Historical Climatology Network data set, compiled by the National Centers for Environmental Information of the US National Oceanic and Atmospheric Administration. This data set contains an extraordinarily detailed record of surface temperatures at tens of thousands of atmospheric measurement stations across the globe. It is thus an ideal, publicly available data set for studying global warming. As you know, global warming is one of the most important issues of our time, primarily because it threatens the natural habitat of nature's most majestic creature: \n", "\n", "
\n", " \"\"\n", "
\n", "
\n", "\n", "An additional reason to be concerned about global warming is that rising temperatures reduce snowfall, a necessary prerequisite for videos of panda bears falling off of snowmen: \n", "\n", "
\n", " \"\"\n", "
\n", "
\n", "\n", "### Takeaways for Today\n", "\n", "Here's what I want you to take away from this lecture: \n", "\n", "1. Many **data visualization** problems can be solved by **data manipulation**. \n", "2. `pandas` provides a number of handy methods for combining and reshaping your data. \n", "3. Pandas are very clumsy animals. \n", "\n", "\n", "### Data Source and Format\n", "\n", "I accessed the data [here](https://www.ncdc.noaa.gov/data-access/land-based-station-data/land-based-datasets/global-historical-climatology-network-monthly-version-4), and then did a small amount of manipulation in order to save it as a set of CSV files. The files are hosted online at \n", "\n", "> `https://raw.githubusercontent.com/PhilChodrow/PIC16B/master/datasets/noaa-ghcn/decades/`\n", "\n", "There is a file for each decade between 1901 and 2020. Today, we'll use only the file containing the most recent data, 2011-2020. " ] }, { "cell_type": "code", "execution_count": 1, "id": "93e4ec79", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "\n", "# advanced plotting tools for data frames\n", "# basically a bunch of matplotlib shortcuts\n", "import seaborn as sns \n", "\n", "from matplotlib import pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "id": "d98f656b", "metadata": {}, "outputs": [], "source": [ "interval = \"2011-2020\"\n", "url = f\"https://raw.githubusercontent.com/PhilChodrow/PIC16B/master/datasets/noaa-ghcn/decades/{interval}.csv\"\n", "df = pd.read_csv(url)" ] }, { "cell_type": "code", "execution_count": 3, "id": "1f98aa55", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDYearVALUE1VALUE2VALUE3VALUE4VALUE5VALUE6VALUE7VALUE8VALUE9VALUE10VALUE11VALUE12
0ACW000116042011-83.0-132.0278.01040.01213.01663.01875.01723.01466.0987.0721.0428.0
1ACW000116042012121.0-98.0592.0646.01365.01426.01771.01748.01362.0826.0620.0-234.0
2ACW000116042013-104.0-93.0-48.0595.0NaN1612.01855.01802.01359.01042.0601.0NaN
3AE00004119620111950.02060.02280.02760.03240.03447.03580.03650.03316.02940.02390.01905.0
4AE00004119620121837.01987.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "
" ], "text/plain": [ " ID Year VALUE1 VALUE2 VALUE3 VALUE4 VALUE5 VALUE6 VALUE7 \\\n", "0 ACW00011604 2011 -83.0 -132.0 278.0 1040.0 1213.0 1663.0 1875.0 \n", "1 ACW00011604 2012 121.0 -98.0 592.0 646.0 1365.0 1426.0 1771.0 \n", "2 ACW00011604 2013 -104.0 -93.0 -48.0 595.0 NaN 1612.0 1855.0 \n", "3 AE000041196 2011 1950.0 2060.0 2280.0 2760.0 3240.0 3447.0 3580.0 \n", "4 AE000041196 2012 1837.0 1987.0 NaN NaN NaN NaN NaN \n", "\n", " VALUE8 VALUE9 VALUE10 VALUE11 VALUE12 \n", "0 1723.0 1466.0 987.0 721.0 428.0 \n", "1 1748.0 1362.0 826.0 620.0 -234.0 \n", "2 1802.0 1359.0 1042.0 601.0 NaN \n", "3 3650.0 3316.0 2940.0 2390.0 1905.0 \n", "4 NaN NaN NaN NaN NaN " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head(5)" ] }, { "cell_type": "markdown", "id": "e5adeafc", "metadata": {}, "source": [ "As provided, the data set contains the following columns: \n", "\n", "- `ID`: the ID number of the station. We can use this to figure out which country the station is in, as well as the spatial location of the station. \n", "- `Year`: the year of the measurement. \n", "- `VALUE1`-`VALUE12`: the temperature measurements themselves. `VALUE1` contains the temperature measurements for January, `VALUE2` for February, and so on. \n", "- The measurements are in hundredths of a degree, Celsius. " ] }, { "cell_type": "code", "execution_count": 4, "id": "436027b2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-1.32" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# measurement in February in very first row of DF\n", "df[\"VALUE2\"].iloc[0]\n", "\n", "# temperature in degrees C is\n", "\n", "df[\"VALUE2\"].iloc[0] / 100" ] }, { "cell_type": "markdown", "id": "9bbc7ee0", "metadata": {}, "source": [ "We can now do things like plot the temperature in January for a selected station: " ] }, { "cell_type": "code", "execution_count": 5, "id": "4a48eac1", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "station_df = df[df[\"ID\"] == \"AEM00041194\"]\n", "sns.lineplot(data = station_df, x = \"Year\", y = \"VALUE1\")" ] }, { "cell_type": "markdown", "id": "4f9c8609", "metadata": {}, "source": [ "At this station, the average temperature in January was typically between 20 and 22 degrees Celsius during the timeframe. \n", "\n", "While it can be useful to have the temperate time series, there's a lot of information missing from this plot. For example, we're only plotting for a single month of the year, and we are also only showing the observations from a single weather station. In this lecture, our goal will be to construct the following plot: \n", "\n", "
\n", " \"\"\n", "
\n", "
\n", "\n", "This is a plot of average temperatures over time for a selection of countries (ones whose names begin with E). In order to make this plot, there are two major data manipulation operations we need to perform. We need to: \n", "\n", "1. Figure out what *country* each station is in. \n", "2. Reshape the 12 month columns into a single long column. \n", "\n", "These two tasks correspond to *merging* and *stacking*. These operations will come up at key points in our workflow. \n", "\n", "### Adding Countries with Merges\n", "\n", "A *merge* is an operation that combines two related data frames into a single data frame, using one or more columns as *keys*. Let's take a look at how this works. The first thing we'll do is acquire a data frame that gives the full country name corresponding to the FIPS code. The FIPS code is an internationally standardized abbreviation for a country: " ] }, { "cell_type": "code", "execution_count": 6, "id": "c2425bdb", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
FIPS 10-4ISO 3166Name
0AFAFAfghanistan
1AX-Akrotiri
2ALALAlbania
3AGDZAlgeria
4AQASAmerican Samoa
\n", "
" ], "text/plain": [ " FIPS 10-4 ISO 3166 Name\n", "0 AF AF Afghanistan\n", "1 AX - Akrotiri\n", "2 AL AL Albania\n", "3 AG DZ Algeria\n", "4 AQ AS American Samoa" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "countries_url = \"https://raw.githubusercontent.com/mysociety/gaze/master/data/fips-10-4-to-iso-country-codes.csv\"\n", "countries = pd.read_csv(countries_url)\n", "countries.head(5)" ] }, { "cell_type": "markdown", "id": "603843c9", "metadata": {}, "source": [ "How can we relate this to our `df` of temperature readings? Well, it turns out that the first two characters of the `ID` column give the FIPS code! " ] }, { "cell_type": "code", "execution_count": 7, "id": "3a759034", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 ACW00011604\n", "1 ACW00011604\n", "2 ACW00011604\n", "3 AE000041196\n", "4 AE000041196\n", "Name: ID, dtype: object" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[\"ID\"].head(5)" ] }, { "cell_type": "markdown", "id": "baf07dbc", "metadata": {}, "source": [ "Let's extract them with the `str` attribute. Note that I am creating a new column whose name matches exactly the corresponding column in the `countries` data frame. " ] }, { "cell_type": "code", "execution_count": 8, "id": "5d05ce7c", "metadata": {}, "outputs": [], "source": [ "df[\"FIPS 10-4\"] = df[\"ID\"].str[0:2]" ] }, { "cell_type": "markdown", "id": "75261075", "metadata": {}, "source": [ "Now it's merge time. `pandas` provides a `merge()` function with many different arguments, as well as a related `DataFrame.join()` method. There are many different ways to merge two data sets, as explained in [this helpful chapter](https://jakevdp.github.io/PythonDataScienceHandbook/03.07-merge-and-join.html) of the Python Data Science Handbook. The default for `pd.merge` is an *inner* merge. " ] }, { "cell_type": "code", "execution_count": 9, "id": "acf76d50", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDYearVALUE1VALUE2VALUE3VALUE4VALUE5VALUE6VALUE7VALUE8VALUE9VALUE10VALUE11VALUE12FIPS 10-4ISO 3166Name
0ACW000116042011-83.0-132.0278.01040.01213.01663.01875.01723.01466.0987.0721.0428.0ACAGAntigua and Barbuda
1ACW000116042012121.0-98.0592.0646.01365.01426.01771.01748.01362.0826.0620.0-234.0ACAGAntigua and Barbuda
2ACW000116042013-104.0-93.0-48.0595.0NaN1612.01855.01802.01359.01042.0601.0NaNACAGAntigua and Barbuda
3AE00004119620111950.02060.02280.02760.03240.03447.03580.03650.03316.02940.02390.01905.0AEAEUnited Arab Emirates
4AE00004119620121837.01987.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNAEAEUnited Arab Emirates
\n", "
" ], "text/plain": [ " ID Year VALUE1 VALUE2 VALUE3 VALUE4 VALUE5 VALUE6 VALUE7 \\\n", "0 ACW00011604 2011 -83.0 -132.0 278.0 1040.0 1213.0 1663.0 1875.0 \n", "1 ACW00011604 2012 121.0 -98.0 592.0 646.0 1365.0 1426.0 1771.0 \n", "2 ACW00011604 2013 -104.0 -93.0 -48.0 595.0 NaN 1612.0 1855.0 \n", "3 AE000041196 2011 1950.0 2060.0 2280.0 2760.0 3240.0 3447.0 3580.0 \n", "4 AE000041196 2012 1837.0 1987.0 NaN NaN NaN NaN NaN \n", "\n", " VALUE8 VALUE9 VALUE10 VALUE11 VALUE12 FIPS 10-4 ISO 3166 \\\n", "0 1723.0 1466.0 987.0 721.0 428.0 AC AG \n", "1 1748.0 1362.0 826.0 620.0 -234.0 AC AG \n", "2 1802.0 1359.0 1042.0 601.0 NaN AC AG \n", "3 3650.0 3316.0 2940.0 2390.0 1905.0 AE AE \n", "4 NaN NaN NaN NaN NaN AE AE \n", "\n", " Name \n", "0 Antigua and Barbuda \n", "1 Antigua and Barbuda \n", "2 Antigua and Barbuda \n", "3 United Arab Emirates \n", "4 United Arab Emirates " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.merge(df, countries, on = [\"FIPS 10-4\"])\n", "df.head(5)" ] }, { "cell_type": "markdown", "id": "79b7aac2", "metadata": {}, "source": [ "What's happened here is the following: \n", "\n", "1. If the FIPS code in a row of `df` matches a FIPS code in `countries`, then the corresponding columns of `countries` are added to that row in the `merge`d result. \n", "2. If the FIPS code in a row of `df` is not found in `countries`, then that row is no longer present in the `merge`d result. \n", "\n", "Other behavior is possible. For example, one might instead prefer that, in case 2, the corresponding parts of the row are populated with `NA` values. This corresponds to a *left* join (rather than the default *inner* join). \n", "\n", "We now have a few unnecessary columns, so we'll remove them. " ] }, { "cell_type": "code", "execution_count": 10, "id": "c37c7297", "metadata": {}, "outputs": [], "source": [ "df = df.drop([\"FIPS 10-4\", \"ISO 3166\"], axis = 1)" ] }, { "cell_type": "markdown", "id": "6c0c1477", "metadata": {}, "source": [ "### Stacking\n", "\n", "Recall that we are aiming to create this figure: \n", "\n", "
\n", " \"\"\n", "
\n", "
\n", "\n", "We now know the country of each observation station, so that's good progress! But we have a bit of a problem now: we'd like to be able to plot all the months in the same time series in the logical way. We can't do this right now because each month's data is in a separate column. How can we create a single column containing the temperature observations? \n", "\n", "The answer is that we can *stack* these columns into a single column. `pandas` provides a convenient method for `stack`ing and `unstack`ing data: \n", "\n", "
\n", " \"\"\n", "
Pandas unstacking.
\n", "
\n", "\n", "\n", "\n", "Here's how. First, we convert all the columns that we *don't* want to stack into a multi-index for the data frame. " ] }, { "cell_type": "code", "execution_count": 11, "id": "420ac7c7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VALUE1VALUE2VALUE3VALUE4VALUE5VALUE6VALUE7VALUE8VALUE9VALUE10VALUE11VALUE12
IDYearName
ACW000116042011Antigua and Barbuda-83.0-132.0278.01040.01213.01663.01875.01723.01466.0987.0721.0428.0
2012Antigua and Barbuda121.0-98.0592.0646.01365.01426.01771.01748.01362.0826.0620.0-234.0
2013Antigua and Barbuda-104.0-93.0-48.0595.0NaN1612.01855.01802.01359.01042.0601.0NaN
AE0000411962011United Arab Emirates1950.02060.02280.02760.03240.03447.03580.03650.03316.02940.02390.01905.0
2012United Arab Emirates1837.01987.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "
" ], "text/plain": [ " VALUE1 VALUE2 VALUE3 VALUE4 VALUE5 \\\n", "ID Year Name \n", "ACW00011604 2011 Antigua and Barbuda -83.0 -132.0 278.0 1040.0 1213.0 \n", " 2012 Antigua and Barbuda 121.0 -98.0 592.0 646.0 1365.0 \n", " 2013 Antigua and Barbuda -104.0 -93.0 -48.0 595.0 NaN \n", "AE000041196 2011 United Arab Emirates 1950.0 2060.0 2280.0 2760.0 3240.0 \n", " 2012 United Arab Emirates 1837.0 1987.0 NaN NaN NaN \n", "\n", " VALUE6 VALUE7 VALUE8 VALUE9 \\\n", "ID Year Name \n", "ACW00011604 2011 Antigua and Barbuda 1663.0 1875.0 1723.0 1466.0 \n", " 2012 Antigua and Barbuda 1426.0 1771.0 1748.0 1362.0 \n", " 2013 Antigua and Barbuda 1612.0 1855.0 1802.0 1359.0 \n", "AE000041196 2011 United Arab Emirates 3447.0 3580.0 3650.0 3316.0 \n", " 2012 United Arab Emirates NaN NaN NaN NaN \n", "\n", " VALUE10 VALUE11 VALUE12 \n", "ID Year Name \n", "ACW00011604 2011 Antigua and Barbuda 987.0 721.0 428.0 \n", " 2012 Antigua and Barbuda 826.0 620.0 -234.0 \n", " 2013 Antigua and Barbuda 1042.0 601.0 NaN \n", "AE000041196 2011 United Arab Emirates 2940.0 2390.0 1905.0 \n", " 2012 United Arab Emirates NaN NaN NaN " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = df.set_index(keys=[\"ID\", \"Year\", \"Name\"])\n", "df.head()" ] }, { "cell_type": "markdown", "id": "b9f5da1f", "metadata": {}, "source": [ "Then, we call the `stack()` method. This has the effect of \"stacking\" all of the data values on top of each other. There's also a new column indicating which of the original columns the observation came from: " ] }, { "cell_type": "code", "execution_count": 12, "id": "8dd5bea0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ID Year Name \n", "ACW00011604 2011 Antigua and Barbuda VALUE1 -83.0\n", " VALUE2 -132.0\n", " VALUE3 278.0\n", " VALUE4 1040.0\n", " VALUE5 1213.0\n", " ... \n", "ZI000067983 2016 Zimbabwe VALUE5 1692.0\n", " VALUE6 1681.0\n", " VALUE8 1828.0\n", " VALUE10 2334.0\n", " VALUE12 2287.0\n", "Length: 1504990, dtype: float64" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = df.stack()\n", "df" ] }, { "cell_type": "markdown", "id": "3076f76f", "metadata": {}, "source": [ "We can recover the `ID`, `Year`, and `Name` columns using `reset_index()`: " ] }, { "cell_type": "code", "execution_count": 13, "id": "111f564d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDYearNamelevel_30
0ACW000116042011Antigua and BarbudaVALUE1-83.0
1ACW000116042011Antigua and BarbudaVALUE2-132.0
2ACW000116042011Antigua and BarbudaVALUE3278.0
3ACW000116042011Antigua and BarbudaVALUE41040.0
4ACW000116042011Antigua and BarbudaVALUE51213.0
\n", "
" ], "text/plain": [ " ID Year Name level_3 0\n", "0 ACW00011604 2011 Antigua and Barbuda VALUE1 -83.0\n", "1 ACW00011604 2011 Antigua and Barbuda VALUE2 -132.0\n", "2 ACW00011604 2011 Antigua and Barbuda VALUE3 278.0\n", "3 ACW00011604 2011 Antigua and Barbuda VALUE4 1040.0\n", "4 ACW00011604 2011 Antigua and Barbuda VALUE5 1213.0" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = df.reset_index()\n", "df.head()" ] }, { "cell_type": "markdown", "id": "6fa18734", "metadata": {}, "source": [ "This is looking pretty good, except that the final two columns aren't labeled very appropriately. Let's fix that up: " ] }, { "cell_type": "code", "execution_count": 14, "id": "2e0e10e4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDYearNameMonthTemperature (C)
0ACW000116042011Antigua and BarbudaVALUE1-83.0
1ACW000116042011Antigua and BarbudaVALUE2-132.0
2ACW000116042011Antigua and BarbudaVALUE3278.0
3ACW000116042011Antigua and BarbudaVALUE41040.0
4ACW000116042011Antigua and BarbudaVALUE51213.0
\n", "
" ], "text/plain": [ " ID Year Name Month Temperature (C)\n", "0 ACW00011604 2011 Antigua and Barbuda VALUE1 -83.0\n", "1 ACW00011604 2011 Antigua and Barbuda VALUE2 -132.0\n", "2 ACW00011604 2011 Antigua and Barbuda VALUE3 278.0\n", "3 ACW00011604 2011 Antigua and Barbuda VALUE4 1040.0\n", "4 ACW00011604 2011 Antigua and Barbuda VALUE5 1213.0" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = df.rename(columns = {\"level_3\" : \"Month\" , 0 : \"Temperature (C)\"})\n", "df.head()" ] }, { "cell_type": "markdown", "id": "f4333c9b", "metadata": {}, "source": [ "Better! We are now very close to our goal. The final step is to create a `datetime` column that reflects both the year and month. First, we can extract the month by picking out everything after the `\"VALUE\"` in the `Month` column. " ] }, { "cell_type": "code", "execution_count": 15, "id": "dff3c5e3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDYearNameMonthTemperature (C)
0ACW000116042011Antigua and Barbuda1-83.0
1ACW000116042011Antigua and Barbuda2-132.0
2ACW000116042011Antigua and Barbuda3278.0
3ACW000116042011Antigua and Barbuda41040.0
4ACW000116042011Antigua and Barbuda51213.0
\n", "
" ], "text/plain": [ " ID Year Name Month Temperature (C)\n", "0 ACW00011604 2011 Antigua and Barbuda 1 -83.0\n", "1 ACW00011604 2011 Antigua and Barbuda 2 -132.0\n", "2 ACW00011604 2011 Antigua and Barbuda 3 278.0\n", "3 ACW00011604 2011 Antigua and Barbuda 4 1040.0\n", "4 ACW00011604 2011 Antigua and Barbuda 5 1213.0" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[\"Month\"] = df[\"Month\"].str[5:].astype(int)\n", "df.head()" ] }, { "cell_type": "markdown", "id": "4e2732ec", "metadata": {}, "source": [ "Next, we'll create a new `datetime` column called `Date`. To do so, we can first create a string of the form `YYYY-MM`: " ] }, { "cell_type": "code", "execution_count": 16, "id": "b48ac711", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDYearNameMonthTemperature (C)Date
0ACW000116042011Antigua and Barbuda1-83.02011-1
1ACW000116042011Antigua and Barbuda2-132.02011-2
2ACW000116042011Antigua and Barbuda3278.02011-3
3ACW000116042011Antigua and Barbuda41040.02011-4
4ACW000116042011Antigua and Barbuda51213.02011-5
\n", "
" ], "text/plain": [ " ID Year Name Month Temperature (C) Date\n", "0 ACW00011604 2011 Antigua and Barbuda 1 -83.0 2011-1\n", "1 ACW00011604 2011 Antigua and Barbuda 2 -132.0 2011-2\n", "2 ACW00011604 2011 Antigua and Barbuda 3 278.0 2011-3\n", "3 ACW00011604 2011 Antigua and Barbuda 4 1040.0 2011-4\n", "4 ACW00011604 2011 Antigua and Barbuda 5 1213.0 2011-5" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[\"Date\"] = df[\"Year\"].astype(str) + \"-\" + df[\"Month\"].astype(str)\n", "df.head()" ] }, { "cell_type": "markdown", "id": "655e99a4", "metadata": {}, "source": [ "We can convert the result to a `DateTime` using a built-in `pandas` function. The nice thing about this function is that it can automatically detect several common formats of date-time strings. " ] }, { "cell_type": "code", "execution_count": 17, "id": "74431d7e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDYearNameMonthTemperature (C)Date
0ACW000116042011Antigua and Barbuda1-83.02011-01-01
1ACW000116042011Antigua and Barbuda2-132.02011-02-01
2ACW000116042011Antigua and Barbuda3278.02011-03-01
3ACW000116042011Antigua and Barbuda41040.02011-04-01
4ACW000116042011Antigua and Barbuda51213.02011-05-01
\n", "
" ], "text/plain": [ " ID Year Name Month Temperature (C) Date\n", "0 ACW00011604 2011 Antigua and Barbuda 1 -83.0 2011-01-01\n", "1 ACW00011604 2011 Antigua and Barbuda 2 -132.0 2011-02-01\n", "2 ACW00011604 2011 Antigua and Barbuda 3 278.0 2011-03-01\n", "3 ACW00011604 2011 Antigua and Barbuda 4 1040.0 2011-04-01\n", "4 ACW00011604 2011 Antigua and Barbuda 5 1213.0 2011-05-01" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[\"Date\"] = pd.to_datetime(df[\"Date\"])\n", "df.head()" ] }, { "cell_type": "markdown", "id": "b8f6a80f", "metadata": {}, "source": [ "### Plotting\n", "\n", "We are finally ready to make our plot! First, we compute the average temperature across all stations in each month, and divide by 100 to get units of degrees Celsius. " ] }, { "cell_type": "code", "execution_count": 18, "id": "a756a4b1", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Temperature (C)
NameDate
Afghanistan2011-01-015.136667
2011-02-016.280000
2011-03-0112.643333
2011-04-0119.070000
2011-05-0126.703333
\n", "
" ], "text/plain": [ " Temperature (C)\n", "Name Date \n", "Afghanistan 2011-01-01 5.136667\n", " 2011-02-01 6.280000\n", " 2011-03-01 12.643333\n", " 2011-04-01 19.070000\n", " 2011-05-01 26.703333" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "averages = df.groupby([\"Name\", \"Date\"])[[\"Temperature (C)\"]].mean()/100\n", "averages.head()" ] }, { "cell_type": "markdown", "id": "dcfb1d07", "metadata": {}, "source": [ "Next, we'll turn the index columns into regular columns for plotting purposes. " ] }, { "cell_type": "code", "execution_count": 19, "id": "0e8c39c0", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NameDateTemperature (C)
0Afghanistan2011-01-015.136667
1Afghanistan2011-02-016.280000
2Afghanistan2011-03-0112.643333
3Afghanistan2011-04-0119.070000
4Afghanistan2011-05-0126.703333
\n", "
" ], "text/plain": [ " Name Date Temperature (C)\n", "0 Afghanistan 2011-01-01 5.136667\n", "1 Afghanistan 2011-02-01 6.280000\n", "2 Afghanistan 2011-03-01 12.643333\n", "3 Afghanistan 2011-04-01 19.070000\n", "4 Afghanistan 2011-05-01 26.703333" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "averages = averages.reset_index()\n", "averages.head()" ] }, { "cell_type": "markdown", "id": "f82a0a6a", "metadata": {}, "source": [ "Finally, we'll make the plot! To avoid overplotting, I'm going to plot only the countries whose English names begin with a given letter. The `lineplot` function of `seaborn` makes it easy to plot many labeled timeseries simultaneously. " ] }, { "cell_type": "code", "execution_count": 20, "id": "5c875897", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "begins_with = averages[averages[\"Name\"].str[0] == \"E\"]\n", "\n", "sns.lineplot(data = begins_with, \n", " x = \"Date\", \n", " y = \"Temperature (C)\", \n", " hue = \"Name\")\n", "\n", "# legend needs to be adjusted\n", "plt.legend(bbox_to_anchor=(1.05, 1),loc=2)\n", "plt.savefig(\"pd-1-example-plot.png\", bbox_inches = \"tight\")" ] }, { "cell_type": "markdown", "id": "f37132be", "metadata": {}, "source": [ "We did it! Constructing this plot from the supplied data required us to *merge* and *stack* our data. This is a common pattern in applied data analysis -- we need to manipulate our data in a number of ways prior to the cool plotting or machine learning. \n", "\n", "### Takeaways for Today\n", "\n", "Here's what I want you to take away from this lecture: \n", "\n", "1. Many **data visualization** problems can be solved by **data manipulation**. \n", "2. `pandas` provides a number of handy methods for combining and reshaping your data. \n", "3. Pandas are very clumsy animals. " ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:PIC16B] *", "language": "python", "name": "conda-env-PIC16B-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 5 }