{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Election data example\n", "\n", "By Ben Welsh\n", "\n", "How you can use Python and pandas to work with California elections data [published by](https://www.californiacivicdata.org/2017/10/31/processed-files/) the California Civic Data Coalition." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Read in data from the Coalition's API" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "candidates = pd.read_csv(\"https://calaccess.download/latest/Candidates.csv\")" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | name | \n", "party_name | \n", "election_name | \n", "election_date | \n", "office | \n", "is_incumbent | \n", "special_election | \n", "created_at | \n", "updated_at | \n", "ocd_person_id | \n", "ocd_candidacy_id | \n", "ocd_election_id | \n", "ocd_post_id | \n", "ocd_contest_id | \n", "ocd_party_id | \n", "latest_calaccess_filer_id | \n", "calaccess_filer_id_count | \n", "latest_form501_filing_id | \n", "form501_filing_count | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "KAMALA D. HARRIS | \n", "DEMOCRATIC | \n", "2026 PRIMARY | \n", "2026-06-02 | \n", "Governor | \n", "NaN | \n", "f | \n", "2017-10-30 23:54:23.795175+00 | \n", "2017-10-30 23:54:23.824374+00 | \n", "ocd-person/717b9339-bcaa-437d-8e36-b8417ce02325 | \n", "ocd-candidacy/320f9fb9-1f0a-44b1-84c0-a07fa54f... | \n", "ocd-election/b0d7be16-6f9e-4c5e-a537-c32167bbdbf8 | \n", "ocd-post/b63d25d2-aff0-4afb-9dd1-e99474c8eb13 | \n", "ocd-contest/d33b6822-b3b9-4ed5-97db-19c3f16718aa | \n", "ocd-organization/169e9416-915b-4462-94cf-82e11... | \n", "1313503 | \n", "1 | \n", "2149075.0 | \n", "1.0 | \n", "
| 1 | \n", "RAJIV DALAL | \n", "DEMOCRATIC | \n", "2026 PRIMARY | \n", "2026-06-02 | \n", "Lieutenant Governor | \n", "NaN | \n", "f | \n", "2017-10-30 23:53:58.104137+00 | \n", "2017-10-30 23:53:58.136437+00 | \n", "ocd-person/b3a7a574-0b7c-4f1c-9c08-c68aabeef412 | \n", "ocd-candidacy/7fac375c-011f-4bcf-b3f1-749eee7b... | \n", "ocd-election/b0d7be16-6f9e-4c5e-a537-c32167bbdbf8 | \n", "ocd-post/3497cad1-e09e-4731-97c7-338b76746800 | \n", "ocd-contest/5ca2421a-6acd-4d5a-924e-0fbb8e7387ab | \n", "ocd-organization/169e9416-915b-4462-94cf-82e11... | \n", "1376272 | \n", "1 | \n", "2053509.0 | \n", "1.0 | \n", "
| 2 | \n", "JIMMY GOMEZ | \n", "DEMOCRATIC | \n", "2026 PRIMARY | \n", "2026-06-02 | \n", "Lieutenant Governor | \n", "NaN | \n", "f | \n", "2017-10-30 23:54:25.942073+00 | \n", "2017-10-30 23:54:25.973413+00 | \n", "ocd-person/f446bd3c-d19b-435c-9fa1-fe2165dfcd52 | \n", "ocd-candidacy/14e643a7-aaa5-4243-917c-10238cf2... | \n", "ocd-election/b0d7be16-6f9e-4c5e-a537-c32167bbdbf8 | \n", "ocd-post/3497cad1-e09e-4731-97c7-338b76746800 | \n", "ocd-contest/5ca2421a-6acd-4d5a-924e-0fbb8e7387ab | \n", "ocd-organization/169e9416-915b-4462-94cf-82e11... | \n", "1334135 | \n", "1 | \n", "2181321.0 | \n", "1.0 | \n", "
| 3 | \n", "JOHN A. PEREZ | \n", "DEMOCRATIC | \n", "2022 PRIMARY | \n", "2022-06-07 | \n", "Lieutenant Governor | \n", "NaN | \n", "f | \n", "2017-10-30 23:53:47.749057+00 | \n", "2017-10-30 23:53:47.780872+00 | \n", "ocd-person/5da11996-26f5-4b60-a6ff-95d760badbb4 | \n", "ocd-candidacy/7d57e357-db8d-4bb0-8c2d-0dd1265e... | \n", "ocd-election/f69bfdc3-72b0-4125-8dcf-40a56f55cc1d | \n", "ocd-post/3497cad1-e09e-4731-97c7-338b76746800 | \n", "ocd-contest/fc547f9a-7b67-46d7-8083-7f9070da27a6 | \n", "ocd-organization/169e9416-915b-4462-94cf-82e11... | \n", "1304250 | \n", "1 | \n", "2181318.0 | \n", "1.0 | \n", "
| 4 | \n", "JAMES W. SILVA | \n", "REPUBLICAN | \n", "2022 PRIMARY | \n", "2022-06-07 | \n", "State Senate 34 | \n", "NaN | \n", "f | \n", "2017-10-25 02:26:07.003425+00 | \n", "2017-10-25 02:26:07.032436+00 | \n", "ocd-person/d3d6c7c8-9dd1-4844-ac46-5d1d61038b07 | \n", "ocd-candidacy/330fae87-429c-44f0-a97d-12641e74... | \n", "ocd-election/f69bfdc3-72b0-4125-8dcf-40a56f55cc1d | \n", "ocd-post/2a28ec6a-80f2-4c0f-b4c5-9b99ab61b98a | \n", "ocd-contest/5d72c16f-f46f-470f-b2c4-65f428b3b1a4 | \n", "ocd-organization/731c91f2-7707-4ac5-9943-4fefa... | \n", "1241308 | \n", "1 | \n", "2164579.0 | \n", "1.0 | \n", "
| \n", " | YEAR | \n", "DEMOCRATIC | \n", "REPUBLICAN | \n", "THIRD | \n", "
|---|---|---|---|---|
| 0 | \n", "2000 | \n", "253.0 | \n", "259.0 | \n", "201.0 | \n", "
| 1 | \n", "2002 | \n", "337.0 | \n", "319.0 | \n", "178.0 | \n", "
| 2 | \n", "2004 | \n", "347.0 | \n", "320.0 | \n", "224.0 | \n", "
| 3 | \n", "2006 | \n", "378.0 | \n", "319.0 | \n", "169.0 | \n", "
| 4 | \n", "2008 | \n", "249.0 | \n", "223.0 | \n", "57.0 | \n", "
| 5 | \n", "2010 | \n", "394.0 | \n", "368.0 | \n", "197.0 | \n", "
| 6 | \n", "2012 | \n", "342.0 | \n", "271.0 | \n", "45.0 | \n", "
| 7 | \n", "2014 | \n", "417.0 | \n", "306.0 | \n", "61.0 | \n", "
| 8 | \n", "2016 | \n", "312.0 | \n", "249.0 | \n", "27.0 | \n", "
| 9 | \n", "2018 | \n", "181.0 | \n", "85.0 | \n", "46.0 | \n", "
| 10 | \n", "2020 | \n", "17.0 | \n", "6.0 | \n", "0.0 | \n", "
| 11 | \n", "2022 | \n", "1.0 | \n", "1.0 | \n", "0.0 | \n", "
| 12 | \n", "2026 | \n", "3.0 | \n", "0.0 | \n", "0.0 | \n", "
| \n", " | YEAR | \n", "DEMOCRATIC | \n", "REPUBLICAN | \n", "THIRD | \n", "DEM_VS_GOP | \n", "
|---|---|---|---|---|---|
| 0 | \n", "2000 | \n", "253.0 | \n", "259.0 | \n", "201.0 | \n", "-6.0 | \n", "
| 1 | \n", "2002 | \n", "337.0 | \n", "319.0 | \n", "178.0 | \n", "18.0 | \n", "
| 2 | \n", "2004 | \n", "347.0 | \n", "320.0 | \n", "224.0 | \n", "27.0 | \n", "
| 3 | \n", "2006 | \n", "378.0 | \n", "319.0 | \n", "169.0 | \n", "59.0 | \n", "
| 4 | \n", "2008 | \n", "249.0 | \n", "223.0 | \n", "57.0 | \n", "26.0 | \n", "
| 5 | \n", "2010 | \n", "394.0 | \n", "368.0 | \n", "197.0 | \n", "26.0 | \n", "
| 6 | \n", "2012 | \n", "342.0 | \n", "271.0 | \n", "45.0 | \n", "71.0 | \n", "
| 7 | \n", "2014 | \n", "417.0 | \n", "306.0 | \n", "61.0 | \n", "111.0 | \n", "
| 8 | \n", "2016 | \n", "312.0 | \n", "249.0 | \n", "27.0 | \n", "63.0 | \n", "
| 9 | \n", "2018 | \n", "181.0 | \n", "85.0 | \n", "46.0 | \n", "96.0 | \n", "
| 10 | \n", "2020 | \n", "17.0 | \n", "6.0 | \n", "0.0 | \n", "11.0 | \n", "
| 11 | \n", "2022 | \n", "1.0 | \n", "1.0 | \n", "0.0 | \n", "0.0 | \n", "
| 12 | \n", "2026 | \n", "3.0 | \n", "0.0 | \n", "0.0 | \n", "3.0 | \n", "