Skip to content

Instantly share code, notes, and snippets.

@fenago
Last active October 21, 2024 07:38
Show Gist options
  • Select an option

  • Save fenago/08a0cfe98d212d90ed8f7e38c8006d66 to your computer and use it in GitHub Desktop.

Select an option

Save fenago/08a0cfe98d212d90ed8f7e38c8006d66 to your computer and use it in GitHub Desktop.
mod01_examples.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/fenago/08a0cfe98d212d90ed8f7e38c8006d66/mod01_examples.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ZkLxlu9hq3wF"
},
"source": [
"# Module 1: Introduction"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "q_t58MSxq3wJ"
},
"source": [
"## Get the data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "-3Q3FsPIq3wK",
"outputId": "a1ad2b21-97bf-4074-8418-4ec644c9ca73"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" cycle branch type matchup \\\n",
"0 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"1 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"2 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"3 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"4 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"... ... ... ... ... \n",
"12619 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"12620 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"12621 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"12622 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"12623 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"\n",
" forecastdate state startdate enddate \\\n",
"0 11/8/16 U.S. 11/3/2016 11/6/2016 \n",
"1 11/8/16 U.S. 11/1/2016 11/7/2016 \n",
"2 11/8/16 U.S. 11/2/2016 11/6/2016 \n",
"3 11/8/16 U.S. 11/4/2016 11/7/2016 \n",
"4 11/8/16 U.S. 11/3/2016 11/6/2016 \n",
"... ... ... ... ... \n",
"12619 11/8/16 New Hampshire 7/9/2016 7/18/2016 \n",
"12620 11/8/16 Wisconsin 10/21/2016 11/2/2016 \n",
"12621 11/8/16 New York 8/7/2016 8/10/2016 \n",
"12622 11/8/16 Virginia 9/30/2016 10/6/2016 \n",
"12623 11/8/16 Wisconsin 6/9/2016 6/12/2016 \n",
"\n",
" pollster grade ... adjpoll_clinton adjpoll_trump \\\n",
"0 ABC News/Washington Post A+ ... 45.20163 41.72430 \n",
"1 Google Consumer Surveys B ... 43.34557 41.21439 \n",
"2 Ipsos A- ... 42.02638 38.81620 \n",
"3 YouGov B ... 45.65676 40.92004 \n",
"4 Gravis Marketing B- ... 46.84089 42.33184 \n",
"... ... ... ... ... ... \n",
"12619 University of New Hampshire B+ ... 40.24983 43.04717 \n",
"12620 Ipsos A- ... 46.54218 38.96884 \n",
"12621 Siena College A ... 53.83622 32.47939 \n",
"12622 Ipsos A- ... 49.57558 39.96954 \n",
"12623 Marquette University A ... 46.40999 39.19839 \n",
"\n",
" adjpoll_johnson adjpoll_mcmullin multiversions \\\n",
"0 4.626221 NaN NaN \n",
"1 5.175792 NaN NaN \n",
"2 6.844734 NaN NaN \n",
"3 6.069454 NaN NaN \n",
"4 3.726098 NaN NaN \n",
"... ... ... ... \n",
"12619 6.924110 NaN NaN \n",
"12620 NaN NaN NaN \n",
"12621 3.881193 NaN NaN \n",
"12622 NaN NaN NaN \n",
"12623 NaN NaN NaN \n",
"\n",
" url poll_id \\\n",
"0 https://www.washingtonpost.com/news/the-fix/wp... 48630 \n",
"1 https://datastudio.google.com/u/0/#/org//repor... 48847 \n",
"2 http://projects.fivethirtyeight.com/polls/2016... 48922 \n",
"3 https://d25d2506sfb94s.cloudfront.net/cumulus_... 48687 \n",
"4 http://www.gravispolls.com/2016/11/final-natio... 48848 \n",
"... ... ... \n",
"12619 https://cola.unh.edu/sites/cola.unh.edu/files/... 44650 \n",
"12620 http://www.reuters.com/statesofthenation/ 48259 \n",
"12621 https://www.siena.edu/assets/files/news/SNY081... 44852 \n",
"12622 http://www.reuters.com/statesofthenation/ 46675 \n",
"12623 https://law.marquette.edu/poll/2016/06/15/new-... 44341 \n",
"\n",
" question_id createddate timestamp \n",
"0 76192 11/7/16 09:35:33 8 Nov 2016 \n",
"1 76443 11/7/16 09:35:33 8 Nov 2016 \n",
"2 76636 11/8/16 09:35:33 8 Nov 2016 \n",
"3 76262 11/7/16 09:35:33 8 Nov 2016 \n",
"4 76444 11/7/16 09:35:33 8 Nov 2016 \n",
"... ... ... ... \n",
"12619 68189 7/21/16 09:14:14 8 Nov 2016 \n",
"12620 75560 11/3/16 09:14:14 8 Nov 2016 \n",
"12621 68743 8/15/16 09:14:14 8 Nov 2016 \n",
"12622 72969 10/10/16 09:14:14 8 Nov 2016 \n",
"12623 66966 6/15/16 09:14:14 8 Nov 2016 \n",
"\n",
"[12624 rows x 27 columns]"
],
"text/html": [
"\n",
" <div id=\"df-4d8cd7fb-fa04-4e02-94b3-5e20c808bb45\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cycle</th>\n",
" <th>branch</th>\n",
" <th>type</th>\n",
" <th>matchup</th>\n",
" <th>forecastdate</th>\n",
" <th>state</th>\n",
" <th>startdate</th>\n",
" <th>enddate</th>\n",
" <th>pollster</th>\n",
" <th>grade</th>\n",
" <th>...</th>\n",
" <th>adjpoll_clinton</th>\n",
" <th>adjpoll_trump</th>\n",
" <th>adjpoll_johnson</th>\n",
" <th>adjpoll_mcmullin</th>\n",
" <th>multiversions</th>\n",
" <th>url</th>\n",
" <th>poll_id</th>\n",
" <th>question_id</th>\n",
" <th>createddate</th>\n",
" <th>timestamp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>11/3/2016</td>\n",
" <td>11/6/2016</td>\n",
" <td>ABC News/Washington Post</td>\n",
" <td>A+</td>\n",
" <td>...</td>\n",
" <td>45.20163</td>\n",
" <td>41.72430</td>\n",
" <td>4.626221</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://www.washingtonpost.com/news/the-fix/wp...</td>\n",
" <td>48630</td>\n",
" <td>76192</td>\n",
" <td>11/7/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>11/1/2016</td>\n",
" <td>11/7/2016</td>\n",
" <td>Google Consumer Surveys</td>\n",
" <td>B</td>\n",
" <td>...</td>\n",
" <td>43.34557</td>\n",
" <td>41.21439</td>\n",
" <td>5.175792</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://datastudio.google.com/u/0/#/org//repor...</td>\n",
" <td>48847</td>\n",
" <td>76443</td>\n",
" <td>11/7/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>11/2/2016</td>\n",
" <td>11/6/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>42.02638</td>\n",
" <td>38.81620</td>\n",
" <td>6.844734</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://projects.fivethirtyeight.com/polls/2016...</td>\n",
" <td>48922</td>\n",
" <td>76636</td>\n",
" <td>11/8/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>11/4/2016</td>\n",
" <td>11/7/2016</td>\n",
" <td>YouGov</td>\n",
" <td>B</td>\n",
" <td>...</td>\n",
" <td>45.65676</td>\n",
" <td>40.92004</td>\n",
" <td>6.069454</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://d25d2506sfb94s.cloudfront.net/cumulus_...</td>\n",
" <td>48687</td>\n",
" <td>76262</td>\n",
" <td>11/7/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>11/3/2016</td>\n",
" <td>11/6/2016</td>\n",
" <td>Gravis Marketing</td>\n",
" <td>B-</td>\n",
" <td>...</td>\n",
" <td>46.84089</td>\n",
" <td>42.33184</td>\n",
" <td>3.726098</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.gravispolls.com/2016/11/final-natio...</td>\n",
" <td>48848</td>\n",
" <td>76444</td>\n",
" <td>11/7/16</td>\n",
" <td>09:35:33 8 Nov 2016</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",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12619</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>New Hampshire</td>\n",
" <td>7/9/2016</td>\n",
" <td>7/18/2016</td>\n",
" <td>University of New Hampshire</td>\n",
" <td>B+</td>\n",
" <td>...</td>\n",
" <td>40.24983</td>\n",
" <td>43.04717</td>\n",
" <td>6.924110</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://cola.unh.edu/sites/cola.unh.edu/files/...</td>\n",
" <td>44650</td>\n",
" <td>68189</td>\n",
" <td>7/21/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12620</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Wisconsin</td>\n",
" <td>10/21/2016</td>\n",
" <td>11/2/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>46.54218</td>\n",
" <td>38.96884</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>48259</td>\n",
" <td>75560</td>\n",
" <td>11/3/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12621</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>New York</td>\n",
" <td>8/7/2016</td>\n",
" <td>8/10/2016</td>\n",
" <td>Siena College</td>\n",
" <td>A</td>\n",
" <td>...</td>\n",
" <td>53.83622</td>\n",
" <td>32.47939</td>\n",
" <td>3.881193</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://www.siena.edu/assets/files/news/SNY081...</td>\n",
" <td>44852</td>\n",
" <td>68743</td>\n",
" <td>8/15/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12622</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Virginia</td>\n",
" <td>9/30/2016</td>\n",
" <td>10/6/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>49.57558</td>\n",
" <td>39.96954</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46675</td>\n",
" <td>72969</td>\n",
" <td>10/10/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12623</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Wisconsin</td>\n",
" <td>6/9/2016</td>\n",
" <td>6/12/2016</td>\n",
" <td>Marquette University</td>\n",
" <td>A</td>\n",
" <td>...</td>\n",
" <td>46.40999</td>\n",
" <td>39.19839</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://law.marquette.edu/poll/2016/06/15/new-...</td>\n",
" <td>44341</td>\n",
" <td>66966</td>\n",
" <td>6/15/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>12624 rows × 27 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-4d8cd7fb-fa04-4e02-94b3-5e20c808bb45')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-4d8cd7fb-fa04-4e02-94b3-5e20c808bb45 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-4d8cd7fb-fa04-4e02-94b3-5e20c808bb45');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-ebc122d6-a25e-416f-b89a-f207027d9a00\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-ebc122d6-a25e-416f-b89a-f207027d9a00')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-ebc122d6-a25e-416f-b89a-f207027d9a00 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" <div id=\"id_58ea2c50-89f1-4bb2-8a2b-2aa253138dc5\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('polls')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_58ea2c50-89f1-4bb2-8a2b-2aa253138dc5 button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('polls');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "polls"
}
},
"metadata": {},
"execution_count": 1
}
],
"source": [
"import pandas as pd\n",
"poll_url = 'http://projects.fivethirtyeight.com/general-model/president_general_polls_2016.csv'\n",
"polls = pd.read_csv(poll_url)\n",
"polls"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "lkMNF4DZq3wN"
},
"source": [
"## Sort the data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 603
},
"id": "x_E9hzLOq3wN",
"outputId": "d698eb2a-6fe0-49ca-93e3-e428576ff9bc"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" cycle branch type matchup \\\n",
"10862 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"6718 2016 President now-cast Clinton vs. Trump vs. Johnson \n",
"11203 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"2105 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"2801 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"\n",
" forecastdate state startdate enddate pollster grade ... \\\n",
"10862 11/8/16 Kentucky 9/9/2016 9/22/2016 Ipsos A- ... \n",
"6718 11/8/16 Indiana 9/9/2016 9/22/2016 Ipsos A- ... \n",
"11203 11/8/16 Texas 9/9/2016 9/15/2016 Ipsos A- ... \n",
"2105 11/8/16 Montana 9/9/2016 9/29/2016 Ipsos A- ... \n",
"2801 11/8/16 Arizona 9/9/2016 9/22/2016 Ipsos A- ... \n",
"\n",
" adjpoll_clinton adjpoll_trump adjpoll_johnson adjpoll_mcmullin \\\n",
"10862 37.39425 54.17959 NaN NaN \n",
"6718 33.73702 52.89504 NaN NaN \n",
"11203 28.37295 51.58496 NaN NaN \n",
"2105 38.08105 52.35901 NaN NaN \n",
"2801 41.36205 48.14312 NaN NaN \n",
"\n",
" multiversions url poll_id \\\n",
"10862 NaN http://www.reuters.com/statesofthenation/ 46070 \n",
"6718 NaN http://www.reuters.com/statesofthenation/ 46067 \n",
"11203 NaN http://www.reuters.com/statesofthenation/ 45869 \n",
"2105 NaN http://www.reuters.com/statesofthenation/ 46360 \n",
"2801 NaN http://www.reuters.com/statesofthenation/ 46057 \n",
"\n",
" question_id createddate timestamp \n",
"10862 72062 9/26/16 09:14:14 8 Nov 2016 \n",
"6718 72059 9/26/16 09:24:53 8 Nov 2016 \n",
"11203 71633 9/16/16 09:14:14 8 Nov 2016 \n",
"2105 72488 10/3/16 09:35:33 8 Nov 2016 \n",
"2801 72049 9/26/16 09:35:33 8 Nov 2016 \n",
"\n",
"[5 rows x 27 columns]"
],
"text/html": [
"\n",
" <div id=\"df-9864ff64-971b-484e-9974-cd578bac4fa5\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cycle</th>\n",
" <th>branch</th>\n",
" <th>type</th>\n",
" <th>matchup</th>\n",
" <th>forecastdate</th>\n",
" <th>state</th>\n",
" <th>startdate</th>\n",
" <th>enddate</th>\n",
" <th>pollster</th>\n",
" <th>grade</th>\n",
" <th>...</th>\n",
" <th>adjpoll_clinton</th>\n",
" <th>adjpoll_trump</th>\n",
" <th>adjpoll_johnson</th>\n",
" <th>adjpoll_mcmullin</th>\n",
" <th>multiversions</th>\n",
" <th>url</th>\n",
" <th>poll_id</th>\n",
" <th>question_id</th>\n",
" <th>createddate</th>\n",
" <th>timestamp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10862</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Kentucky</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/22/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>37.39425</td>\n",
" <td>54.17959</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46070</td>\n",
" <td>72062</td>\n",
" <td>9/26/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6718</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>now-cast</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Indiana</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/22/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>33.73702</td>\n",
" <td>52.89504</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46067</td>\n",
" <td>72059</td>\n",
" <td>9/26/16</td>\n",
" <td>09:24:53 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11203</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Texas</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/15/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>28.37295</td>\n",
" <td>51.58496</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>45869</td>\n",
" <td>71633</td>\n",
" <td>9/16/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2105</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Montana</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/29/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>38.08105</td>\n",
" <td>52.35901</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46360</td>\n",
" <td>72488</td>\n",
" <td>10/3/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2801</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Arizona</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/22/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>41.36205</td>\n",
" <td>48.14312</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46057</td>\n",
" <td>72049</td>\n",
" <td>9/26/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 27 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9864ff64-971b-484e-9974-cd578bac4fa5')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-9864ff64-971b-484e-9974-cd578bac4fa5 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-9864ff64-971b-484e-9974-cd578bac4fa5');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-b4c203e7-f0ff-4c5a-80ce-051a2023ad06\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-b4c203e7-f0ff-4c5a-80ce-051a2023ad06')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-b4c203e7-f0ff-4c5a-80ce-051a2023ad06 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "polls"
}
},
"metadata": {},
"execution_count": 2
}
],
"source": [
"polls.sort_values('startdate', ascending=False, inplace=True)\n",
"polls.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yD2bmdawq3wO"
},
"source": [
"## Use lists, slices, tuples, and dictionary objects"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "lki5vJRRq3wO"
},
"source": [
"### A list"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 196
},
"id": "OYEVdwwaq3wP",
"outputId": "049d774e-10cd-4c3e-e54d-0eee50d364fe"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" type state startdate enddate pollster grade samplesize \\\n",
"10862 polls-only Kentucky 9/9/2016 9/22/2016 Ipsos A- 322.0 \n",
"6718 now-cast Indiana 9/9/2016 9/22/2016 Ipsos A- 367.0 \n",
"\n",
" population poll_wt rawpoll_clinton ... adjpoll_clinton \\\n",
"10862 lv 0.003555 37.31 ... 37.39425 \n",
"6718 lv 0.002889 34.92 ... 33.73702 \n",
"\n",
" adjpoll_trump adjpoll_johnson adjpoll_mcmullin multiversions \\\n",
"10862 54.17959 NaN NaN NaN \n",
"6718 52.89504 NaN NaN NaN \n",
"\n",
" url poll_id question_id \\\n",
"10862 http://www.reuters.com/statesofthenation/ 46070 72062 \n",
"6718 http://www.reuters.com/statesofthenation/ 46067 72059 \n",
"\n",
" createddate timestamp \n",
"10862 9/26/16 09:14:14 8 Nov 2016 \n",
"6718 9/26/16 09:24:53 8 Nov 2016 \n",
"\n",
"[2 rows x 23 columns]"
],
"text/html": [
"\n",
" <div id=\"df-5ff761c9-ff14-4c04-ae71-610aa143448b\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>type</th>\n",
" <th>state</th>\n",
" <th>startdate</th>\n",
" <th>enddate</th>\n",
" <th>pollster</th>\n",
" <th>grade</th>\n",
" <th>samplesize</th>\n",
" <th>population</th>\n",
" <th>poll_wt</th>\n",
" <th>rawpoll_clinton</th>\n",
" <th>...</th>\n",
" <th>adjpoll_clinton</th>\n",
" <th>adjpoll_trump</th>\n",
" <th>adjpoll_johnson</th>\n",
" <th>adjpoll_mcmullin</th>\n",
" <th>multiversions</th>\n",
" <th>url</th>\n",
" <th>poll_id</th>\n",
" <th>question_id</th>\n",
" <th>createddate</th>\n",
" <th>timestamp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10862</th>\n",
" <td>polls-only</td>\n",
" <td>Kentucky</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/22/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>322.0</td>\n",
" <td>lv</td>\n",
" <td>0.003555</td>\n",
" <td>37.31</td>\n",
" <td>...</td>\n",
" <td>37.39425</td>\n",
" <td>54.17959</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46070</td>\n",
" <td>72062</td>\n",
" <td>9/26/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6718</th>\n",
" <td>now-cast</td>\n",
" <td>Indiana</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/22/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>367.0</td>\n",
" <td>lv</td>\n",
" <td>0.002889</td>\n",
" <td>34.92</td>\n",
" <td>...</td>\n",
" <td>33.73702</td>\n",
" <td>52.89504</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46067</td>\n",
" <td>72059</td>\n",
" <td>9/26/16</td>\n",
" <td>09:24:53 8 Nov 2016</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 23 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5ff761c9-ff14-4c04-ae71-610aa143448b')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-5ff761c9-ff14-4c04-ae71-610aa143448b button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-5ff761c9-ff14-4c04-ae71-610aa143448b');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-bfc3f392-3c5b-4450-96ca-a6480af1f2f2\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-bfc3f392-3c5b-4450-96ca-a6480af1f2f2')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-bfc3f392-3c5b-4450-96ca-a6480af1f2f2 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "polls"
}
},
"metadata": {},
"execution_count": 3
}
],
"source": [
"polls.drop(columns=['cycle','branch','matchup','forecastdate'], inplace=True)\n",
"polls.head(2)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-0U5PbEJq3wP"
},
"source": [
"### A tuple"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "7Mgo1EVlq3wP",
"outputId": "8d441a64-b479-426d-c2e3-8ddec91955a1"
},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: >"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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f0ll5OeTl29w9NRZfv6zdJ0TFVciIiK32M6tmxg2qN81tzs4OBDRqSudetrueiqxH00L+viU2GFFERFbO3fuHIcOHSI4OLjMPuDRHnJycvj555+vub1WrVp/Yzalw/X+Vkv697dGrkRERG4xNzc3FVBliO4WFBEREbEhFVciIiIiNqTiSkRERMSGVFyJiIiI2JCKKxEREREbUnElIiJiI9HR0fTt29dcjoyMZPTo0XbL51aJiYmhcePG5nJZOe6i0qMYRERExKY++eQTm74DsbRRcSUiIqVObm4uzs56N2JJ5efnZ+8U7ErTgiIiUuJFRkYyfPhwxowZQ4UKFejcuTNz584lLCwMDw8PgoKCGDZsGKdPnwbAMAwqVqzI8uXLzTYaN25MQECAubx582acnJzMfSwWCwsXLqR79+64ubkRHBzMRx99ZJXHnj176NChA25ubvj7+zN06FBz/5tVs2ZNXnrpJQYNGoSnpyc1atTgs88+47fffqNPnz54enoSFhbG9u3brfbbuHEjERERuLu74+vrS9euXcnMzDTP24gRIxg9ejS+vr5UqlSJJUuWcObMGR555BG8vLy48847+eqrr8z2li5dSvny5a36+PTTT7FYLEU+liunBWvWrMm0adN49NFH8fLyonr16ixZsqT4J6mUUHElIlKGGYZB3rlzdvkU9+1rcXFxlCtXjo0bN7J48WIcHBx4/fXXSU1NJS4ujrVr1/LMM88AFwuldu3akZiYCEBmZiZpaWnk5eWRlpYGQGJiIs2aNcPT09PsY+LEidx3333s3r2bhx56iP79+5Oeng7A2bNn6datG76+viQnJ/PRRx/xzTffMHz4cBv8Ji569dVXad26Nbt27aJnz55ERUUxaNAgHnroIXbu3EmtWrUYNGiQee5SUlLo2LEjDRo0YPPmzWzYsIHevXuTn/+/Fx3HxcVRoUIFtm3bxogRI3jyySd54IEHuPvuu9m5cyddu3YlKiqKs2fP2uw4rmbOnDk0b96cXbt2MWzYMJ588kl++OGHW9qnvWhaUESkDLtw/jyvP3y/XfoeGfcxTsV4v2GtWrWYOXOmuVyvXj3z5+DgYKZOncqTTz7JggULgIujJ5dGR9avX0+jRo2oXr06iYmJhISEkJiYSGRkpFUfDzzwAI899hgAU6dOZc2aNcyfP58FCxawbNkycnJyeOedd/Dw8AAgNjaW3r17M2PGDCpVqnRD5+FyPXr04PHHHwdg0qRJLFy4kBYtWvDAAw8A8OyzzxIeHs6vv/5KYGAgM2fOpHnz5uYxAzRo0MCqzUaNGvHCCy8A8Nxzz/HKK69QoUIFhgwZYtXPd999R6tWrW76GK53bMOGDTOP49VXXyUxMdHq93i70MiViIiUCs2bN7daXrduHZ07d6Zq1ap4eXkxaNAgTp48yZkzZ4CLxdX333/P77//TlJSEpGRkURGRpKUlMSFCxfYtGkTERERVm2Gh4cXWr40cpWenk6jRo3MwgqgdevWFBQUsHfvXpscY8OGDc2fLxVrYWFhhdadOHEC+N/IVVHbdHR0xN/f/7pt3iqX52GxWAgMDLzlfdqLRq5ERMqwci4ujIz72G59F8flRc2RI0fo0aMHTzzxBFOnTsXPz48NGzYwePBg8vLyAAgNDcXf35+kpCSSkpKYMmUKQUFBvPzyyyQnJ5OTk0ObNm3+st9L1xoZhnHN646Kcz3S9Vx+h92lNq+2rqCgALj4QujitHmpjeu16eDgUGjK9tI5vRlXy+NSn7cbjVyJiJRhFosFJ1dXu3xupiDZvn07Fy5cYM6cObRq1Yo6derwyy+/FDq2du3a8dlnn5Gamkrbtm0JCwsjLy+PRYsW0bRpU7y8vKz22bJlS6HlS9NWISEhpKSkmCNjcPFicgcHB+rUqXPDx3IzGjZsSEJCgk3brFixIn/++afVcaakpNi0j9udiisRESl17rzzTi5cuMD8+fP58ccfeffdd1m0aFGhuMjISN5//30aNmyIt7e3WXAtW7as0PVWAB999BFvvfUW+/btY/LkyWzbts28YH3gwIG4urry8MMPk5qayrp16xgxYgRRUVE2ud7qRjz33HMkJyczbNgwvvvuO3744QcWLlzI77//fsNttmzZEnd3d55//nkOHDjA+++/z9KlS22XdBmg4kpEREqdxo0bM3fuXGbMmEFoaCjLli1j+vTpheLat29Pfn6+VSEVERFBfn5+oeutAF588UXi4+Np2LAhcXFxLFu2jJCQEADc3d35+uuvOXXqFC1atOD++++nY8eOxMbG3rLj/Ct16tRh9erV7N69m7vuuovw8HA+++wzypW78at+/Pz8eO+99/jyyy8JCwvjgw8+ICYmxnZJlwEWo7j3wt5GsrOz8fHxISsrC29vb3unIyJyy507d45Dhw4RHByMazHu1CsLLBYLK1assHqNi9jP9f5WS/r3t0auRERERGxIxZWIiMgt9u233+Lp6XnNj9xe9CgGERERKPYT44ujefPmuuOuDFFxJSIicou5ublRq1Yte6chfxNNC4qIiIjYkIorERERERtScSUiIiJiQyquRERERGxIxZWIiIiIDam4EhGR29Lhw4exWCzmIxCuXLaVmjVrMm/ePHPZYrHw6aef3nS7MTExNG7c2FyOjo7W0+NLiZsqrqZPn47FYmH06NHmOsMwiImJoUqVKri5uREZGcn3339vtd/58+cZMWIEFSpUwMPDg3vuuYeffvrJKiYzM5OoqCh8fHzw8fEhKiqKP/74wyrm6NGj9O7dGw8PDypUqMDIkSPJzc29mUMSEZHbVFBQEBkZGYSGhto7lRvy2muvFfsFyrYq9KR4bri4Sk5OZsmSJTRs2NBq/cyZM5k7dy6xsbEkJycTGBhI586d+fPPP82Y0aNHs2LFCuLj49mwYQOnT5+mV69e5OfnmzEDBgwgJSWFVatWsWrVKlJSUoiKijK35+fn07NnT86cOcOGDRuIj49n+fLljB079kYPSUREbmOOjo4EBgbe1EuN7cnHx4fy5cvbOw0pghsqrk6fPs3AgQN544038PX1NdcbhsG8efOYMGEC9957L6GhocTFxXH27Fnef/99ALKysnjzzTeZM2cOnTp1okmTJrz33nvs2bOHb775BoD09HRWrVrFv//9b8LDwwkPD+eNN97g888/Z+/evQCsXr2atLQ03nvvPZo0aUKnTp2YM2cOb7zxBtnZ2Td7XkREpIRZtWoVbdq0oXz58vj7+9OrVy8OHjxobt+2bRtNmjTB1dWV5s2bs2vXLqv9r5wWTExMxGKx8MUXX9CoUSNcXV1p2bIle/bssdpv+fLlNGjQABcXF2rWrMmcOXNsdkw//fQT//znP/Hz88PDw4PmzZuzdevWq8ZeOS0YGRnJyJEjeeaZZ/Dz8yMwMJCYmBhze82aNQH4xz/+gcViMZcBFi5cyJ133omzszN169bl3XffterLYrHw73//m3/84x+4u7tTu3ZtVq5caavDvu3dUHH11FNP0bNnTzp16mS1/tChQxw/fpwuXbqY61xcXIiIiGDTpk0A7Nixg7y8PKuYKlWqEBoaasZs3rwZHx8fWrZsaca0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MzMpX778357P+fPncXV1Zc2aNXTq1Olv77+ku97fakn//tYF7SIicts7deoUH3/8Md7e3lZ3wtlLdnY2n3zyCQ4ODub1XXL7UHElIiK3vcGDB7Njxw4WLlyIi4vL39LntGnTmDZt2lW3tWjRgrS0NGbMmEG1atX+lnzk76PiSkREbnsrVqwotC4yMvKWPVYB4IknnqBfv35X3ebm5kbVqlVvWd+3u5RjmX8dZEcqrkRERG4BPz8//Pz87J3GbemFT1PtncJ16W5BERERKVWe7Vayr1NTcSUiIiKlStvaFe2dwnWpuBIRERGxIRVXIiIiIjak4kpERETEhlRciYjIbenw4cNYLBZSUlKuumwrNWvWZN68eebypVfI3G4iIyMZPXq0uVxWjvtG6FEMIiJSJgQFBZGRkUGFChXsncptKSMjA19fX3unUSKouBIRkTLB0dGRwMBAe6dx29K5/R9NC4qIlGGGYXAmP98un+I+HX3VqlW0adOG8uXL4+/vT69evTh48KC5fdu2bTRp0gRXV1eaN2/Orl27rPa/clowMTERi8XCF198QaNGjXB1daVly5bs2bPHar/ly5fToEEDXFxcqFmzJnPmzLmxk32FS/l8+OGHtG3bFjc3N1q0aMG+fftITk6mefPmeHp60q1bN3777Terfd966y0zp8qVKzN8+HBzm8ViYfHixfTq1Qt3d3fq16/P5s2bOXDgAJGRkXh4eBAeHm517qKjo+nbt69VH6NHjyYyMrLIx3P5tOClY/vkk09o37497u7uNGrUiM2bNxf7PJVGGrkSESnDzhYUcOf6PX8deAscbBeGh6NjkePPnDnDmDFjCAsL48yZM0yaNIl//OMfpKSkkJOTQ69evejQoQPvvfcehw4dYtSoUUVqd/z48bz22msEBgby/PPPc88997Bv3z6cnJzYsWMH/fr1IyYmhgcffJBNmzYxbNgw/P39iY6OvsEjtzZ58mTmzZtH9erVefTRR+nfvz/e3t689tpruLu7069fPyZNmsTChQsBWLhwIWPGjOGVV16he/fuZGVlsXHjRqs2p06dyty5c5k7dy7PPvssAwYM4I477uC5554z+xk+fDhfffWVTY7hWiZMmMDs2bOpXbs2EyZMoH///hw4cIBy5W7v8uP2PjoREblt3HfffVbLb775JgEBAaSlpbFp0yby8/N56623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3NzcqFWrlr3TkJukaUERkTKoDN/LJKVEaf4bVXElIlKGXHrlSm5urp0zEbm+Sw+AvfJp9qWBpgVFRMqQcuXK4e7uzm+//YaTk5PVQzhFSgLDMDh79iwnTpygfPnyVu9gLC1UXImIlCEWi4XKlStz6NAhjhw5Yu90RK6pfPnyBAYG2juNG6LiSkSkjHF2dqZ27dqaGpQSy8nJqVSOWF2i4kpEpAxycHC4LZ7QLlISabJdRERExIZUXImIiIjYkIorERERERtScSUiIiJiQyquRERERGxIxZWIiIiIDam4EhEREbEhFVciIiIiNqTiSkRERMSGVFyJiIiI2JCKKxEREREbUnElIiIiYkMqrkRERERsSMWViIiIiA2puBIRERGxIRVXIiIiIjak4kpERETEhlRciYiIiNiQiisRERERG1JxJSIiImJDKq5EREREbEjFlYiIiIgNqbgSERERsSEVVyIiIiI2pOJKRERExIZUXImIiIjYUDl7J1AS9Hz9W8q5etg7DRERESmCC+fO2DuF61JxBRw5eRYHF3tnISIiIkVRcP6svVO4Lk0LioiIiNiQxTAMw95J2Et2djY+Pj5kZWXh7e1t73RERESkCEr697dGrkRERERsSMWViIiIiA2V+uJqwYIFBAcH4+rqSrNmzfj222/tnZKIiIiUYaW6uPrPf/7D6NGjmTBhArt27aJt27Z0796do0eP2js1ERERKaNK9QXtLVu2pGnTpixcuNBcV79+ffr27cv06dP/cv+SfkGciIiIFFbSv79L7XOucnNz2bFjB//617+s1nfp0oVNmzZddZ/z589z/vx5czk7OxuAxKRGeHiU6kE8ERGRMuPMmQJ7p3Bdpbai+P3338nPz6dSpUpW6ytVqsTx48evus/06dPx8fExP0FBQX9HqiIiIlKGlNqRq0ssFovVsmEYhdZd8txzzzFmzBhzOTs7m6CgIIwCB4yCUltnioiIlDEle+Sq1BZXFSpUwNHRsdAo1YkTJwqNZl3i4uKCi0vh99y0b7+rRM7ZioiISGEXL+vxsXca11Rqh2ucnZ1p1qwZa9assVq/Zs0a7r77bjtlJSIiImVdqR25AhgzZgxRUVE0b96c8PBwlixZwtGjR3niiSfsnZqIiIiUUaW6uHrwwQc5efIkU6ZMISMjg9DQUL788ktq1Khh79RERESkjCrVz7m6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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"polls.plot.line(xlim=('2016-06','2016-11'))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "UsCxzhQgq3wQ"
},
"source": [
"### A dictionary"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "xkptfhweq3wQ",
"outputId": "3139e612-c25e-40be-caa7-af4b8fae1c68"
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>type</th>\n",
" <th>state</th>\n",
" <th>startdate</th>\n",
" <th>enddate</th>\n",
" <th>pollster</th>\n",
" <th>grade</th>\n",
" <th>samplesize</th>\n",
" <th>population</th>\n",
" <th>poll_wt</th>\n",
" <th>rawpoll_clinton</th>\n",
" <th>...</th>\n",
" <th>Clinton</th>\n",
" <th>Trump</th>\n",
" <th>adjpoll_johnson</th>\n",
" <th>adjpoll_mcmullin</th>\n",
" <th>multiversions</th>\n",
" <th>url</th>\n",
" <th>poll_id</th>\n",
" <th>question_id</th>\n",
" <th>createddate</th>\n",
" <th>timestamp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10862</th>\n",
" <td>polls-only</td>\n",
" <td>Kentucky</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/22/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>322.0</td>\n",
" <td>lv</td>\n",
" <td>3.554900e-03</td>\n",
" <td>37.31</td>\n",
" <td>...</td>\n",
" <td>37.39425</td>\n",
" <td>54.17959</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46070</td>\n",
" <td>72062</td>\n",
" <td>9/26/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6718</th>\n",
" <td>now-cast</td>\n",
" <td>Indiana</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/22/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>367.0</td>\n",
" <td>lv</td>\n",
" <td>2.889400e-03</td>\n",
" <td>34.92</td>\n",
" <td>...</td>\n",
" <td>33.73702</td>\n",
" <td>52.89504</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46067</td>\n",
" <td>72059</td>\n",
" <td>9/26/16</td>\n",
" <td>09:24:53 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11203</th>\n",
" <td>polls-only</td>\n",
" <td>Texas</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/15/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>462.0</td>\n",
" <td>lv</td>\n",
" <td>1.283900e-03</td>\n",
" <td>28.51</td>\n",
" <td>...</td>\n",
" <td>28.37295</td>\n",
" <td>51.58496</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>45869</td>\n",
" <td>71633</td>\n",
" <td>9/16/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2105</th>\n",
" <td>polls-plus</td>\n",
" <td>Montana</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/29/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>144.0</td>\n",
" <td>lv</td>\n",
" <td>8.000500e-03</td>\n",
" <td>39.76</td>\n",
" <td>...</td>\n",
" <td>38.08105</td>\n",
" <td>52.35901</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46360</td>\n",
" <td>72488</td>\n",
" <td>10/3/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2801</th>\n",
" <td>polls-plus</td>\n",
" <td>Arizona</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/22/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>428.0</td>\n",
" <td>lv</td>\n",
" <td>1.228500e-03</td>\n",
" <td>41.65</td>\n",
" <td>...</td>\n",
" <td>41.36205</td>\n",
" <td>48.14312</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46057</td>\n",
" <td>72049</td>\n",
" <td>9/26/16</td>\n",
" <td>09:35:33 8 Nov 2016</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",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3981</th>\n",
" <td>polls-plus</td>\n",
" <td>U.S.</td>\n",
" <td>1/10/2016</td>\n",
" <td>1/10/2016</td>\n",
" <td>Gravis Marketing</td>\n",
" <td>B-</td>\n",
" <td>2416.0</td>\n",
" <td>rv</td>\n",
" <td>9.470000e-09</td>\n",
" <td>49.00</td>\n",
" <td>...</td>\n",
" <td>47.18561</td>\n",
" <td>50.33852</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.oann.com/pollresults/</td>\n",
" <td>35856</td>\n",
" <td>48165</td>\n",
" <td>1/12/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4013</th>\n",
" <td>polls-plus</td>\n",
" <td>U.S.</td>\n",
" <td>1/10/2016</td>\n",
" <td>1/14/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>1339.0</td>\n",
" <td>lv</td>\n",
" <td>2.720000e-09</td>\n",
" <td>43.50</td>\n",
" <td>...</td>\n",
" <td>41.77744</td>\n",
" <td>36.23294</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://polling.reuters.com/#poll/TM651Y15_13/f...</td>\n",
" <td>35871</td>\n",
" <td>65430</td>\n",
" <td>5/5/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12439</th>\n",
" <td>polls-only</td>\n",
" <td>U.S.</td>\n",
" <td>1/1/2016</td>\n",
" <td>1/5/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>1465.0</td>\n",
" <td>lv</td>\n",
" <td>1.890000e-09</td>\n",
" <td>41.80</td>\n",
" <td>...</td>\n",
" <td>40.13148</td>\n",
" <td>35.99752</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://polling.reuters.com/#poll/TM651Y15_13/f...</td>\n",
" <td>35484</td>\n",
" <td>65439</td>\n",
" <td>5/5/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8231</th>\n",
" <td>now-cast</td>\n",
" <td>U.S.</td>\n",
" <td>1/1/2016</td>\n",
" <td>1/5/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>1465.0</td>\n",
" <td>lv</td>\n",
" <td>1.890000e-09</td>\n",
" <td>41.80</td>\n",
" <td>...</td>\n",
" <td>40.16681</td>\n",
" <td>36.06849</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://polling.reuters.com/#poll/TM651Y15_13/f...</td>\n",
" <td>35484</td>\n",
" <td>65439</td>\n",
" <td>5/5/16</td>\n",
" <td>09:24:53 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4023</th>\n",
" <td>polls-plus</td>\n",
" <td>U.S.</td>\n",
" <td>1/1/2016</td>\n",
" <td>1/5/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>1465.0</td>\n",
" <td>lv</td>\n",
" <td>1.890000e-09</td>\n",
" <td>41.80</td>\n",
" <td>...</td>\n",
" <td>40.11739</td>\n",
" <td>36.00981</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://polling.reuters.com/#poll/TM651Y15_13/f...</td>\n",
" <td>35484</td>\n",
" <td>65439</td>\n",
" <td>5/5/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>12624 rows × 23 columns</p>\n",
"</div>"
],
"text/plain": [
" type state startdate enddate pollster grade \\\n",
"10862 polls-only Kentucky 9/9/2016 9/22/2016 Ipsos A- \n",
"6718 now-cast Indiana 9/9/2016 9/22/2016 Ipsos A- \n",
"11203 polls-only Texas 9/9/2016 9/15/2016 Ipsos A- \n",
"2105 polls-plus Montana 9/9/2016 9/29/2016 Ipsos A- \n",
"2801 polls-plus Arizona 9/9/2016 9/22/2016 Ipsos A- \n",
"... ... ... ... ... ... ... \n",
"3981 polls-plus U.S. 1/10/2016 1/10/2016 Gravis Marketing B- \n",
"4013 polls-plus U.S. 1/10/2016 1/14/2016 Ipsos A- \n",
"12439 polls-only U.S. 1/1/2016 1/5/2016 Ipsos A- \n",
"8231 now-cast U.S. 1/1/2016 1/5/2016 Ipsos A- \n",
"4023 polls-plus U.S. 1/1/2016 1/5/2016 Ipsos A- \n",
"\n",
" samplesize population poll_wt rawpoll_clinton ... Clinton \\\n",
"10862 322.0 lv 3.554900e-03 37.31 ... 37.39425 \n",
"6718 367.0 lv 2.889400e-03 34.92 ... 33.73702 \n",
"11203 462.0 lv 1.283900e-03 28.51 ... 28.37295 \n",
"2105 144.0 lv 8.000500e-03 39.76 ... 38.08105 \n",
"2801 428.0 lv 1.228500e-03 41.65 ... 41.36205 \n",
"... ... ... ... ... ... ... \n",
"3981 2416.0 rv 9.470000e-09 49.00 ... 47.18561 \n",
"4013 1339.0 lv 2.720000e-09 43.50 ... 41.77744 \n",
"12439 1465.0 lv 1.890000e-09 41.80 ... 40.13148 \n",
"8231 1465.0 lv 1.890000e-09 41.80 ... 40.16681 \n",
"4023 1465.0 lv 1.890000e-09 41.80 ... 40.11739 \n",
"\n",
" Trump adjpoll_johnson adjpoll_mcmullin multiversions \\\n",
"10862 54.17959 NaN NaN NaN \n",
"6718 52.89504 NaN NaN NaN \n",
"11203 51.58496 NaN NaN NaN \n",
"2105 52.35901 NaN NaN NaN \n",
"2801 48.14312 NaN NaN NaN \n",
"... ... ... ... ... \n",
"3981 50.33852 NaN NaN NaN \n",
"4013 36.23294 NaN NaN NaN \n",
"12439 35.99752 NaN NaN NaN \n",
"8231 36.06849 NaN NaN NaN \n",
"4023 36.00981 NaN NaN NaN \n",
"\n",
" url poll_id question_id \\\n",
"10862 http://www.reuters.com/statesofthenation/ 46070 72062 \n",
"6718 http://www.reuters.com/statesofthenation/ 46067 72059 \n",
"11203 http://www.reuters.com/statesofthenation/ 45869 71633 \n",
"2105 http://www.reuters.com/statesofthenation/ 46360 72488 \n",
"2801 http://www.reuters.com/statesofthenation/ 46057 72049 \n",
"... ... ... ... \n",
"3981 http://www.oann.com/pollresults/ 35856 48165 \n",
"4013 http://polling.reuters.com/#poll/TM651Y15_13/f... 35871 65430 \n",
"12439 http://polling.reuters.com/#poll/TM651Y15_13/f... 35484 65439 \n",
"8231 http://polling.reuters.com/#poll/TM651Y15_13/f... 35484 65439 \n",
"4023 http://polling.reuters.com/#poll/TM651Y15_13/f... 35484 65439 \n",
"\n",
" createddate timestamp \n",
"10862 9/26/16 09:14:14 8 Nov 2016 \n",
"6718 9/26/16 09:24:53 8 Nov 2016 \n",
"11203 9/16/16 09:14:14 8 Nov 2016 \n",
"2105 10/3/16 09:35:33 8 Nov 2016 \n",
"2801 9/26/16 09:35:33 8 Nov 2016 \n",
"... ... ... \n",
"3981 1/12/16 09:35:33 8 Nov 2016 \n",
"4013 5/5/16 09:35:33 8 Nov 2016 \n",
"12439 5/5/16 09:14:14 8 Nov 2016 \n",
"8231 5/5/16 09:24:53 8 Nov 2016 \n",
"4023 5/5/16 09:35:33 8 Nov 2016 \n",
"\n",
"[12624 rows x 23 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"polls.rename(columns={'adjpoll_clinton':'Clinton',\n",
" 'adjpoll_trump':'Trump'})"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VRfioNa8q3wR"
},
"source": [
"### Two slices"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "g8t3KfEEq3wR",
"outputId": "23243e1f-3444-4d62-e6c1-3b772f5aa35e"
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>state</th>\n",
" <th>startdate</th>\n",
" <th>enddate</th>\n",
" <th>pollster</th>\n",
" <th>grade</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>U.S.</td>\n",
" <td>11/3/2016</td>\n",
" <td>11/6/2016</td>\n",
" <td>ABC News/Washington Post</td>\n",
" <td>A+</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8448</th>\n",
" <td>Michigan</td>\n",
" <td>11/3/2016</td>\n",
" <td>11/4/2016</td>\n",
" <td>Public Policy Polling</td>\n",
" <td>B+</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8420</th>\n",
" <td>U.S.</td>\n",
" <td>11/3/2016</td>\n",
" <td>11/6/2016</td>\n",
" <td>Gravis Marketing</td>\n",
" <td>B-</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8623</th>\n",
" <td>Michigan</td>\n",
" <td>11/3/2016</td>\n",
" <td>11/3/2016</td>\n",
" <td>Strategic National</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8479</th>\n",
" <td>Pennsylvania</td>\n",
" <td>11/3/2016</td>\n",
" <td>11/6/2016</td>\n",
" <td>Gravis Marketing</td>\n",
" <td>B-</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10134</th>\n",
" <td>Utah</td>\n",
" <td>10/27/2016</td>\n",
" <td>11/2/2016</td>\n",
" <td>SurveyMonkey</td>\n",
" <td>C-</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4308</th>\n",
" <td>Florida</td>\n",
" <td>10/27/2016</td>\n",
" <td>11/1/2016</td>\n",
" <td>CNN/Opinion Research Corp.</td>\n",
" <td>A-</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6043</th>\n",
" <td>Missouri</td>\n",
" <td>10/27/2016</td>\n",
" <td>11/2/2016</td>\n",
" <td>SurveyMonkey</td>\n",
" <td>C-</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6118</th>\n",
" <td>Kentucky</td>\n",
" <td>10/27/2016</td>\n",
" <td>11/2/2016</td>\n",
" <td>SurveyMonkey</td>\n",
" <td>C-</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6129</th>\n",
" <td>New York</td>\n",
" <td>10/27/2016</td>\n",
" <td>11/2/2016</td>\n",
" <td>SurveyMonkey</td>\n",
" <td>C-</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>234 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" state startdate enddate pollster grade\n",
"0 U.S. 11/3/2016 11/6/2016 ABC News/Washington Post A+\n",
"8448 Michigan 11/3/2016 11/4/2016 Public Policy Polling B+\n",
"8420 U.S. 11/3/2016 11/6/2016 Gravis Marketing B-\n",
"8623 Michigan 11/3/2016 11/3/2016 Strategic National NaN\n",
"8479 Pennsylvania 11/3/2016 11/6/2016 Gravis Marketing B-\n",
"... ... ... ... ... ...\n",
"10134 Utah 10/27/2016 11/2/2016 SurveyMonkey C-\n",
"4308 Florida 10/27/2016 11/1/2016 CNN/Opinion Research Corp. A-\n",
"6043 Missouri 10/27/2016 11/2/2016 SurveyMonkey C-\n",
"6118 Kentucky 10/27/2016 11/2/2016 SurveyMonkey C-\n",
"6129 New York 10/27/2016 11/2/2016 SurveyMonkey C-\n",
"\n",
"[234 rows x 5 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"polls.loc[0:100:10,'state':'grade']"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "mIybvQK-q3wR"
},
"source": [
"## How to code a list comprehension"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "U6rpyL45q3wS",
"outputId": "3a914d33-4a53-411e-ed55-eaadae12e5e5"
},
"outputs": [
{
"data": {
"text/plain": [
"[1900, 1902, 1904, 1906, 1908, 1910, 1912, 1914, 1916, 1918]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xticks = [x for x in range(1900,1920,2)]\n",
"xticks"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "qoqUHuVwq3wS"
},
"source": [
"## How to continue statements"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "HdJ-3ZJhq3wS"
},
"source": [
"### With implicit continuation"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "AaPrpe9Bq3wS",
"outputId": "7713f465-dbb4-49cd-ed6e-038a512db3ed"
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>type</th>\n",
" <th>state</th>\n",
" <th>startdate</th>\n",
" <th>enddate</th>\n",
" <th>pollster</th>\n",
" <th>grade</th>\n",
" <th>samplesize</th>\n",
" <th>population</th>\n",
" <th>poll_wt</th>\n",
" <th>rawpoll_clinton</th>\n",
" <th>...</th>\n",
" <th>adjpoll_clinton</th>\n",
" <th>adjpoll_trump</th>\n",
" <th>adjpoll_johnson</th>\n",
" <th>adjpoll_mcmullin</th>\n",
" <th>multiversions</th>\n",
" <th>url</th>\n",
" <th>poll_id</th>\n",
" <th>question_id</th>\n",
" <th>createddate</th>\n",
" <th>timestamp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2551</th>\n",
" <td>polls-plus</td>\n",
" <td>Wyoming</td>\n",
" <td>9/7/2016</td>\n",
" <td>9/13/2016</td>\n",
" <td>Google Consumer Surveys</td>\n",
" <td>B</td>\n",
" <td>63.0</td>\n",
" <td>lv</td>\n",
" <td>0.002562</td>\n",
" <td>16.57</td>\n",
" <td>...</td>\n",
" <td>24.41425</td>\n",
" <td>67.16723</td>\n",
" <td>10.678870</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://drive.google.com/drive/u/0/folders/0B2...</td>\n",
" <td>45792</td>\n",
" <td>71476</td>\n",
" <td>9/14/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10967</th>\n",
" <td>polls-only</td>\n",
" <td>Wyoming</td>\n",
" <td>9/7/2016</td>\n",
" <td>9/13/2016</td>\n",
" <td>Google Consumer Surveys</td>\n",
" <td>B</td>\n",
" <td>63.0</td>\n",
" <td>lv</td>\n",
" <td>0.002562</td>\n",
" <td>16.57</td>\n",
" <td>...</td>\n",
" <td>24.43031</td>\n",
" <td>67.15052</td>\n",
" <td>10.670120</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://drive.google.com/drive/u/0/folders/0B2...</td>\n",
" <td>45792</td>\n",
" <td>71476</td>\n",
" <td>9/14/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6763</th>\n",
" <td>now-cast</td>\n",
" <td>Wyoming</td>\n",
" <td>9/7/2016</td>\n",
" <td>9/13/2016</td>\n",
" <td>Google Consumer Surveys</td>\n",
" <td>B</td>\n",
" <td>63.0</td>\n",
" <td>lv</td>\n",
" <td>0.002562</td>\n",
" <td>16.57</td>\n",
" <td>...</td>\n",
" <td>24.39564</td>\n",
" <td>67.21143</td>\n",
" <td>10.681150</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://drive.google.com/drive/u/0/folders/0B2...</td>\n",
" <td>45792</td>\n",
" <td>71476</td>\n",
" <td>9/14/16</td>\n",
" <td>09:24:53 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>898</th>\n",
" <td>polls-plus</td>\n",
" <td>Wyoming</td>\n",
" <td>9/6/2016</td>\n",
" <td>9/11/2016</td>\n",
" <td>DFM Research</td>\n",
" <td>B-</td>\n",
" <td>402.0</td>\n",
" <td>lv</td>\n",
" <td>0.162356</td>\n",
" <td>19.00</td>\n",
" <td>...</td>\n",
" <td>21.23883</td>\n",
" <td>58.54750</td>\n",
" <td>6.891332</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://www.scribd.com/document/324811878/WY-A...</td>\n",
" <td>45919</td>\n",
" <td>71766</td>\n",
" <td>9/21/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5106</th>\n",
" <td>now-cast</td>\n",
" <td>Wyoming</td>\n",
" <td>9/6/2016</td>\n",
" <td>9/11/2016</td>\n",
" <td>DFM Research</td>\n",
" <td>B-</td>\n",
" <td>402.0</td>\n",
" <td>lv</td>\n",
" <td>0.162356</td>\n",
" <td>19.00</td>\n",
" <td>...</td>\n",
" <td>21.14712</td>\n",
" <td>58.52647</td>\n",
" <td>6.927159</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://www.scribd.com/document/324811878/WY-A...</td>\n",
" <td>45919</td>\n",
" <td>71766</td>\n",
" <td>9/21/16</td>\n",
" <td>09:24:53 8 Nov 2016</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 23 columns</p>\n",
"</div>"
],
"text/plain": [
" type state startdate enddate pollster \\\n",
"2551 polls-plus Wyoming 9/7/2016 9/13/2016 Google Consumer Surveys \n",
"10967 polls-only Wyoming 9/7/2016 9/13/2016 Google Consumer Surveys \n",
"6763 now-cast Wyoming 9/7/2016 9/13/2016 Google Consumer Surveys \n",
"898 polls-plus Wyoming 9/6/2016 9/11/2016 DFM Research \n",
"5106 now-cast Wyoming 9/6/2016 9/11/2016 DFM Research \n",
"\n",
" grade samplesize population poll_wt rawpoll_clinton ... \\\n",
"2551 B 63.0 lv 0.002562 16.57 ... \n",
"10967 B 63.0 lv 0.002562 16.57 ... \n",
"6763 B 63.0 lv 0.002562 16.57 ... \n",
"898 B- 402.0 lv 0.162356 19.00 ... \n",
"5106 B- 402.0 lv 0.162356 19.00 ... \n",
"\n",
" adjpoll_clinton adjpoll_trump adjpoll_johnson adjpoll_mcmullin \\\n",
"2551 24.41425 67.16723 10.678870 NaN \n",
"10967 24.43031 67.15052 10.670120 NaN \n",
"6763 24.39564 67.21143 10.681150 NaN \n",
"898 21.23883 58.54750 6.891332 NaN \n",
"5106 21.14712 58.52647 6.927159 NaN \n",
"\n",
" multiversions url \\\n",
"2551 NaN https://drive.google.com/drive/u/0/folders/0B2... \n",
"10967 NaN https://drive.google.com/drive/u/0/folders/0B2... \n",
"6763 NaN https://drive.google.com/drive/u/0/folders/0B2... \n",
"898 NaN https://www.scribd.com/document/324811878/WY-A... \n",
"5106 NaN https://www.scribd.com/document/324811878/WY-A... \n",
"\n",
" poll_id question_id createddate timestamp \n",
"2551 45792 71476 9/14/16 09:35:33 8 Nov 2016 \n",
"10967 45792 71476 9/14/16 09:14:14 8 Nov 2016 \n",
"6763 45792 71476 9/14/16 09:24:53 8 Nov 2016 \n",
"898 45919 71766 9/21/16 09:35:33 8 Nov 2016 \n",
"5106 45919 71766 9/21/16 09:24:53 8 Nov 2016 \n",
"\n",
"[5 rows x 23 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"polls.sort_values(['state','startdate'],\n",
" ascending=False,\n",
" inplace=True)\n",
"polls.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "DkzSVbXZq3wT"
},
"source": [
"### With explicit continuation"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "fEYDJ55aq3wT",
"outputId": "e7b5ff44-effa-45f1-e19c-c601bf2bfb39"
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>type</th>\n",
" <th>state</th>\n",
" <th>startdate</th>\n",
" <th>enddate</th>\n",
" <th>pollster</th>\n",
" <th>grade</th>\n",
" <th>samplesize</th>\n",
" <th>population</th>\n",
" <th>poll_wt</th>\n",
" <th>rawpoll_clinton</th>\n",
" <th>...</th>\n",
" <th>adjpoll_clinton</th>\n",
" <th>adjpoll_trump</th>\n",
" <th>adjpoll_johnson</th>\n",
" <th>adjpoll_mcmullin</th>\n",
" <th>multiversions</th>\n",
" <th>url</th>\n",
" <th>poll_id</th>\n",
" <th>question_id</th>\n",
" <th>createddate</th>\n",
" <th>timestamp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2551</th>\n",
" <td>polls-plus</td>\n",
" <td>Wyoming</td>\n",
" <td>9/7/2016</td>\n",
" <td>9/13/2016</td>\n",
" <td>Google Consumer Surveys</td>\n",
" <td>B</td>\n",
" <td>63.0</td>\n",
" <td>lv</td>\n",
" <td>0.002562</td>\n",
" <td>16.57</td>\n",
" <td>...</td>\n",
" <td>24.41425</td>\n",
" <td>67.16723</td>\n",
" <td>10.678870</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://drive.google.com/drive/u/0/folders/0B2...</td>\n",
" <td>45792</td>\n",
" <td>71476</td>\n",
" <td>9/14/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10967</th>\n",
" <td>polls-only</td>\n",
" <td>Wyoming</td>\n",
" <td>9/7/2016</td>\n",
" <td>9/13/2016</td>\n",
" <td>Google Consumer Surveys</td>\n",
" <td>B</td>\n",
" <td>63.0</td>\n",
" <td>lv</td>\n",
" <td>0.002562</td>\n",
" <td>16.57</td>\n",
" <td>...</td>\n",
" <td>24.43031</td>\n",
" <td>67.15052</td>\n",
" <td>10.670120</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://drive.google.com/drive/u/0/folders/0B2...</td>\n",
" <td>45792</td>\n",
" <td>71476</td>\n",
" <td>9/14/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6763</th>\n",
" <td>now-cast</td>\n",
" <td>Wyoming</td>\n",
" <td>9/7/2016</td>\n",
" <td>9/13/2016</td>\n",
" <td>Google Consumer Surveys</td>\n",
" <td>B</td>\n",
" <td>63.0</td>\n",
" <td>lv</td>\n",
" <td>0.002562</td>\n",
" <td>16.57</td>\n",
" <td>...</td>\n",
" <td>24.39564</td>\n",
" <td>67.21143</td>\n",
" <td>10.681150</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://drive.google.com/drive/u/0/folders/0B2...</td>\n",
" <td>45792</td>\n",
" <td>71476</td>\n",
" <td>9/14/16</td>\n",
" <td>09:24:53 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>898</th>\n",
" <td>polls-plus</td>\n",
" <td>Wyoming</td>\n",
" <td>9/6/2016</td>\n",
" <td>9/11/2016</td>\n",
" <td>DFM Research</td>\n",
" <td>B-</td>\n",
" <td>402.0</td>\n",
" <td>lv</td>\n",
" <td>0.162356</td>\n",
" <td>19.00</td>\n",
" <td>...</td>\n",
" <td>21.23883</td>\n",
" <td>58.54750</td>\n",
" <td>6.891332</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://www.scribd.com/document/324811878/WY-A...</td>\n",
" <td>45919</td>\n",
" <td>71766</td>\n",
" <td>9/21/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5106</th>\n",
" <td>now-cast</td>\n",
" <td>Wyoming</td>\n",
" <td>9/6/2016</td>\n",
" <td>9/11/2016</td>\n",
" <td>DFM Research</td>\n",
" <td>B-</td>\n",
" <td>402.0</td>\n",
" <td>lv</td>\n",
" <td>0.162356</td>\n",
" <td>19.00</td>\n",
" <td>...</td>\n",
" <td>21.14712</td>\n",
" <td>58.52647</td>\n",
" <td>6.927159</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://www.scribd.com/document/324811878/WY-A...</td>\n",
" <td>45919</td>\n",
" <td>71766</td>\n",
" <td>9/21/16</td>\n",
" <td>09:24:53 8 Nov 2016</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 23 columns</p>\n",
"</div>"
],
"text/plain": [
" type state startdate enddate pollster \\\n",
"2551 polls-plus Wyoming 9/7/2016 9/13/2016 Google Consumer Surveys \n",
"10967 polls-only Wyoming 9/7/2016 9/13/2016 Google Consumer Surveys \n",
"6763 now-cast Wyoming 9/7/2016 9/13/2016 Google Consumer Surveys \n",
"898 polls-plus Wyoming 9/6/2016 9/11/2016 DFM Research \n",
"5106 now-cast Wyoming 9/6/2016 9/11/2016 DFM Research \n",
"\n",
" grade samplesize population poll_wt rawpoll_clinton ... \\\n",
"2551 B 63.0 lv 0.002562 16.57 ... \n",
"10967 B 63.0 lv 0.002562 16.57 ... \n",
"6763 B 63.0 lv 0.002562 16.57 ... \n",
"898 B- 402.0 lv 0.162356 19.00 ... \n",
"5106 B- 402.0 lv 0.162356 19.00 ... \n",
"\n",
" adjpoll_clinton adjpoll_trump adjpoll_johnson adjpoll_mcmullin \\\n",
"2551 24.41425 67.16723 10.678870 NaN \n",
"10967 24.43031 67.15052 10.670120 NaN \n",
"6763 24.39564 67.21143 10.681150 NaN \n",
"898 21.23883 58.54750 6.891332 NaN \n",
"5106 21.14712 58.52647 6.927159 NaN \n",
"\n",
" multiversions url \\\n",
"2551 NaN https://drive.google.com/drive/u/0/folders/0B2... \n",
"10967 NaN https://drive.google.com/drive/u/0/folders/0B2... \n",
"6763 NaN https://drive.google.com/drive/u/0/folders/0B2... \n",
"898 NaN https://www.scribd.com/document/324811878/WY-A... \n",
"5106 NaN https://www.scribd.com/document/324811878/WY-A... \n",
"\n",
" poll_id question_id createddate timestamp \n",
"2551 45792 71476 9/14/16 09:35:33 8 Nov 2016 \n",
"10967 45792 71476 9/14/16 09:14:14 8 Nov 2016 \n",
"6763 45792 71476 9/14/16 09:24:53 8 Nov 2016 \n",
"898 45919 71766 9/21/16 09:35:33 8 Nov 2016 \n",
"5106 45919 71766 9/21/16 09:24:53 8 Nov 2016 \n",
"\n",
"[5 rows x 23 columns]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"polls.sort_values(['state','startdate'], \\\n",
" ascending=False, \\\n",
" inplace=True)\n",
"polls.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "-Desx3JUq3wU"
},
"source": [
"## How to use the Magic Commands"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "pNCu6h1Tq3wU",
"outputId": "a98a563a-2ae9-4390-8e8c-d024e50f5cae"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: total: 141 ms\n",
"Wall time: 42.6 s\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cycle</th>\n",
" <th>branch</th>\n",
" <th>type</th>\n",
" <th>matchup</th>\n",
" <th>forecastdate</th>\n",
" <th>state</th>\n",
" <th>startdate</th>\n",
" <th>enddate</th>\n",
" <th>pollster</th>\n",
" <th>grade</th>\n",
" <th>...</th>\n",
" <th>adjpoll_clinton</th>\n",
" <th>adjpoll_trump</th>\n",
" <th>adjpoll_johnson</th>\n",
" <th>adjpoll_mcmullin</th>\n",
" <th>multiversions</th>\n",
" <th>url</th>\n",
" <th>poll_id</th>\n",
" <th>question_id</th>\n",
" <th>createddate</th>\n",
" <th>timestamp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>11/3/2016</td>\n",
" <td>11/6/2016</td>\n",
" <td>ABC News/Washington Post</td>\n",
" <td>A+</td>\n",
" <td>...</td>\n",
" <td>45.20163</td>\n",
" <td>41.72430</td>\n",
" <td>4.626221</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://www.washingtonpost.com/news/the-fix/wp...</td>\n",
" <td>48630</td>\n",
" <td>76192</td>\n",
" <td>11/7/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>11/1/2016</td>\n",
" <td>11/7/2016</td>\n",
" <td>Google Consumer Surveys</td>\n",
" <td>B</td>\n",
" <td>...</td>\n",
" <td>43.34557</td>\n",
" <td>41.21439</td>\n",
" <td>5.175792</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://datastudio.google.com/u/0/#/org//repor...</td>\n",
" <td>48847</td>\n",
" <td>76443</td>\n",
" <td>11/7/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>11/2/2016</td>\n",
" <td>11/6/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>42.02638</td>\n",
" <td>38.81620</td>\n",
" <td>6.844734</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://projects.fivethirtyeight.com/polls/2016...</td>\n",
" <td>48922</td>\n",
" <td>76636</td>\n",
" <td>11/8/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>11/4/2016</td>\n",
" <td>11/7/2016</td>\n",
" <td>YouGov</td>\n",
" <td>B</td>\n",
" <td>...</td>\n",
" <td>45.65676</td>\n",
" <td>40.92004</td>\n",
" <td>6.069454</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://d25d2506sfb94s.cloudfront.net/cumulus_...</td>\n",
" <td>48687</td>\n",
" <td>76262</td>\n",
" <td>11/7/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>11/3/2016</td>\n",
" <td>11/6/2016</td>\n",
" <td>Gravis Marketing</td>\n",
" <td>B-</td>\n",
" <td>...</td>\n",
" <td>46.84089</td>\n",
" <td>42.33184</td>\n",
" <td>3.726098</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.gravispolls.com/2016/11/final-natio...</td>\n",
" <td>48848</td>\n",
" <td>76444</td>\n",
" <td>11/7/16</td>\n",
" <td>09:35:33 8 Nov 2016</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",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12619</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>New Hampshire</td>\n",
" <td>7/9/2016</td>\n",
" <td>7/18/2016</td>\n",
" <td>University of New Hampshire</td>\n",
" <td>B+</td>\n",
" <td>...</td>\n",
" <td>40.24983</td>\n",
" <td>43.04717</td>\n",
" <td>6.924110</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://cola.unh.edu/sites/cola.unh.edu/files/...</td>\n",
" <td>44650</td>\n",
" <td>68189</td>\n",
" <td>7/21/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12620</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Wisconsin</td>\n",
" <td>10/21/2016</td>\n",
" <td>11/2/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>46.54218</td>\n",
" <td>38.96884</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>48259</td>\n",
" <td>75560</td>\n",
" <td>11/3/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12621</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>New York</td>\n",
" <td>8/7/2016</td>\n",
" <td>8/10/2016</td>\n",
" <td>Siena College</td>\n",
" <td>A</td>\n",
" <td>...</td>\n",
" <td>53.83622</td>\n",
" <td>32.47939</td>\n",
" <td>3.881193</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://www.siena.edu/assets/files/news/SNY081...</td>\n",
" <td>44852</td>\n",
" <td>68743</td>\n",
" <td>8/15/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12622</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Virginia</td>\n",
" <td>9/30/2016</td>\n",
" <td>10/6/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>49.57558</td>\n",
" <td>39.96954</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46675</td>\n",
" <td>72969</td>\n",
" <td>10/10/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12623</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Wisconsin</td>\n",
" <td>6/9/2016</td>\n",
" <td>6/12/2016</td>\n",
" <td>Marquette University</td>\n",
" <td>A</td>\n",
" <td>...</td>\n",
" <td>46.40999</td>\n",
" <td>39.19839</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>https://law.marquette.edu/poll/2016/06/15/new-...</td>\n",
" <td>44341</td>\n",
" <td>66966</td>\n",
" <td>6/15/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>12624 rows × 27 columns</p>\n",
"</div>"
],
"text/plain": [
" cycle branch type matchup \\\n",
"0 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"1 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"2 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"3 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"4 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"... ... ... ... ... \n",
"12619 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"12620 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"12621 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"12622 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"12623 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"\n",
" forecastdate state startdate enddate \\\n",
"0 11/8/16 U.S. 11/3/2016 11/6/2016 \n",
"1 11/8/16 U.S. 11/1/2016 11/7/2016 \n",
"2 11/8/16 U.S. 11/2/2016 11/6/2016 \n",
"3 11/8/16 U.S. 11/4/2016 11/7/2016 \n",
"4 11/8/16 U.S. 11/3/2016 11/6/2016 \n",
"... ... ... ... ... \n",
"12619 11/8/16 New Hampshire 7/9/2016 7/18/2016 \n",
"12620 11/8/16 Wisconsin 10/21/2016 11/2/2016 \n",
"12621 11/8/16 New York 8/7/2016 8/10/2016 \n",
"12622 11/8/16 Virginia 9/30/2016 10/6/2016 \n",
"12623 11/8/16 Wisconsin 6/9/2016 6/12/2016 \n",
"\n",
" pollster grade ... adjpoll_clinton adjpoll_trump \\\n",
"0 ABC News/Washington Post A+ ... 45.20163 41.72430 \n",
"1 Google Consumer Surveys B ... 43.34557 41.21439 \n",
"2 Ipsos A- ... 42.02638 38.81620 \n",
"3 YouGov B ... 45.65676 40.92004 \n",
"4 Gravis Marketing B- ... 46.84089 42.33184 \n",
"... ... ... ... ... ... \n",
"12619 University of New Hampshire B+ ... 40.24983 43.04717 \n",
"12620 Ipsos A- ... 46.54218 38.96884 \n",
"12621 Siena College A ... 53.83622 32.47939 \n",
"12622 Ipsos A- ... 49.57558 39.96954 \n",
"12623 Marquette University A ... 46.40999 39.19839 \n",
"\n",
" adjpoll_johnson adjpoll_mcmullin multiversions \\\n",
"0 4.626221 NaN NaN \n",
"1 5.175792 NaN NaN \n",
"2 6.844734 NaN NaN \n",
"3 6.069454 NaN NaN \n",
"4 3.726098 NaN NaN \n",
"... ... ... ... \n",
"12619 6.924110 NaN NaN \n",
"12620 NaN NaN NaN \n",
"12621 3.881193 NaN NaN \n",
"12622 NaN NaN NaN \n",
"12623 NaN NaN NaN \n",
"\n",
" url poll_id \\\n",
"0 https://www.washingtonpost.com/news/the-fix/wp... 48630 \n",
"1 https://datastudio.google.com/u/0/#/org//repor... 48847 \n",
"2 http://projects.fivethirtyeight.com/polls/2016... 48922 \n",
"3 https://d25d2506sfb94s.cloudfront.net/cumulus_... 48687 \n",
"4 http://www.gravispolls.com/2016/11/final-natio... 48848 \n",
"... ... ... \n",
"12619 https://cola.unh.edu/sites/cola.unh.edu/files/... 44650 \n",
"12620 http://www.reuters.com/statesofthenation/ 48259 \n",
"12621 https://www.siena.edu/assets/files/news/SNY081... 44852 \n",
"12622 http://www.reuters.com/statesofthenation/ 46675 \n",
"12623 https://law.marquette.edu/poll/2016/06/15/new-... 44341 \n",
"\n",
" question_id createddate timestamp \n",
"0 76192 11/7/16 09:35:33 8 Nov 2016 \n",
"1 76443 11/7/16 09:35:33 8 Nov 2016 \n",
"2 76636 11/8/16 09:35:33 8 Nov 2016 \n",
"3 76262 11/7/16 09:35:33 8 Nov 2016 \n",
"4 76444 11/7/16 09:35:33 8 Nov 2016 \n",
"... ... ... ... \n",
"12619 68189 7/21/16 09:14:14 8 Nov 2016 \n",
"12620 75560 11/3/16 09:14:14 8 Nov 2016 \n",
"12621 68743 8/15/16 09:14:14 8 Nov 2016 \n",
"12622 72969 10/10/16 09:14:14 8 Nov 2016 \n",
"12623 66966 6/15/16 09:14:14 8 Nov 2016 \n",
"\n",
"[12624 rows x 27 columns]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%time polls = pd.read_csv(poll_url)\n",
"polls"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "cpEGedPCq3wW",
"outputId": "0eb921e9-8d8c-480c-d636-61801ae91698"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: total: 31.2 ms\n",
"Wall time: 15.6 ms\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cycle</th>\n",
" <th>branch</th>\n",
" <th>type</th>\n",
" <th>matchup</th>\n",
" <th>forecastdate</th>\n",
" <th>state</th>\n",
" <th>startdate</th>\n",
" <th>enddate</th>\n",
" <th>pollster</th>\n",
" <th>grade</th>\n",
" <th>...</th>\n",
" <th>adjpoll_clinton</th>\n",
" <th>adjpoll_trump</th>\n",
" <th>adjpoll_johnson</th>\n",
" <th>adjpoll_mcmullin</th>\n",
" <th>multiversions</th>\n",
" <th>url</th>\n",
" <th>poll_id</th>\n",
" <th>question_id</th>\n",
" <th>createddate</th>\n",
" <th>timestamp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>10862</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Kentucky</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/22/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>37.39425</td>\n",
" <td>54.17959</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46070</td>\n",
" <td>72062</td>\n",
" <td>9/26/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6718</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>now-cast</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Indiana</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/22/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>33.73702</td>\n",
" <td>52.89504</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46067</td>\n",
" <td>72059</td>\n",
" <td>9/26/16</td>\n",
" <td>09:24:53 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11203</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Texas</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/15/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>28.37295</td>\n",
" <td>51.58496</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>45869</td>\n",
" <td>71633</td>\n",
" <td>9/16/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2105</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Montana</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/29/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>38.08105</td>\n",
" <td>52.35901</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46360</td>\n",
" <td>72488</td>\n",
" <td>10/3/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2801</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>Arizona</td>\n",
" <td>9/9/2016</td>\n",
" <td>9/22/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>41.36205</td>\n",
" <td>48.14312</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.reuters.com/statesofthenation/</td>\n",
" <td>46057</td>\n",
" <td>72049</td>\n",
" <td>9/26/16</td>\n",
" <td>09:35:33 8 Nov 2016</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",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3981</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>1/10/2016</td>\n",
" <td>1/10/2016</td>\n",
" <td>Gravis Marketing</td>\n",
" <td>B-</td>\n",
" <td>...</td>\n",
" <td>47.18561</td>\n",
" <td>50.33852</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://www.oann.com/pollresults/</td>\n",
" <td>35856</td>\n",
" <td>48165</td>\n",
" <td>1/12/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4013</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>1/10/2016</td>\n",
" <td>1/14/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>41.77744</td>\n",
" <td>36.23294</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://polling.reuters.com/#poll/TM651Y15_13/f...</td>\n",
" <td>35871</td>\n",
" <td>65430</td>\n",
" <td>5/5/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12439</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-only</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>1/1/2016</td>\n",
" <td>1/5/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>40.13148</td>\n",
" <td>35.99752</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://polling.reuters.com/#poll/TM651Y15_13/f...</td>\n",
" <td>35484</td>\n",
" <td>65439</td>\n",
" <td>5/5/16</td>\n",
" <td>09:14:14 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8231</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>now-cast</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>1/1/2016</td>\n",
" <td>1/5/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>40.16681</td>\n",
" <td>36.06849</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://polling.reuters.com/#poll/TM651Y15_13/f...</td>\n",
" <td>35484</td>\n",
" <td>65439</td>\n",
" <td>5/5/16</td>\n",
" <td>09:24:53 8 Nov 2016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4023</th>\n",
" <td>2016</td>\n",
" <td>President</td>\n",
" <td>polls-plus</td>\n",
" <td>Clinton vs. Trump vs. Johnson</td>\n",
" <td>11/8/16</td>\n",
" <td>U.S.</td>\n",
" <td>1/1/2016</td>\n",
" <td>1/5/2016</td>\n",
" <td>Ipsos</td>\n",
" <td>A-</td>\n",
" <td>...</td>\n",
" <td>40.11739</td>\n",
" <td>36.00981</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>http://polling.reuters.com/#poll/TM651Y15_13/f...</td>\n",
" <td>35484</td>\n",
" <td>65439</td>\n",
" <td>5/5/16</td>\n",
" <td>09:35:33 8 Nov 2016</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>12624 rows × 27 columns</p>\n",
"</div>"
],
"text/plain": [
" cycle branch type matchup \\\n",
"10862 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"6718 2016 President now-cast Clinton vs. Trump vs. Johnson \n",
"11203 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"2105 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"2801 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"... ... ... ... ... \n",
"3981 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"4013 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"12439 2016 President polls-only Clinton vs. Trump vs. Johnson \n",
"8231 2016 President now-cast Clinton vs. Trump vs. Johnson \n",
"4023 2016 President polls-plus Clinton vs. Trump vs. Johnson \n",
"\n",
" forecastdate state startdate enddate pollster grade \\\n",
"10862 11/8/16 Kentucky 9/9/2016 9/22/2016 Ipsos A- \n",
"6718 11/8/16 Indiana 9/9/2016 9/22/2016 Ipsos A- \n",
"11203 11/8/16 Texas 9/9/2016 9/15/2016 Ipsos A- \n",
"2105 11/8/16 Montana 9/9/2016 9/29/2016 Ipsos A- \n",
"2801 11/8/16 Arizona 9/9/2016 9/22/2016 Ipsos A- \n",
"... ... ... ... ... ... ... \n",
"3981 11/8/16 U.S. 1/10/2016 1/10/2016 Gravis Marketing B- \n",
"4013 11/8/16 U.S. 1/10/2016 1/14/2016 Ipsos A- \n",
"12439 11/8/16 U.S. 1/1/2016 1/5/2016 Ipsos A- \n",
"8231 11/8/16 U.S. 1/1/2016 1/5/2016 Ipsos A- \n",
"4023 11/8/16 U.S. 1/1/2016 1/5/2016 Ipsos A- \n",
"\n",
" ... adjpoll_clinton adjpoll_trump adjpoll_johnson adjpoll_mcmullin \\\n",
"10862 ... 37.39425 54.17959 NaN NaN \n",
"6718 ... 33.73702 52.89504 NaN NaN \n",
"11203 ... 28.37295 51.58496 NaN NaN \n",
"2105 ... 38.08105 52.35901 NaN NaN \n",
"2801 ... 41.36205 48.14312 NaN NaN \n",
"... ... ... ... ... ... \n",
"3981 ... 47.18561 50.33852 NaN NaN \n",
"4013 ... 41.77744 36.23294 NaN NaN \n",
"12439 ... 40.13148 35.99752 NaN NaN \n",
"8231 ... 40.16681 36.06849 NaN NaN \n",
"4023 ... 40.11739 36.00981 NaN NaN \n",
"\n",
" multiversions url \\\n",
"10862 NaN http://www.reuters.com/statesofthenation/ \n",
"6718 NaN http://www.reuters.com/statesofthenation/ \n",
"11203 NaN http://www.reuters.com/statesofthenation/ \n",
"2105 NaN http://www.reuters.com/statesofthenation/ \n",
"2801 NaN http://www.reuters.com/statesofthenation/ \n",
"... ... ... \n",
"3981 NaN http://www.oann.com/pollresults/ \n",
"4013 NaN http://polling.reuters.com/#poll/TM651Y15_13/f... \n",
"12439 NaN http://polling.reuters.com/#poll/TM651Y15_13/f... \n",
"8231 NaN http://polling.reuters.com/#poll/TM651Y15_13/f... \n",
"4023 NaN http://polling.reuters.com/#poll/TM651Y15_13/f... \n",
"\n",
" poll_id question_id createddate timestamp \n",
"10862 46070 72062 9/26/16 09:14:14 8 Nov 2016 \n",
"6718 46067 72059 9/26/16 09:24:53 8 Nov 2016 \n",
"11203 45869 71633 9/16/16 09:14:14 8 Nov 2016 \n",
"2105 46360 72488 10/3/16 09:35:33 8 Nov 2016 \n",
"2801 46057 72049 9/26/16 09:35:33 8 Nov 2016 \n",
"... ... ... ... ... \n",
"3981 35856 48165 1/12/16 09:35:33 8 Nov 2016 \n",
"4013 35871 65430 5/5/16 09:35:33 8 Nov 2016 \n",
"12439 35484 65439 5/5/16 09:14:14 8 Nov 2016 \n",
"8231 35484 65439 5/5/16 09:24:53 8 Nov 2016 \n",
"4023 35484 65439 5/5/16 09:35:33 8 Nov 2016 \n",
"\n",
"[12624 rows x 27 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%time\n",
"polls = polls.sort_values('startdate', ascending=False)\n",
"polls"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "lXjenANaq3wW",
"outputId": "6be6b84c-8973-447f-fc7a-2c911a5b3ddf"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Variable Type Data/Info\n",
"---------------------------------\n",
"pd module <module 'pandas' from 'C:<...>es\\\\pandas\\\\__init__.py'>\n",
"poll_url str http://projects.fivethirt<...>nt_general_polls_2016.csv\n",
"polls DataFrame cycle branch <...>[12624 rows x 27 columns]\n",
"xticks list n=10\n"
]
}
],
"source": [
"%whos"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "U5lXuyGnq3wX"
},
"source": [
"## How to use the Python type() function"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "g1QTBgBlq3wX",
"outputId": "ee0e07d7-ef15-4882-a8ee-d83c0b3f6e9c"
},
"outputs": [
{
"data": {
"text/plain": [
"str"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(poll_url)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "yRvnK41xq3wY",
"outputId": "44e17c31-9597-4355-e151-6520ad8d7d2e"
},
"outputs": [
{
"data": {
"text/plain": [
"pandas.core.frame.DataFrame"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(polls)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "psM7QNfKq3wY"
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.9.7"
},
"colab": {
"provenance": [],
"include_colab_link": true
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment