diff --git a/week2/01. Python Introduction.ipynb b/week2/.ipynb_checkpoints/01. Python Introduction-checkpoint.ipynb similarity index 94% rename from week2/01. Python Introduction.ipynb rename to week2/.ipynb_checkpoints/01. Python Introduction-checkpoint.ipynb index 145214f..ffc291a 100644 --- a/week2/01. Python Introduction.ipynb +++ b/week2/.ipynb_checkpoints/01. Python Introduction-checkpoint.ipynb @@ -191,17 +191,20 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Comments worked!\n" - ] + "data": { + "text/plain": [ + "'\\nThis is a \\nmultiline\\ncomment\\n'" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -211,9 +214,7 @@ "This is a \n", "multiline\n", "comment\n", - "\"\"\"\n", - "\n", - "print(\"Comments worked!\")" + "\"\"\"" ] }, { @@ -231,7 +232,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -269,7 +270,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -301,7 +302,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -323,7 +324,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -358,7 +359,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -369,7 +370,7 @@ "(0.5, 0.5, 9.600000000000001)" ] }, - "execution_count": 7, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -390,7 +391,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 21, "metadata": { "collapsed": false }, @@ -436,7 +437,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -458,7 +459,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -494,7 +495,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -552,7 +553,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -599,7 +600,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -667,7 +668,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -678,7 +679,7 @@ "[1, 4, 9, 16, 25]" ] }, - "execution_count": 14, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -703,7 +704,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -717,8 +718,8 @@ "moose\n", "False\n", "Dicts are fun.\n", - "keys: ['key1', 'key2', 4, 6]\n", - "values: [1, 'moose', 5, False]\n" + "keys: dict_keys(['key1', 'key2', 4, 6])\n", + "values: dict_values([1, 'moose', 5, False])\n" ] } ], @@ -740,13 +741,13 @@ " print(\"Dicts are not that fun.\")\n", " \n", "# The keys and values of dicts can be accessed as lists.\n", - "print(\"keys: \"+str(list(D2.keys())))\n", - "print(\"values: \"+str(list(D2.values())))" + "print(\"keys: \"+str(D2.keys()))\n", + "print(\"values: \"+str(D2.values()))" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 37, "metadata": { "collapsed": false }, @@ -755,26 +756,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'one': 1, 'two': 2, 'three': 3}\n", - "1\n", "['one', 'two', 'three']\n", "[('one', 1), ('two', 2), ('three', 3)]\n", - "2\n", - "['one', 'two', 'three']\n" + "dict_values([1, 2, 3])\n" ] } ], "source": [ "adict={'one':1, 'two': 2, 'three': 3}\n", - "print(adict)\n", - "print(adict['one'])\n", "print([i for i in adict])\n", - "\n", "print([(k,v) for k,v in adict.items()])\n", - "\n", - "playlist = (list(adict.values()))\n", - "print(playlist[1])\n", - "print(list(adict.keys()))" + "print(adict.values())" ] }, { @@ -786,7 +778,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -797,13 +789,13 @@ "{0: 0, 1: 1, 2: 2, 3: 3, 4: 4}" ] }, - "execution_count": 17, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "mydict={k:v for (k,v) in zip(range(5), range(5))}\n", + "mydict ={k:v for (k,v) in zip(range(5), range(5))}\n", "mydict" ] }, @@ -816,7 +808,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 39, "metadata": { "collapsed": false }, @@ -827,7 +819,7 @@ "{'a': 1, 'b': 2}" ] }, - "execution_count": 18, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -850,7 +842,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 41, "metadata": { "collapsed": false }, @@ -890,7 +882,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 42, "metadata": { "collapsed": false }, @@ -910,7 +902,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 50, "metadata": { "collapsed": false }, @@ -939,7 +931,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 53, "metadata": { "collapsed": false }, @@ -979,7 +971,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 57, "metadata": { "collapsed": false }, @@ -1014,7 +1006,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 59, "metadata": { "collapsed": false }, @@ -1051,7 +1043,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 67, "metadata": { "collapsed": false }, @@ -1080,18 +1072,28 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Build a list that contains all the courses that you are taking this semester, and print them. Every time you print a course number add the phrase `In Spring 2017, I am taking:`" + "Build a list that contains all the courses that you are taking this semester, and print them. Every time you print a course number add the phrase `In Spring 2016, I am taking:`" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 10, "metadata": { - "collapsed": true + "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "In Spring 2017, I am taking 11.521\n" + ] + } + ], "source": [ - "# Your code here\n" + "# Your code here\n", + "courses = ['11.220', '11.521', '11.942']\n", + "print('In Spring 2017, I am taking '+ courses[1])" ] }, { @@ -1106,7 +1108,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 69, "metadata": { "collapsed": false }, @@ -1160,33 +1162,6 @@ "print(F(F(F(10,100),50),1000))" ] }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mike\n", - "Not Mike\n" - ] - } - ], - "source": [ - "def print_words(x=\"THIS\",y=\"Not Mike\"):\n", - " print(x)\n", - " print(y)\n", - "\n", - "x = \"Mike\"\n", - "y = \"Something else\"\n", - " \n", - "print_words(x)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -1196,13 +1171,23 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 11, "metadata": { - "collapsed": true + "collapsed": false }, - "outputs": [], + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (, line 2)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m2\u001b[0m\n\u001b[0;31m course_printer = (courses = ['11.220', '11.521', '11.942'])\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" + ] + } + ], "source": [ - "# Your code here:\n" + "# Your code here:\n", + "course_printer = (courses = ['11.220', '11.521', '11.942'])" ] }, { @@ -1221,7 +1206,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 71, "metadata": { "collapsed": false }, @@ -1232,7 +1217,7 @@ "[2, 4, 6, 8, 10]" ] }, - "execution_count": 30, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } @@ -1257,7 +1242,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 70, "metadata": { "collapsed": false }, diff --git a/week2/.ipynb_checkpoints/Keep tryin-checkpoint.ipynb b/week2/.ipynb_checkpoints/Keep tryin-checkpoint.ipynb new file mode 100644 index 0000000..a309516 --- /dev/null +++ b/week2/.ipynb_checkpoints/Keep tryin-checkpoint.ipynb @@ -0,0 +1,823 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'random' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mrandom\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mmyrandom\u001b[0;34m(x, y)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mrandom\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'random' is not defined" + ] + } + ], + "source": [ + "def myrandom(x,y):\n", + " for i in range (y):\n", + " random.randint(x,y)\n", + "\n", + "print(myrandom(1,10))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "71\n" + ] + } + ], + "source": [ + "import random\n", + "def myrandom(x,y):\n", + " return random.randint(x,y)\n", + "for i in range(1):\n", + " print(myrandom(0,100))" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "TypeError", + "evalue": "myrandom() missing 1 required positional argument: 'y'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[1;32massert\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[1;36m100\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: myrandom() missing 1 required positional argument: 'y'" + ] + } + ], + "source": [ + "assert(0 <= myrandom(100) <= 100)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "TypeError", + "evalue": "myrandom() got an unexpected keyword argument 'low'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[1;32massert\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m50\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mlow\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m50\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[1;36m100\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: myrandom() got an unexpected keyword argument 'low'" + ] + } + ], + "source": [ + "assert(50 <= myrandom(100,x=50) <= 100)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "24\n" + ] + } + ], + "source": [ + "import random\n", + "def myrandom(high,low=0):\n", + " return random.randint(low,high)\n", + "for i in range(1):\n", + " low=0\n", + " high=100\n", + " print(myrandom(high))" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "assert(0 <= myrandom(100) <= 100)" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "TypeError", + "evalue": "myrandom() got an unexpected keyword argument 'low'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[1;32massert\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m50\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mlow\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m50\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[1;36m100\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: myrandom() got an unexpected keyword argument 'low'" + ] + } + ], + "source": [ + "assert(50 <= myrandom(100,low=50) <= 100)" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The number 2 bestseller today is: The ugly duckling\n" + ] + } + ], + "source": [ + "def bestseller(W,N):\n", + " return 'The number ' + N + ' bestseller today is: ' + W\n", + "W='The ugly duckling'\n", + "N='2'\n", + "print(bestseller(W,N))" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The number 2 bestseller today is: The ugly duckling\n" + ] + } + ], + "source": [ + "def bestseller(W,N=1):\n", + " return 'The number ' + N + ' bestseller today is: ' + W\n", + "W='The ugly duckling'\n", + "print(bestseller(W,N))" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Valeria2!\n", + "Success! Valid Password\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "x = True\n", + "while x: \n", + " if (len(password)<8 or len(password)>14):\n", + " break\n", + " elif not re.search(\"[a-z]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break \n", + " elif not re.search(\"[A-Z]\",password):\n", + " break\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " break\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " x=False\n", + " break\n", + "if x:\n", + " print(\"Not a Valid Password\")" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Valeria\n", + "ERROR: Not a Valid Password\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "x = True\n", + "while x: \n", + " if (len(password)<8 or len(password)>14):\n", + " break\n", + " elif not re.search(\"[a-z]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break\n", + " elif not re.search(\"[A-Z]\",password):\n", + " break\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " break\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " x=False\n", + " break\n", + "if x:\n", + " x = True\n", + "while x: \n", + " if (len(password)<8 or len(password)>14):\n", + " break\n", + " elif not re.search(\"[a-z]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break\n", + " elif not re.search(\"[A-Z]\",password):\n", + " break\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " break\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " x=False\n", + " break\n", + "if x:\n", + " x = True\n", + "while x: \n", + " if (len(password)<8 or len(password)>14):\n", + " break\n", + " elif not re.search(\"[a-z]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break\n", + " elif not re.search(\"[A-Z]\",password):\n", + " break\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " break\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " x=False\n", + " break\n", + "if x:\n", + " print(\"ERROR: Not a Valid Password\")" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter the number that will be multiplied2\n", + "Enter the exponential3\n" + ] + }, + { + "ename": "TypeError", + "evalue": "must be real number, not str", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0ma\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the number that will be multiplied'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the exponential'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mx\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmath\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: must be real number, not str" + ] + } + ], + "source": [ + "import math\n", + "a = input('Enter the number that will be multiplied')\n", + "b = input('Enter the exponential')\n", + "x = math.pow(a,b)\n", + "print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter the number that will be multiplied2\n", + "Enter the exponential3\n" + ] + }, + { + "ename": "TypeError", + "evalue": "'>' not supported between instances of 'str' and 'int'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m-=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mpowered\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mpow\u001b[0;34m(a, b)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[1;32mwhile\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0mpowered\u001b[0m \u001b[1;33m*=\u001b[0m \u001b[0ma\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m-=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: '>' not supported between instances of 'str' and 'int'" + ] + } + ], + "source": [ + "a = input('Enter the number that will be multiplied')\n", + "b = input('Enter the exponential')\n", + "def pow(a,b):\n", + " powered = a\n", + " if b == 0:\n", + " return 1\n", + " while b > 1:\n", + " powered *= a\n", + " b -= 1\n", + " return powered\n", + "print(pow(a,b))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import re\n", + "import string\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "\n", + "def good(password):\n", + " if (len(password)<8 or len(password)>14):\n", + " return False\n", + " elif not re.search(\"[a-z]\",password):\n", + " return False \n", + " elif not re.search(\"[A-Z]\",password):\n", + " return False\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " return False\n", + " elif (len([x for x in password if x.isdigit()]) <2):\n", + " return False\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " return True\n", + "\n", + "while x:\n", + " if(good = False):\n", + " break\n", + " else:\n", + " print(\"ERROR: Not a Valid Password\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import re\n", + "import string\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "\n", + "def good(password):\n", + " if (len(password)<8 or len(password)>14):\n", + " return False\n", + " elif not re.search(\"[a-z]\",password):\n", + " return False \n", + " elif not re.search(\"[A-Z]\",password):\n", + " return False\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " return False\n", + " elif (len([x for x in password if x.isdigit()]) <2):\n", + " return False\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " return True\n", + "\n", + "while x:\n", + " if(good = False):\n", + " break\n", + " else:\n", + " print(\"ERROR: Not a Valid Password\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import math\n", + "def result(a,b):\n", + " return math.pow(a,b)\n", + "a = input('Enter the number that will be multiplied')\n", + "b = input('Enter the exponential')\n", + "print(result(a,b))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=valeria\n", + "Not a Valid Password\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "x = True\n", + "while x: \n", + " if (len(password)<8 or len(password)>14):\n", + " break\n", + " elif not re.search(\"[a-z]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break \n", + " elif not re.search(\"[A-Z]\",password):\n", + " break\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " break\n", + " else:\n", + " x=False\n", + " break\n", + "if x:\n", + " print(\"Not a Valid Password\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Valita18!\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "\n", + "def good(password):\n", + " if (len(password)<8 or len(password)>14):\n", + " return False\n", + " elif not re.search(\"[a-z]\",password):\n", + " return False \n", + " elif not re.search(\"[A-Z]\",password):\n", + " return False\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " return False\n", + " elif (len([x for x in password if x.isdigit()]) <2):\n", + " return False\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " return True\n", + "\n", + "x = False\n", + "def y(good):\n", + " if good == x:\n", + " return 'Error: Invalid password'\n", + " print('Error: Invalid password')\n", + " else:\n", + " return 'Success! Valid Password'\n", + " print('Success! Valid Password')" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter the number that will be multiplied3\n", + "Enter the exponential0\n" + ] + }, + { + "ename": "TypeError", + "evalue": "must be real number, not str", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the exponential'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mmath\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mresult\u001b[0;34m(a, b)\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0ma\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the number that will be multiplied'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the exponential'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[1;32mreturn\u001b[0m \u001b[0mmath\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: must be real number, not str" + ] + } + ], + "source": [ + "import math\n", + "def result(a, b): \n", + " a = input('Enter the number that will be multiplied')\n", + " b = input('Enter the exponential')\n", + " return math.pow(a, b)\n", + "print(result(a, b))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=ACHURY\n", + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Achury\n", + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Montejo1\n", + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Montejo18@\n", + "Success! Valid Password\n", + "Error\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "\n", + "def good(password):\n", + " if (len(password)<8 or len(password)>14):\n", + " return False\n", + " elif not re.search(\"[a-z]\",password):\n", + " return False \n", + " elif not re.search(\"[A-Z]\",password):\n", + " return False\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " return False\n", + " elif (len([x for x in password if x.isdigit()]) <2):\n", + " return False\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " return True\n", + "\n", + "x = True\n", + "counter=0\n", + "while x:\n", + " password = input('Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=')\n", + " x != good(password)\n", + " counter=counter+1\n", + " if counter !=3:\n", + " continue\n", + " else:\n", + " print('Error')\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'a' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0ma\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the number that will be multiplied'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the exponential'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'a' is not defined" + ] + } + ], + "source": [ + "import math\n", + "def result(a, b):\n", + " return math.pow(a, b)\n", + " a = input('Enter the number that will be multiplied')\n", + " b = input('Enter the exponential')\n", + "print(result(a, b))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8\n" + ] + } + ], + "source": [ + "def expo(x,y):\n", + " result=1\n", + " for i in range(y):\n", + " result=x*result\n", + " return result;\n", + "print(expo(2,3))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'raw_input' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mx\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mraw_input\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Select base number\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mraw_input\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Select the exponent\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mexpo\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mresult\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'raw_input' is not defined" + ] + } + ], + "source": [ + "x = raw_input(\"Select base number\")\n", + "y = raw_input(\"Select the exponent\")\n", + "def expo(x,y):\n", + " result=1\n", + " for i in range(y):\n", + " result=x*result\n", + " return result;\n", + "print(expo(x,y))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add the rank in the bestseller list3\n", + "The number 3 bestseller today is: The Green Flag\n" + ] + } + ], + "source": [ + "#with title-case string\n", + "def bestseller(W,N):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W='The green flag'\n", + "N= input('Add the rank in the bestseller list')\n", + "print(bestseller(W,N))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add the title of a bookkjen\n", + "The number 3 bestseller today is: Kjen\n" + ] + } + ], + "source": [ + "#with title-case string\n", + "def bestseller(W,N):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W=input('Add the title of a book')\n", + "N= '3'\n", + "print(bestseller(W,N))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/week2/.ipynb_checkpoints/Lab1-checkpoint.ipynb b/week2/.ipynb_checkpoints/Lab1-checkpoint.ipynb new file mode 100644 index 0000000..0d34b25 --- /dev/null +++ b/week2/.ipynb_checkpoints/Lab1-checkpoint.ipynb @@ -0,0 +1,1049 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import math" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from math import pi" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import matplotlib" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import matplotlib as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Import Libraries for use later in script\n", + "from IPython.display import HTML\n", + "import math\n", + "import matplotlib\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nThis is a \\nmultiline\\ncomment\\n'" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Firstly, this is a single-line comment.\n", + "\n", + "\"\"\"\n", + "This is a \n", + "multiline\n", + "comment\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.0\n", + "8.0\n" + ] + } + ], + "source": [ + "# We can define variables without having to declare their type. We can name it whatever we want.\n", + "x = 4.0\n", + "print(x)\n", + "print(x*2)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "5\n", + "7\n", + "-3\n" + ] + } + ], + "source": [ + "# you can change the value of x as often as you want.\n", + "x = 3\n", + "print(x)\n", + "x = x+2\n", + "print(x)\n", + "# the following retrieves the value stored in x, adds 2 to it, \n", + "# and stores the result in x.\n", + "x+=2\n", + "print(x)\n", + "x-=10\n", + "print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.8333333333333334\n", + "\n" + ] + } + ], + "source": [ + "division=5/6\n", + "print(division)\n", + "print(type(division))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "\n" + ] + } + ], + "source": [ + "# Integers (int) are a numerical data-type. \n", + "print(1+2)\n", + "print(type(1+2))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.5\n", + "1.0\n", + "30.0\n", + "3.5\n", + "\n" + ] + } + ], + "source": [ + "# Floats are another numeric type that allows for fractions.\n", + "print(1.0+.5)\n", + "print(3.0-2.0)\n", + "print(6*5.0)\n", + "print(7.0/2)\n", + "print(type(1.0+5))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello World.\n", + "This is a string.\n", + "i\n", + "This is a string. Another string.\n", + "This is a string. Another string. A third string.\n" + ] + } + ], + "source": [ + "# A string is sequence of characters. \n", + "print(\"Hello World.\")\n", + "\n", + "# Let's store a string in a variable called \"s\".\n", + "# Note that using ' and \" to define strings are interchangeable.\n", + "string = 'This is a string.'\n", + "print(string)\n", + "\n", + "# We can access individual characters from the string.\n", + "print(string[2])\n", + "\n", + "# You can add strings together\n", + "string = string + \" Another string.\"\n", + "print(string)\n", + "string+=\" A third string.\"\n", + "print(string)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n" + ] + } + ], + "source": [ + "# booleans, or bools, are another data type. They can hold only two \n", + "# possible values: True or False.\n", + "is_true = True\n", + "print(is_true)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "False\n", + "False\n", + "True\n", + "True\n", + "False\n" + ] + } + ], + "source": [ + "# There are several functions that act on booleans.\n", + "# Let x and y be variables storing booleans.\n", + "# \"Not x\" switches the value of x. If x is True, then \"not x\" is False.\n", + "# \"x and y\" returns True if x and y are True.\n", + "# \"x or y\" returns True if x or y are True.\n", + "x = True\n", + "y = False\n", + "print(x)\n", + "print(not x)\n", + "print(x and y)\n", + "print(x and not y)\n", + "print(x or y)\n", + "print(not x or y)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n", + "True\n", + "True\n", + "True\n", + "False\n", + "2\n", + "2\n", + "True\n" + ] + } + ], + "source": [ + "# There are functions to make comparisons between valuables and produce bools. \n", + "# '==' tests for equality\n", + "print(1 == 2)\n", + "print(1 == 1)\n", + "# '!=' tests for inequality\n", + "print(1 != 2)\n", + "# comparison functions also apply to strings\n", + "print(\"abcd\" == \"abcd\")\n", + "# Pointers and their values can be compared.\n", + "x = 1\n", + "y = 2\n", + "# compare values of pointers\n", + "print(x == y)\n", + "# set x and y to be the same pointer \n", + "x = y\n", + "print(x)\n", + "print(y)\n", + "# check if x and y are THE SAME POINTER using the 'is' function.\n", + "print(x is y)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Flag is True.\n", + "1\n" + ] + } + ], + "source": [ + "flag = True\n", + "x = 0\n", + "if flag:\n", + " x = 1\n", + " print(\"Flag is True.\")\n", + "else:\n", + " x = 2\n", + " print(\"Flag is False.\")\n", + "print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "B\n" + ] + } + ], + "source": [ + "# We can check for other cases as well. Controlling the execution of code\n", + "# like this is referred to as \"flow of control\".\n", + "if x == 0:\n", + " print(\"A\")\n", + "elif x == 1:\n", + " print('B')\n", + "else:\n", + " print(\"C\")" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2]\n", + "[1, 2, 'a', 'b', 'c', ['a', 'b', 'c']]\n" + ] + } + ], + "source": [ + "L1 = [] # an empty list\n", + "x = 5\n", + "L2 = [1,2.0,'a',\"abcd\",True,x] # a list containing different values\n", + "# \"extend\".\n", + "L1.append(1)\n", + "L1.append(2)\n", + "print(L1)\n", + "L3 = ['a','b','c']\n", + "L1.extend(L3)\n", + "L1.append(L3)\n", + "print(L1)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a\n", + "b\n" + ] + } + ], + "source": [ + "# Values stored in lists are accessible by their index in the list. \n", + "# Lists maintain the ordering in which values were stored in them.\n", + "# We use \"[i]\" to retrieve the i-th element in a list.\n", + "# Note that the first element in a list in Python has index 0.\n", + "L = ['a','b','c','d','e']\n", + "print(L[0])\n", + "print(L[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "e\n", + "d\n" + ] + } + ], + "source": [ + "# We can access from the ends of lists as well.\n", + "print(L[-1])\n", + "print(L[-2])" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['a', 'b']\n", + "['c', 'd']\n" + ] + } + ], + "source": [ + "# We can access chunks of a list to produce sub-lists.\n", + "print(L[:2])\n", + "print(L[2:4])" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "range(0, 10)\n" + ] + } + ], + "source": [ + "print(range(10))" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 4, 9, 16, 25]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "alist=[1,2,3,4,5]\n", + "asquaredlist=[i*i for i in alist]\n", + "asquaredlist" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'key1': 1, 'key2': 'moose', 4: 5}\n" + ] + } + ], + "source": [ + "D = {} # an empty dict\n", + "D2 = {'key1':1,'key2':\"moose\",4:5}\n", + "print(D2)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'key1': 1, 'key2': 'moose', 4: 5, 6: False}\n", + "moose\n", + "False\n" + ] + } + ], + "source": [ + "# Key-value pairs can also be defined like this\n", + "D2[6] = False\n", + "print(D2)\n", + "# values can be retrieved using their keys.\n", + "print(D2['key2'])\n", + "print(D2[6])" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dicts are fun.\n" + ] + } + ], + "source": [ + "# can be used in conditionals\n", + "if not D2[6]: # evaluates to false\n", + " print(\"Dicts are fun.\")\n", + "else:\n", + " print(\"Dicts are not that fun.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "keys: dict_keys(['key1', 'key2', 4, 6])\n", + "values: dict_values([1, 'moose', 5, False])\n" + ] + } + ], + "source": [ + "# The keys and values of dicts can be accessed as lists.\n", + "print(\"keys: \"+str(D2.keys()))\n", + "print(\"values: \"+str(D2.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['one', 'two', 'three']\n" + ] + } + ], + "source": [ + "adict={'one':1, 'two': 2, 'three': 3}\n", + "print([i for i in adict])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[('one', 1), ('two', 2), ('three', 3)]\n", + "dict_values([1, 2, 3])\n" + ] + } + ], + "source": [ + "print([(k,v) for k,v in adict.items()])\n", + "print(adict.values())" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{0: 0, 1: 1, 2: 2, 3: 3, 4: 4}" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mydict ={k:v for (k,v) in zip(range(5), range(5))}\n", + "mydict" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'a': 1, 'b': 2}" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dict(a=1, b=2)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'a': 1, 'b': 2}\n", + "{\"a\": 1, \"b\": 2}\n", + "{'a': 1, 'b': 2}\n" + ] + } + ], + "source": [ + "import json\n", + "\n", + "a = {'a': 1, 'b':2}\n", + "s = json.dumps(a)\n", + "a2 = json.loads(s)\n", + "\n", + "## a is a dictionary\n", + "print(a)\n", + "## vs s is a string containing a in JSON encoding\n", + "print(s)\n", + "## reading back the keys are now in unicode\n", + "print(a2)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "range(0, 10)\n" + ] + } + ], + "source": [ + "X = range(10)\n", + "print(X)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "2\n", + "3\n", + "4\n", + "5\n", + "6\n", + "7\n", + "8\n", + "9\n" + ] + } + ], + "source": [ + "for x in X:\n", + " print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "2\n", + "4\n", + "6\n", + "8\n", + "10\n", + "12\n", + "14\n", + "16\n", + "18\n", + "range(0, 10)\n" + ] + } + ], + "source": [ + "for i in X:\n", + " # doubles the list element\n", + " print(X[i]*2)\n", + "\n", + "print(X)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "2\n", + "3\n", + "4\n", + "5\n", + "6\n" + ] + } + ], + "source": [ + "for i in range(10):\n", + " print(i)\n", + " if (i > 5):\n", + " break # breaks out of the loop when it gets a number higher than five" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "2\n", + "3\n", + "4\n" + ] + } + ], + "source": [ + "i=0\n", + "while i < 10:\n", + " print(i)\n", + " i=i+1\n", + " if i < 5:\n", + " continue\n", + " else:\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This\n", + "0\n", + "is\n", + "1\n", + "Python\n", + "2\n" + ] + } + ], + "source": [ + "myList = [\"This\", \"is\", \"Python\"]\n", + "for i in myList:\n", + " print(i) # print the value\n", + " print(myList.index(i)) # print the position of the value (index)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4950\n" + ] + } + ], + "source": [ + "#consider this example:\n", + "# First choose an initial value for x.\n", + "x = 0\n", + "for i in range(100):\n", + " x+=i\n", + "print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# What if we do this for a new initial value for x? \n", + "# What if we use a different number instead of 100?\n", + "# We don't want to rewrite this for loop every time. \n", + "# Let's define a function.\n", + "def ForSum(x,y):\n", + " for i in range(y):\n", + " x+=i\n", + " # \"return\" indicates what values to output\n", + " return x" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4950\n", + "1235\n", + "4950\n" + ] + } + ], + "source": [ + "print(ForSum(0,100))\n", + "print(ForSum(10,50)) # Now with new numbers\n", + "F = ForSum\n", + "print(F(0,100))" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "505685\n" + ] + } + ], + "source": [ + "# Now, just for fun:\n", + "print(F(F(F(10,100),50),1000))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/week2/.ipynb_checkpoints/PSET_1_Intro to Python-checkpoint.ipynb b/week2/.ipynb_checkpoints/PSET_1_Intro to Python-checkpoint.ipynb new file mode 100644 index 0000000..c6af1e4 --- /dev/null +++ b/week2/.ipynb_checkpoints/PSET_1_Intro to Python-checkpoint.ipynb @@ -0,0 +1,285 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problem Set 1: Intro to Python\n", + "This problem set is meant to create a good foundation of programming. We emphasize code readability and reusability over performance. Code performance can be measured in many different ways, and is by no means the focus of this course, however, we expect your code to be non-repetitive, clean, and efficient enough to deal with medium-to-large datasets. As we move forward with the course, you will be introduced to some functional programming techniques, iterators, and objects that will help speed-up the data munging of the type of data sets that we will be dealing with. \n", + "\n", + "`Throughout the course you will be using multiple online resources to help you solve the assignments, we do too. However, if you are using other people’s code, make sure to credit the source, and come up with your own implementation. In this problem set, you are welcome to refer to online resources and documentation. One of the primary ones you will find you use is:` [Stack Overflow]( http://stackoverflow.com/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Lists\n", + "Do the following:\n", + "1. Create a list containing any 4 strings.\n", + "2. Print the 3rd item in the list\n", + "3. Print the 1st and 2nd item in the list using [:] index slicing.\n", + "4. Add a new string with text “last” to the end of the list and print the list.\n", + "5. Get the list length and print it.\n", + "6. Replace the last item in the list with the string “new” and print\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Strings \n", + "Given the following list of words:\n", + "```Python\n", + "list1=['I', 'am', 'learning','Python','to','munge','large','datasets','and','visualize','them']\n", + "```\n", + "1. Convert the list into a normal sentence with [`join()`](https://docs.python.org/2/library/stdtypes.html#str.join), then print.\n", + "2. [**Reverse**](https://docs.python.org/release/2.3.5/whatsnew/section-slices.html) the order of this list `[“them”,”visualize”,…]`\n", + "3. Now [**sort**](https://docs.python.org/2/library/functions.html#sorted) the list using the default sort order in python\n", + "4. Modify the sort to do a case [**insensitive**](http://matthiaseisen.com/pp/patterns/p0005/) alphabetic sort\n", + "5. Now print the list in reverse alphabetic sort order\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Random Function\n", + "Here is a python snippet for generating a random integer:\n", + "\n", + "```Python\n", + "import random\n", + "# this returns random integer: 100 <= number <= 1000 \n", + "num = random.randint(100, 1000)\n", + "```\n", + "\n", + "* Implement your own random function that builds on this python function, returning an integer between a low and a high number supplied by the user, but that can be called with the low number optional (default to 0).\n", + "\n", + "* Test your function by adding the following 2 assert statements to your file (replace myrandom and low with the names you used). The [`assert`](https://docs.python.org/2/reference/simple_stmts.html#assert) statement helps you debug, by testing if a statement is true. \n", + "\n", + "```Python\n", + "assert(0 <= myrandom(100) <= 100)\n", + "assert(50 <= myrandom(100,low=50) <= 100)\n", + "```\n", + "\n", + "\n", + "1. Inputs: \n", + " 1. Two `integers` that will be used as lower and upper bounds of the function. \n", + "2. Outputs: \n", + " 1. A random number within the established bounds. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. String Formatting Function \n", + "Write a function that expects 2 inputs from the command line. The first is a title that may be multiple words, the second is a number. Given these inputs print the following string (replacing N and Title with the dynamic values passed in to the script each time it runs).\n", + "\n", + "`The number N bestseller today is: Title` \n", + "\n", + "* If not already title-cased, the function should **title-case** the string. \n", + "* Build one function making the first input optional (keeping the 2nd required).\n", + "* Build another function making the second input optional (keeping the 1st required).\n", + "* Build a third function making both inputs optional.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Password Validation Function \n", + "Write a password validation function. Ask the user to input a password that meets the criteria listed below. You can either use the **Python** [`input`](https://docs.python.org/3/library/functions.html#input) built-in function, or just pass the password as a function argument. Validate that the user’s password matches this criteria. After 3 bad tries, quit with an error message. If password is valid, print a helpful success message.\n", + "\n", + "* password length must be 8-14 characters\n", + "* password must contain at least 2 digits\n", + "* password must contain at least 1 uppercase letter\n", + "* password must contain at least 1 special character from this set !@#$%^&*()-_+=\n", + "\n", + "\n", + "\n", + "1. Inputs: \n", + " 1. A `string` that will be tested for the password requirements. The string can be passed as an argument to the function, or as an input through the `input` function.\n", + "2. Outputs: \n", + " 1. A **success** message if the password works, otherwise an **error** message. \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 6. Exponentiation Function\n", + "Create a function called **exp** that asks for two digits and then prints an exponentiation, without using the exponentiation operator (`**`). You may assume these are positive integers. Use at least one custom-defined function.\n", + "\n", + "For example, some outputs of this function could be:\n", + "* 2 , 3 => 8\n", + "* 5 , 4 => 625\n", + "\n", + "1. Inputs: \n", + " 1. An `integer` that will be recursively multiplied\n", + " 2. An `integer` that will define the number of times to multiply the number to get the exponentiation.\n", + "2. Outputs: \n", + " 1. An `integer` that is the result of the exponentiation. \n", + "\n", + "`Hint: You can recursively multiply a number. The second number defines the number of times the recursive loop happens. Every time the loop happens, you can redefine the variable that gets multiplied.` " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 7. Min and Max Functions (Bonus)\n", + "\n", + "EXTRA CREDIT\n", + "\n", + "Write your own versions of the Python built-in functions **min** and **max**. They should take a list as an argument and return the minimum or maximum element. Assume lists contain numeric items only. \n", + "\n", + "1. Inputs: \n", + " 1. A `list` of `numbers` to be tested. \n", + "2. Outputs: \n", + " 1. A `number` of the list that is the maximum or minimum. \n", + "\n", + "`Hint: Pick the first element as the minimum(maximum) and then loop through the elements to find a smaller(larger) element. Each time you find a smaller (larger) element, update your minimum (maximum).`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 8. Hangman Game (Bonus)\n", + "\n", + "EXTRA CREDIT\n", + "\n", + "Implement a basic hangman game through functions.\n", + "* Show a user the word or phrase (5-15 letters) that they have to guess with dashes as placeholders for unsolved letters. You can hardcode this word into your source.\n", + "* Prompt the user to guess a letter or solve the puzzle through the user [`input`](https://docs.python.org/2/library/functions.html#input) function. They get up to 8 guesses. After each guess, show the word with any instances of correctly guessed letters filled in. Show the number of tries left. Handle possible issues with user input in a consistent way.\n", + "* Continue to prompt the user until either they’ve used up their 8 guesses or solved.\n", + "* If they solve the puzzle in time, show the completed word and a congratulatory message.\n", + "* If they fail to solve the puzzle, show the completed word and a Game Over message.\n", + "\n", + "\n", + "Here’s a sample transcript.\n", + "> You have 8 guesses to solve this word. \n", + "\n", + ">------------------------------------------ \n", + "\n", + ">guess a letter or solve: b \n", + "\n", + ">b--b--b-- (7 tries left) \n", + "\n", + ">guess a letter or solve: x \n", + "\n", + ">b--b--b-- (6 tries left) \n", + "\n", + ">guess a letter or solve: e \n", + "\n", + ">b--b-ebee (5 tries left) \n", + "\n", + ">guess a letter or solve: bumblebee \n", + "\n", + ">bumblebee (4 tries left) \n", + "\n", + ">Congratulations, you won!\n", + "\n", + "1. Inputs: \n", + " 1. A `string` that will be tested to see whether or not it is part of the secret word. \n", + "2. Outputs: \n", + " 1. A message that shows the user the number of guessed letters at the time.\n", + " 2. A **success** message if the user wins, otherwise a **try again** message. \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/week2/.ipynb_checkpoints/josemg_PSET_1-checkpoint.ipynb b/week2/.ipynb_checkpoints/josemg_PSET_1-checkpoint.ipynb new file mode 100644 index 0000000..132ddaa --- /dev/null +++ b/week2/.ipynb_checkpoints/josemg_PSET_1-checkpoint.ipynb @@ -0,0 +1,568 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problem Set 1: Intro to Python\n", + "This problem set is meant to create a good foundation of programming. We emphasize code readability and reusability over performance. Code performance can be measured in many different ways, and is by no means the focus of this course, however, we expect your code to be non-repetitive, clean, and efficient enough to deal with medium-to-large datasets. As we move forward with the course, you will be introduced to some functional programming techniques, iterators, and objects that will help speed-up the data munging of the type of data sets that we will be dealing with. \n", + "\n", + "`Throughout the course you will be using multiple online resources to help you solve the assignments, we do too. However, if you are using other people’s code, make sure to credit the source, and come up with your own implementation. In this problem set, you are welcome to refer to online resources and documentation. One of the primary ones you will find you use is:` [Stack Overflow]( http://stackoverflow.com/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Lists\n", + "Do the following:\n", + "1. Create a list containing any 4 strings.\n", + "2. Print the 3rd item in the list\n", + "3. Print the 1st and 2nd item in the list using [:] index slicing.\n", + "4. Add a new string with text “last” to the end of the list and print the list.\n", + "5. Get the list length and print it.\n", + "6. Replace the last item in the list with the string “new” and print\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "table\n", + "['green', 'blue']\n", + "['green', 'blue', 'table', 'gray hair', 'last']\n", + "5\n", + "['green', 'blue', 'table', 'gray hair', 'new']\n" + ] + } + ], + "source": [ + "#Create a list with 4 strings\n", + "L1 = ['green','blue','table','gray hair']\n", + "#Print the 3rd item\n", + "print(L1[2])\n", + "#Print 1st and 2nd item using [:]\n", + "print(L1[:2])\n", + "#Add the 'last' string at the end\n", + "L1.append('last')\n", + "print(L1)\n", + "#Print list length\n", + "print(len(L1))\n", + "#Replace the last item with 'new'\n", + "del L1[4]\n", + "L1.append('new')\n", + "print(L1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Strings \n", + "Given the following list of words:\n", + "```Python\n", + "list1=['I', 'am', 'learning','Python','to','munge','large','datasets','and','visualize','them']\n", + "```\n", + "1. Convert the list into a normal sentence with [`join()`](https://docs.python.org/2/library/stdtypes.html#str.join), then print.\n", + "2. [**Reverse**](https://docs.python.org/release/2.3.5/whatsnew/section-slices.html) the order of this list `[“them”,”visualize”,…]`\n", + "3. Now [**sort**](https://docs.python.org/2/library/functions.html#sorted) the list using the default sort order in python\n", + "4. Modify the sort to do a case [**insensitive**](http://matthiaseisen.com/pp/patterns/p0005/) alphabetic sort\n", + "5. Now print the list in reverse alphabetic sort order\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "I am learning Python to munge large datasets and visualize them\n", + "['am', 'and', 'datasets', 'I', 'large', 'learning', 'munge', 'Python', 'them', 'to', 'visualize']\n" + ] + }, + { + "data": { + "text/plain": [ + "['visualize',\n", + " 'to',\n", + " 'them',\n", + " 'Python',\n", + " 'munge',\n", + " 'learning',\n", + " 'large',\n", + " 'I',\n", + " 'datasets',\n", + " 'and',\n", + " 'am']" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "list1 = ['I', 'am', 'learning','Python','to','munge','large','datasets','and','visualize','them']\n", + "#Convert the list into a sentence\n", + "print(' '.join(list1))\n", + "#Reverse the order\n", + "list1.reverse()\n", + "#Sort\n", + "list1.sort()\n", + "#Sort case insensitive\n", + "list2 = sorted(list1, key=lambda x: x.lower())\n", + "print (list2)\n", + "#print in reverse alphabetic order\n", + "list2.reverse()\n", + "list2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Random Function\n", + "Here is a python snippet for generating a random integer:\n", + "\n", + "```Python\n", + "import random\n", + "# this returns random integer: 100 <= number <= 1000 \n", + "num = random.randint(100, 1000)\n", + "```\n", + "\n", + "* Implement your own random function that builds on this python function, returning an integer between a low and a high number supplied by the user, but that can be called with the low number optional (default to 0).\n", + "\n", + "* Test your function by adding the following 2 assert statements to your file (replace myrandom and low with the names you used). The [`assert`](https://docs.python.org/2/reference/simple_stmts.html#assert) statement helps you debug, by testing if a statement is true. \n", + "\n", + "```Python\n", + "assert(0 <= myrandom(100) <= 100)\n", + "assert(50 <= myrandom(100,low=50) <= 100)\n", + "```\n", + "\n", + "\n", + "1. Inputs: \n", + " 1. Two `integers` that will be used as lower and upper bounds of the function. \n", + "2. Outputs: \n", + " 1. A random number within the established bounds. " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "67\n" + ] + } + ], + "source": [ + "#Random function that returns an integer between two numbers supplied by the user\n", + "import random\n", + "def myrandom(high,low=0):\n", + " return random.randint(low,high)\n", + "for i in range(1):\n", + " high=100\n", + " print(myrandom(high))\n", + "#Test\n", + "assert(0 <= myrandom(100) <= 100)\n", + "assert(50 <= myrandom(100,low=50) <= 100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. String Formatting Function \n", + "Write a function that expects 2 inputs from the command line. The first is a title that may be multiple words, the second is a number. Given these inputs print the following string (replacing N and Title with the dynamic values passed in to the script each time it runs).\n", + "\n", + "`The number N bestseller today is: Title` \n", + "\n", + "* If not already title-cased, the function should **title-case** the string. \n", + "* Build one function making the first input optional (keeping the 2nd required).\n", + "* Build another function making the second input optional (keeping the 1st required).\n", + "* Build a third function making both inputs optional.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add boook titleamrkjf askjdn\n", + "Add the rank in the bestseller list3\n", + "The number 3 bestseller today is: amrkjf askjdn\n" + ] + } + ], + "source": [ + "#Function that results in the bestseller today with two inputs\n", + "def bestseller(W,N):\n", + " return 'The number ' + N + ' bestseller today is: ' + W \n", + "W=input('Add boook title')\n", + "N= input('Add the rank in the bestseller list')\n", + "print(bestseller(W,N))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add boook titleasbfhb lknn\n", + "Add the rank in the bestseller list5\n", + "The number 5 bestseller today is: Asbfhb Lknn\n" + ] + } + ], + "source": [ + "#with title-case string\n", + "def bestseller(W,N):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W=input('Add boook title')\n", + "N= input('Add the rank in the bestseller list')\n", + "print(bestseller(W,N))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add book title\n", + "Add the rank in the bestseller list4\n", + "The number 4 bestseller today is: The Green Flag\n" + ] + } + ], + "source": [ + "#with optional first input\n", + "def bestseller2(N,W='The green flag'):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W= input('Add book title')\n", + "N= input('Add the rank in the bestseller list')\n", + "print(bestseller2(N))" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add the title of a bookthe history of new york\n", + "Add the rank in the bestseller list\n", + "The number 1 bestseller today is: The History Of New York\n" + ] + } + ], + "source": [ + "#optional second input\n", + "def bestseller3(W,N=1):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W=input('Add the title of a book')\n", + "N=input('Add the rank in the bestseller list')\n", + "print(bestseller3(W))" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add the title of a book\n", + "Add the rank in the bestseller list\n", + "The number bestseller today is: \n" + ] + } + ], + "source": [ + "#Both inputs are optional\n", + "def bestseller4(W='Hello World',N=1):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W=input('Add the title of a book')\n", + "N=input('Add the rank in the bestseller list')\n", + "print(bestseller4(W,N))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Password Validation Function \n", + "Write a password validation function. Ask the user to input a password that meets the criteria listed below. You can either use the **Python** [`input`](https://docs.python.org/3/library/functions.html#input) built-in function, or just pass the password as a function argument. Validate that the user’s password matches this criteria. After 3 bad tries, quit with an error message. If password is valid, print a helpful success message.\n", + "\n", + "* password length must be 8-14 characters\n", + "* password must contain at least 2 digits\n", + "* password must contain at least 1 uppercase letter\n", + "* password must contain at least 1 special character from this set !@#$%^&*()-_+=\n", + "\n", + "\n", + "\n", + "1. Inputs: \n", + " 1. A `string` that will be tested for the password requirements. The string can be passed as an argument to the function, or as an input through the `input` function.\n", + "2. Outputs: \n", + " 1. A **success** message if the password works, otherwise an **error** message. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=kjads\n", + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=kajsdn\n", + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=oijer\n", + "Error:Invalid password\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "\n", + "def good(password):\n", + " if (len(password)<8 or len(password)>14):\n", + " return False\n", + " elif not re.search(\"[a-z]\",password):\n", + " return False \n", + " elif not re.search(\"[A-Z]\",password):\n", + " return False\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " return False\n", + " elif (len([x for x in password if x.isdigit()]) <2):\n", + " return False\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " return True\n", + "\n", + "x = True\n", + "counter=0\n", + "while x:\n", + " password = input('Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=')\n", + " x != good(password)\n", + " counter=counter+1\n", + " if counter !=2:\n", + " continue\n", + " else:\n", + " print('Error:Invalid password')\n", + " break" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 6. Exponentiation Function\n", + "Create a function called **exp** that asks for two digits and then prints an exponentiation, without using the exponentiation operator (`**`). You may assume these are positive integers. Use at least one custom-defined function.\n", + "\n", + "For example, some outputs of this function could be:\n", + "* 2 , 3 => 8\n", + "* 5 , 4 => 625\n", + "\n", + "1. Inputs: \n", + " 1. An `integer` that will be recursively multiplied\n", + " 2. An `integer` that will define the number of times to multiply the number to get the exponentiation.\n", + "2. Outputs: \n", + " 1. An `integer` that is the result of the exponentiation. \n", + "\n", + "`Hint: You can recursively multiply a number. The second number defines the number of times the recursive loop happens. Every time the loop happens, you can redefine the variable that gets multiplied.` " + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter the number that will be multiplied4\n", + "Enter the exponential2\n", + "16\n" + ] + } + ], + "source": [ + "#Add option to insert values\n", + "x = eval(input('Enter the number that will be multiplied'))\n", + "y = eval(input('Enter the exponential'))\n", + "#Exponential function\n", + "def expo(x,y):\n", + " result=1\n", + " for i in range(y):\n", + " result=x*result\n", + " return result;\n", + "print(expo(x,y))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 7. Min and Max Functions (Bonus)\n", + "\n", + "EXTRA CREDIT\n", + "\n", + "Write your own versions of the Python built-in functions **min** and **max**. They should take a list as an argument and return the minimum or maximum element. Assume lists contain numeric items only. \n", + "\n", + "1. Inputs: \n", + " 1. A `list` of `numbers` to be tested. \n", + "2. Outputs: \n", + " 1. A `number` of the list that is the maximum or minimum. \n", + "\n", + "`Hint: Pick the first element as the minimum(maximum) and then loop through the elements to find a smaller(larger) element. Each time you find a smaller (larger) element, update your minimum (maximum).`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 8. Hangman Game (Bonus)\n", + "\n", + "EXTRA CREDIT\n", + "\n", + "Implement a basic hangman game through functions.\n", + "* Show a user the word or phrase (5-15 letters) that they have to guess with dashes as placeholders for unsolved letters. You can hardcode this word into your source.\n", + "* Prompt the user to guess a letter or solve the puzzle through the user [`input`](https://docs.python.org/2/library/functions.html#input) function. They get up to 8 guesses. After each guess, show the word with any instances of correctly guessed letters filled in. Show the number of tries left. Handle possible issues with user input in a consistent way.\n", + "* Continue to prompt the user until either they’ve used up their 8 guesses or solved.\n", + "* If they solve the puzzle in time, show the completed word and a congratulatory message.\n", + "* If they fail to solve the puzzle, show the completed word and a Game Over message.\n", + "\n", + "\n", + "Here’s a sample transcript.\n", + "> You have 8 guesses to solve this word. \n", + "\n", + ">------------------------------------------ \n", + "\n", + ">guess a letter or solve: b \n", + "\n", + ">b--b--b-- (7 tries left) \n", + "\n", + ">guess a letter or solve: x \n", + "\n", + ">b--b--b-- (6 tries left) \n", + "\n", + ">guess a letter or solve: e \n", + "\n", + ">b--b-ebee (5 tries left) \n", + "\n", + ">guess a letter or solve: bumblebee \n", + "\n", + ">bumblebee (4 tries left) \n", + "\n", + ">Congratulations, you won!\n", + "\n", + "1. Inputs: \n", + " 1. A `string` that will be tested to see whether or not it is part of the secret word. \n", + "2. Outputs: \n", + " 1. A message that shows the user the number of guessed letters at the time.\n", + " 2. A **success** message if the user wins, otherwise a **try again** message. \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/week2/Keep tryin.ipynb b/week2/Keep tryin.ipynb new file mode 100644 index 0000000..a309516 --- /dev/null +++ b/week2/Keep tryin.ipynb @@ -0,0 +1,823 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'random' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mrandom\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mmyrandom\u001b[0;34m(x, y)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mrandom\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrandint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'random' is not defined" + ] + } + ], + "source": [ + "def myrandom(x,y):\n", + " for i in range (y):\n", + " random.randint(x,y)\n", + "\n", + "print(myrandom(1,10))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "71\n" + ] + } + ], + "source": [ + "import random\n", + "def myrandom(x,y):\n", + " return random.randint(x,y)\n", + "for i in range(1):\n", + " print(myrandom(0,100))" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "TypeError", + "evalue": "myrandom() missing 1 required positional argument: 'y'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[1;32massert\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[1;36m100\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: myrandom() missing 1 required positional argument: 'y'" + ] + } + ], + "source": [ + "assert(0 <= myrandom(100) <= 100)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "TypeError", + "evalue": "myrandom() got an unexpected keyword argument 'low'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[1;32massert\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m50\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mlow\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m50\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[1;36m100\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: myrandom() got an unexpected keyword argument 'low'" + ] + } + ], + "source": [ + "assert(50 <= myrandom(100,x=50) <= 100)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "24\n" + ] + } + ], + "source": [ + "import random\n", + "def myrandom(high,low=0):\n", + " return random.randint(low,high)\n", + "for i in range(1):\n", + " low=0\n", + " high=100\n", + " print(myrandom(high))" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "assert(0 <= myrandom(100) <= 100)" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "TypeError", + "evalue": "myrandom() got an unexpected keyword argument 'low'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[1;32massert\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m50\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[0mmyrandom\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mlow\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m50\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<=\u001b[0m \u001b[1;36m100\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: myrandom() got an unexpected keyword argument 'low'" + ] + } + ], + "source": [ + "assert(50 <= myrandom(100,low=50) <= 100)" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The number 2 bestseller today is: The ugly duckling\n" + ] + } + ], + "source": [ + "def bestseller(W,N):\n", + " return 'The number ' + N + ' bestseller today is: ' + W\n", + "W='The ugly duckling'\n", + "N='2'\n", + "print(bestseller(W,N))" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The number 2 bestseller today is: The ugly duckling\n" + ] + } + ], + "source": [ + "def bestseller(W,N=1):\n", + " return 'The number ' + N + ' bestseller today is: ' + W\n", + "W='The ugly duckling'\n", + "print(bestseller(W,N))" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Valeria2!\n", + "Success! Valid Password\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "x = True\n", + "while x: \n", + " if (len(password)<8 or len(password)>14):\n", + " break\n", + " elif not re.search(\"[a-z]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break \n", + " elif not re.search(\"[A-Z]\",password):\n", + " break\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " break\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " x=False\n", + " break\n", + "if x:\n", + " print(\"Not a Valid Password\")" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Valeria\n", + "ERROR: Not a Valid Password\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "x = True\n", + "while x: \n", + " if (len(password)<8 or len(password)>14):\n", + " break\n", + " elif not re.search(\"[a-z]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break\n", + " elif not re.search(\"[A-Z]\",password):\n", + " break\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " break\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " x=False\n", + " break\n", + "if x:\n", + " x = True\n", + "while x: \n", + " if (len(password)<8 or len(password)>14):\n", + " break\n", + " elif not re.search(\"[a-z]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break\n", + " elif not re.search(\"[A-Z]\",password):\n", + " break\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " break\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " x=False\n", + " break\n", + "if x:\n", + " x = True\n", + "while x: \n", + " if (len(password)<8 or len(password)>14):\n", + " break\n", + " elif not re.search(\"[a-z]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break\n", + " elif not re.search(\"[A-Z]\",password):\n", + " break\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " break\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " x=False\n", + " break\n", + "if x:\n", + " print(\"ERROR: Not a Valid Password\")" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter the number that will be multiplied2\n", + "Enter the exponential3\n" + ] + }, + { + "ename": "TypeError", + "evalue": "must be real number, not str", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0ma\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the number that will be multiplied'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the exponential'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mx\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmath\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: must be real number, not str" + ] + } + ], + "source": [ + "import math\n", + "a = input('Enter the number that will be multiplied')\n", + "b = input('Enter the exponential')\n", + "x = math.pow(a,b)\n", + "print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter the number that will be multiplied2\n", + "Enter the exponential3\n" + ] + }, + { + "ename": "TypeError", + "evalue": "'>' not supported between instances of 'str' and 'int'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m-=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mpowered\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mpow\u001b[0;34m(a, b)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[1;32mwhile\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0mpowered\u001b[0m \u001b[1;33m*=\u001b[0m \u001b[0ma\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m-=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: '>' not supported between instances of 'str' and 'int'" + ] + } + ], + "source": [ + "a = input('Enter the number that will be multiplied')\n", + "b = input('Enter the exponential')\n", + "def pow(a,b):\n", + " powered = a\n", + " if b == 0:\n", + " return 1\n", + " while b > 1:\n", + " powered *= a\n", + " b -= 1\n", + " return powered\n", + "print(pow(a,b))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import re\n", + "import string\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "\n", + "def good(password):\n", + " if (len(password)<8 or len(password)>14):\n", + " return False\n", + " elif not re.search(\"[a-z]\",password):\n", + " return False \n", + " elif not re.search(\"[A-Z]\",password):\n", + " return False\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " return False\n", + " elif (len([x for x in password if x.isdigit()]) <2):\n", + " return False\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " return True\n", + "\n", + "while x:\n", + " if(good = False):\n", + " break\n", + " else:\n", + " print(\"ERROR: Not a Valid Password\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import re\n", + "import string\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "\n", + "def good(password):\n", + " if (len(password)<8 or len(password)>14):\n", + " return False\n", + " elif not re.search(\"[a-z]\",password):\n", + " return False \n", + " elif not re.search(\"[A-Z]\",password):\n", + " return False\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " return False\n", + " elif (len([x for x in password if x.isdigit()]) <2):\n", + " return False\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " return True\n", + "\n", + "while x:\n", + " if(good = False):\n", + " break\n", + " else:\n", + " print(\"ERROR: Not a Valid Password\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import math\n", + "def result(a,b):\n", + " return math.pow(a,b)\n", + "a = input('Enter the number that will be multiplied')\n", + "b = input('Enter the exponential')\n", + "print(result(a,b))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=valeria\n", + "Not a Valid Password\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "x = True\n", + "while x: \n", + " if (len(password)<8 or len(password)>14):\n", + " break\n", + " elif not re.search(\"[a-z]\",password):\n", + " break\n", + " elif not re.search(\"[0-9]\",password):\n", + " break \n", + " elif not re.search(\"[A-Z]\",password):\n", + " break\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " break\n", + " else:\n", + " x=False\n", + " break\n", + "if x:\n", + " print(\"Not a Valid Password\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Valita18!\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "\n", + "def good(password):\n", + " if (len(password)<8 or len(password)>14):\n", + " return False\n", + " elif not re.search(\"[a-z]\",password):\n", + " return False \n", + " elif not re.search(\"[A-Z]\",password):\n", + " return False\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " return False\n", + " elif (len([x for x in password if x.isdigit()]) <2):\n", + " return False\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " return True\n", + "\n", + "x = False\n", + "def y(good):\n", + " if good == x:\n", + " return 'Error: Invalid password'\n", + " print('Error: Invalid password')\n", + " else:\n", + " return 'Success! Valid Password'\n", + " print('Success! Valid Password')" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter the number that will be multiplied3\n", + "Enter the exponential0\n" + ] + }, + { + "ename": "TypeError", + "evalue": "must be real number, not str", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the exponential'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mmath\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mresult\u001b[0;34m(a, b)\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0ma\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the number that will be multiplied'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the exponential'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[1;32mreturn\u001b[0m \u001b[0mmath\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: must be real number, not str" + ] + } + ], + "source": [ + "import math\n", + "def result(a, b): \n", + " a = input('Enter the number that will be multiplied')\n", + " b = input('Enter the exponential')\n", + " return math.pow(a, b)\n", + "print(result(a, b))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=ACHURY\n", + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Achury\n", + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Montejo1\n", + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=Montejo18@\n", + "Success! Valid Password\n", + "Error\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "\n", + "def good(password):\n", + " if (len(password)<8 or len(password)>14):\n", + " return False\n", + " elif not re.search(\"[a-z]\",password):\n", + " return False \n", + " elif not re.search(\"[A-Z]\",password):\n", + " return False\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " return False\n", + " elif (len([x for x in password if x.isdigit()]) <2):\n", + " return False\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " return True\n", + "\n", + "x = True\n", + "counter=0\n", + "while x:\n", + " password = input('Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=')\n", + " x != good(password)\n", + " counter=counter+1\n", + " if counter !=3:\n", + " continue\n", + " else:\n", + " print('Error')\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'a' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0ma\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the number that will be multiplied'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mb\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Enter the exponential'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'a' is not defined" + ] + } + ], + "source": [ + "import math\n", + "def result(a, b):\n", + " return math.pow(a, b)\n", + " a = input('Enter the number that will be multiplied')\n", + " b = input('Enter the exponential')\n", + "print(result(a, b))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8\n" + ] + } + ], + "source": [ + "def expo(x,y):\n", + " result=1\n", + " for i in range(y):\n", + " result=x*result\n", + " return result;\n", + "print(expo(2,3))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'raw_input' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mx\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mraw_input\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Select base number\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mraw_input\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Select the exponent\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mexpo\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mresult\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'raw_input' is not defined" + ] + } + ], + "source": [ + "x = raw_input(\"Select base number\")\n", + "y = raw_input(\"Select the exponent\")\n", + "def expo(x,y):\n", + " result=1\n", + " for i in range(y):\n", + " result=x*result\n", + " return result;\n", + "print(expo(x,y))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add the rank in the bestseller list3\n", + "The number 3 bestseller today is: The Green Flag\n" + ] + } + ], + "source": [ + "#with title-case string\n", + "def bestseller(W,N):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W='The green flag'\n", + "N= input('Add the rank in the bestseller list')\n", + "print(bestseller(W,N))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add the title of a bookkjen\n", + "The number 3 bestseller today is: Kjen\n" + ] + } + ], + "source": [ + "#with title-case string\n", + "def bestseller(W,N):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W=input('Add the title of a book')\n", + "N= '3'\n", + "print(bestseller(W,N))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/week2/Lab1.ipynb b/week2/Lab1.ipynb new file mode 100644 index 0000000..0d34b25 --- /dev/null +++ b/week2/Lab1.ipynb @@ -0,0 +1,1049 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import math" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from math import pi" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import matplotlib" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import matplotlib as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Import Libraries for use later in script\n", + "from IPython.display import HTML\n", + "import math\n", + "import matplotlib\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nThis is a \\nmultiline\\ncomment\\n'" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Firstly, this is a single-line comment.\n", + "\n", + "\"\"\"\n", + "This is a \n", + "multiline\n", + "comment\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.0\n", + "8.0\n" + ] + } + ], + "source": [ + "# We can define variables without having to declare their type. We can name it whatever we want.\n", + "x = 4.0\n", + "print(x)\n", + "print(x*2)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "5\n", + "7\n", + "-3\n" + ] + } + ], + "source": [ + "# you can change the value of x as often as you want.\n", + "x = 3\n", + "print(x)\n", + "x = x+2\n", + "print(x)\n", + "# the following retrieves the value stored in x, adds 2 to it, \n", + "# and stores the result in x.\n", + "x+=2\n", + "print(x)\n", + "x-=10\n", + "print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.8333333333333334\n", + "\n" + ] + } + ], + "source": [ + "division=5/6\n", + "print(division)\n", + "print(type(division))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "\n" + ] + } + ], + "source": [ + "# Integers (int) are a numerical data-type. \n", + "print(1+2)\n", + "print(type(1+2))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.5\n", + "1.0\n", + "30.0\n", + "3.5\n", + "\n" + ] + } + ], + "source": [ + "# Floats are another numeric type that allows for fractions.\n", + "print(1.0+.5)\n", + "print(3.0-2.0)\n", + "print(6*5.0)\n", + "print(7.0/2)\n", + "print(type(1.0+5))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello World.\n", + "This is a string.\n", + "i\n", + "This is a string. Another string.\n", + "This is a string. Another string. A third string.\n" + ] + } + ], + "source": [ + "# A string is sequence of characters. \n", + "print(\"Hello World.\")\n", + "\n", + "# Let's store a string in a variable called \"s\".\n", + "# Note that using ' and \" to define strings are interchangeable.\n", + "string = 'This is a string.'\n", + "print(string)\n", + "\n", + "# We can access individual characters from the string.\n", + "print(string[2])\n", + "\n", + "# You can add strings together\n", + "string = string + \" Another string.\"\n", + "print(string)\n", + "string+=\" A third string.\"\n", + "print(string)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n" + ] + } + ], + "source": [ + "# booleans, or bools, are another data type. They can hold only two \n", + "# possible values: True or False.\n", + "is_true = True\n", + "print(is_true)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "False\n", + "False\n", + "True\n", + "True\n", + "False\n" + ] + } + ], + "source": [ + "# There are several functions that act on booleans.\n", + "# Let x and y be variables storing booleans.\n", + "# \"Not x\" switches the value of x. If x is True, then \"not x\" is False.\n", + "# \"x and y\" returns True if x and y are True.\n", + "# \"x or y\" returns True if x or y are True.\n", + "x = True\n", + "y = False\n", + "print(x)\n", + "print(not x)\n", + "print(x and y)\n", + "print(x and not y)\n", + "print(x or y)\n", + "print(not x or y)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n", + "True\n", + "True\n", + "True\n", + "False\n", + "2\n", + "2\n", + "True\n" + ] + } + ], + "source": [ + "# There are functions to make comparisons between valuables and produce bools. \n", + "# '==' tests for equality\n", + "print(1 == 2)\n", + "print(1 == 1)\n", + "# '!=' tests for inequality\n", + "print(1 != 2)\n", + "# comparison functions also apply to strings\n", + "print(\"abcd\" == \"abcd\")\n", + "# Pointers and their values can be compared.\n", + "x = 1\n", + "y = 2\n", + "# compare values of pointers\n", + "print(x == y)\n", + "# set x and y to be the same pointer \n", + "x = y\n", + "print(x)\n", + "print(y)\n", + "# check if x and y are THE SAME POINTER using the 'is' function.\n", + "print(x is y)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Flag is True.\n", + "1\n" + ] + } + ], + "source": [ + "flag = True\n", + "x = 0\n", + "if flag:\n", + " x = 1\n", + " print(\"Flag is True.\")\n", + "else:\n", + " x = 2\n", + " print(\"Flag is False.\")\n", + "print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "B\n" + ] + } + ], + "source": [ + "# We can check for other cases as well. Controlling the execution of code\n", + "# like this is referred to as \"flow of control\".\n", + "if x == 0:\n", + " print(\"A\")\n", + "elif x == 1:\n", + " print('B')\n", + "else:\n", + " print(\"C\")" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2]\n", + "[1, 2, 'a', 'b', 'c', ['a', 'b', 'c']]\n" + ] + } + ], + "source": [ + "L1 = [] # an empty list\n", + "x = 5\n", + "L2 = [1,2.0,'a',\"abcd\",True,x] # a list containing different values\n", + "# \"extend\".\n", + "L1.append(1)\n", + "L1.append(2)\n", + "print(L1)\n", + "L3 = ['a','b','c']\n", + "L1.extend(L3)\n", + "L1.append(L3)\n", + "print(L1)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a\n", + "b\n" + ] + } + ], + "source": [ + "# Values stored in lists are accessible by their index in the list. \n", + "# Lists maintain the ordering in which values were stored in them.\n", + "# We use \"[i]\" to retrieve the i-th element in a list.\n", + "# Note that the first element in a list in Python has index 0.\n", + "L = ['a','b','c','d','e']\n", + "print(L[0])\n", + "print(L[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "e\n", + "d\n" + ] + } + ], + "source": [ + "# We can access from the ends of lists as well.\n", + "print(L[-1])\n", + "print(L[-2])" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['a', 'b']\n", + "['c', 'd']\n" + ] + } + ], + "source": [ + "# We can access chunks of a list to produce sub-lists.\n", + "print(L[:2])\n", + "print(L[2:4])" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "range(0, 10)\n" + ] + } + ], + "source": [ + "print(range(10))" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 4, 9, 16, 25]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "alist=[1,2,3,4,5]\n", + "asquaredlist=[i*i for i in alist]\n", + "asquaredlist" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'key1': 1, 'key2': 'moose', 4: 5}\n" + ] + } + ], + "source": [ + "D = {} # an empty dict\n", + "D2 = {'key1':1,'key2':\"moose\",4:5}\n", + "print(D2)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'key1': 1, 'key2': 'moose', 4: 5, 6: False}\n", + "moose\n", + "False\n" + ] + } + ], + "source": [ + "# Key-value pairs can also be defined like this\n", + "D2[6] = False\n", + "print(D2)\n", + "# values can be retrieved using their keys.\n", + "print(D2['key2'])\n", + "print(D2[6])" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dicts are fun.\n" + ] + } + ], + "source": [ + "# can be used in conditionals\n", + "if not D2[6]: # evaluates to false\n", + " print(\"Dicts are fun.\")\n", + "else:\n", + " print(\"Dicts are not that fun.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "keys: dict_keys(['key1', 'key2', 4, 6])\n", + "values: dict_values([1, 'moose', 5, False])\n" + ] + } + ], + "source": [ + "# The keys and values of dicts can be accessed as lists.\n", + "print(\"keys: \"+str(D2.keys()))\n", + "print(\"values: \"+str(D2.values()))" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['one', 'two', 'three']\n" + ] + } + ], + "source": [ + "adict={'one':1, 'two': 2, 'three': 3}\n", + "print([i for i in adict])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[('one', 1), ('two', 2), ('three', 3)]\n", + "dict_values([1, 2, 3])\n" + ] + } + ], + "source": [ + "print([(k,v) for k,v in adict.items()])\n", + "print(adict.values())" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{0: 0, 1: 1, 2: 2, 3: 3, 4: 4}" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mydict ={k:v for (k,v) in zip(range(5), range(5))}\n", + "mydict" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'a': 1, 'b': 2}" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dict(a=1, b=2)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'a': 1, 'b': 2}\n", + "{\"a\": 1, \"b\": 2}\n", + "{'a': 1, 'b': 2}\n" + ] + } + ], + "source": [ + "import json\n", + "\n", + "a = {'a': 1, 'b':2}\n", + "s = json.dumps(a)\n", + "a2 = json.loads(s)\n", + "\n", + "## a is a dictionary\n", + "print(a)\n", + "## vs s is a string containing a in JSON encoding\n", + "print(s)\n", + "## reading back the keys are now in unicode\n", + "print(a2)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "range(0, 10)\n" + ] + } + ], + "source": [ + "X = range(10)\n", + "print(X)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "2\n", + "3\n", + "4\n", + "5\n", + "6\n", + "7\n", + "8\n", + "9\n" + ] + } + ], + "source": [ + "for x in X:\n", + " print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "2\n", + "4\n", + "6\n", + "8\n", + "10\n", + "12\n", + "14\n", + "16\n", + "18\n", + "range(0, 10)\n" + ] + } + ], + "source": [ + "for i in X:\n", + " # doubles the list element\n", + " print(X[i]*2)\n", + "\n", + "print(X)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "2\n", + "3\n", + "4\n", + "5\n", + "6\n" + ] + } + ], + "source": [ + "for i in range(10):\n", + " print(i)\n", + " if (i > 5):\n", + " break # breaks out of the loop when it gets a number higher than five" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "2\n", + "3\n", + "4\n" + ] + } + ], + "source": [ + "i=0\n", + "while i < 10:\n", + " print(i)\n", + " i=i+1\n", + " if i < 5:\n", + " continue\n", + " else:\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This\n", + "0\n", + "is\n", + "1\n", + "Python\n", + "2\n" + ] + } + ], + "source": [ + "myList = [\"This\", \"is\", \"Python\"]\n", + "for i in myList:\n", + " print(i) # print the value\n", + " print(myList.index(i)) # print the position of the value (index)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4950\n" + ] + } + ], + "source": [ + "#consider this example:\n", + "# First choose an initial value for x.\n", + "x = 0\n", + "for i in range(100):\n", + " x+=i\n", + "print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# What if we do this for a new initial value for x? \n", + "# What if we use a different number instead of 100?\n", + "# We don't want to rewrite this for loop every time. \n", + "# Let's define a function.\n", + "def ForSum(x,y):\n", + " for i in range(y):\n", + " x+=i\n", + " # \"return\" indicates what values to output\n", + " return x" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4950\n", + "1235\n", + "4950\n" + ] + } + ], + "source": [ + "print(ForSum(0,100))\n", + "print(ForSum(10,50)) # Now with new numbers\n", + "F = ForSum\n", + "print(F(0,100))" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "505685\n" + ] + } + ], + "source": [ + "# Now, just for fun:\n", + "print(F(F(F(10,100),50),1000))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/week2/josemg_PSET_1.ipynb b/week2/josemg_PSET_1.ipynb new file mode 100644 index 0000000..132ddaa --- /dev/null +++ b/week2/josemg_PSET_1.ipynb @@ -0,0 +1,568 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problem Set 1: Intro to Python\n", + "This problem set is meant to create a good foundation of programming. We emphasize code readability and reusability over performance. Code performance can be measured in many different ways, and is by no means the focus of this course, however, we expect your code to be non-repetitive, clean, and efficient enough to deal with medium-to-large datasets. As we move forward with the course, you will be introduced to some functional programming techniques, iterators, and objects that will help speed-up the data munging of the type of data sets that we will be dealing with. \n", + "\n", + "`Throughout the course you will be using multiple online resources to help you solve the assignments, we do too. However, if you are using other people’s code, make sure to credit the source, and come up with your own implementation. In this problem set, you are welcome to refer to online resources and documentation. One of the primary ones you will find you use is:` [Stack Overflow]( http://stackoverflow.com/)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Lists\n", + "Do the following:\n", + "1. Create a list containing any 4 strings.\n", + "2. Print the 3rd item in the list\n", + "3. Print the 1st and 2nd item in the list using [:] index slicing.\n", + "4. Add a new string with text “last” to the end of the list and print the list.\n", + "5. Get the list length and print it.\n", + "6. Replace the last item in the list with the string “new” and print\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "table\n", + "['green', 'blue']\n", + "['green', 'blue', 'table', 'gray hair', 'last']\n", + "5\n", + "['green', 'blue', 'table', 'gray hair', 'new']\n" + ] + } + ], + "source": [ + "#Create a list with 4 strings\n", + "L1 = ['green','blue','table','gray hair']\n", + "#Print the 3rd item\n", + "print(L1[2])\n", + "#Print 1st and 2nd item using [:]\n", + "print(L1[:2])\n", + "#Add the 'last' string at the end\n", + "L1.append('last')\n", + "print(L1)\n", + "#Print list length\n", + "print(len(L1))\n", + "#Replace the last item with 'new'\n", + "del L1[4]\n", + "L1.append('new')\n", + "print(L1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Strings \n", + "Given the following list of words:\n", + "```Python\n", + "list1=['I', 'am', 'learning','Python','to','munge','large','datasets','and','visualize','them']\n", + "```\n", + "1. Convert the list into a normal sentence with [`join()`](https://docs.python.org/2/library/stdtypes.html#str.join), then print.\n", + "2. [**Reverse**](https://docs.python.org/release/2.3.5/whatsnew/section-slices.html) the order of this list `[“them”,”visualize”,…]`\n", + "3. Now [**sort**](https://docs.python.org/2/library/functions.html#sorted) the list using the default sort order in python\n", + "4. Modify the sort to do a case [**insensitive**](http://matthiaseisen.com/pp/patterns/p0005/) alphabetic sort\n", + "5. Now print the list in reverse alphabetic sort order\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "I am learning Python to munge large datasets and visualize them\n", + "['am', 'and', 'datasets', 'I', 'large', 'learning', 'munge', 'Python', 'them', 'to', 'visualize']\n" + ] + }, + { + "data": { + "text/plain": [ + "['visualize',\n", + " 'to',\n", + " 'them',\n", + " 'Python',\n", + " 'munge',\n", + " 'learning',\n", + " 'large',\n", + " 'I',\n", + " 'datasets',\n", + " 'and',\n", + " 'am']" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "list1 = ['I', 'am', 'learning','Python','to','munge','large','datasets','and','visualize','them']\n", + "#Convert the list into a sentence\n", + "print(' '.join(list1))\n", + "#Reverse the order\n", + "list1.reverse()\n", + "#Sort\n", + "list1.sort()\n", + "#Sort case insensitive\n", + "list2 = sorted(list1, key=lambda x: x.lower())\n", + "print (list2)\n", + "#print in reverse alphabetic order\n", + "list2.reverse()\n", + "list2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Random Function\n", + "Here is a python snippet for generating a random integer:\n", + "\n", + "```Python\n", + "import random\n", + "# this returns random integer: 100 <= number <= 1000 \n", + "num = random.randint(100, 1000)\n", + "```\n", + "\n", + "* Implement your own random function that builds on this python function, returning an integer between a low and a high number supplied by the user, but that can be called with the low number optional (default to 0).\n", + "\n", + "* Test your function by adding the following 2 assert statements to your file (replace myrandom and low with the names you used). The [`assert`](https://docs.python.org/2/reference/simple_stmts.html#assert) statement helps you debug, by testing if a statement is true. \n", + "\n", + "```Python\n", + "assert(0 <= myrandom(100) <= 100)\n", + "assert(50 <= myrandom(100,low=50) <= 100)\n", + "```\n", + "\n", + "\n", + "1. Inputs: \n", + " 1. Two `integers` that will be used as lower and upper bounds of the function. \n", + "2. Outputs: \n", + " 1. A random number within the established bounds. " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "67\n" + ] + } + ], + "source": [ + "#Random function that returns an integer between two numbers supplied by the user\n", + "import random\n", + "def myrandom(high,low=0):\n", + " return random.randint(low,high)\n", + "for i in range(1):\n", + " high=100\n", + " print(myrandom(high))\n", + "#Test\n", + "assert(0 <= myrandom(100) <= 100)\n", + "assert(50 <= myrandom(100,low=50) <= 100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. String Formatting Function \n", + "Write a function that expects 2 inputs from the command line. The first is a title that may be multiple words, the second is a number. Given these inputs print the following string (replacing N and Title with the dynamic values passed in to the script each time it runs).\n", + "\n", + "`The number N bestseller today is: Title` \n", + "\n", + "* If not already title-cased, the function should **title-case** the string. \n", + "* Build one function making the first input optional (keeping the 2nd required).\n", + "* Build another function making the second input optional (keeping the 1st required).\n", + "* Build a third function making both inputs optional.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add boook titleamrkjf askjdn\n", + "Add the rank in the bestseller list3\n", + "The number 3 bestseller today is: amrkjf askjdn\n" + ] + } + ], + "source": [ + "#Function that results in the bestseller today with two inputs\n", + "def bestseller(W,N):\n", + " return 'The number ' + N + ' bestseller today is: ' + W \n", + "W=input('Add boook title')\n", + "N= input('Add the rank in the bestseller list')\n", + "print(bestseller(W,N))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add boook titleasbfhb lknn\n", + "Add the rank in the bestseller list5\n", + "The number 5 bestseller today is: Asbfhb Lknn\n" + ] + } + ], + "source": [ + "#with title-case string\n", + "def bestseller(W,N):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W=input('Add boook title')\n", + "N= input('Add the rank in the bestseller list')\n", + "print(bestseller(W,N))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add book title\n", + "Add the rank in the bestseller list4\n", + "The number 4 bestseller today is: The Green Flag\n" + ] + } + ], + "source": [ + "#with optional first input\n", + "def bestseller2(N,W='The green flag'):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W= input('Add book title')\n", + "N= input('Add the rank in the bestseller list')\n", + "print(bestseller2(N))" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add the title of a bookthe history of new york\n", + "Add the rank in the bestseller list\n", + "The number 1 bestseller today is: The History Of New York\n" + ] + } + ], + "source": [ + "#optional second input\n", + "def bestseller3(W,N=1):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W=input('Add the title of a book')\n", + "N=input('Add the rank in the bestseller list')\n", + "print(bestseller3(W))" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Add the title of a book\n", + "Add the rank in the bestseller list\n", + "The number bestseller today is: \n" + ] + } + ], + "source": [ + "#Both inputs are optional\n", + "def bestseller4(W='Hello World',N=1):\n", + " return 'The number ' + str(N) + ' bestseller today is: ' + str.title(W) \n", + "W=input('Add the title of a book')\n", + "N=input('Add the rank in the bestseller list')\n", + "print(bestseller4(W,N))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Password Validation Function \n", + "Write a password validation function. Ask the user to input a password that meets the criteria listed below. You can either use the **Python** [`input`](https://docs.python.org/3/library/functions.html#input) built-in function, or just pass the password as a function argument. Validate that the user’s password matches this criteria. After 3 bad tries, quit with an error message. If password is valid, print a helpful success message.\n", + "\n", + "* password length must be 8-14 characters\n", + "* password must contain at least 2 digits\n", + "* password must contain at least 1 uppercase letter\n", + "* password must contain at least 1 special character from this set !@#$%^&*()-_+=\n", + "\n", + "\n", + "\n", + "1. Inputs: \n", + " 1. A `string` that will be tested for the password requirements. The string can be passed as an argument to the function, or as an input through the `input` function.\n", + "2. Outputs: \n", + " 1. A **success** message if the password works, otherwise an **error** message. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=kjads\n", + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=kajsdn\n", + "Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=oijer\n", + "Error:Invalid password\n" + ] + } + ], + "source": [ + "import re\n", + "password= input(\"Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=\")\n", + "\n", + "def good(password):\n", + " if (len(password)<8 or len(password)>14):\n", + " return False\n", + " elif not re.search(\"[a-z]\",password):\n", + " return False \n", + " elif not re.search(\"[A-Z]\",password):\n", + " return False\n", + " elif not re.search('[!@#$%^&*()-_+\"=]',password):\n", + " return False\n", + " elif (len([x for x in password if x.isdigit()]) <2):\n", + " return False\n", + " else:\n", + " print(\"Success! Valid Password\")\n", + " return True\n", + "\n", + "x = True\n", + "counter=0\n", + "while x:\n", + " password = input('Enter a password that is 8-14 characters, at least 2 digits, contains one uppercase and contains at least one of these symbols !@#$%^&*()-_+=')\n", + " x != good(password)\n", + " counter=counter+1\n", + " if counter !=2:\n", + " continue\n", + " else:\n", + " print('Error:Invalid password')\n", + " break" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 6. Exponentiation Function\n", + "Create a function called **exp** that asks for two digits and then prints an exponentiation, without using the exponentiation operator (`**`). You may assume these are positive integers. Use at least one custom-defined function.\n", + "\n", + "For example, some outputs of this function could be:\n", + "* 2 , 3 => 8\n", + "* 5 , 4 => 625\n", + "\n", + "1. Inputs: \n", + " 1. An `integer` that will be recursively multiplied\n", + " 2. An `integer` that will define the number of times to multiply the number to get the exponentiation.\n", + "2. Outputs: \n", + " 1. An `integer` that is the result of the exponentiation. \n", + "\n", + "`Hint: You can recursively multiply a number. The second number defines the number of times the recursive loop happens. Every time the loop happens, you can redefine the variable that gets multiplied.` " + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter the number that will be multiplied4\n", + "Enter the exponential2\n", + "16\n" + ] + } + ], + "source": [ + "#Add option to insert values\n", + "x = eval(input('Enter the number that will be multiplied'))\n", + "y = eval(input('Enter the exponential'))\n", + "#Exponential function\n", + "def expo(x,y):\n", + " result=1\n", + " for i in range(y):\n", + " result=x*result\n", + " return result;\n", + "print(expo(x,y))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 7. Min and Max Functions (Bonus)\n", + "\n", + "EXTRA CREDIT\n", + "\n", + "Write your own versions of the Python built-in functions **min** and **max**. They should take a list as an argument and return the minimum or maximum element. Assume lists contain numeric items only. \n", + "\n", + "1. Inputs: \n", + " 1. A `list` of `numbers` to be tested. \n", + "2. Outputs: \n", + " 1. A `number` of the list that is the maximum or minimum. \n", + "\n", + "`Hint: Pick the first element as the minimum(maximum) and then loop through the elements to find a smaller(larger) element. Each time you find a smaller (larger) element, update your minimum (maximum).`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 8. Hangman Game (Bonus)\n", + "\n", + "EXTRA CREDIT\n", + "\n", + "Implement a basic hangman game through functions.\n", + "* Show a user the word or phrase (5-15 letters) that they have to guess with dashes as placeholders for unsolved letters. You can hardcode this word into your source.\n", + "* Prompt the user to guess a letter or solve the puzzle through the user [`input`](https://docs.python.org/2/library/functions.html#input) function. They get up to 8 guesses. After each guess, show the word with any instances of correctly guessed letters filled in. Show the number of tries left. Handle possible issues with user input in a consistent way.\n", + "* Continue to prompt the user until either they’ve used up their 8 guesses or solved.\n", + "* If they solve the puzzle in time, show the completed word and a congratulatory message.\n", + "* If they fail to solve the puzzle, show the completed word and a Game Over message.\n", + "\n", + "\n", + "Here’s a sample transcript.\n", + "> You have 8 guesses to solve this word. \n", + "\n", + ">------------------------------------------ \n", + "\n", + ">guess a letter or solve: b \n", + "\n", + ">b--b--b-- (7 tries left) \n", + "\n", + ">guess a letter or solve: x \n", + "\n", + ">b--b--b-- (6 tries left) \n", + "\n", + ">guess a letter or solve: e \n", + "\n", + ">b--b-ebee (5 tries left) \n", + "\n", + ">guess a letter or solve: bumblebee \n", + "\n", + ">bumblebee (4 tries left) \n", + "\n", + ">Congratulations, you won!\n", + "\n", + "1. Inputs: \n", + " 1. A `string` that will be tested to see whether or not it is part of the secret word. \n", + "2. Outputs: \n", + " 1. A message that shows the user the number of guessed letters at the time.\n", + " 2. A **success** message if the user wins, otherwise a **try again** message. \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/week3/.ipynb_checkpoints/02. Pandas Introduction-checkpoint.ipynb b/week3/.ipynb_checkpoints/02. Pandas Introduction-checkpoint.ipynb new file mode 100644 index 0000000..c7faeba --- /dev/null +++ b/week3/.ipynb_checkpoints/02. Pandas Introduction-checkpoint.ipynb @@ -0,0 +1,8400 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Big Data And Society: Lab 2\n", + "=====\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Forking the Repository\n", + "\n", + "If you already have a copy of the repo, you can jump down to the next step.\n", + "\n", + "First, let's fork the course repo. A fork is a copy of a repository. Unlike cloning, when you fork a repo, it is attached to your account, and you are free to modify it, and edit, without affecting the original version... which is desirable for the context of the class.\n", + "\n", + "1. First click fork on the github page\n", + "2. On GitHub, navigate to your fork of repository.\n", + "3. In the right sidebar of your fork's repository page, click to copy the clone URL for your fork.\n", + "4. Open Terminal (for Mac and Linux users) or the command prompt (for Windows users).\n", + "5. Type git clone, and then paste the URL you copied in Step 2. \n", + "\n", + "### Updating your Version to get Materials from the Main Class Repository\n", + "\n", + "To get the new materials from the main class repository, you need to commit any changes you've made locally and push them to your personal fork of the repo online. Then pull the repository from the main class repo.\n", + "\n", + "1. Type git remote add upstream, and then paste the URL https://github.com/civic-data-design-lab/big-data-spring2017.git (you might get a message saying that this already exists, this is fine, it means this has already been done.)\n", + "2. To verify the new upstream repository you've specified for your fork, type **git remote -v**. You should see the URL for your fork as origin (remember your fork has **your username** in it), and the URL for the original repository as upstream (the one with the **civic-data-design-lab** in the URL).\n", + "3. Before you pull the upstream master repo, commit any changes you've made locally by following these steps:\n", + "\n", + "===\n", + "\n", + "* Stage commits using **git add .**\n", + "* Commit your staged changes using **git commit -m \"my changes\"**\n", + "* Push your work to your forked repo. **git push origin master** (if you get a warning about LF conflicting with CRLF, this is not a problem, you can proceed)\n", + "\n", + "===\n", + " \n", + "This will update your forked repo with any local changes.\n", + " \n", + "4. Once this is done, **pull** the upstream repository (the main class repository). This will both fetch and merge the original repo into your local version. Do this using **git pull upstream master**\n", + "\n", + "Pulling from the remote repository will bring in its branches and their respective commits." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction to Pandas\n", + "![IPython](images/pandas.png \"Pandas\")\n", + "**Pandas** is a library for Python for data manipulation and analysis. Pandas expands the data processing capacities of Python and adds a number of classes for easily importing data, in particular numerical tables, from various formats into their DataFrame object. A `DataFrame` is Panda’s basic object that allows multidimensional data processing and indexing. `DataFrames` can be easily and efficiently queried without the need of cumbersome syntax and convoluted loops. `DataFrames` can be merged with other data, they can be sliced, and they can be reshaped; in a way, we can think of Pandas as a big data combination of Excel and SQL. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Resources\n", + "\n", + "Pandas employs a number of functional and declarative programming idioms making it a bit different from regulay Python syntax. However, it is very close to functionality to **NumPy**, treating objects as vectors. In this exercise, **NumPy** is generally used for math functions.\n", + "\n", + "You can get a Cheatsheet to ease the learning curve, and learn about some of its functionality:\n", + "\n", + "https://drive.google.com/folderview?id=0ByIrJAE4KMTtaGhRcXkxNHhmY2M&usp=sharing\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 0. Importing the library\n", + "First we need to import the library, and use a shorter name for it:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1. Pandas and Data Frames\n", + "\n", + "You can think of a dataframe as a manipulable, multidimension Python array. They are based off of numpy arrays, can hold structured data, and you can perform functions on them to manage data, such as query, select, join, group. Let's setup a really simple dataframe." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name
0Joey
1Jeremy
2Jenny
\n", + "
" + ], + "text/plain": [ + " name\n", + "0 Joey\n", + "1 Jeremy\n", + "2 Jenny" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Create empty dataframe\n", + "df = pd.DataFrame()\n", + "\n", + "# Create a column\n", + "df['name'] = ['Joey', 'Jeremy', 'Jenny']\n", + "\n", + "# View dataframe\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Say we want to add a column, its easy." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nameage
0Joey28
1Jeremy33
2Jenny27
\n", + "
" + ], + "text/plain": [ + " name age\n", + "0 Joey 28\n", + "1 Jeremy 33\n", + "2 Jenny 27" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Assign a new column to df called 'age' with a list of ages\n", + "df.assign(age = [28, 33, 27])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Data in this table can be manipulated, queried, sorted, and munged. Removing this for an inclass demo!\n", + "\n", + "### 2. Reading Files\n", + "\n", + "This is cool, but you don't normally load data like this though, it gets tedious!\n", + "\n", + "Pandas provides a number of reader functions that process files and return a pandas object or `DataFrame`. Multiple different file types can be read, like **csv**, **txt**, **xls**, and **json**. The function parses the tabular data contained in the files and returns a formatted and indexed `DataFrame`. A number of additional arguments can be speficied, allowing to define the type of separator for text files, the header, the column to use as an index, etc. \n", + "\n", + "Additional documentation can be found on the API: \n", + "http://pandas.pydata.org/pandas-docs/stable/index.html\n", + "\n", + "To start us off, lets look at a results file by precinct from the 2016 general election. This is an extract of results by precinct for Centre County, Pennsylvania.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
0CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNREGISTERED VOTERS - TOTALNaNNaNNaN10.0507.0NaNNaNNaN
1CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNBALLOTS CAST - TOTALNaNNaNNaN11.0391.0NaNNaNNaN
2CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNVOTER TURNOUT - TOTALNaNNaNNaN12.0NaN77.12NaNNaN
3CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1DEMOCRATIC17.046.040.35NaNNaN
4CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1REPUBLICAN18.066.057.89NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "0 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "1 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "2 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "3 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "4 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest Descr \\\n", + "0 1.0 01 BELLEFONTE NORTH NaN REGISTERED VOTERS - TOTAL NaN \n", + "1 1.0 01 BELLEFONTE NORTH NaN BALLOTS CAST - TOTAL NaN \n", + "2 1.0 01 BELLEFONTE NORTH NaN VOTER TURNOUT - TOTAL NaN \n", + "3 1.0 01 BELLEFONTE NORTH DEMOCRATIC STRAIGHT PARTY NaN \n", + "4 1.0 01 BELLEFONTE NORTH REPUBLICAN STRAIGHT PARTY NaN \n", + "\n", + " VoteFor Candidate Posn Count PctCnt Total PctTot \n", + "0 NaN NaN 10.0 507.0 NaN NaN NaN \n", + "1 NaN NaN 11.0 391.0 NaN NaN NaN \n", + "2 NaN NaN 12.0 NaN 77.12 NaN NaN \n", + "3 VOTE FOR NOT MORE THAN 1 DEMOCRATIC 17.0 46.0 40.35 NaN NaN \n", + "4 VOTE FOR NOT MORE THAN 1 REPUBLICAN 18.0 66.0 57.89 NaN NaN " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We are reading a CSV with election data\n", + "df = pd.read_table('data/centrecounty_precinct_results_nov2016.txt', sep=',')\n", + "\n", + "# We can print the first 5 rows of the df\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice we have a table! A spreadsheet! And it indexed the rows. Pandas (borrowing from R) calls it a DataFrame. Lets see the types of the columns.\n", + "\n", + "`df`, in Python context, is an instance of the `pd.DataFrame` class, created by calling the `pd.read_table` function, which calls the DataFrame constructor inside of it. `df` is a dataframe object.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2. DataFrame methods:\n", + "The df object, for example, has methods, or functions belonging to it, which allow it to do things. For example `df.head()` is a method that shows the first 5 rows of the dataframe. `df.dtypes` returns the data types of each of the columns. \n", + "\n", + "Additional documentation can be found here: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html\n", + "In general, the API is the best resource: http://pandas.pydata.org/pandas-docs/stable/api.html" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "County object\n", + "ElecYear float64\n", + "Election object\n", + "ElecDate object\n", + "PrecNo float64\n", + "PrecName object\n", + "Party object\n", + "Contest object\n", + "Descr float64\n", + "VoteFor object\n", + "Candidate object\n", + "Posn float64\n", + "Count float64\n", + "PctCnt float64\n", + "Total float64\n", + "PctTot float64\n", + "dtype: object" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.dtypes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The shape of the object is:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(3526, 16)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3526 rows times 16 columns. A spredsheet is a matrix. `df.shape` returns a tuple, so we can access members of this **tuple** like we do with a list:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(3526, 16)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape[0], df.shape[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "3526" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These are the column names:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['County', 'ElecYear', 'Election', 'ElecDate', 'PrecNo', 'PrecName',\n", + " 'Party', 'Contest', 'Descr', 'VoteFor', 'Candidate', 'Posn', 'Count',\n", + " 'PctCnt', 'Total', 'PctTot'],\n", + " dtype='object')" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that `df.columns` returns a `Pandas.Series` object. This object is built on top of the Python **lists**, and has similar methods and attributes. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Access an individual column." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 REGISTERED VOTERS - TOTAL\n", + "1 BALLOTS CAST - TOTAL\n", + "2 VOTER TURNOUT - TOTAL\n", + "3 STRAIGHT PARTY\n", + "4 STRAIGHT PARTY\n", + "5 STRAIGHT PARTY\n", + "6 STRAIGHT PARTY\n", + "7 STRAIGHT PARTY\n", + "8 PRESIDENTIAL ELECTORS\n", + "9 PRESIDENTIAL ELECTORS\n", + "10 PRESIDENTIAL ELECTORS\n", + "11 PRESIDENTIAL ELECTORS\n", + "12 PRESIDENTIAL ELECTORS\n", + "13 PRESIDENTIAL ELECTORS\n", + "14 UNITED STATES SENATOR\n", + "15 UNITED STATES SENATOR\n", + "16 UNITED STATES SENATOR\n", + "17 UNITED STATES SENATOR\n", + "18 ATTORNEY GENERAL\n", + "19 ATTORNEY GENERAL\n", + "20 ATTORNEY GENERAL\n", + "21 AUDITOR GENERAL\n", + "22 AUDITOR GENERAL\n", + "23 AUDITOR GENERAL\n", + "24 AUDITOR GENERAL\n", + "25 AUDITOR GENERAL\n", + "26 STATE TREASURER\n", + "27 STATE TREASURER\n", + "28 STATE TREASURER\n", + "29 STATE TREASURER\n", + " ... \n", + "3496 UNITED STATES SENATOR\n", + "3497 UNITED STATES SENATOR\n", + "3498 UNITED STATES SENATOR\n", + "3499 ATTORNEY GENERAL\n", + "3500 ATTORNEY GENERAL\n", + "3501 ATTORNEY GENERAL\n", + "3502 AUDITOR GENERAL\n", + "3503 AUDITOR GENERAL\n", + "3504 AUDITOR GENERAL\n", + "3505 AUDITOR GENERAL\n", + "3506 AUDITOR GENERAL\n", + "3507 STATE TREASURER\n", + "3508 STATE TREASURER\n", + "3509 STATE TREASURER\n", + "3510 STATE TREASURER\n", + "3511 STATE TREASURER\n", + "3512 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL\n", + "3513 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL\n", + "3514 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL\n", + "3515 REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST L...\n", + "3516 REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST L...\n", + "3517 REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST L...\n", + "3518 JUDGES AGE\n", + "3519 JUDGES AGE\n", + "3520 NaN\n", + "3521 NaN\n", + "3522 NaN\n", + "3523 NaN\n", + "3524 NaN\n", + "3525 NaN\n", + "Name: Contest, dtype: object" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.Contest" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use the unique() function to find the unique values in each column. Let's find the unique values in the Contest column" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['REGISTERED VOTERS - TOTAL', 'BALLOTS CAST - TOTAL',\n", + " 'VOTER TURNOUT - TOTAL', 'STRAIGHT PARTY', 'PRESIDENTIAL ELECTORS',\n", + " 'UNITED STATES SENATOR', 'ATTORNEY GENERAL', 'AUDITOR GENERAL',\n", + " 'STATE TREASURER', 'REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST LEGISLATIVE',\n", + " 'JUDGES AGE',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LEGISLATIVE',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 77TH LEGISLATIVE',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 81ST LEGISLATIVE', nan], dtype=object)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.Contest.unique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now lets get multiple columns:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ContestPrecNoCount
0REGISTERED VOTERS - TOTAL1.0507.0
1BALLOTS CAST - TOTAL1.0391.0
2VOTER TURNOUT - TOTAL1.0NaN
3STRAIGHT PARTY1.046.0
4STRAIGHT PARTY1.066.0
\n", + "
" + ], + "text/plain": [ + " Contest PrecNo Count\n", + "0 REGISTERED VOTERS - TOTAL 1.0 507.0\n", + "1 BALLOTS CAST - TOTAL 1.0 391.0\n", + "2 VOTER TURNOUT - TOTAL 1.0 NaN\n", + "3 STRAIGHT PARTY 1.0 46.0\n", + "4 STRAIGHT PARTY 1.0 66.0" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_multipleColumns = df[['Contest','PrecNo', 'Count']]\n", + "df_multipleColumns.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3. Querying\n", + "\n", + "Pandas `DataFrames` have built-in methods for performing queries in a SQL style. They can be diced, sorted, etc it. We can apply any of this queries to parts of the `df`, and based on this query select subsets of the whole `df`. Let's do some filtering and querying.\n", + "\n", + "The output of this is a series." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 True\n", + "1 True\n", + "2 True\n", + "3 True\n", + "4 True\n", + "5 True\n", + "6 True\n", + "7 True\n", + "8 True\n", + "9 True\n", + "10 True\n", + "11 True\n", + "12 True\n", + "13 True\n", + "14 True\n", + "15 True\n", + "16 True\n", + "17 True\n", + "18 True\n", + "19 True\n", + "20 True\n", + "21 True\n", + "22 True\n", + "23 True\n", + "24 True\n", + "25 True\n", + "26 True\n", + "27 True\n", + "28 True\n", + "29 True\n", + " ... \n", + "3496 False\n", + "3497 False\n", + "3498 False\n", + "3499 False\n", + "3500 False\n", + "3501 False\n", + "3502 False\n", + "3503 False\n", + "3504 False\n", + "3505 False\n", + "3506 False\n", + "3507 False\n", + "3508 False\n", + "3509 False\n", + "3510 False\n", + "3511 False\n", + "3512 False\n", + "3513 False\n", + "3514 False\n", + "3515 False\n", + "3516 False\n", + "3517 False\n", + "3518 False\n", + "3519 False\n", + "3520 False\n", + "3521 False\n", + "3522 False\n", + "3523 False\n", + "3524 False\n", + "3525 False\n", + "Name: PrecNo, dtype: bool" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['PrecNo'] == 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To print out the table with only the rows we want, we can apply what is called a filter. The above is a series. Let's take a look again at **Precinct 1**. We can use the `df` mask to get a filtered dataframe: we use the mask to \"index\" into the dataframe to get the rows we want." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_precinct1 = df[df['PrecNo'] == 1]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
0CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNREGISTERED VOTERS - TOTALNaNNaNNaN10.0507.0NaNNaNNaN
1CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNBALLOTS CAST - TOTALNaNNaNNaN11.0391.0NaNNaNNaN
2CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNVOTER TURNOUT - TOTALNaNNaNNaN12.0NaN77.12NaNNaN
3CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1DEMOCRATIC17.046.040.35NaNNaN
4CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1REPUBLICAN18.066.057.89NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "0 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "1 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "2 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "3 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "4 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest Descr \\\n", + "0 1.0 01 BELLEFONTE NORTH NaN REGISTERED VOTERS - TOTAL NaN \n", + "1 1.0 01 BELLEFONTE NORTH NaN BALLOTS CAST - TOTAL NaN \n", + "2 1.0 01 BELLEFONTE NORTH NaN VOTER TURNOUT - TOTAL NaN \n", + "3 1.0 01 BELLEFONTE NORTH DEMOCRATIC STRAIGHT PARTY NaN \n", + "4 1.0 01 BELLEFONTE NORTH REPUBLICAN STRAIGHT PARTY NaN \n", + "\n", + " VoteFor Candidate Posn Count PctCnt Total PctTot \n", + "0 NaN NaN 10.0 507.0 NaN NaN NaN \n", + "1 NaN NaN 11.0 391.0 NaN NaN NaN \n", + "2 NaN NaN 12.0 NaN 77.12 NaN NaN \n", + "3 VOTE FOR NOT MORE THAN 1 DEMOCRATIC 17.0 46.0 40.35 NaN NaN \n", + "4 VOTE FOR NOT MORE THAN 1 REPUBLICAN 18.0 66.0 57.89 NaN NaN " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_precinct1.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can query based on multiple conditions, by using a `&` condition. All we need to do is add `()` brackets around each condition. The query uses a boolean AND. Each condition ceates a mask of trues and falses." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
195CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNREGISTERED VOTERS - TOTALNaNNaNNaN435.0892.0NaNNaNNaN
196CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNBALLOTS CAST - TOTALNaNNaNNaN436.0709.0NaNNaNNaN
197CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNVOTER TURNOUT - TOTALNaNNaNNaN437.0NaN79.48NaNNaN
198CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1DEMOCRATIC442.062.031.00NaNNaN
199CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1REPUBLICAN443.0134.067.00NaNNaN
200CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLCONSTITUTION PARTYSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1CONSTITUTION PARTY444.00.0NaNNaNNaN
201CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1GREEN445.02.01.00NaNNaN
202CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1LIBERTARIAN446.02.01.00NaNNaN
203CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT451.0230.032.53NaNNaN
204CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT452.0443.062.66NaNNaN
205CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT453.02.00.28NaNNaN
206CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT454.02.00.28NaNNaN
207CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT455.023.03.25NaNNaN
208CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN456.07.00.99NaNNaN
209CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1KATIE MCGINTY461.0239.034.09NaNNaN
210CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1PAT TOOMEY462.0400.057.06NaNNaN
211CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1EDWARD T CLIFFORD, III463.062.08.84NaNNaN
212CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1WRITE-IN464.00.0NaNNaNNaN
213CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOSH SHAPIRO469.0278.040.12NaNNaN
214CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOHN RAFFERTY470.0415.059.88NaNNaN
215CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN471.00.0NaNNaNNaN
216CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1EUGENE A DEPASQUALE476.0255.037.28NaNNaN
217CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN BROWN477.0385.056.29NaNNaN
218CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN J SWEENEY478.022.03.22NaNNaN
219CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1ROY A MINET479.022.03.22NaNNaN
220CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN480.00.0NaNNaNNaN
221CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JOE TORSELLA485.0250.036.76NaNNaN
222CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1OTTO VOIT486.0365.053.68NaNNaN
223CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1KRISTIN COMBS487.047.06.91NaNNaN
224CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JAMES BABB488.018.02.65NaNNaN
...................................................
243CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT537.0228.060.48NaNNaN
244CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT538.04.01.06NaNNaN
245CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT539.01.00.27NaNNaN
246CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT540.018.04.77NaNNaN
247CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN541.04.01.06NaNNaN
248CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1KATIE MCGINTY546.0124.033.16NaNNaN
249CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1PAT TOOMEY547.0218.058.29NaNNaN
250CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1EDWARD T CLIFFORD, III548.032.08.56NaNNaN
251CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1WRITE-IN549.00.0NaNNaNNaN
252CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOSH SHAPIRO554.0137.037.03NaNNaN
253CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOHN RAFFERTY555.0233.062.97NaNNaN
254CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN556.00.0NaNNaNNaN
255CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1EUGENE A DEPASQUALE561.0137.037.03NaNNaN
256CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN BROWN562.0197.053.24NaNNaN
257CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROGREENAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN J SWEENEY563.017.04.59NaNNaN
258CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1ROY A MINET564.019.05.14NaNNaN
259CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN565.00.0NaNNaNNaN
260CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JOE TORSELLA570.0131.035.60NaNNaN
261CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1OTTO VOIT571.0194.052.72NaNNaN
262CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROGREENSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1KRISTIN COMBS572.022.05.98NaNNaN
263CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JAMES BABB573.021.05.71NaNNaN
264CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1WRITE-IN574.00.0NaNNaNNaN
265CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICREPRESENTATIVE IN CONGRESS 5TH CONGRESSIONALNaNVOTE FOR NOT MORE THAN 1KERITH STRANO TAYLOR578.094.025.47NaNNaN
266CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANREPRESENTATIVE IN CONGRESS 5TH CONGRESSIONALNaNVOTE FOR NOT MORE THAN 1GLENN GT THOMPSON579.0275.074.53NaNNaN
267CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNREPRESENTATIVE IN CONGRESS 5TH CONGRESSIONALNaNVOTE FOR NOT MORE THAN 1WRITE-IN580.00.0NaNNaNNaN
268CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICREPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE...NaNVOTE FOR NOT MORE THAN 1MIKE HANNA585.0178.048.11NaNNaN
269CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANREPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE...NaNVOTE FOR NOT MORE THAN 1STEPHANIE BOROWICZ586.0191.051.62NaNNaN
270CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNREPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE...NaNVOTE FOR NOT MORE THAN 1WRITE-IN587.01.00.27NaNNaN
271CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNJUDGES AGENaNVOTE FOR NOT MORE THAN 1YES592.0159.052.13NaNNaN
272CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNJUDGES AGENaNVOTE FOR NOT MORE THAN 1NO593.0146.047.87NaNNaN
\n", + "

78 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "195 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "196 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "197 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "198 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "199 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "200 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "201 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "202 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "203 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "204 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "205 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "206 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "207 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "208 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "209 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "210 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "211 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "212 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "213 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "214 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "215 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "216 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "217 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "218 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "219 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "220 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "221 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "222 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "223 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "224 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + ".. ... ... ... ... \n", + "243 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "244 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "245 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "246 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "247 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "248 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "249 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "250 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "251 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "252 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "253 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "254 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "255 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "256 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "257 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "258 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "259 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "260 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "261 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "262 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "263 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "264 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "265 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "266 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "267 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "268 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "269 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "270 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "271 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "272 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party \\\n", + "195 6.0 06 CENTRE HALL NaN \n", + "196 6.0 06 CENTRE HALL NaN \n", + "197 6.0 06 CENTRE HALL NaN \n", + "198 6.0 06 CENTRE HALL DEMOCRATIC \n", + "199 6.0 06 CENTRE HALL REPUBLICAN \n", + "200 6.0 06 CENTRE HALL CONSTITUTION PARTY \n", + "201 6.0 06 CENTRE HALL GREEN \n", + "202 6.0 06 CENTRE HALL LIBERTARIAN \n", + "203 6.0 06 CENTRE HALL DEMOCRATIC \n", + "204 6.0 06 CENTRE HALL REPUBLICAN \n", + "205 6.0 06 CENTRE HALL CONSTITUTION PARTY \n", + "206 6.0 06 CENTRE HALL GREEN \n", + "207 6.0 06 CENTRE HALL LIBERTARIAN \n", + "208 6.0 06 CENTRE HALL NaN \n", + "209 6.0 06 CENTRE HALL DEMOCRATIC \n", + "210 6.0 06 CENTRE HALL REPUBLICAN \n", + "211 6.0 06 CENTRE HALL LIBERTARIAN \n", + "212 6.0 06 CENTRE HALL NaN \n", + "213 6.0 06 CENTRE HALL DEMOCRATIC \n", + "214 6.0 06 CENTRE HALL REPUBLICAN \n", + "215 6.0 06 CENTRE HALL NaN \n", + "216 6.0 06 CENTRE HALL DEMOCRATIC \n", + "217 6.0 06 CENTRE HALL REPUBLICAN \n", + "218 6.0 06 CENTRE HALL GREEN \n", + "219 6.0 06 CENTRE HALL LIBERTARIAN \n", + "220 6.0 06 CENTRE HALL NaN \n", + "221 6.0 06 CENTRE HALL DEMOCRATIC \n", + "222 6.0 06 CENTRE HALL REPUBLICAN \n", + "223 6.0 06 CENTRE HALL GREEN \n", + "224 6.0 06 CENTRE HALL LIBERTARIAN \n", + ".. ... ... ... \n", + "243 7.0 07 HOWARD BORO REPUBLICAN \n", + "244 7.0 07 HOWARD BORO CONSTITUTION PARTY \n", + "245 7.0 07 HOWARD BORO GREEN \n", + "246 7.0 07 HOWARD BORO LIBERTARIAN \n", + "247 7.0 07 HOWARD BORO NaN \n", + "248 7.0 07 HOWARD BORO DEMOCRATIC \n", + "249 7.0 07 HOWARD BORO REPUBLICAN \n", + "250 7.0 07 HOWARD BORO LIBERTARIAN \n", + "251 7.0 07 HOWARD BORO NaN \n", + "252 7.0 07 HOWARD BORO DEMOCRATIC \n", + "253 7.0 07 HOWARD BORO REPUBLICAN \n", + "254 7.0 07 HOWARD BORO NaN \n", + "255 7.0 07 HOWARD BORO DEMOCRATIC \n", + "256 7.0 07 HOWARD BORO REPUBLICAN \n", + "257 7.0 07 HOWARD BORO GREEN \n", + "258 7.0 07 HOWARD BORO LIBERTARIAN \n", + "259 7.0 07 HOWARD BORO NaN \n", + "260 7.0 07 HOWARD BORO DEMOCRATIC \n", + "261 7.0 07 HOWARD BORO REPUBLICAN \n", + "262 7.0 07 HOWARD BORO GREEN \n", + "263 7.0 07 HOWARD BORO LIBERTARIAN \n", + "264 7.0 07 HOWARD BORO NaN \n", + "265 7.0 07 HOWARD BORO DEMOCRATIC \n", + "266 7.0 07 HOWARD BORO REPUBLICAN \n", + "267 7.0 07 HOWARD BORO NaN \n", + "268 7.0 07 HOWARD BORO DEMOCRATIC \n", + "269 7.0 07 HOWARD BORO REPUBLICAN \n", + "270 7.0 07 HOWARD BORO NaN \n", + "271 7.0 07 HOWARD BORO NaN \n", + "272 7.0 07 HOWARD BORO NaN \n", + "\n", + " Contest Descr \\\n", + "195 REGISTERED VOTERS - TOTAL NaN \n", + "196 BALLOTS CAST - TOTAL NaN \n", + "197 VOTER TURNOUT - TOTAL NaN \n", + "198 STRAIGHT PARTY NaN \n", + "199 STRAIGHT PARTY NaN \n", + "200 STRAIGHT PARTY NaN \n", + "201 STRAIGHT PARTY NaN \n", + "202 STRAIGHT PARTY NaN \n", + "203 PRESIDENTIAL ELECTORS NaN \n", + "204 PRESIDENTIAL ELECTORS NaN \n", + "205 PRESIDENTIAL ELECTORS NaN \n", + "206 PRESIDENTIAL ELECTORS NaN \n", + "207 PRESIDENTIAL ELECTORS NaN \n", + "208 PRESIDENTIAL ELECTORS NaN \n", + "209 UNITED STATES SENATOR NaN \n", + "210 UNITED STATES SENATOR NaN \n", + "211 UNITED STATES SENATOR NaN \n", + "212 UNITED STATES SENATOR NaN \n", + "213 ATTORNEY GENERAL NaN \n", + "214 ATTORNEY GENERAL NaN \n", + "215 ATTORNEY GENERAL NaN \n", + "216 AUDITOR GENERAL NaN \n", + "217 AUDITOR GENERAL NaN \n", + "218 AUDITOR GENERAL NaN \n", + "219 AUDITOR GENERAL NaN \n", + "220 AUDITOR GENERAL NaN \n", + "221 STATE TREASURER NaN \n", + "222 STATE TREASURER NaN \n", + "223 STATE TREASURER NaN \n", + "224 STATE TREASURER NaN \n", + ".. ... ... \n", + "243 PRESIDENTIAL ELECTORS NaN \n", + "244 PRESIDENTIAL ELECTORS NaN \n", + "245 PRESIDENTIAL ELECTORS NaN \n", + "246 PRESIDENTIAL ELECTORS NaN \n", + "247 PRESIDENTIAL ELECTORS NaN \n", + "248 UNITED STATES SENATOR NaN \n", + "249 UNITED STATES SENATOR NaN \n", + "250 UNITED STATES SENATOR NaN \n", + "251 UNITED STATES SENATOR NaN \n", + "252 ATTORNEY GENERAL NaN \n", + "253 ATTORNEY GENERAL NaN \n", + "254 ATTORNEY GENERAL NaN \n", + "255 AUDITOR GENERAL NaN \n", + "256 AUDITOR GENERAL NaN \n", + "257 AUDITOR GENERAL NaN \n", + "258 AUDITOR GENERAL NaN \n", + "259 AUDITOR GENERAL NaN \n", + "260 STATE TREASURER NaN \n", + "261 STATE TREASURER NaN \n", + "262 STATE TREASURER NaN \n", + "263 STATE TREASURER NaN \n", + "264 STATE TREASURER NaN \n", + "265 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL NaN \n", + "266 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL NaN \n", + "267 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL NaN \n", + "268 REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE... NaN \n", + "269 REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE... NaN \n", + "270 REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE... NaN \n", + "271 JUDGES AGE NaN \n", + "272 JUDGES AGE NaN \n", + "\n", + " VoteFor Candidate Posn Count \\\n", + "195 NaN NaN 435.0 892.0 \n", + "196 NaN NaN 436.0 709.0 \n", + "197 NaN NaN 437.0 NaN \n", + "198 VOTE FOR NOT MORE THAN 1 DEMOCRATIC 442.0 62.0 \n", + "199 VOTE FOR NOT MORE THAN 1 REPUBLICAN 443.0 134.0 \n", + "200 VOTE FOR NOT MORE THAN 1 CONSTITUTION PARTY 444.0 0.0 \n", + "201 VOTE FOR NOT MORE THAN 1 GREEN 445.0 2.0 \n", + "202 VOTE FOR NOT MORE THAN 1 LIBERTARIAN 446.0 2.0 \n", + "203 VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 451.0 230.0 \n", + "204 VOTE FOR NOT MORE THAN 1 DONALD J TRUMP, PRESIDENT 452.0 443.0 \n", + "205 VOTE FOR NOT MORE THAN 1 DARRELL L CASTLE, PRESIDENT 453.0 2.0 \n", + "206 VOTE FOR NOT MORE THAN 1 JILL STEIN, PRESIDENT 454.0 2.0 \n", + "207 VOTE FOR NOT MORE THAN 1 GARY JOHNSON, PRESIDENT 455.0 23.0 \n", + "208 VOTE FOR NOT MORE THAN 1 WRITE-IN 456.0 7.0 \n", + "209 VOTE FOR NOT MORE THAN 1 KATIE MCGINTY 461.0 239.0 \n", + "210 VOTE FOR NOT MORE THAN 1 PAT TOOMEY 462.0 400.0 \n", + "211 VOTE FOR NOT MORE THAN 1 EDWARD T CLIFFORD, III 463.0 62.0 \n", + "212 VOTE FOR NOT MORE THAN 1 WRITE-IN 464.0 0.0 \n", + "213 VOTE FOR NOT MORE THAN 1 JOSH SHAPIRO 469.0 278.0 \n", + "214 VOTE FOR NOT MORE THAN 1 JOHN RAFFERTY 470.0 415.0 \n", + "215 VOTE FOR NOT MORE THAN 1 WRITE-IN 471.0 0.0 \n", + "216 VOTE FOR NOT MORE THAN 1 EUGENE A DEPASQUALE 476.0 255.0 \n", + "217 VOTE FOR NOT MORE THAN 1 JOHN BROWN 477.0 385.0 \n", + "218 VOTE FOR NOT MORE THAN 1 JOHN J SWEENEY 478.0 22.0 \n", + "219 VOTE FOR NOT MORE THAN 1 ROY A MINET 479.0 22.0 \n", + "220 VOTE FOR NOT MORE THAN 1 WRITE-IN 480.0 0.0 \n", + "221 VOTE FOR NOT MORE THAN 1 JOE TORSELLA 485.0 250.0 \n", + "222 VOTE FOR NOT MORE THAN 1 OTTO VOIT 486.0 365.0 \n", + "223 VOTE FOR NOT MORE THAN 1 KRISTIN COMBS 487.0 47.0 \n", + "224 VOTE FOR NOT MORE THAN 1 JAMES BABB 488.0 18.0 \n", + ".. ... ... ... ... \n", + "243 VOTE FOR NOT MORE THAN 1 DONALD J TRUMP, PRESIDENT 537.0 228.0 \n", + "244 VOTE FOR NOT MORE THAN 1 DARRELL L CASTLE, PRESIDENT 538.0 4.0 \n", + "245 VOTE FOR NOT MORE THAN 1 JILL STEIN, PRESIDENT 539.0 1.0 \n", + "246 VOTE FOR NOT MORE THAN 1 GARY JOHNSON, PRESIDENT 540.0 18.0 \n", + "247 VOTE FOR NOT MORE THAN 1 WRITE-IN 541.0 4.0 \n", + "248 VOTE FOR NOT MORE THAN 1 KATIE MCGINTY 546.0 124.0 \n", + "249 VOTE FOR NOT MORE THAN 1 PAT TOOMEY 547.0 218.0 \n", + "250 VOTE FOR NOT MORE THAN 1 EDWARD T CLIFFORD, III 548.0 32.0 \n", + "251 VOTE FOR NOT MORE THAN 1 WRITE-IN 549.0 0.0 \n", + "252 VOTE FOR NOT MORE THAN 1 JOSH SHAPIRO 554.0 137.0 \n", + "253 VOTE FOR NOT MORE THAN 1 JOHN RAFFERTY 555.0 233.0 \n", + "254 VOTE FOR NOT MORE THAN 1 WRITE-IN 556.0 0.0 \n", + "255 VOTE FOR NOT MORE THAN 1 EUGENE A DEPASQUALE 561.0 137.0 \n", + "256 VOTE FOR NOT MORE THAN 1 JOHN BROWN 562.0 197.0 \n", + "257 VOTE FOR NOT MORE THAN 1 JOHN J SWEENEY 563.0 17.0 \n", + "258 VOTE FOR NOT MORE THAN 1 ROY A MINET 564.0 19.0 \n", + "259 VOTE FOR NOT MORE THAN 1 WRITE-IN 565.0 0.0 \n", + "260 VOTE FOR NOT MORE THAN 1 JOE TORSELLA 570.0 131.0 \n", + "261 VOTE FOR NOT MORE THAN 1 OTTO VOIT 571.0 194.0 \n", + "262 VOTE FOR NOT MORE THAN 1 KRISTIN COMBS 572.0 22.0 \n", + "263 VOTE FOR NOT MORE THAN 1 JAMES BABB 573.0 21.0 \n", + "264 VOTE FOR NOT MORE THAN 1 WRITE-IN 574.0 0.0 \n", + "265 VOTE FOR NOT MORE THAN 1 KERITH STRANO TAYLOR 578.0 94.0 \n", + "266 VOTE FOR NOT MORE THAN 1 GLENN GT THOMPSON 579.0 275.0 \n", + "267 VOTE FOR NOT MORE THAN 1 WRITE-IN 580.0 0.0 \n", + "268 VOTE FOR NOT MORE THAN 1 MIKE HANNA 585.0 178.0 \n", + "269 VOTE FOR NOT MORE THAN 1 STEPHANIE BOROWICZ 586.0 191.0 \n", + "270 VOTE FOR NOT MORE THAN 1 WRITE-IN 587.0 1.0 \n", + "271 VOTE FOR NOT MORE THAN 1 YES 592.0 159.0 \n", + "272 VOTE FOR NOT MORE THAN 1 NO 593.0 146.0 \n", + "\n", + " PctCnt Total PctTot \n", + "195 NaN NaN NaN \n", + "196 NaN NaN NaN \n", + "197 79.48 NaN NaN \n", + "198 31.00 NaN NaN \n", + "199 67.00 NaN NaN \n", + "200 NaN NaN NaN \n", + "201 1.00 NaN NaN \n", + "202 1.00 NaN NaN \n", + "203 32.53 NaN NaN \n", + "204 62.66 NaN NaN \n", + "205 0.28 NaN NaN \n", + "206 0.28 NaN NaN \n", + "207 3.25 NaN NaN \n", + "208 0.99 NaN NaN \n", + "209 34.09 NaN NaN \n", + "210 57.06 NaN NaN \n", + "211 8.84 NaN NaN \n", + "212 NaN NaN NaN \n", + "213 40.12 NaN NaN \n", + "214 59.88 NaN NaN \n", + "215 NaN NaN NaN \n", + "216 37.28 NaN NaN \n", + "217 56.29 NaN NaN \n", + "218 3.22 NaN NaN \n", + "219 3.22 NaN NaN \n", + "220 NaN NaN NaN \n", + "221 36.76 NaN NaN \n", + "222 53.68 NaN NaN \n", + "223 6.91 NaN NaN \n", + "224 2.65 NaN NaN \n", + ".. ... ... ... \n", + "243 60.48 NaN NaN \n", + "244 1.06 NaN NaN \n", + "245 0.27 NaN NaN \n", + "246 4.77 NaN NaN \n", + "247 1.06 NaN NaN \n", + "248 33.16 NaN NaN \n", + "249 58.29 NaN NaN \n", + "250 8.56 NaN NaN \n", + "251 NaN NaN NaN \n", + "252 37.03 NaN NaN \n", + "253 62.97 NaN NaN \n", + "254 NaN NaN NaN \n", + "255 37.03 NaN NaN \n", + "256 53.24 NaN NaN \n", + "257 4.59 NaN NaN \n", + "258 5.14 NaN NaN \n", + "259 NaN NaN NaN \n", + "260 35.60 NaN NaN \n", + "261 52.72 NaN NaN \n", + "262 5.98 NaN NaN \n", + "263 5.71 NaN NaN \n", + "264 NaN NaN NaN \n", + "265 25.47 NaN NaN \n", + "266 74.53 NaN NaN \n", + "267 NaN NaN NaN \n", + "268 48.11 NaN NaN \n", + "269 51.62 NaN NaN \n", + "270 0.27 NaN NaN \n", + "271 52.13 NaN NaN \n", + "272 47.87 NaN NaN \n", + "\n", + "[78 rows x 16 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[(df['PrecNo'] < 8) & (df['PrecNo'] > 5)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Because this dataset contains all of the different contests in the November generals, we can use a query to pull out just the presidential election. Here we use [df.loc](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html) to select by label and find only those listings for the presidential election." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
8CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT26.0188.048.08NaNNaN
9CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT27.0174.044.50NaNNaN
10CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT28.02.00.51NaNNaN
11CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT29.03.00.77NaNNaN
12CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT30.022.05.63NaNNaN
13CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN31.02.00.51NaNNaN
47CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT111.0259.038.14NaNNaN
48CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT112.0385.056.70NaNNaN
49CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT113.09.01.33NaNNaN
50CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT114.07.01.03NaNNaN
51CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT115.010.01.47NaNNaN
52CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN116.09.01.33NaNNaN
86CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT196.0230.050.33NaNNaN
87CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT197.0193.042.23NaNNaN
88CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT198.06.01.31NaNNaN
89CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT199.04.00.88NaNNaN
90CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT200.017.03.72NaNNaN
91CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN201.07.01.53NaNNaN
125CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT281.0283.039.47NaNNaN
126CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT282.0375.052.30NaNNaN
127CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT283.06.00.84NaNNaN
128CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT284.010.01.39NaNNaN
129CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT285.035.04.88NaNNaN
130CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN286.08.01.12NaNNaN
164CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT366.0443.048.05NaNNaN
165CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT367.0398.043.17NaNNaN
166CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT368.07.00.76NaNNaN
167CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT369.013.01.41NaNNaN
168CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT370.048.05.21NaNNaN
169CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN371.013.01.41NaNNaN
...................................................
3333CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7311.0343.037.40NaNNaN
3334CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7312.0509.055.51NaNNaN
3335CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7313.06.00.65NaNNaN
3336CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7314.05.00.55NaNNaN
3337CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7315.044.04.80NaNNaN
3338CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7316.010.01.09NaNNaN
3372CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7396.0642.064.46NaNNaN
3373CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7397.0292.029.32NaNNaN
3374CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3CONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7398.09.00.90NaNNaN
3375CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3GREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7399.010.01.00NaNNaN
3376CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3LIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7400.019.01.91NaNNaN
3377CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3NaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7401.024.02.41NaNNaN
3411CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7481.0628.057.67NaNNaN
3412CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7482.0391.035.90NaNNaN
3413CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7483.03.00.28NaNNaN
3414CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7484.06.00.55NaNNaN
3415CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7485.039.03.58NaNNaN
3416CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7486.022.02.02NaNNaN
3450CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7566.0394.039.44NaNNaN
3451CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7567.0536.053.65NaNNaN
3452CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7568.00.0NaNNaNNaN
3453CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7569.013.01.30NaNNaN
3454CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7570.037.03.70NaNNaN
3455CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7571.019.01.90NaNNaN
3489CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7651.0396.055.54NaNNaN
3490CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7652.0281.039.41NaNNaN
3491CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7653.01.00.14NaNNaN
3492CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7654.06.00.84NaNNaN
3493CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7655.016.02.24NaNNaN
3494CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7656.013.01.82NaNNaN
\n", + "

546 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "8 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "9 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "10 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "11 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "12 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "13 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "47 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "48 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "49 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "50 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "51 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "52 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "86 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "87 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "88 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "89 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "90 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "91 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "125 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "126 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "127 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "128 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "129 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "130 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "164 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "165 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "166 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "167 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "168 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "169 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "... ... ... ... \n", + "3333 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3334 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3335 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3336 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3337 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3338 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3372 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3373 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3374 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3375 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3376 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3377 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3411 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3412 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3413 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3414 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3415 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3416 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3450 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3451 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3452 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3453 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3454 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3455 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3489 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3490 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3491 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3492 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3493 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3494 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party \\\n", + "8 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH DEMOCRATIC \n", + "9 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH REPUBLICAN \n", + "10 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH CONSTITUTION PARTY \n", + "11 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH GREEN \n", + "12 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH LIBERTARIAN \n", + "13 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH NaN \n", + "47 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST DEMOCRATIC \n", + "48 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST REPUBLICAN \n", + "49 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST CONSTITUTION PARTY \n", + "50 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST GREEN \n", + "51 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST LIBERTARIAN \n", + "52 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST NaN \n", + "86 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH DEMOCRATIC \n", + "87 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH REPUBLICAN \n", + "88 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH CONSTITUTION PARTY \n", + "89 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH GREEN \n", + "90 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH LIBERTARIAN \n", + "91 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH NaN \n", + "125 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST DEMOCRATIC \n", + "126 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST REPUBLICAN \n", + "127 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST CONSTITUTION PARTY \n", + "128 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST GREEN \n", + "129 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST LIBERTARIAN \n", + "130 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST NaN \n", + "164 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST DEMOCRATIC \n", + "165 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST REPUBLICAN \n", + "166 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST CONSTITUTION PARTY \n", + "167 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST GREEN \n", + "168 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST LIBERTARIAN \n", + "169 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST NaN \n", + "... ... ... ... ... \n", + "3333 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST DEMOCRATIC \n", + "3334 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST REPUBLICAN \n", + "3335 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST CONSTITUTION PARTY \n", + "3336 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST GREEN \n", + "3337 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST LIBERTARIAN \n", + "3338 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST NaN \n", + "3372 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 DEMOCRATIC \n", + "3373 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 REPUBLICAN \n", + "3374 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 CONSTITUTION PARTY \n", + "3375 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 GREEN \n", + "3376 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 LIBERTARIAN \n", + "3377 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 NaN \n", + "3411 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL DEMOCRATIC \n", + "3412 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL REPUBLICAN \n", + "3413 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL CONSTITUTION PARTY \n", + "3414 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL GREEN \n", + "3415 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL LIBERTARIAN \n", + "3416 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL NaN \n", + "3450 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL DEMOCRATIC \n", + "3451 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL REPUBLICAN \n", + "3452 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL CONSTITUTION PARTY \n", + "3453 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL GREEN \n", + "3454 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL LIBERTARIAN \n", + "3455 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL NaN \n", + "3489 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL DEMOCRATIC \n", + "3490 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL REPUBLICAN \n", + "3491 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL CONSTITUTION PARTY \n", + "3492 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL GREEN \n", + "3493 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL LIBERTARIAN \n", + "3494 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL NaN \n", + "\n", + " Contest Descr VoteFor \\\n", + "8 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "9 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "10 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "11 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "12 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "13 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "47 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "48 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "49 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "50 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "51 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "52 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "86 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "87 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "88 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "89 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "90 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "91 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "125 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "126 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "127 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "128 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "129 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "130 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "164 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "165 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "166 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "167 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "168 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "169 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "... ... ... ... \n", + "3333 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3334 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3335 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3336 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3337 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3338 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3372 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3373 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3374 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3375 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3376 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3377 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3411 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3412 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3413 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3414 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3415 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3416 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3450 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3451 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3452 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3453 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3454 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3455 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3489 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3490 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3491 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3492 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3493 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3494 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "\n", + " Candidate Posn Count PctCnt Total PctTot \n", + "8 HILLARY CLINTON, PRESIDENT 26.0 188.0 48.08 NaN NaN \n", + "9 DONALD J TRUMP, PRESIDENT 27.0 174.0 44.50 NaN NaN \n", + "10 DARRELL L CASTLE, PRESIDENT 28.0 2.0 0.51 NaN NaN \n", + "11 JILL STEIN, PRESIDENT 29.0 3.0 0.77 NaN NaN \n", + "12 GARY JOHNSON, PRESIDENT 30.0 22.0 5.63 NaN NaN \n", + "13 WRITE-IN 31.0 2.0 0.51 NaN NaN \n", + "47 HILLARY CLINTON, PRESIDENT 111.0 259.0 38.14 NaN NaN \n", + "48 DONALD J TRUMP, PRESIDENT 112.0 385.0 56.70 NaN NaN \n", + "49 DARRELL L CASTLE, PRESIDENT 113.0 9.0 1.33 NaN NaN \n", + "50 JILL STEIN, PRESIDENT 114.0 7.0 1.03 NaN NaN \n", + "51 GARY JOHNSON, PRESIDENT 115.0 10.0 1.47 NaN NaN \n", + "52 WRITE-IN 116.0 9.0 1.33 NaN NaN \n", + "86 HILLARY CLINTON, PRESIDENT 196.0 230.0 50.33 NaN NaN \n", + "87 DONALD J TRUMP, PRESIDENT 197.0 193.0 42.23 NaN NaN \n", + "88 DARRELL L CASTLE, PRESIDENT 198.0 6.0 1.31 NaN NaN \n", + "89 JILL STEIN, PRESIDENT 199.0 4.0 0.88 NaN NaN \n", + "90 GARY JOHNSON, PRESIDENT 200.0 17.0 3.72 NaN NaN \n", + "91 WRITE-IN 201.0 7.0 1.53 NaN NaN \n", + "125 HILLARY CLINTON, PRESIDENT 281.0 283.0 39.47 NaN NaN \n", + "126 DONALD J TRUMP, PRESIDENT 282.0 375.0 52.30 NaN NaN \n", + "127 DARRELL L CASTLE, PRESIDENT 283.0 6.0 0.84 NaN NaN \n", + "128 JILL STEIN, PRESIDENT 284.0 10.0 1.39 NaN NaN \n", + "129 GARY JOHNSON, PRESIDENT 285.0 35.0 4.88 NaN NaN \n", + "130 WRITE-IN 286.0 8.0 1.12 NaN NaN \n", + "164 HILLARY CLINTON, PRESIDENT 366.0 443.0 48.05 NaN NaN \n", + "165 DONALD J TRUMP, PRESIDENT 367.0 398.0 43.17 NaN NaN \n", + "166 DARRELL L CASTLE, PRESIDENT 368.0 7.0 0.76 NaN NaN \n", + "167 JILL STEIN, PRESIDENT 369.0 13.0 1.41 NaN NaN \n", + "168 GARY JOHNSON, PRESIDENT 370.0 48.0 5.21 NaN NaN \n", + "169 WRITE-IN 371.0 13.0 1.41 NaN NaN \n", + "... ... ... ... ... ... ... \n", + "3333 HILLARY CLINTON, PRESIDENT 7311.0 343.0 37.40 NaN NaN \n", + "3334 DONALD J TRUMP, PRESIDENT 7312.0 509.0 55.51 NaN NaN \n", + "3335 DARRELL L CASTLE, PRESIDENT 7313.0 6.0 0.65 NaN NaN \n", + "3336 JILL STEIN, PRESIDENT 7314.0 5.0 0.55 NaN NaN \n", + "3337 GARY JOHNSON, PRESIDENT 7315.0 44.0 4.80 NaN NaN \n", + "3338 WRITE-IN 7316.0 10.0 1.09 NaN NaN \n", + "3372 HILLARY CLINTON, PRESIDENT 7396.0 642.0 64.46 NaN NaN \n", + "3373 DONALD J TRUMP, PRESIDENT 7397.0 292.0 29.32 NaN NaN \n", + "3374 DARRELL L CASTLE, PRESIDENT 7398.0 9.0 0.90 NaN NaN \n", + "3375 JILL STEIN, PRESIDENT 7399.0 10.0 1.00 NaN NaN \n", + "3376 GARY JOHNSON, PRESIDENT 7400.0 19.0 1.91 NaN NaN \n", + "3377 WRITE-IN 7401.0 24.0 2.41 NaN NaN \n", + "3411 HILLARY CLINTON, PRESIDENT 7481.0 628.0 57.67 NaN NaN \n", + "3412 DONALD J TRUMP, PRESIDENT 7482.0 391.0 35.90 NaN NaN \n", + "3413 DARRELL L CASTLE, PRESIDENT 7483.0 3.0 0.28 NaN NaN \n", + "3414 JILL STEIN, PRESIDENT 7484.0 6.0 0.55 NaN NaN \n", + "3415 GARY JOHNSON, PRESIDENT 7485.0 39.0 3.58 NaN NaN \n", + "3416 WRITE-IN 7486.0 22.0 2.02 NaN NaN \n", + "3450 HILLARY CLINTON, PRESIDENT 7566.0 394.0 39.44 NaN NaN \n", + "3451 DONALD J TRUMP, PRESIDENT 7567.0 536.0 53.65 NaN NaN \n", + "3452 DARRELL L CASTLE, PRESIDENT 7568.0 0.0 NaN NaN NaN \n", + "3453 JILL STEIN, PRESIDENT 7569.0 13.0 1.30 NaN NaN \n", + "3454 GARY JOHNSON, PRESIDENT 7570.0 37.0 3.70 NaN NaN \n", + "3455 WRITE-IN 7571.0 19.0 1.90 NaN NaN \n", + "3489 HILLARY CLINTON, PRESIDENT 7651.0 396.0 55.54 NaN NaN \n", + "3490 DONALD J TRUMP, PRESIDENT 7652.0 281.0 39.41 NaN NaN \n", + "3491 DARRELL L CASTLE, PRESIDENT 7653.0 1.0 0.14 NaN NaN \n", + "3492 JILL STEIN, PRESIDENT 7654.0 6.0 0.84 NaN NaN \n", + "3493 GARY JOHNSON, PRESIDENT 7655.0 16.0 2.24 NaN NaN \n", + "3494 WRITE-IN 7656.0 13.0 1.82 NaN NaN \n", + "\n", + "[546 rows x 16 columns]" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres = df.loc[df['Contest'] == 'PRESIDENTIAL ELECTORS']\n", + "df_pres" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we are looking just at the votes for the presidential election, we can find, for example, which rows show votes for Hillary Clinton." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
8CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT26.0188.048.08NaNNaN
47CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT111.0259.038.14NaNNaN
86CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT196.0230.050.33NaNNaN
125CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT281.0283.039.47NaNNaN
164CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT366.0443.048.05NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "8 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "47 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "86 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "125 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "164 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest \\\n", + "8 1.0 01 BELLEFONTE NORTH DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "47 2.0 02 BELLEFONTE NORTHEAST DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "86 3.0 03 BELLEFONTE SOUTH DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "125 4.0 04 BELLEFONTE SOUTHEAST DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "164 5.0 05 BELLEFONTE WEST DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "\n", + " Descr VoteFor Candidate Posn \\\n", + "8 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 26.0 \n", + "47 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 111.0 \n", + "86 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 196.0 \n", + "125 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 281.0 \n", + "164 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 366.0 \n", + "\n", + " Count PctCnt Total PctTot \n", + "8 188.0 48.08 NaN NaN \n", + "47 259.0 38.14 NaN NaN \n", + "86 230.0 50.33 NaN NaN \n", + "125 283.0 39.47 NaN NaN \n", + "164 443.0 48.05 NaN NaN " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_clinton = df_pres.loc[df_pres['Candidate'] == 'HILLARY CLINTON, PRESIDENT']\n", + "df_clinton.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['HILLARY CLINTON, PRESIDENT', 'DONALD J TRUMP, PRESIDENT',\n", + " 'DARRELL L CASTLE, PRESIDENT', 'JILL STEIN, PRESIDENT',\n", + " 'GARY JOHNSON, PRESIDENT', 'WRITE-IN'], dtype=object)" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres['Candidate'].unique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since these rows are the ones that have voted for Clinton, we can perform operations to locate which rows (ie which precincts) had more than 50% of the vote go to Clinton.\n", + "\n", + "This gives us a `Pandas.Series` of `True`s and `False`s. We call this a mask." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "8 False\n", + "47 False\n", + "86 True\n", + "125 False\n", + "164 False\n", + "203 False\n", + "242 False\n", + "281 False\n", + "320 False\n", + "359 False\n", + "397 False\n", + "435 False\n", + "473 False\n", + "512 False\n", + "551 False\n", + "589 True\n", + "627 True\n", + "665 True\n", + "703 True\n", + "741 True\n", + "779 True\n", + "817 True\n", + "855 True\n", + "893 True\n", + "931 True\n", + "969 True\n", + "1007 True\n", + "1045 True\n", + "1083 True\n", + "1121 True\n", + " ... \n", + "2364 False\n", + "2403 False\n", + "2442 True\n", + "2480 False\n", + "2519 True\n", + "2558 True\n", + "2596 True\n", + "2635 False\n", + "2674 False\n", + "2713 False\n", + "2752 False\n", + "2790 False\n", + "2828 False\n", + "2866 False\n", + "2904 False\n", + "2943 False\n", + "2982 False\n", + "3021 False\n", + "3060 False\n", + "3099 False\n", + "3138 False\n", + "3177 False\n", + "3216 False\n", + "3255 False\n", + "3294 False\n", + "3333 False\n", + "3372 True\n", + "3411 True\n", + "3450 False\n", + "3489 True\n", + "Name: PctCnt, dtype: bool" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_clinton.PctCnt > 50" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can summarize the Count field for the rows that represent Clinton." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "37088.0" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_clinton.Count.sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Say we want to summary for all of the candidates, lets go back to the **df_pres** table we made and group by the candidate, then sum the count." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Candidate\n", + "DARRELL L CASTLE, PRESIDENT 344.0\n", + "DONALD J TRUMP, PRESIDENT 35274.0\n", + "GARY JOHNSON, PRESIDENT 2644.0\n", + "HILLARY CLINTON, PRESIDENT 37088.0\n", + "JILL STEIN, PRESIDENT 798.0\n", + "WRITE-IN 1159.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres.groupby('Candidate').Count.sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can group by with multiple columns. This will allow us to look at the results from each precinct." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PrecNo Candidate \n", + "1.0 DARRELL L CASTLE, PRESIDENT 2.0\n", + " DONALD J TRUMP, PRESIDENT 174.0\n", + " GARY JOHNSON, PRESIDENT 22.0\n", + " HILLARY CLINTON, PRESIDENT 188.0\n", + " JILL STEIN, PRESIDENT 3.0\n", + " WRITE-IN 2.0\n", + "2.0 DARRELL L CASTLE, PRESIDENT 9.0\n", + " DONALD J TRUMP, PRESIDENT 385.0\n", + " GARY JOHNSON, PRESIDENT 10.0\n", + " HILLARY CLINTON, PRESIDENT 259.0\n", + " JILL STEIN, PRESIDENT 7.0\n", + " WRITE-IN 9.0\n", + "3.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 193.0\n", + " GARY JOHNSON, PRESIDENT 17.0\n", + " HILLARY CLINTON, PRESIDENT 230.0\n", + " JILL STEIN, PRESIDENT 4.0\n", + " WRITE-IN 7.0\n", + "4.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 375.0\n", + " GARY JOHNSON, PRESIDENT 35.0\n", + " HILLARY CLINTON, PRESIDENT 283.0\n", + " JILL STEIN, PRESIDENT 10.0\n", + " WRITE-IN 8.0\n", + "5.0 DARRELL L CASTLE, PRESIDENT 7.0\n", + " DONALD J TRUMP, PRESIDENT 398.0\n", + " GARY JOHNSON, PRESIDENT 48.0\n", + " HILLARY CLINTON, PRESIDENT 443.0\n", + " JILL STEIN, PRESIDENT 13.0\n", + " WRITE-IN 13.0\n", + " ... \n", + "87.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 509.0\n", + " GARY JOHNSON, PRESIDENT 44.0\n", + " HILLARY CLINTON, PRESIDENT 343.0\n", + " JILL STEIN, PRESIDENT 5.0\n", + " WRITE-IN 10.0\n", + "88.0 DARRELL L CASTLE, PRESIDENT 9.0\n", + " DONALD J TRUMP, PRESIDENT 292.0\n", + " GARY JOHNSON, PRESIDENT 19.0\n", + " HILLARY CLINTON, PRESIDENT 642.0\n", + " JILL STEIN, PRESIDENT 10.0\n", + " WRITE-IN 24.0\n", + "89.0 DARRELL L CASTLE, PRESIDENT 3.0\n", + " DONALD J TRUMP, PRESIDENT 391.0\n", + " GARY JOHNSON, PRESIDENT 39.0\n", + " HILLARY CLINTON, PRESIDENT 628.0\n", + " JILL STEIN, PRESIDENT 6.0\n", + " WRITE-IN 22.0\n", + "90.0 DARRELL L CASTLE, PRESIDENT 0.0\n", + " DONALD J TRUMP, PRESIDENT 536.0\n", + " GARY JOHNSON, PRESIDENT 37.0\n", + " HILLARY CLINTON, PRESIDENT 394.0\n", + " JILL STEIN, PRESIDENT 13.0\n", + " WRITE-IN 19.0\n", + "91.0 DARRELL L CASTLE, PRESIDENT 1.0\n", + " DONALD J TRUMP, PRESIDENT 281.0\n", + " GARY JOHNSON, PRESIDENT 16.0\n", + " HILLARY CLINTON, PRESIDENT 396.0\n", + " JILL STEIN, PRESIDENT 6.0\n", + " WRITE-IN 13.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres.groupby(['PrecNo','Candidate']).Count.sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or directly, in Pandas, which works since `df_pres` is a pandas Series. Pandas series have a number of built-in methods like `.max()`, `.min()`, and `.mean()`!" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1195.0" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_clinton['Count'].max()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "You can save these as variables. And cast them to strings." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Highest precinct vote total for Clinton: 1195.0\n", + "Lowest precinct vote total for Clinton: 18.0\n", + "Mean precinct vote total for Clinton: 407.56043956\n" + ] + } + ], + "source": [ + "# create min, max, and mean\n", + "max_clinton = df_clinton['Count'].max()\n", + "min_clinton = df_clinton['Count'].min()\n", + "mean_clinton = df_clinton['Count'].mean()\n", + "\n", + "# print out some results\n", + "print(\"Highest precinct vote total for Clinton: \" + str(max_clinton))\n", + "print(\"Lowest precinct vote total for Clinton: \" + str(min_clinton))\n", + "print(\"Mean precinct vote total for Clinton: \" + str(mean_clinton))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This isn't super useful though, so we can get the whole row of the max and min values of the percentage vote, use the following query." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
589CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201616.016 SC NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1297.0495.077.95NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "589 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest Descr \\\n", + "589 16.0 16 SC NORTH DEMOCRATIC PRESIDENTIAL ELECTORS NaN \n", + "\n", + " VoteFor Candidate Posn Count \\\n", + "589 VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 1297.0 495.0 \n", + "\n", + " PctCnt Total PctTot \n", + "589 77.95 NaN NaN " + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_clinton.loc[df['PctCnt'] == df_clinton['PctCnt'].max()]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here, Clinton took 77% of the vote!" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
3138CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201682.082 UNIONDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6886.0126.017.03NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "3138 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party Contest \\\n", + "3138 NOVEMBER 8 2016 82.0 82 UNION DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "\n", + " Descr VoteFor Candidate Posn \\\n", + "3138 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 6886.0 \n", + "\n", + " Count PctCnt Total PctTot \n", + "3138 126.0 17.03 NaN NaN " + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_clinton.loc[df['PctCnt'] == df_clinton['PctCnt'].min()]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this precinct, Clinton took only 17% of the votes.\n", + "\n", + "#### Exercise:\n", + "\n", + "Calculate the minimum value, and maximum value of the `Count` column to find the precincts with the highest and lowest turnouts by percentage. Hint, you'll want to filter by `Contest`. [This](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.min.html#pandas.Series.min) documentation might be useful." + ] + }, + { + "cell_type": "raw", + "metadata": { + "collapsed": true + }, + "source": [ + "# Your code here\n", + "df_prec[df_pres" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Exercise:\n", + "Get the average actual number of people that turned out to vote by precinct across the whole dataset. [Documentation](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.subtract.html#pandas.Series.subtract)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Your code here\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 5. Cleaning\n", + "\n", + "One of the most common tasks while working with big data is data cleaning. Datasets will be inherently heterogeneous and unstructured. The lack of structure can cause functions to throw errors. We can clean data sets through various methods; if the discrepancies follow a structured pattern, it is possible to use built-in functions, or write our own functions. However, if the errors cannot be structured, we might have to do it manually!\n", + "\n", + "For this example, we first check the datatypes:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "County object\n", + "ElecYear float64\n", + "Election object\n", + "ElecDate object\n", + "PrecNo float64\n", + "PrecName object\n", + "Party object\n", + "Contest object\n", + "Descr float64\n", + "VoteFor object\n", + "Candidate object\n", + "Posn float64\n", + "Count float64\n", + "PctCnt float64\n", + "Total float64\n", + "PctTot float64\n", + "dtype: object" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(3526, 16)" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A common cause of errors is having Null or 'None' values. This usually means data was missing. " + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
3520NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3521NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3522NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3523NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3524NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3525NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate PrecNo PrecName Party Contest Descr \\\n", + "3520 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "3521 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "3522 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "3523 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "3524 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "3525 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "\n", + " VoteFor Candidate Posn Count PctCnt Total PctTot \n", + "3520 NaN NaN NaN NaN NaN NaN NaN \n", + "3521 NaN NaN NaN NaN NaN NaN NaN \n", + "3522 NaN NaN NaN NaN NaN NaN NaN \n", + "3523 NaN NaN NaN NaN NaN NaN NaN \n", + "3524 NaN NaN NaN NaN NaN NaN NaN \n", + "3525 NaN NaN NaN NaN NaN NaN NaN " + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[df['PrecNo'].isnull()]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We had some incomplete data! We can get rid of it with the `.notnull()` function." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(3520, 16)" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = df[df['PrecNo'].notnull()]\n", + "df.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We removed those 6 rows. Important note, this is working in memory! We are not actually changing the table, do to so, you can export your output to a CSV." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### 6. Split-apply-combine (Joins!)\n", + "\n", + "With Pandas we can split the data into groups based on some criteria. We can then apply a function to each group independently, and finally combine the results into a new data structure." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "![Joins](http://i.imgur.com/yjNkiwL.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "#### Group Registered Voter Data and Compare Numbers\n", + "\n", + "In this next section, let's look at registered voter data, and do some grouping, joins, and comparisons.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
12345678910...144145146147148149150151152153
0002013865-14NaNMILLSJAMESARTHURNaNM2/7/6510/1/00A...NaNABRNaNNaNNaNNaNNaNCENTRENaN
1002020582-14NaNTERRYCHARLESDNaNU9/16/769/1/02I...NaNNaNNaNNaNNaNAPDNaNCENTRENaN
2002287451-14NaNMURRELLRICHARDLNaNM8/11/5010/1/72A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
3002365541-14NaNMILLSJOYCEELLENNaNF5/6/6910/1/00A...NaNAPRNaNNaNNaNNaNNaNCENTRENaN
4002370224-14NaNFENTONCASEYJAMESNaNM11/22/833/1/02A...NaNAPDNaNNaNNaNNaN5707687675CENTRENaN
5002572852-14NaNMURRELLSUSANLNaNF12/16/4910/1/94A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
6004529096-14NaNHAIRSTEVENMNaNM12/11/7912/21/99A...NaNAPRNaNNaNNaNNaNNaNCENTRENaN
7005138406-14NaNBROOKSHARRYCNaNM3/19/501/1/01A...RAPRNaNNaNAPRNaNCENTRENaN
8005163451-14NaNBROOKSDEBRALOUISENaNF5/22/513/15/91A...RAPRNaNNaNAPRNaNCENTRENaN
9005194526-14NaNGENSIMOREGARYDAVIDNaNM3/6/685/22/96A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
10005881492-14NaNGRAHAMKATHRYNLEENaNF2/12/478/29/96A...NaNNaNNaNNaNNaNNaNNaN8145065538CENTRENaN
11007026230-14NaNSCHNEIDERWALTERGNaNM5/29/711/31/92A...RAPRAPRNaNNaNNaNCENTRENaN
12007094976-14NaNMURRAYRACHAELRNaNU6/19/765/16/00A...NaNNaNNaNNaNNaNNaNNaN6105098485CENTRENaN
13007376473-14NaNOCKERROSALIEJEANNaNF3/10/587/5/02A...NaNAPDNaNNaNAPD8147691906CENTRENaN
14007398108-14NaNOCKERJEANENaNF4/16/299/4/62A...NaNAPDNaNNaNNaNNaNNaNCENTRENaN
15009621382-14NaNMACHIKASALEXANDRAMNaNF3/2/876/16/05A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
16009878128-14NaNBRUNGARDLARACNaNF3/2/833/18/04A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
17010437417-14NaNRANKINLUCASROBERTNaNM1/31/804/21/98A...RAPRAPRAPR8143550831CENTRENaN
18010464969-14NaNSHENKCOLBYRYANNaNM9/29/739/4/97A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
19010573042-14NaNSTEPHENSERINLNaNF12/13/747/3/02A...NaNAPDAPDAPDNaNCENTRENaN
20010634062-14NaNSTEVERSHEILAMNaNF11/1/6610/9/84A...NaNAPNFNaNNaNNaNNaN6108446630CENTRENaN
21010849083-14NaNSMITHANNETTELNaNF3/2/458/28/68A...DAPDAPDAPD3530656CENTRENaN
22010849366-14NaNMENNAFRANKLINMNaNU1/13/508/28/76A...NaNAPDNaNNaNAPD3559388CENTRENaN
23010855262-14NaNPROVANDAVIDANaNU1/16/523/29/76A...DAPDAPDAPD3559067CENTRENaN
24010857411-14NaNWALKERRALPHENaNU3/15/412/27/64A...RAPRAPRAPRNaNCENTRENaN
25010858336-14NaNNASTASEELIZABETHENaNU11/18/252/13/47A...DAPDNaNNaNNaNNaN3553298CENTRENaN
26010858340-14NaNBEIGHTOLVELMAFNaNU8/2/199/29/47A...NaNABRNaNNaNNaNNaNNaNCENTRENaN
27010858347-14NaNBONFATTOMARYMNaNU4/19/279/11/48A...RAPRAPRAPRNaNCENTRENaN
28010858364-14NaNMANEYDENNISCNaNU9/8/279/11/52I...NaNNaNNaNNaNNaNAPR3553569CENTRENaN
29010858367-14NaNRHOADSDALEFNaNU6/10/289/12/52A...DAPDNaNNaNAPDNaNCENTRENaN
..................................................................
123413108229919-14NaNMISHRASONIKANaNNaNF2/22/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123414108245924-14NaNPECKYNOCHRISTOPHERRNaNNaN11/10/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123415108251099-14NaNAVEZZANOKATHERINEGNaNNaN9/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123416108251824-14NaNTERRERIRONALDCJRNaN12/4/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123417108262483-14NaNMADIASSTEVENPNaNNaN4/2/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123418108262546-14NaNSACCONICOLETTEDNaNNaN5/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123419108263616-14NaNSKAVERYCHANTELLENICOLENaNF12/29/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709005611CENTRENaN
123420108266993-14NaNFROMSTEINELISHAMNaNNaN10/10/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123421108268621-14NaNMCGARRIGALEMILYRNaNNaN4/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123422108268872-14NaNFELBERELINaNNaNNaN4/3/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN2036045055CENTRENaN
123423108268974-14NaNNEWCOMBMICHAELFIIINaN2/11/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN2034614023CENTRENaN
123424108272412-14NaNCOLONYKAYLEYRENEENaNF8/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123425108273735-14NaNMUIRRACHAELNaNNaNF10/26/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709034112CENTRENaN
123426108281100-14NaNBREENMAURAPNaNF1/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123427108281392-14NaNMENZELMEGANANNNaNF4/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN5704179068CENTRENaN
123428108281516-14NaNCOLONERICANNaNF9/18/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709055297CENTRENaN
123429108283090-14NaNSHAHIDAIMANaNNaNF9/19/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN9546629236CENTRENaN
123430108283218-14NaNCOPEZACHARYNaNNaNM1/22/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN6306312989CENTRENaN
123431108286601-14NaNLANDISJODYJEANNaNF7/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN5704368864CENTRENaN
123432108286706-14NaNZARROABIGAILHAYESNaNF9/30/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123433108288642-14NaNBUTLERJULIAKNaNNaN2/19/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123434108290220-14NaNMCGOVERNJAMESJIVM9/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN9732242161CENTRENaN
123435108290356-14NaNGORDONMARLEYRNaNF12/31/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN7247775506CENTRENaN
123436108290630-14NaNBRUGGEMEIERGRACENaNNaNF11/21/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN6309359977CENTRENaN
123437108290772-14NaNFEUERBERGANDRESNaNNaNNaN4/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123438108303668-14NaNFERENCIHANNAHCNaNNaN4/1/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123439108307850-14NaNNEILANDKAYLANaNNaNNaN10/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN6315594571CENTRENaN
123440108318654-14NaNFLYNNRILEYGNaNNaN11/24/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123441108325614-14NaNSOLIMANFAROUKNaNNaNNaN7/1/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123442108325661-14NaNCAUTELAALEXANDERNaNNaNNaN4/16/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
\n", + "

123443 rows × 153 columns

\n", + "
" + ], + "text/plain": [ + " 1 2 3 4 5 6 7 \\\n", + "0 002013865-14 NaN MILLS JAMES ARTHUR NaN M \n", + "1 002020582-14 NaN TERRY CHARLES D NaN U \n", + "2 002287451-14 NaN MURRELL RICHARD L NaN M \n", + "3 002365541-14 NaN MILLS JOYCE ELLEN NaN F \n", + "4 002370224-14 NaN FENTON CASEY JAMES NaN M \n", + "5 002572852-14 NaN MURRELL SUSAN L NaN F \n", + "6 004529096-14 NaN HAIR STEVEN M NaN M \n", + "7 005138406-14 NaN BROOKS HARRY C NaN M \n", + "8 005163451-14 NaN BROOKS DEBRA LOUISE NaN F \n", + "9 005194526-14 NaN GENSIMORE GARY DAVID NaN M \n", + "10 005881492-14 NaN GRAHAM KATHRYN LEE NaN F \n", + "11 007026230-14 NaN SCHNEIDER WALTER G NaN M \n", + "12 007094976-14 NaN MURRAY RACHAEL R NaN U \n", + "13 007376473-14 NaN OCKER ROSALIE JEAN NaN F \n", + "14 007398108-14 NaN OCKER JEAN E NaN F \n", + "15 009621382-14 NaN MACHIKAS ALEXANDRA M NaN F \n", + "16 009878128-14 NaN BRUNGARD LARA C NaN F \n", + "17 010437417-14 NaN RANKIN LUCAS ROBERT NaN M \n", + "18 010464969-14 NaN SHENK COLBY RYAN NaN M \n", + "19 010573042-14 NaN STEPHENS ERIN L NaN F \n", + "20 010634062-14 NaN STEVER SHEILA M NaN F \n", + "21 010849083-14 NaN SMITH ANNETTE L NaN F \n", + "22 010849366-14 NaN MENNA FRANKLIN M NaN U \n", + "23 010855262-14 NaN PROVAN DAVID A NaN U \n", + "24 010857411-14 NaN WALKER RALPH E NaN U \n", + "25 010858336-14 NaN NASTASE ELIZABETH E NaN U \n", + "26 010858340-14 NaN BEIGHTOL VELMA F NaN U \n", + "27 010858347-14 NaN BONFATTO MARY M NaN U \n", + "28 010858364-14 NaN MANEY DENNIS C NaN U \n", + "29 010858367-14 NaN RHOADS DALE F NaN U \n", + "... ... ... ... ... ... ... ... \n", + "123413 108229919-14 NaN MISHRA SONIKA NaN NaN F \n", + "123414 108245924-14 NaN PECKYNO CHRISTOPHER R NaN NaN \n", + "123415 108251099-14 NaN AVEZZANO KATHERINE G NaN NaN \n", + "123416 108251824-14 NaN TERRERI RONALD C JR NaN \n", + "123417 108262483-14 NaN MADIAS STEVEN P NaN NaN \n", + "123418 108262546-14 NaN SACCO NICOLETTE D NaN NaN \n", + "123419 108263616-14 NaN SKAVERY CHANTELLE NICOLE NaN F \n", + "123420 108266993-14 NaN FROMSTEIN ELISHA M NaN NaN \n", + "123421 108268621-14 NaN MCGARRIGAL EMILY R NaN NaN \n", + "123422 108268872-14 NaN FELBER ELI NaN NaN NaN \n", + "123423 108268974-14 NaN NEWCOMB MICHAEL F III NaN \n", + "123424 108272412-14 NaN COLONY KAYLEY RENEE NaN F \n", + "123425 108273735-14 NaN MUIR RACHAEL NaN NaN F \n", + "123426 108281100-14 NaN BREEN MAURA P NaN F \n", + "123427 108281392-14 NaN MENZEL MEGAN ANN NaN F \n", + "123428 108281516-14 NaN COLON ERICA N NaN F \n", + "123429 108283090-14 NaN SHAHID AIMA NaN NaN F \n", + "123430 108283218-14 NaN COPE ZACHARY NaN NaN M \n", + "123431 108286601-14 NaN LANDIS JODY JEAN NaN F \n", + "123432 108286706-14 NaN ZARRO ABIGAIL HAYES NaN F \n", + "123433 108288642-14 NaN BUTLER JULIA K NaN NaN \n", + "123434 108290220-14 NaN MCGOVERN JAMES J IV M \n", + "123435 108290356-14 NaN GORDON MARLEY R NaN F \n", + "123436 108290630-14 NaN BRUGGEMEIER GRACE NaN NaN F \n", + "123437 108290772-14 NaN FEUERBERG ANDRES NaN NaN NaN \n", + "123438 108303668-14 NaN FERENCI HANNAH C NaN NaN \n", + "123439 108307850-14 NaN NEILAND KAYLA NaN NaN NaN \n", + "123440 108318654-14 NaN FLYNN RILEY G NaN NaN \n", + "123441 108325614-14 NaN SOLIMAN FAROUK NaN NaN NaN \n", + "123442 108325661-14 NaN CAUTELA ALEXANDER NaN NaN NaN \n", + "\n", + " 8 9 10 ... 144 145 146 147 148 149 150 \\\n", + "0 2/7/65 10/1/00 A ... NaN AB R NaN NaN NaN NaN \n", + "1 9/16/76 9/1/02 I ... NaN NaN NaN NaN NaN AP D \n", + "2 8/11/50 10/1/72 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "3 5/6/69 10/1/00 A ... NaN AP R NaN NaN NaN NaN \n", + "4 11/22/83 3/1/02 A ... NaN AP D NaN NaN NaN NaN \n", + "5 12/16/49 10/1/94 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "6 12/11/79 12/21/99 A ... NaN AP R NaN NaN NaN NaN \n", + "7 3/19/50 1/1/01 A ... R AP R NaN NaN AP R \n", + "8 5/22/51 3/15/91 A ... R AP R NaN NaN AP R \n", + "9 3/6/68 5/22/96 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "10 2/12/47 8/29/96 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "11 5/29/71 1/31/92 A ... R AP R AP R NaN NaN \n", + "12 6/19/76 5/16/00 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "13 3/10/58 7/5/02 A ... NaN AP D NaN NaN AP D \n", + "14 4/16/29 9/4/62 A ... NaN AP D NaN NaN NaN NaN \n", + "15 3/2/87 6/16/05 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "16 3/2/83 3/18/04 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "17 1/31/80 4/21/98 A ... R AP R AP R AP R \n", + "18 9/29/73 9/4/97 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "19 12/13/74 7/3/02 A ... NaN AP D AP D AP D \n", + "20 11/1/66 10/9/84 A ... NaN AP NF NaN NaN NaN NaN \n", + "21 3/2/45 8/28/68 A ... D AP D AP D AP D \n", + "22 1/13/50 8/28/76 A ... NaN AP D NaN NaN AP D \n", + "23 1/16/52 3/29/76 A ... D AP D AP D AP D \n", + "24 3/15/41 2/27/64 A ... R AP R AP R AP R \n", + "25 11/18/25 2/13/47 A ... D AP D NaN NaN NaN NaN \n", + "26 8/2/19 9/29/47 A ... NaN AB R NaN NaN NaN NaN \n", + "27 4/19/27 9/11/48 A ... R AP R AP R AP R \n", + "28 9/8/27 9/11/52 I ... NaN NaN NaN NaN NaN AP R \n", + "29 6/10/28 9/12/52 A ... D AP D NaN NaN AP D \n", + "... ... ... .. ... ... ... ... ... ... ... ... \n", + "123413 2/22/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123414 11/10/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123415 9/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123416 12/4/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123417 4/2/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123418 5/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123419 12/29/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123420 10/10/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123421 4/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123422 4/3/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123423 2/11/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123424 8/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123425 10/26/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123426 1/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123427 4/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123428 9/18/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123429 9/19/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123430 1/22/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123431 7/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123432 9/30/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123433 2/19/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123434 9/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123435 12/31/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123436 11/21/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123437 4/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123438 4/1/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123439 10/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123440 11/24/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123441 7/1/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123442 4/16/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "\n", + " 151 152 153 \n", + "0 NaN CENTRE NaN \n", + "1 NaN CENTRE NaN \n", + "2 NaN CENTRE NaN \n", + "3 NaN CENTRE NaN \n", + "4 5707687675 CENTRE NaN \n", + "5 NaN CENTRE NaN \n", + "6 NaN CENTRE NaN \n", + "7 NaN CENTRE NaN \n", + "8 NaN CENTRE NaN \n", + "9 NaN CENTRE NaN \n", + "10 8145065538 CENTRE NaN \n", + "11 NaN CENTRE NaN \n", + "12 6105098485 CENTRE NaN \n", + "13 8147691906 CENTRE NaN \n", + "14 NaN CENTRE NaN \n", + "15 NaN CENTRE NaN \n", + "16 NaN CENTRE NaN \n", + "17 8143550831 CENTRE NaN \n", + "18 NaN CENTRE NaN \n", + "19 NaN CENTRE NaN \n", + "20 6108446630 CENTRE NaN \n", + "21 3530656 CENTRE NaN \n", + "22 3559388 CENTRE NaN \n", + "23 3559067 CENTRE NaN \n", + "24 NaN CENTRE NaN \n", + "25 3553298 CENTRE NaN \n", + "26 NaN CENTRE NaN \n", + "27 NaN CENTRE NaN \n", + "28 3553569 CENTRE NaN \n", + "29 NaN CENTRE NaN \n", + "... ... ... .. \n", + "123413 NaN CENTRE NaN \n", + "123414 NaN CENTRE NaN \n", + "123415 NaN CENTRE NaN \n", + "123416 NaN CENTRE NaN \n", + "123417 NaN CENTRE NaN \n", + "123418 NaN CENTRE NaN \n", + "123419 5709005611 CENTRE NaN \n", + "123420 NaN CENTRE NaN \n", + "123421 NaN CENTRE NaN \n", + "123422 2036045055 CENTRE NaN \n", + "123423 2034614023 CENTRE NaN \n", + "123424 NaN CENTRE NaN \n", + "123425 5709034112 CENTRE NaN \n", + "123426 NaN CENTRE NaN \n", + "123427 5704179068 CENTRE NaN \n", + "123428 5709055297 CENTRE NaN \n", + "123429 9546629236 CENTRE NaN \n", + "123430 6306312989 CENTRE NaN \n", + "123431 5704368864 CENTRE NaN \n", + "123432 NaN CENTRE NaN \n", + "123433 NaN CENTRE NaN \n", + "123434 9732242161 CENTRE NaN \n", + "123435 7247775506 CENTRE NaN \n", + "123436 6309359977 CENTRE NaN \n", + "123437 NaN CENTRE NaN \n", + "123438 NaN CENTRE NaN \n", + "123439 6315594571 CENTRE NaN \n", + "123440 NaN CENTRE NaN \n", + "123441 NaN CENTRE NaN \n", + "123442 NaN CENTRE NaN \n", + "\n", + "[123443 rows x 153 columns]" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Import the file\n", + "# Note: It's a big one! You can work with large files in Pandas with ease.\n", + "# However, you might need to set the low memory option to False.\n", + "df_voters = pd.read_table('data/CENTRE_FVE_20170123.csv', sep=',', low_memory=False)\n", + "df_voters" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(123443, 153)" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Get the row count\n", + "df_voters.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n", + " 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,\n", + " 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,\n", + " 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,\n", + " 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n", + " 86, 87, 88, 89, 90, 91])" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# change column datatype to int for Field 27\n", + "df_voters['27'].unique()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our table is 123443 rows long, by 153 columns. For a data dictionary, see the data folder. Looking at our metadata, our precinct code is held in Field 27." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "27\n", + "1 505\n", + "2 846\n", + "3 710\n", + "4 1016\n", + "5 1387\n", + "Name: 27, dtype: int64" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Group the edges by their source\n", + "grouped = df_voters.groupby('27')\n", + "summed = grouped['27'].count()\n", + "\n", + "# get a series\n", + "summed.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
27
27
1505
2846
3710
41016
51387
\n", + "
" + ], + "text/plain": [ + " 27\n", + "27 \n", + "1 505\n", + "2 846\n", + "3 710\n", + "4 1016\n", + "5 1387" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Convert our series to a dataframe so we can work with it further\n", + "df_summed_extract = summed.to_frame()\n", + "# df_summed_extract.index = df_summed_extract.index.map(int)\n", + "df_summed_extract.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Index.rename.html" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Count
Precinct
1505
2846
3710
41016
51387
6892
7504
8716
9580
10585
11602
12529
13383
14461
15265
16888
17783
183320
192426
201515
211121
221150
231150
244558
253644
264540
274741
282420
292500
301543
......
62493
63205
642744
652381
661079
672933
682209
69658
701052
711522
721297
73264
74123
75484
76748
77364
781307
791054
80661
81536
82901
831124
842136
85531
861194
871264
881392
891407
901236
91929
\n", + "

91 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " Count\n", + "Precinct \n", + "1 505\n", + "2 846\n", + "3 710\n", + "4 1016\n", + "5 1387\n", + "6 892\n", + "7 504\n", + "8 716\n", + "9 580\n", + "10 585\n", + "11 602\n", + "12 529\n", + "13 383\n", + "14 461\n", + "15 265\n", + "16 888\n", + "17 783\n", + "18 3320\n", + "19 2426\n", + "20 1515\n", + "21 1121\n", + "22 1150\n", + "23 1150\n", + "24 4558\n", + "25 3644\n", + "26 4540\n", + "27 4741\n", + "28 2420\n", + "29 2500\n", + "30 1543\n", + "... ...\n", + "62 493\n", + "63 205\n", + "64 2744\n", + "65 2381\n", + "66 1079\n", + "67 2933\n", + "68 2209\n", + "69 658\n", + "70 1052\n", + "71 1522\n", + "72 1297\n", + "73 264\n", + "74 123\n", + "75 484\n", + "76 748\n", + "77 364\n", + "78 1307\n", + "79 1054\n", + "80 661\n", + "81 536\n", + "82 901\n", + "83 1124\n", + "84 2136\n", + "85 531\n", + "86 1194\n", + "87 1264\n", + "88 1392\n", + "89 1407\n", + "90 1236\n", + "91 929\n", + "\n", + "[91 rows x 1 columns]" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# lets rename things so they make more sense\n", + "df_summed_extract.columns = ['Count']\n", + "df_summed_extract.index.names = ['Precinct']\n", + "df_summed_extract" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": false + }, + "source": [ + "Next, lets perform a join. We are going to compare the number of registered voters in the voter registration dataset to the same number in the results dataset. Let's join this table we just made from the voter registration dataset to the results dataset, based on precinct number.\n", + "\n", + "How might we do this?" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Count
PrecNo
1507
2853
3697
41011
51378
\n", + "
" + ], + "text/plain": [ + " Count\n", + "PrecNo \n", + "1 507\n", + "2 853\n", + "3 697\n", + "4 1011\n", + "5 1378" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Query out the necessary rows\n", + "df_resultsRegVoters = df.loc[df['Contest'] == 'REGISTERED VOTERS - TOTAL']\n", + "\n", + "# Create our table with headers and new index for joining\n", + "df_summed_resultsRV = df_resultsRegVoters[['PrecNo', 'Count']].astype(int).set_index('PrecNo')\n", + "df_summed_resultsRV.columns = ['Count']\n", + "\n", + "# View our table\n", + "df_summed_resultsRV.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Count_ExtractCount_Results
Precinct
1505507
2846853
3710697
410161011
513871378
6892892
7504504
8716712
9580581
10585592
11602592
12529527
13383384
14461460
15265270
16888883
17783788
1833203320
1924262430
2015151517
2111211128
2211501162
2311501154
2445584573
2536443659
2645404546
2747414753
2824202413
2925002514
3015431541
.........
62493488
63205205
6427442728
6523812389
6610791078
6729332946
6822092206
69658660
7010521057
7115221522
7212971295
73264265
74123125
75484480
76748745
77364364
7813071290
7910541045
80661654
81536536
82901903
8311241122
8421362122
85531523
8611941186
8712641262
8813921385
8914071403
9012361234
91929921
\n", + "

91 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " Count_Extract Count_Results\n", + "Precinct \n", + "1 505 507\n", + "2 846 853\n", + "3 710 697\n", + "4 1016 1011\n", + "5 1387 1378\n", + "6 892 892\n", + "7 504 504\n", + "8 716 712\n", + "9 580 581\n", + "10 585 592\n", + "11 602 592\n", + "12 529 527\n", + "13 383 384\n", + "14 461 460\n", + "15 265 270\n", + "16 888 883\n", + "17 783 788\n", + "18 3320 3320\n", + "19 2426 2430\n", + "20 1515 1517\n", + "21 1121 1128\n", + "22 1150 1162\n", + "23 1150 1154\n", + "24 4558 4573\n", + "25 3644 3659\n", + "26 4540 4546\n", + "27 4741 4753\n", + "28 2420 2413\n", + "29 2500 2514\n", + "30 1543 1541\n", + "... ... ...\n", + "62 493 488\n", + "63 205 205\n", + "64 2744 2728\n", + "65 2381 2389\n", + "66 1079 1078\n", + "67 2933 2946\n", + "68 2209 2206\n", + "69 658 660\n", + "70 1052 1057\n", + "71 1522 1522\n", + "72 1297 1295\n", + "73 264 265\n", + "74 123 125\n", + "75 484 480\n", + "76 748 745\n", + "77 364 364\n", + "78 1307 1290\n", + "79 1054 1045\n", + "80 661 654\n", + "81 536 536\n", + "82 901 903\n", + "83 1124 1122\n", + "84 2136 2122\n", + "85 531 523\n", + "86 1194 1186\n", + "87 1264 1262\n", + "88 1392 1385\n", + "89 1407 1403\n", + "90 1236 1234\n", + "91 929 921\n", + "\n", + "[91 rows x 2 columns]" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# run a join!\n", + "df_compare = df_summed_extract.join(df_summed_resultsRV, lsuffix='_Extract', rsuffix='_Results')\n", + "df_compare" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Count_ExtractCount_Resultsdifference
Precinct
1505507-2
2846853-7
371069713
4101610115
5138713789
68928920
75045040
87167124
9580581-1
10585592-7
1160259210
125295272
13383384-1
144614601
15265270-5
168888835
17783788-5
18332033200
1924262430-4
2015151517-2
2111211128-7
2211501162-12
2311501154-4
2445584573-15
2536443659-15
2645404546-6
2747414753-12
28242024137
2925002514-14
30154315412
............
624934885
632052050
642744272816
6523812389-8
66107910781
6729332946-13
68220922063
69658660-2
7010521057-5
71152215220
72129712952
73264265-1
74123125-2
754844804
767487453
773643640
781307129017
79105410459
806616547
815365360
82901903-2
83112411222
842136212214
855315238
86119411868
87126412622
88139213857
89140714034
90123612342
919299218
\n", + "

91 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " Count_Extract Count_Results difference\n", + "Precinct \n", + "1 505 507 -2\n", + "2 846 853 -7\n", + "3 710 697 13\n", + "4 1016 1011 5\n", + "5 1387 1378 9\n", + "6 892 892 0\n", + "7 504 504 0\n", + "8 716 712 4\n", + "9 580 581 -1\n", + "10 585 592 -7\n", + "11 602 592 10\n", + "12 529 527 2\n", + "13 383 384 -1\n", + "14 461 460 1\n", + "15 265 270 -5\n", + "16 888 883 5\n", + "17 783 788 -5\n", + "18 3320 3320 0\n", + "19 2426 2430 -4\n", + "20 1515 1517 -2\n", + "21 1121 1128 -7\n", + "22 1150 1162 -12\n", + "23 1150 1154 -4\n", + "24 4558 4573 -15\n", + "25 3644 3659 -15\n", + "26 4540 4546 -6\n", + "27 4741 4753 -12\n", + "28 2420 2413 7\n", + "29 2500 2514 -14\n", + "30 1543 1541 2\n", + "... ... ... ...\n", + "62 493 488 5\n", + "63 205 205 0\n", + "64 2744 2728 16\n", + "65 2381 2389 -8\n", + "66 1079 1078 1\n", + "67 2933 2946 -13\n", + "68 2209 2206 3\n", + "69 658 660 -2\n", + "70 1052 1057 -5\n", + "71 1522 1522 0\n", + "72 1297 1295 2\n", + "73 264 265 -1\n", + "74 123 125 -2\n", + "75 484 480 4\n", + "76 748 745 3\n", + "77 364 364 0\n", + "78 1307 1290 17\n", + "79 1054 1045 9\n", + "80 661 654 7\n", + "81 536 536 0\n", + "82 901 903 -2\n", + "83 1124 1122 2\n", + "84 2136 2122 14\n", + "85 531 523 8\n", + "86 1194 1186 8\n", + "87 1264 1262 2\n", + "88 1392 1385 7\n", + "89 1407 1403 4\n", + "90 1236 1234 2\n", + "91 929 921 8\n", + "\n", + "[91 rows x 3 columns]" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_compare['difference'] = np.subtract(df_compare['Count_Extract'], df_compare['Count_Results'])\n", + "df_compare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The numbers are really close, but not quite the same. Why might this be?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/week3/.ipynb_checkpoints/PSET_2_Pandas-checkpoint.ipynb b/week3/.ipynb_checkpoints/PSET_2_Pandas-checkpoint.ipynb new file mode 100644 index 0000000..7b41f3c --- /dev/null +++ b/week3/.ipynb_checkpoints/PSET_2_Pandas-checkpoint.ipynb @@ -0,0 +1,392 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problem Set 2: Intro to Pandas" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 1\n", + "\n", + "In this problem set, we want to determine if we can use voter registrations as a proxy for votes cast. Because who you vote for on an individual basis is not recorded, we would like to see if the numbers for those registered in a precinct as Republican or Democrate actually reflect the results of the election based on the outcome. We'll continue our analysis of Centre County, Pennsylvania, and we are going to use Pandas, Numpy, and Matplotlib as our tools to explore the data.\n", + "\n", + "\n", + "Building off the in class example, first a short example will introduce us to the dataset, some data wrangling functions of Pandas, and a few plots with Matplotlib.\n", + "\n", + "\n", + "\n", + "Throughout the exercises we will be continuously using Pandas and some of its merging functionality to join the numerous OD files available. We will be building exploratory data visualizations, finding urban patterns and locating divergent areas within the dataset. Some useful documentation for merging data with Pandas can be found at:\n", + "\n", + "\n", + "http://pandas.pydata.org/pandas-docs/stable/merging.html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, lets install our libraries." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "from itertools import cycle, islice\n", + "\n", + "# This line lets us plot on our ipython notebook\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let's open up one of the files. Let's look at the voter registrations, this is the same as we did in the inclass.\n", + "\n", + "**Problem 1: Load CENTRE_FVE_20170123.csv into Pandas as a data frame called 'df_voters'.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To start us off, we need to determine party affiliations for each of those registered. Reading in the metadata, this is held in column 12. Let's take a look at unique party registrations in column 12.\n", + "\n", + "**The data documentation file is located in your data folder. It will describe the fields.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# View the unique values in column 12\n", + "df_voters['12'].unique()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "There are quite a few, and its pretty messy. Let's to explore MatPlotLib, let's make some charts to see which parties have the highest subscriptions and graph it in a bar chart.\n", + "\n", + "**Group our data so we can plot. Find the number of subscribers to each party and sum them in a table. Call your new data frame 'df_summed', name the columns 'PARTY' and 'NUMBER'**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Your code here\n", + "grouped = df_voters.groupby('12') # Group by party registrations\n", + "summed = grouped['12'].count() # Get counts of each group\n", + "summed.sort_values(inplace=True, ascending=False)\n", + "df_summed = summed.to_frame()\n", + "df_summed.columns = ['NUMBER']\n", + "df_summed.index.names = ['PARTY']\n", + "df_summed" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's make a bar chart to do some initial exploration of the data. To get a simple exploratory plot, we use Matplotlib. Matplotlib is integrated into Pandas, and you can create plots from data frames. For more reading, check out the Matplotlib documentation at [Pandas Plotting Documentation](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html) and the [Matplotlib Documentation](http://matplotlib.org/2.0.0/contents.html).\n", + "\n", + "Using **df_summed** that you just created, the following will give you a basic bar chart of your dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_summed.plot.bar(legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is alot of values! It doesn't make much sense to show them all, let's group categories into three, Republican, Democrat, or Other. We can do this doing some grouping and by implementing what we've learned so far. The following shows you how to find all of the party affiliations that are not 'Democrat' or 'Republican'." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_summed[(df_summed.index != 'D') & (df_summed.index != 'R')]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Group the parties into Democrat, Republican, and Other. Create a single row table with parties as the rows, and the number of voter registrations as columns. The rows should be Democrat, Republican, and Other. Call the table 'df_parties'\n", + "\n", + "Hint, sum the values you want from **df_summed** for each group and save them as variables. You will then need to create a new numpy array that contains the summed valued for each group and create the new data frame with your answer. This [Stack Exchange Question](http://stackoverflow.com/questions/17839973/construct-pandas-dataframe-from-values-in-variables) will help you, along with the [Pandas documentation on DataFrames](http://pandas.pydata.org/pandas-docs/stable/dsintro.html#dataframe)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "parties = ['Democrat', 'Republican', 'Other']\n", + "values = np.array([df_summed[(df_summed.index == 'D')].NUMBER.item(),df_summed[(df_summed.index == 'R')].NUMBER.item(),df_summed[(df_summed.index != 'D') & (df_summed.index != 'R')].NUMBER.sum()])\n", + "df_parties = pd.DataFrame(values,index=parties,columns=list('N'))\n", + "df_parties " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Problem 2: Plot this as a bar chart, using red for Republican, blue for Democrat, and yellow for other.**\n", + "\n", + "You can learn more about bar plots in in the [Bar Plot Documentation](http://pandas.pydata.org/pandas-docs/version/0.18.1/visualization.html#visualization-barplot). This will also give you hints as to how you can assign colors, along with the other properties affiated with bar charts, such as legends and axes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Problem 3: For this next question, implement the above. We want to compare how the number of voter registrations to election results for one precinct (PRECINCT 42). Create a bar chart that has two bars each for category (Democrat, Republican, and Other). One of the bars will represent the number of registered voters to that party, and the second bar representing the count of results (ie how many people actually voted for that parties candidate) for each group**\n", + "\n", + "Hint, you will have to load the precinct level result data into Pandas, then perform the correct grouping and summing to get the numbers you need from both the voter registration data and the precinct level results, then join the two into single dataframe to make your chart. You can base your answers on the following help page: http://chrisalbon.com/python/matplotlib_grouped_bar_plot.html" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Difference between registered voters to the party and results.\n", + "# Add your code below:\n", + "\n", + "# Read Election Results data and create a table for Precinct 42\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Read Voter Registration data and create a table for Precinct 42\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Join the two tables\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Plot the dataset\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 2 - Scatterplotting\n", + "\n", + "Now we will use the **precinct_centroids** file provided to display the geographical location of the centroid of each precinct, plot them in a scatterplot, then size the points in the scatterplot according to the number of votes.\n", + "\n", + "First, load the CSV." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_precinct_locations = pd.read_table('data/center_county_precinct_centroids.csv', sep=',', low_memory=False)\n", + "df_precinct_locations.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have a new `DataFrame` for each precinct and the geographical location of its centroid, we can use lat/lon values to create a scatter plot. We can even vary their size based on the variables or criteria we set. If variation across precincts is not that big, we can use a log function to better visualize it on our plot. Numpy has a quick log implementation:\n", + "```Python\n", + "np.log(value)\n", + "```\n", + "In this following example, we give the points a simple size of 25." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "plt.scatter(df_precinct_locations['X'],df_precinct_locations['Y'], s=25)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Problem 4: Using the above example, and the documentation on scatterplots, create two scatterplots using longitude and latitude X and Y locations, one showing percentage of vote for Trump, and other percentage of vote for Clinton. Make the Trump dots colored red, and Clinton blue.**\n", + "\n", + "Find the [Scatterplot documentation here](http://pandas.pydata.org/pandas-docs/version/0.19.1/visualization.html#scatter-plot)\n", + "\n", + "Hint: You will need to join the results precincts file to the centroids, and then set the size of the plot points to be the percentages. This is accessed using the S property.\n", + "\n", + "To perform the join, use merge. This [Stack Exchange](http://stackoverflow.com/questions/20375561/joining-pandas-dataframes-by-column-names) question will help!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Map 1: Votes for Trump\n", + "# Add your code below:\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Map 2: Votes for Clinton\n", + "# Add your code below:\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Graphic Presentation\n", + "\n", + "Make sure to label all the axis, add legends and units (where appropriate).\n", + "\n", + "\n", + "## Code Quality\n", + "\n", + "While code performance and optimization won't count, all the code should be highly readable, and reusable. Where possible, create functions, build helper functions where needed, and make sure the code is self-explanatory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/week3/.ipynb_checkpoints/Week3_prueba-checkpoint.ipynb b/week3/.ipynb_checkpoints/Week3_prueba-checkpoint.ipynb new file mode 100644 index 0000000..46ef1f5 --- /dev/null +++ b/week3/.ipynb_checkpoints/Week3_prueba-checkpoint.ipynb @@ -0,0 +1,4582 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name
0Joey
1Jeremy
2Jenny
\n", + "
" + ], + "text/plain": [ + " name\n", + "0 Joey\n", + "1 Jeremy\n", + "2 Jenny" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Create empty dataframe\n", + "df = pd.DataFrame()\n", + "\n", + "# Create a column\n", + "df['name'] = ['Joey', 'Jeremy', 'Jenny']\n", + "\n", + "# View dataframe\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nameage
0Joey28
1Jeremy33
2Jenny27
\n", + "
" + ], + "text/plain": [ + " name age\n", + "0 Joey 28\n", + "1 Jeremy 33\n", + "2 Jenny 27" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Assign a new column to df called 'age' with a list of ages\n", + "df.assign(age = [28, 33, 27])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
0CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNREGISTERED VOTERS - TOTALNaNNaNNaN10.0507.0NaNNaNNaN
1CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNBALLOTS CAST - TOTALNaNNaNNaN11.0391.0NaNNaNNaN
2CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNVOTER TURNOUT - TOTALNaNNaNNaN12.0NaN77.12NaNNaN
3CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1DEMOCRATIC17.046.040.35NaNNaN
4CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1REPUBLICAN18.066.057.89NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "0 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "1 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "2 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "3 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "4 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest Descr \\\n", + "0 1.0 01 BELLEFONTE NORTH NaN REGISTERED VOTERS - TOTAL NaN \n", + "1 1.0 01 BELLEFONTE NORTH NaN BALLOTS CAST - TOTAL NaN \n", + "2 1.0 01 BELLEFONTE NORTH NaN VOTER TURNOUT - TOTAL NaN \n", + "3 1.0 01 BELLEFONTE NORTH DEMOCRATIC STRAIGHT PARTY NaN \n", + "4 1.0 01 BELLEFONTE NORTH REPUBLICAN STRAIGHT PARTY NaN \n", + "\n", + " VoteFor Candidate Posn Count PctCnt Total PctTot \n", + "0 NaN NaN 10.0 507.0 NaN NaN NaN \n", + "1 NaN NaN 11.0 391.0 NaN NaN NaN \n", + "2 NaN NaN 12.0 NaN 77.12 NaN NaN \n", + "3 VOTE FOR NOT MORE THAN 1 DEMOCRATIC 17.0 46.0 40.35 NaN NaN \n", + "4 VOTE FOR NOT MORE THAN 1 REPUBLICAN 18.0 66.0 57.89 NaN NaN " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We are reading a CSV with election data\n", + "df = pd.read_table('data/centrecounty_precinct_results_nov2016.txt', sep=',')\n", + "\n", + "# We can print the first 5 rows of the df\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "County object\n", + "ElecYear float64\n", + "Election object\n", + "ElecDate object\n", + "PrecNo float64\n", + "PrecName object\n", + "Party object\n", + "Contest object\n", + "Descr float64\n", + "VoteFor object\n", + "Candidate object\n", + "Posn float64\n", + "Count float64\n", + "PctCnt float64\n", + "Total float64\n", + "PctTot float64\n", + "dtype: object" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(3526, 16)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(3526, 16)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape[0], df.shape[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['County', 'ElecYear', 'Election', 'ElecDate', 'PrecNo', 'PrecName',\n", + " 'Party', 'Contest', 'Descr', 'VoteFor', 'Candidate', 'Posn', 'Count',\n", + " 'PctCnt', 'Total', 'PctTot'],\n", + " dtype='object')" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 REGISTERED VOTERS - TOTAL\n", + "1 BALLOTS CAST - TOTAL\n", + "2 VOTER TURNOUT - TOTAL\n", + "3 STRAIGHT PARTY\n", + "4 STRAIGHT PARTY\n", + "5 STRAIGHT PARTY\n", + "6 STRAIGHT PARTY\n", + "7 STRAIGHT PARTY\n", + "8 PRESIDENTIAL ELECTORS\n", + "9 PRESIDENTIAL ELECTORS\n", + "10 PRESIDENTIAL ELECTORS\n", + "11 PRESIDENTIAL ELECTORS\n", + "12 PRESIDENTIAL ELECTORS\n", + "13 PRESIDENTIAL ELECTORS\n", + "14 UNITED STATES SENATOR\n", + "15 UNITED STATES SENATOR\n", + "16 UNITED STATES SENATOR\n", + "17 UNITED STATES SENATOR\n", + "18 ATTORNEY GENERAL\n", + "19 ATTORNEY GENERAL\n", + "20 ATTORNEY GENERAL\n", + "21 AUDITOR GENERAL\n", + "22 AUDITOR GENERAL\n", + "23 AUDITOR GENERAL\n", + "24 AUDITOR GENERAL\n", + "25 AUDITOR GENERAL\n", + "26 STATE TREASURER\n", + "27 STATE TREASURER\n", + "28 STATE TREASURER\n", + "29 STATE TREASURER\n", + " ... \n", + "3496 UNITED STATES SENATOR\n", + "3497 UNITED STATES SENATOR\n", + "3498 UNITED STATES SENATOR\n", + "3499 ATTORNEY GENERAL\n", + "3500 ATTORNEY GENERAL\n", + "3501 ATTORNEY GENERAL\n", + "3502 AUDITOR GENERAL\n", + "3503 AUDITOR GENERAL\n", + "3504 AUDITOR GENERAL\n", + "3505 AUDITOR GENERAL\n", + "3506 AUDITOR GENERAL\n", + "3507 STATE TREASURER\n", + "3508 STATE TREASURER\n", + "3509 STATE TREASURER\n", + "3510 STATE TREASURER\n", + "3511 STATE TREASURER\n", + "3512 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL\n", + "3513 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL\n", + "3514 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL\n", + "3515 REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST L...\n", + "3516 REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST L...\n", + "3517 REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST L...\n", + "3518 JUDGES AGE\n", + "3519 JUDGES AGE\n", + "3520 NaN\n", + "3521 NaN\n", + "3522 NaN\n", + "3523 NaN\n", + "3524 NaN\n", + "3525 NaN\n", + "Name: Contest, dtype: object" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.Contest" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['REGISTERED VOTERS - TOTAL', 'BALLOTS CAST - TOTAL',\n", + " 'VOTER TURNOUT - TOTAL', 'STRAIGHT PARTY', 'PRESIDENTIAL ELECTORS',\n", + " 'UNITED STATES SENATOR', 'ATTORNEY GENERAL', 'AUDITOR GENERAL',\n", + " 'STATE TREASURER', 'REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST LEGISLATIVE',\n", + " 'JUDGES AGE',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LEGISLATIVE',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 77TH LEGISLATIVE',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 81ST LEGISLATIVE', nan], dtype=object)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.Contest.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ContestPrecNoCount
0REGISTERED VOTERS - TOTAL1.0507.0
1BALLOTS CAST - TOTAL1.0391.0
2VOTER TURNOUT - TOTAL1.0NaN
3STRAIGHT PARTY1.046.0
4STRAIGHT PARTY1.066.0
\n", + "
" + ], + "text/plain": [ + " Contest PrecNo Count\n", + "0 REGISTERED VOTERS - TOTAL 1.0 507.0\n", + "1 BALLOTS CAST - TOTAL 1.0 391.0\n", + "2 VOTER TURNOUT - TOTAL 1.0 NaN\n", + "3 STRAIGHT PARTY 1.0 46.0\n", + "4 STRAIGHT PARTY 1.0 66.0" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_multipleColumns = df[['Contest','PrecNo', 'Count']]\n", + "df_multipleColumns.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 True\n", + "1 True\n", + "2 True\n", + "3 True\n", + "4 True\n", + "5 True\n", + "6 True\n", + "7 True\n", + "8 True\n", + "9 True\n", + "10 True\n", + "11 True\n", + "12 True\n", + "13 True\n", + "14 True\n", + "15 True\n", + "16 True\n", + "17 True\n", + "18 True\n", + "19 True\n", + "20 True\n", + "21 True\n", + "22 True\n", + "23 True\n", + "24 True\n", + "25 True\n", + "26 True\n", + "27 True\n", + "28 True\n", + "29 True\n", + " ... \n", + "3496 False\n", + "3497 False\n", + "3498 False\n", + "3499 False\n", + "3500 False\n", + "3501 False\n", + "3502 False\n", + "3503 False\n", + "3504 False\n", + "3505 False\n", + "3506 False\n", + "3507 False\n", + "3508 False\n", + "3509 False\n", + "3510 False\n", + "3511 False\n", + "3512 False\n", + "3513 False\n", + "3514 False\n", + "3515 False\n", + "3516 False\n", + "3517 False\n", + "3518 False\n", + "3519 False\n", + "3520 False\n", + "3521 False\n", + "3522 False\n", + "3523 False\n", + "3524 False\n", + "3525 False\n", + "Name: PrecNo, dtype: bool" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['PrecNo'] == 1" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "df_precinct1 = df[df['PrecNo']== 1 ]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
0CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNREGISTERED VOTERS - TOTALNaNNaNNaN10.0507.0NaNNaNNaN
1CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNBALLOTS CAST - TOTALNaNNaNNaN11.0391.0NaNNaNNaN
2CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNVOTER TURNOUT - TOTALNaNNaNNaN12.0NaN77.12NaNNaN
3CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1DEMOCRATIC17.046.040.35NaNNaN
4CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1REPUBLICAN18.066.057.89NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "0 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "1 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "2 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "3 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "4 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest Descr \\\n", + "0 1.0 01 BELLEFONTE NORTH NaN REGISTERED VOTERS - TOTAL NaN \n", + "1 1.0 01 BELLEFONTE NORTH NaN BALLOTS CAST - TOTAL NaN \n", + "2 1.0 01 BELLEFONTE NORTH NaN VOTER TURNOUT - TOTAL NaN \n", + "3 1.0 01 BELLEFONTE NORTH DEMOCRATIC STRAIGHT PARTY NaN \n", + "4 1.0 01 BELLEFONTE NORTH REPUBLICAN STRAIGHT PARTY NaN \n", + "\n", + " VoteFor Candidate Posn Count PctCnt Total PctTot \n", + "0 NaN NaN 10.0 507.0 NaN NaN NaN \n", + "1 NaN NaN 11.0 391.0 NaN NaN NaN \n", + "2 NaN NaN 12.0 NaN 77.12 NaN NaN \n", + "3 VOTE FOR NOT MORE THAN 1 DEMOCRATIC 17.0 46.0 40.35 NaN NaN \n", + "4 VOTE FOR NOT MORE THAN 1 REPUBLICAN 18.0 66.0 57.89 NaN NaN " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_precinct1.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
195CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNREGISTERED VOTERS - TOTALNaNNaNNaN435.0892.0NaNNaNNaN
196CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNBALLOTS CAST - TOTALNaNNaNNaN436.0709.0NaNNaNNaN
197CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNVOTER TURNOUT - TOTALNaNNaNNaN437.0NaN79.48NaNNaN
198CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1DEMOCRATIC442.062.031.00NaNNaN
199CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1REPUBLICAN443.0134.067.00NaNNaN
200CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLCONSTITUTION PARTYSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1CONSTITUTION PARTY444.00.0NaNNaNNaN
201CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1GREEN445.02.01.00NaNNaN
202CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1LIBERTARIAN446.02.01.00NaNNaN
203CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT451.0230.032.53NaNNaN
204CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT452.0443.062.66NaNNaN
205CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT453.02.00.28NaNNaN
206CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT454.02.00.28NaNNaN
207CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT455.023.03.25NaNNaN
208CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN456.07.00.99NaNNaN
209CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1KATIE MCGINTY461.0239.034.09NaNNaN
210CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1PAT TOOMEY462.0400.057.06NaNNaN
211CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1EDWARD T CLIFFORD, III463.062.08.84NaNNaN
212CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1WRITE-IN464.00.0NaNNaNNaN
213CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOSH SHAPIRO469.0278.040.12NaNNaN
214CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOHN RAFFERTY470.0415.059.88NaNNaN
215CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN471.00.0NaNNaNNaN
216CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1EUGENE A DEPASQUALE476.0255.037.28NaNNaN
217CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN BROWN477.0385.056.29NaNNaN
218CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN J SWEENEY478.022.03.22NaNNaN
219CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1ROY A MINET479.022.03.22NaNNaN
220CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN480.00.0NaNNaNNaN
221CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JOE TORSELLA485.0250.036.76NaNNaN
222CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1OTTO VOIT486.0365.053.68NaNNaN
223CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1KRISTIN COMBS487.047.06.91NaNNaN
224CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JAMES BABB488.018.02.65NaNNaN
...................................................
243CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT537.0228.060.48NaNNaN
244CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT538.04.01.06NaNNaN
245CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT539.01.00.27NaNNaN
246CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT540.018.04.77NaNNaN
247CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN541.04.01.06NaNNaN
248CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1KATIE MCGINTY546.0124.033.16NaNNaN
249CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1PAT TOOMEY547.0218.058.29NaNNaN
250CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1EDWARD T CLIFFORD, III548.032.08.56NaNNaN
251CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1WRITE-IN549.00.0NaNNaNNaN
252CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOSH SHAPIRO554.0137.037.03NaNNaN
253CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOHN RAFFERTY555.0233.062.97NaNNaN
254CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN556.00.0NaNNaNNaN
255CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1EUGENE A DEPASQUALE561.0137.037.03NaNNaN
256CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN BROWN562.0197.053.24NaNNaN
257CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROGREENAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN J SWEENEY563.017.04.59NaNNaN
258CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1ROY A MINET564.019.05.14NaNNaN
259CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN565.00.0NaNNaNNaN
260CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JOE TORSELLA570.0131.035.60NaNNaN
261CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1OTTO VOIT571.0194.052.72NaNNaN
262CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROGREENSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1KRISTIN COMBS572.022.05.98NaNNaN
263CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JAMES BABB573.021.05.71NaNNaN
264CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1WRITE-IN574.00.0NaNNaNNaN
265CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICREPRESENTATIVE IN CONGRESS 5TH CONGRESSIONALNaNVOTE FOR NOT MORE THAN 1KERITH STRANO TAYLOR578.094.025.47NaNNaN
266CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANREPRESENTATIVE IN CONGRESS 5TH CONGRESSIONALNaNVOTE FOR NOT MORE THAN 1GLENN GT THOMPSON579.0275.074.53NaNNaN
267CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNREPRESENTATIVE IN CONGRESS 5TH CONGRESSIONALNaNVOTE FOR NOT MORE THAN 1WRITE-IN580.00.0NaNNaNNaN
268CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICREPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE...NaNVOTE FOR NOT MORE THAN 1MIKE HANNA585.0178.048.11NaNNaN
269CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANREPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE...NaNVOTE FOR NOT MORE THAN 1STEPHANIE BOROWICZ586.0191.051.62NaNNaN
270CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNREPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE...NaNVOTE FOR NOT MORE THAN 1WRITE-IN587.01.00.27NaNNaN
271CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNJUDGES AGENaNVOTE FOR NOT MORE THAN 1YES592.0159.052.13NaNNaN
272CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNJUDGES AGENaNVOTE FOR NOT MORE THAN 1NO593.0146.047.87NaNNaN
\n", + "

78 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "195 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "196 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "197 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "198 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "199 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "200 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "201 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "202 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "203 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "204 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "205 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "206 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "207 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "208 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "209 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "210 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "211 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "212 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "213 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "214 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "215 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "216 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "217 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "218 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "219 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "220 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "221 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "222 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "223 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "224 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + ".. ... ... ... ... \n", + "243 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "244 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "245 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "246 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "247 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "248 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "249 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "250 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "251 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "252 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "253 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "254 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "255 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "256 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "257 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "258 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "259 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "260 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "261 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "262 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "263 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "264 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "265 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "266 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "267 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "268 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "269 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "270 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "271 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "272 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party \\\n", + "195 6.0 06 CENTRE HALL NaN \n", + "196 6.0 06 CENTRE HALL NaN \n", + "197 6.0 06 CENTRE HALL NaN \n", + "198 6.0 06 CENTRE HALL DEMOCRATIC \n", + "199 6.0 06 CENTRE HALL REPUBLICAN \n", + "200 6.0 06 CENTRE HALL CONSTITUTION PARTY \n", + "201 6.0 06 CENTRE HALL GREEN \n", + "202 6.0 06 CENTRE HALL LIBERTARIAN \n", + "203 6.0 06 CENTRE HALL DEMOCRATIC \n", + "204 6.0 06 CENTRE HALL REPUBLICAN \n", + "205 6.0 06 CENTRE HALL CONSTITUTION PARTY \n", + "206 6.0 06 CENTRE HALL GREEN \n", + "207 6.0 06 CENTRE HALL LIBERTARIAN \n", + "208 6.0 06 CENTRE HALL NaN \n", + "209 6.0 06 CENTRE HALL DEMOCRATIC \n", + "210 6.0 06 CENTRE HALL REPUBLICAN \n", + "211 6.0 06 CENTRE HALL LIBERTARIAN \n", + "212 6.0 06 CENTRE HALL NaN \n", + "213 6.0 06 CENTRE HALL DEMOCRATIC \n", + "214 6.0 06 CENTRE HALL REPUBLICAN \n", + "215 6.0 06 CENTRE HALL NaN \n", + "216 6.0 06 CENTRE HALL DEMOCRATIC \n", + "217 6.0 06 CENTRE HALL REPUBLICAN \n", + "218 6.0 06 CENTRE HALL GREEN \n", + "219 6.0 06 CENTRE HALL LIBERTARIAN \n", + "220 6.0 06 CENTRE HALL NaN \n", + "221 6.0 06 CENTRE HALL DEMOCRATIC \n", + "222 6.0 06 CENTRE HALL REPUBLICAN \n", + "223 6.0 06 CENTRE HALL GREEN \n", + "224 6.0 06 CENTRE HALL LIBERTARIAN \n", + ".. ... ... ... \n", + "243 7.0 07 HOWARD BORO REPUBLICAN \n", + "244 7.0 07 HOWARD BORO CONSTITUTION PARTY \n", + "245 7.0 07 HOWARD BORO GREEN \n", + "246 7.0 07 HOWARD BORO LIBERTARIAN \n", + "247 7.0 07 HOWARD BORO NaN \n", + "248 7.0 07 HOWARD BORO DEMOCRATIC \n", + "249 7.0 07 HOWARD BORO REPUBLICAN \n", + "250 7.0 07 HOWARD BORO LIBERTARIAN \n", + "251 7.0 07 HOWARD BORO NaN \n", + "252 7.0 07 HOWARD BORO DEMOCRATIC \n", + "253 7.0 07 HOWARD BORO REPUBLICAN \n", + "254 7.0 07 HOWARD BORO NaN \n", + "255 7.0 07 HOWARD BORO DEMOCRATIC \n", + "256 7.0 07 HOWARD BORO REPUBLICAN \n", + "257 7.0 07 HOWARD BORO GREEN \n", + "258 7.0 07 HOWARD BORO LIBERTARIAN \n", + "259 7.0 07 HOWARD BORO NaN \n", + "260 7.0 07 HOWARD BORO DEMOCRATIC \n", + "261 7.0 07 HOWARD BORO REPUBLICAN \n", + "262 7.0 07 HOWARD BORO GREEN \n", + "263 7.0 07 HOWARD BORO LIBERTARIAN \n", + "264 7.0 07 HOWARD BORO NaN \n", + "265 7.0 07 HOWARD BORO DEMOCRATIC \n", + "266 7.0 07 HOWARD BORO REPUBLICAN \n", + "267 7.0 07 HOWARD BORO NaN \n", + "268 7.0 07 HOWARD BORO DEMOCRATIC \n", + "269 7.0 07 HOWARD BORO REPUBLICAN \n", + "270 7.0 07 HOWARD BORO NaN \n", + "271 7.0 07 HOWARD BORO NaN \n", + "272 7.0 07 HOWARD BORO NaN \n", + "\n", + " Contest Descr \\\n", + "195 REGISTERED VOTERS - TOTAL NaN \n", + "196 BALLOTS CAST - TOTAL NaN \n", + "197 VOTER TURNOUT - TOTAL NaN \n", + "198 STRAIGHT PARTY NaN \n", + "199 STRAIGHT PARTY NaN \n", + "200 STRAIGHT PARTY NaN \n", + "201 STRAIGHT PARTY NaN \n", + "202 STRAIGHT PARTY NaN \n", + "203 PRESIDENTIAL ELECTORS NaN \n", + "204 PRESIDENTIAL ELECTORS NaN \n", + "205 PRESIDENTIAL ELECTORS NaN \n", + "206 PRESIDENTIAL ELECTORS NaN \n", + "207 PRESIDENTIAL ELECTORS NaN \n", + "208 PRESIDENTIAL ELECTORS NaN \n", + "209 UNITED STATES SENATOR NaN \n", + "210 UNITED STATES SENATOR NaN \n", + "211 UNITED STATES SENATOR NaN \n", + "212 UNITED STATES SENATOR NaN \n", + "213 ATTORNEY GENERAL NaN \n", + "214 ATTORNEY GENERAL NaN \n", + "215 ATTORNEY GENERAL NaN \n", + "216 AUDITOR GENERAL NaN \n", + "217 AUDITOR GENERAL NaN \n", + "218 AUDITOR GENERAL NaN \n", + "219 AUDITOR GENERAL NaN \n", + "220 AUDITOR GENERAL NaN \n", + "221 STATE TREASURER NaN \n", + "222 STATE TREASURER NaN \n", + "223 STATE TREASURER NaN \n", + "224 STATE TREASURER NaN \n", + ".. ... ... \n", + "243 PRESIDENTIAL ELECTORS NaN \n", + "244 PRESIDENTIAL ELECTORS NaN \n", + "245 PRESIDENTIAL ELECTORS NaN \n", + "246 PRESIDENTIAL ELECTORS NaN \n", + "247 PRESIDENTIAL ELECTORS NaN \n", + "248 UNITED STATES SENATOR NaN \n", + "249 UNITED STATES SENATOR NaN \n", + "250 UNITED STATES SENATOR NaN \n", + "251 UNITED STATES SENATOR NaN \n", + "252 ATTORNEY GENERAL NaN \n", + "253 ATTORNEY GENERAL NaN \n", + "254 ATTORNEY GENERAL NaN \n", + "255 AUDITOR GENERAL NaN \n", + "256 AUDITOR GENERAL NaN \n", + "257 AUDITOR GENERAL NaN \n", + "258 AUDITOR GENERAL NaN \n", + "259 AUDITOR GENERAL NaN \n", + "260 STATE TREASURER NaN \n", + "261 STATE TREASURER NaN \n", + "262 STATE TREASURER NaN \n", + "263 STATE TREASURER NaN \n", + "264 STATE TREASURER NaN \n", + "265 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL NaN \n", + "266 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL NaN \n", + "267 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL NaN \n", + "268 REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE... NaN \n", + "269 REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE... NaN \n", + "270 REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE... NaN \n", + "271 JUDGES AGE NaN \n", + "272 JUDGES AGE NaN \n", + "\n", + " VoteFor Candidate Posn Count \\\n", + "195 NaN NaN 435.0 892.0 \n", + "196 NaN NaN 436.0 709.0 \n", + "197 NaN NaN 437.0 NaN \n", + "198 VOTE FOR NOT MORE THAN 1 DEMOCRATIC 442.0 62.0 \n", + "199 VOTE FOR NOT MORE THAN 1 REPUBLICAN 443.0 134.0 \n", + "200 VOTE FOR NOT MORE THAN 1 CONSTITUTION PARTY 444.0 0.0 \n", + "201 VOTE FOR NOT MORE THAN 1 GREEN 445.0 2.0 \n", + "202 VOTE FOR NOT MORE THAN 1 LIBERTARIAN 446.0 2.0 \n", + "203 VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 451.0 230.0 \n", + "204 VOTE FOR NOT MORE THAN 1 DONALD J TRUMP, PRESIDENT 452.0 443.0 \n", + "205 VOTE FOR NOT MORE THAN 1 DARRELL L CASTLE, PRESIDENT 453.0 2.0 \n", + "206 VOTE FOR NOT MORE THAN 1 JILL STEIN, PRESIDENT 454.0 2.0 \n", + "207 VOTE FOR NOT MORE THAN 1 GARY JOHNSON, PRESIDENT 455.0 23.0 \n", + "208 VOTE FOR NOT MORE THAN 1 WRITE-IN 456.0 7.0 \n", + "209 VOTE FOR NOT MORE THAN 1 KATIE MCGINTY 461.0 239.0 \n", + "210 VOTE FOR NOT MORE THAN 1 PAT TOOMEY 462.0 400.0 \n", + "211 VOTE FOR NOT MORE THAN 1 EDWARD T CLIFFORD, III 463.0 62.0 \n", + "212 VOTE FOR NOT MORE THAN 1 WRITE-IN 464.0 0.0 \n", + "213 VOTE FOR NOT MORE THAN 1 JOSH SHAPIRO 469.0 278.0 \n", + "214 VOTE FOR NOT MORE THAN 1 JOHN RAFFERTY 470.0 415.0 \n", + "215 VOTE FOR NOT MORE THAN 1 WRITE-IN 471.0 0.0 \n", + "216 VOTE FOR NOT MORE THAN 1 EUGENE A DEPASQUALE 476.0 255.0 \n", + "217 VOTE FOR NOT MORE THAN 1 JOHN BROWN 477.0 385.0 \n", + "218 VOTE FOR NOT MORE THAN 1 JOHN J SWEENEY 478.0 22.0 \n", + "219 VOTE FOR NOT MORE THAN 1 ROY A MINET 479.0 22.0 \n", + "220 VOTE FOR NOT MORE THAN 1 WRITE-IN 480.0 0.0 \n", + "221 VOTE FOR NOT MORE THAN 1 JOE TORSELLA 485.0 250.0 \n", + "222 VOTE FOR NOT MORE THAN 1 OTTO VOIT 486.0 365.0 \n", + "223 VOTE FOR NOT MORE THAN 1 KRISTIN COMBS 487.0 47.0 \n", + "224 VOTE FOR NOT MORE THAN 1 JAMES BABB 488.0 18.0 \n", + ".. ... ... ... ... \n", + "243 VOTE FOR NOT MORE THAN 1 DONALD J TRUMP, PRESIDENT 537.0 228.0 \n", + "244 VOTE FOR NOT MORE THAN 1 DARRELL L CASTLE, PRESIDENT 538.0 4.0 \n", + "245 VOTE FOR NOT MORE THAN 1 JILL STEIN, PRESIDENT 539.0 1.0 \n", + "246 VOTE FOR NOT MORE THAN 1 GARY JOHNSON, PRESIDENT 540.0 18.0 \n", + "247 VOTE FOR NOT MORE THAN 1 WRITE-IN 541.0 4.0 \n", + "248 VOTE FOR NOT MORE THAN 1 KATIE MCGINTY 546.0 124.0 \n", + "249 VOTE FOR NOT MORE THAN 1 PAT TOOMEY 547.0 218.0 \n", + "250 VOTE FOR NOT MORE THAN 1 EDWARD T CLIFFORD, III 548.0 32.0 \n", + "251 VOTE FOR NOT MORE THAN 1 WRITE-IN 549.0 0.0 \n", + "252 VOTE FOR NOT MORE THAN 1 JOSH SHAPIRO 554.0 137.0 \n", + "253 VOTE FOR NOT MORE THAN 1 JOHN RAFFERTY 555.0 233.0 \n", + "254 VOTE FOR NOT MORE THAN 1 WRITE-IN 556.0 0.0 \n", + "255 VOTE FOR NOT MORE THAN 1 EUGENE A DEPASQUALE 561.0 137.0 \n", + "256 VOTE FOR NOT MORE THAN 1 JOHN BROWN 562.0 197.0 \n", + "257 VOTE FOR NOT MORE THAN 1 JOHN J SWEENEY 563.0 17.0 \n", + "258 VOTE FOR NOT MORE THAN 1 ROY A MINET 564.0 19.0 \n", + "259 VOTE FOR NOT MORE THAN 1 WRITE-IN 565.0 0.0 \n", + "260 VOTE FOR NOT MORE THAN 1 JOE TORSELLA 570.0 131.0 \n", + "261 VOTE FOR NOT MORE THAN 1 OTTO VOIT 571.0 194.0 \n", + "262 VOTE FOR NOT MORE THAN 1 KRISTIN COMBS 572.0 22.0 \n", + "263 VOTE FOR NOT MORE THAN 1 JAMES BABB 573.0 21.0 \n", + "264 VOTE FOR NOT MORE THAN 1 WRITE-IN 574.0 0.0 \n", + "265 VOTE FOR NOT MORE THAN 1 KERITH STRANO TAYLOR 578.0 94.0 \n", + "266 VOTE FOR NOT MORE THAN 1 GLENN GT THOMPSON 579.0 275.0 \n", + "267 VOTE FOR NOT MORE THAN 1 WRITE-IN 580.0 0.0 \n", + "268 VOTE FOR NOT MORE THAN 1 MIKE HANNA 585.0 178.0 \n", + "269 VOTE FOR NOT MORE THAN 1 STEPHANIE BOROWICZ 586.0 191.0 \n", + "270 VOTE FOR NOT MORE THAN 1 WRITE-IN 587.0 1.0 \n", + "271 VOTE FOR NOT MORE THAN 1 YES 592.0 159.0 \n", + "272 VOTE FOR NOT MORE THAN 1 NO 593.0 146.0 \n", + "\n", + " PctCnt Total PctTot \n", + "195 NaN NaN NaN \n", + "196 NaN NaN NaN \n", + "197 79.48 NaN NaN \n", + "198 31.00 NaN NaN \n", + "199 67.00 NaN NaN \n", + "200 NaN NaN NaN \n", + "201 1.00 NaN NaN \n", + "202 1.00 NaN NaN \n", + "203 32.53 NaN NaN \n", + "204 62.66 NaN NaN \n", + "205 0.28 NaN NaN \n", + "206 0.28 NaN NaN \n", + "207 3.25 NaN NaN \n", + "208 0.99 NaN NaN \n", + "209 34.09 NaN NaN \n", + "210 57.06 NaN NaN \n", + "211 8.84 NaN NaN \n", + "212 NaN NaN NaN \n", + "213 40.12 NaN NaN \n", + "214 59.88 NaN NaN \n", + "215 NaN NaN NaN \n", + "216 37.28 NaN NaN \n", + "217 56.29 NaN NaN \n", + "218 3.22 NaN NaN \n", + "219 3.22 NaN NaN \n", + "220 NaN NaN NaN \n", + "221 36.76 NaN NaN \n", + "222 53.68 NaN NaN \n", + "223 6.91 NaN NaN \n", + "224 2.65 NaN NaN \n", + ".. ... ... ... \n", + "243 60.48 NaN NaN \n", + "244 1.06 NaN NaN \n", + "245 0.27 NaN NaN \n", + "246 4.77 NaN NaN \n", + "247 1.06 NaN NaN \n", + "248 33.16 NaN NaN \n", + "249 58.29 NaN NaN \n", + "250 8.56 NaN NaN \n", + "251 NaN NaN NaN \n", + "252 37.03 NaN NaN \n", + "253 62.97 NaN NaN \n", + "254 NaN NaN NaN \n", + "255 37.03 NaN NaN \n", + "256 53.24 NaN NaN \n", + "257 4.59 NaN NaN \n", + "258 5.14 NaN NaN \n", + "259 NaN NaN NaN \n", + "260 35.60 NaN NaN \n", + "261 52.72 NaN NaN \n", + "262 5.98 NaN NaN \n", + "263 5.71 NaN NaN \n", + "264 NaN NaN NaN \n", + "265 25.47 NaN NaN \n", + "266 74.53 NaN NaN \n", + "267 NaN NaN NaN \n", + "268 48.11 NaN NaN \n", + "269 51.62 NaN NaN \n", + "270 0.27 NaN NaN \n", + "271 52.13 NaN NaN \n", + "272 47.87 NaN NaN \n", + "\n", + "[78 rows x 16 columns]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[(df['PrecNo']< 8) & (df['PrecNo']>5)]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
8CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT26.0188.048.08NaNNaN
9CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT27.0174.044.50NaNNaN
10CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT28.02.00.51NaNNaN
11CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT29.03.00.77NaNNaN
12CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT30.022.05.63NaNNaN
13CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN31.02.00.51NaNNaN
47CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT111.0259.038.14NaNNaN
48CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT112.0385.056.70NaNNaN
49CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT113.09.01.33NaNNaN
50CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT114.07.01.03NaNNaN
51CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT115.010.01.47NaNNaN
52CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN116.09.01.33NaNNaN
86CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT196.0230.050.33NaNNaN
87CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT197.0193.042.23NaNNaN
88CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT198.06.01.31NaNNaN
89CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT199.04.00.88NaNNaN
90CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT200.017.03.72NaNNaN
91CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN201.07.01.53NaNNaN
125CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT281.0283.039.47NaNNaN
126CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT282.0375.052.30NaNNaN
127CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT283.06.00.84NaNNaN
128CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT284.010.01.39NaNNaN
129CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT285.035.04.88NaNNaN
130CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN286.08.01.12NaNNaN
164CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT366.0443.048.05NaNNaN
165CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT367.0398.043.17NaNNaN
166CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT368.07.00.76NaNNaN
167CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT369.013.01.41NaNNaN
168CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT370.048.05.21NaNNaN
169CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN371.013.01.41NaNNaN
...................................................
3333CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7311.0343.037.40NaNNaN
3334CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7312.0509.055.51NaNNaN
3335CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7313.06.00.65NaNNaN
3336CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7314.05.00.55NaNNaN
3337CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7315.044.04.80NaNNaN
3338CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7316.010.01.09NaNNaN
3372CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7396.0642.064.46NaNNaN
3373CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7397.0292.029.32NaNNaN
3374CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3CONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7398.09.00.90NaNNaN
3375CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3GREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7399.010.01.00NaNNaN
3376CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3LIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7400.019.01.91NaNNaN
3377CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3NaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7401.024.02.41NaNNaN
3411CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7481.0628.057.67NaNNaN
3412CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7482.0391.035.90NaNNaN
3413CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7483.03.00.28NaNNaN
3414CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7484.06.00.55NaNNaN
3415CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7485.039.03.58NaNNaN
3416CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7486.022.02.02NaNNaN
3450CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7566.0394.039.44NaNNaN
3451CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7567.0536.053.65NaNNaN
3452CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7568.00.0NaNNaNNaN
3453CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7569.013.01.30NaNNaN
3454CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7570.037.03.70NaNNaN
3455CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7571.019.01.90NaNNaN
3489CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7651.0396.055.54NaNNaN
3490CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7652.0281.039.41NaNNaN
3491CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7653.01.00.14NaNNaN
3492CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7654.06.00.84NaNNaN
3493CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7655.016.02.24NaNNaN
3494CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7656.013.01.82NaNNaN
\n", + "

546 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "8 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "9 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "10 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "11 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "12 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "13 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "47 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "48 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "49 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "50 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "51 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "52 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "86 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "87 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "88 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "89 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "90 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "91 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "125 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "126 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "127 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "128 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "129 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "130 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "164 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "165 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "166 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "167 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "168 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "169 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "... ... ... ... \n", + "3333 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3334 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3335 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3336 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3337 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3338 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3372 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3373 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3374 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3375 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3376 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3377 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3411 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3412 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3413 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3414 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3415 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3416 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3450 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3451 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3452 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3453 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3454 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3455 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3489 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3490 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3491 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3492 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3493 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3494 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party \\\n", + "8 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH DEMOCRATIC \n", + "9 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH REPUBLICAN \n", + "10 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH CONSTITUTION PARTY \n", + "11 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH GREEN \n", + "12 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH LIBERTARIAN \n", + "13 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH NaN \n", + "47 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST DEMOCRATIC \n", + "48 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST REPUBLICAN \n", + "49 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST CONSTITUTION PARTY \n", + "50 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST GREEN \n", + "51 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST LIBERTARIAN \n", + "52 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST NaN \n", + "86 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH DEMOCRATIC \n", + "87 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH REPUBLICAN \n", + "88 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH CONSTITUTION PARTY \n", + "89 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH GREEN \n", + "90 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH LIBERTARIAN \n", + "91 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH NaN \n", + "125 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST DEMOCRATIC \n", + "126 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST REPUBLICAN \n", + "127 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST CONSTITUTION PARTY \n", + "128 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST GREEN \n", + "129 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST LIBERTARIAN \n", + "130 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST NaN \n", + "164 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST DEMOCRATIC \n", + "165 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST REPUBLICAN \n", + "166 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST CONSTITUTION PARTY \n", + "167 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST GREEN \n", + "168 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST LIBERTARIAN \n", + "169 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST NaN \n", + "... ... ... ... ... \n", + "3333 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST DEMOCRATIC \n", + "3334 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST REPUBLICAN \n", + "3335 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST CONSTITUTION PARTY \n", + "3336 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST GREEN \n", + "3337 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST LIBERTARIAN \n", + "3338 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST NaN \n", + "3372 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 DEMOCRATIC \n", + "3373 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 REPUBLICAN \n", + "3374 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 CONSTITUTION PARTY \n", + "3375 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 GREEN \n", + "3376 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 LIBERTARIAN \n", + "3377 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 NaN \n", + "3411 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL DEMOCRATIC \n", + "3412 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL REPUBLICAN \n", + "3413 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL CONSTITUTION PARTY \n", + "3414 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL GREEN \n", + "3415 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL LIBERTARIAN \n", + "3416 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL NaN \n", + "3450 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL DEMOCRATIC \n", + "3451 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL REPUBLICAN \n", + "3452 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL CONSTITUTION PARTY \n", + "3453 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL GREEN \n", + "3454 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL LIBERTARIAN \n", + "3455 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL NaN \n", + "3489 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL DEMOCRATIC \n", + "3490 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL REPUBLICAN \n", + "3491 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL CONSTITUTION PARTY \n", + "3492 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL GREEN \n", + "3493 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL LIBERTARIAN \n", + "3494 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL NaN \n", + "\n", + " Contest Descr VoteFor \\\n", + "8 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "9 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "10 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "11 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "12 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "13 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "47 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "48 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "49 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "50 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "51 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "52 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "86 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "87 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "88 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "89 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "90 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "91 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "125 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "126 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "127 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "128 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "129 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "130 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "164 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "165 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "166 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "167 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "168 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "169 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "... ... ... ... \n", + "3333 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3334 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3335 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3336 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3337 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3338 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3372 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3373 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3374 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3375 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3376 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3377 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3411 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3412 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3413 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3414 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3415 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3416 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3450 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3451 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3452 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3453 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3454 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3455 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3489 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3490 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3491 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3492 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3493 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3494 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "\n", + " Candidate Posn Count PctCnt Total PctTot \n", + "8 HILLARY CLINTON, PRESIDENT 26.0 188.0 48.08 NaN NaN \n", + "9 DONALD J TRUMP, PRESIDENT 27.0 174.0 44.50 NaN NaN \n", + "10 DARRELL L CASTLE, PRESIDENT 28.0 2.0 0.51 NaN NaN \n", + "11 JILL STEIN, PRESIDENT 29.0 3.0 0.77 NaN NaN \n", + "12 GARY JOHNSON, PRESIDENT 30.0 22.0 5.63 NaN NaN \n", + "13 WRITE-IN 31.0 2.0 0.51 NaN NaN \n", + "47 HILLARY CLINTON, PRESIDENT 111.0 259.0 38.14 NaN NaN \n", + "48 DONALD J TRUMP, PRESIDENT 112.0 385.0 56.70 NaN NaN \n", + "49 DARRELL L CASTLE, PRESIDENT 113.0 9.0 1.33 NaN NaN \n", + "50 JILL STEIN, PRESIDENT 114.0 7.0 1.03 NaN NaN \n", + "51 GARY JOHNSON, PRESIDENT 115.0 10.0 1.47 NaN NaN \n", + "52 WRITE-IN 116.0 9.0 1.33 NaN NaN \n", + "86 HILLARY CLINTON, PRESIDENT 196.0 230.0 50.33 NaN NaN \n", + "87 DONALD J TRUMP, PRESIDENT 197.0 193.0 42.23 NaN NaN \n", + "88 DARRELL L CASTLE, PRESIDENT 198.0 6.0 1.31 NaN NaN \n", + "89 JILL STEIN, PRESIDENT 199.0 4.0 0.88 NaN NaN \n", + "90 GARY JOHNSON, PRESIDENT 200.0 17.0 3.72 NaN NaN \n", + "91 WRITE-IN 201.0 7.0 1.53 NaN NaN \n", + "125 HILLARY CLINTON, PRESIDENT 281.0 283.0 39.47 NaN NaN \n", + "126 DONALD J TRUMP, PRESIDENT 282.0 375.0 52.30 NaN NaN \n", + "127 DARRELL L CASTLE, PRESIDENT 283.0 6.0 0.84 NaN NaN \n", + "128 JILL STEIN, PRESIDENT 284.0 10.0 1.39 NaN NaN \n", + "129 GARY JOHNSON, PRESIDENT 285.0 35.0 4.88 NaN NaN \n", + "130 WRITE-IN 286.0 8.0 1.12 NaN NaN \n", + "164 HILLARY CLINTON, PRESIDENT 366.0 443.0 48.05 NaN NaN \n", + "165 DONALD J TRUMP, PRESIDENT 367.0 398.0 43.17 NaN NaN \n", + "166 DARRELL L CASTLE, PRESIDENT 368.0 7.0 0.76 NaN NaN \n", + "167 JILL STEIN, PRESIDENT 369.0 13.0 1.41 NaN NaN \n", + "168 GARY JOHNSON, PRESIDENT 370.0 48.0 5.21 NaN NaN \n", + "169 WRITE-IN 371.0 13.0 1.41 NaN NaN \n", + "... ... ... ... ... ... ... \n", + "3333 HILLARY CLINTON, PRESIDENT 7311.0 343.0 37.40 NaN NaN \n", + "3334 DONALD J TRUMP, PRESIDENT 7312.0 509.0 55.51 NaN NaN \n", + "3335 DARRELL L CASTLE, PRESIDENT 7313.0 6.0 0.65 NaN NaN \n", + "3336 JILL STEIN, PRESIDENT 7314.0 5.0 0.55 NaN NaN \n", + "3337 GARY JOHNSON, PRESIDENT 7315.0 44.0 4.80 NaN NaN \n", + "3338 WRITE-IN 7316.0 10.0 1.09 NaN NaN \n", + "3372 HILLARY CLINTON, PRESIDENT 7396.0 642.0 64.46 NaN NaN \n", + "3373 DONALD J TRUMP, PRESIDENT 7397.0 292.0 29.32 NaN NaN \n", + "3374 DARRELL L CASTLE, PRESIDENT 7398.0 9.0 0.90 NaN NaN \n", + "3375 JILL STEIN, PRESIDENT 7399.0 10.0 1.00 NaN NaN \n", + "3376 GARY JOHNSON, PRESIDENT 7400.0 19.0 1.91 NaN NaN \n", + "3377 WRITE-IN 7401.0 24.0 2.41 NaN NaN \n", + "3411 HILLARY CLINTON, PRESIDENT 7481.0 628.0 57.67 NaN NaN \n", + "3412 DONALD J TRUMP, PRESIDENT 7482.0 391.0 35.90 NaN NaN \n", + "3413 DARRELL L CASTLE, PRESIDENT 7483.0 3.0 0.28 NaN NaN \n", + "3414 JILL STEIN, PRESIDENT 7484.0 6.0 0.55 NaN NaN \n", + "3415 GARY JOHNSON, PRESIDENT 7485.0 39.0 3.58 NaN NaN \n", + "3416 WRITE-IN 7486.0 22.0 2.02 NaN NaN \n", + "3450 HILLARY CLINTON, PRESIDENT 7566.0 394.0 39.44 NaN NaN \n", + "3451 DONALD J TRUMP, PRESIDENT 7567.0 536.0 53.65 NaN NaN \n", + "3452 DARRELL L CASTLE, PRESIDENT 7568.0 0.0 NaN NaN NaN \n", + "3453 JILL STEIN, PRESIDENT 7569.0 13.0 1.30 NaN NaN \n", + "3454 GARY JOHNSON, PRESIDENT 7570.0 37.0 3.70 NaN NaN \n", + "3455 WRITE-IN 7571.0 19.0 1.90 NaN NaN \n", + "3489 HILLARY CLINTON, PRESIDENT 7651.0 396.0 55.54 NaN NaN \n", + "3490 DONALD J TRUMP, PRESIDENT 7652.0 281.0 39.41 NaN NaN \n", + "3491 DARRELL L CASTLE, PRESIDENT 7653.0 1.0 0.14 NaN NaN \n", + "3492 JILL STEIN, PRESIDENT 7654.0 6.0 0.84 NaN NaN \n", + "3493 GARY JOHNSON, PRESIDENT 7655.0 16.0 2.24 NaN NaN \n", + "3494 WRITE-IN 7656.0 13.0 1.82 NaN NaN \n", + "\n", + "[546 rows x 16 columns]" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres = df.loc [df['Contest'] == 'PRESIDENTIAL ELECTORS']\n", + "df_pres" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
8CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT26.0188.048.08NaNNaN
47CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT111.0259.038.14NaNNaN
86CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT196.0230.050.33NaNNaN
125CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT281.0283.039.47NaNNaN
164CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT366.0443.048.05NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "8 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "47 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "86 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "125 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "164 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest \\\n", + "8 1.0 01 BELLEFONTE NORTH DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "47 2.0 02 BELLEFONTE NORTHEAST DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "86 3.0 03 BELLEFONTE SOUTH DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "125 4.0 04 BELLEFONTE SOUTHEAST DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "164 5.0 05 BELLEFONTE WEST DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "\n", + " Descr VoteFor Candidate Posn \\\n", + "8 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 26.0 \n", + "47 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 111.0 \n", + "86 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 196.0 \n", + "125 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 281.0 \n", + "164 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 366.0 \n", + "\n", + " Count PctCnt Total PctTot \n", + "8 188.0 48.08 NaN NaN \n", + "47 259.0 38.14 NaN NaN \n", + "86 230.0 50.33 NaN NaN \n", + "125 283.0 39.47 NaN NaN \n", + "164 443.0 48.05 NaN NaN " + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton = df_pres.loc[df_pres['Candidate']== 'HILLARY CLINTON, PRESIDENT']\n", + "df_Clinton.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['HILLARY CLINTON, PRESIDENT', 'DONALD J TRUMP, PRESIDENT',\n", + " 'DARRELL L CASTLE, PRESIDENT', 'JILL STEIN, PRESIDENT',\n", + " 'GARY JOHNSON, PRESIDENT', 'WRITE-IN'], dtype=object)" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres['Candidate'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "8 False\n", + "47 False\n", + "86 True\n", + "125 False\n", + "164 False\n", + "203 False\n", + "242 False\n", + "281 False\n", + "320 False\n", + "359 False\n", + "397 False\n", + "435 False\n", + "473 False\n", + "512 False\n", + "551 False\n", + "589 True\n", + "627 True\n", + "665 True\n", + "703 True\n", + "741 True\n", + "779 True\n", + "817 True\n", + "855 True\n", + "893 True\n", + "931 True\n", + "969 True\n", + "1007 True\n", + "1045 True\n", + "1083 True\n", + "1121 True\n", + " ... \n", + "2364 False\n", + "2403 False\n", + "2442 True\n", + "2480 False\n", + "2519 True\n", + "2558 True\n", + "2596 True\n", + "2635 False\n", + "2674 False\n", + "2713 False\n", + "2752 False\n", + "2790 False\n", + "2828 False\n", + "2866 False\n", + "2904 False\n", + "2943 False\n", + "2982 False\n", + "3021 False\n", + "3060 False\n", + "3099 False\n", + "3138 False\n", + "3177 False\n", + "3216 False\n", + "3255 False\n", + "3294 False\n", + "3333 False\n", + "3372 True\n", + "3411 True\n", + "3450 False\n", + "3489 True\n", + "Name: PctCnt, dtype: bool" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton.PctCnt > 50" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "37088.0" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton.Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Candidate\n", + "DARRELL L CASTLE, PRESIDENT 344.0\n", + "DONALD J TRUMP, PRESIDENT 35274.0\n", + "GARY JOHNSON, PRESIDENT 2644.0\n", + "HILLARY CLINTON, PRESIDENT 37088.0\n", + "JILL STEIN, PRESIDENT 798.0\n", + "WRITE-IN 1159.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres.groupby('Candidate').Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PrecNo Candidate \n", + "1.0 DARRELL L CASTLE, PRESIDENT 2.0\n", + " DONALD J TRUMP, PRESIDENT 174.0\n", + " GARY JOHNSON, PRESIDENT 22.0\n", + " HILLARY CLINTON, PRESIDENT 188.0\n", + " JILL STEIN, PRESIDENT 3.0\n", + " WRITE-IN 2.0\n", + "2.0 DARRELL L CASTLE, PRESIDENT 9.0\n", + " DONALD J TRUMP, PRESIDENT 385.0\n", + " GARY JOHNSON, PRESIDENT 10.0\n", + " HILLARY CLINTON, PRESIDENT 259.0\n", + " JILL STEIN, PRESIDENT 7.0\n", + " WRITE-IN 9.0\n", + "3.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 193.0\n", + " GARY JOHNSON, PRESIDENT 17.0\n", + " HILLARY CLINTON, PRESIDENT 230.0\n", + " JILL STEIN, PRESIDENT 4.0\n", + " WRITE-IN 7.0\n", + "4.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 375.0\n", + " GARY JOHNSON, PRESIDENT 35.0\n", + " HILLARY CLINTON, PRESIDENT 283.0\n", + " JILL STEIN, PRESIDENT 10.0\n", + " WRITE-IN 8.0\n", + "5.0 DARRELL L CASTLE, PRESIDENT 7.0\n", + " DONALD J TRUMP, PRESIDENT 398.0\n", + " GARY JOHNSON, PRESIDENT 48.0\n", + " HILLARY CLINTON, PRESIDENT 443.0\n", + " JILL STEIN, PRESIDENT 13.0\n", + " WRITE-IN 13.0\n", + " ... \n", + "87.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 509.0\n", + " GARY JOHNSON, PRESIDENT 44.0\n", + " HILLARY CLINTON, PRESIDENT 343.0\n", + " JILL STEIN, PRESIDENT 5.0\n", + " WRITE-IN 10.0\n", + "88.0 DARRELL L CASTLE, PRESIDENT 9.0\n", + " DONALD J TRUMP, PRESIDENT 292.0\n", + " GARY JOHNSON, PRESIDENT 19.0\n", + " HILLARY CLINTON, PRESIDENT 642.0\n", + " JILL STEIN, PRESIDENT 10.0\n", + " WRITE-IN 24.0\n", + "89.0 DARRELL L CASTLE, PRESIDENT 3.0\n", + " DONALD J TRUMP, PRESIDENT 391.0\n", + " GARY JOHNSON, PRESIDENT 39.0\n", + " HILLARY CLINTON, PRESIDENT 628.0\n", + " JILL STEIN, PRESIDENT 6.0\n", + " WRITE-IN 22.0\n", + "90.0 DARRELL L CASTLE, PRESIDENT 0.0\n", + " DONALD J TRUMP, PRESIDENT 536.0\n", + " GARY JOHNSON, PRESIDENT 37.0\n", + " HILLARY CLINTON, PRESIDENT 394.0\n", + " JILL STEIN, PRESIDENT 13.0\n", + " WRITE-IN 19.0\n", + "91.0 DARRELL L CASTLE, PRESIDENT 1.0\n", + " DONALD J TRUMP, PRESIDENT 281.0\n", + " GARY JOHNSON, PRESIDENT 16.0\n", + " HILLARY CLINTON, PRESIDENT 396.0\n", + " JILL STEIN, PRESIDENT 6.0\n", + " WRITE-IN 13.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres.groupby(['PrecNo','Candidate']).Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1195.0" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton['Count'].max()" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Highest precinct vote total for Clinton: 1195.0\n", + "Lowest precinct vote total for Clinton: 18.0\n", + "Mean precinct vote total for Clinton: 407.56043956043953\n" + ] + } + ], + "source": [ + "# create min, max, and mean\n", + "max_clinton = df_Clinton['Count'].max()\n", + "min_clinton = df_Clinton['Count'].min()\n", + "mean_clinton = df_Clinton['Count'].mean()\n", + "\n", + "# print out some results\n", + "print(\"Highest precinct vote total for Clinton: \" + str(max_clinton))\n", + "print(\"Lowest precinct vote total for Clinton: \" + str(min_clinton))\n", + "print(\"Mean precinct vote total for Clinton: \" + str(mean_clinton))" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
589CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201616.016 SC NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1297.0495.077.95NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "589 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest Descr \\\n", + "589 16.0 16 SC NORTH DEMOCRATIC PRESIDENTIAL ELECTORS NaN \n", + "\n", + " VoteFor Candidate Posn Count \\\n", + "589 VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 1297.0 495.0 \n", + "\n", + " PctCnt Total PctTot \n", + "589 77.95 NaN NaN " + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton.loc[df['PctCnt'] == df_Clinton['PctCnt'].max()]" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
3138CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201682.082 UNIONDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6886.0126.017.03NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "3138 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party Contest \\\n", + "3138 NOVEMBER 8 2016 82.0 82 UNION DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "\n", + " Descr VoteFor Candidate Posn \\\n", + "3138 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 6886.0 \n", + "\n", + " Count PctCnt Total PctTot \n", + "3138 126.0 17.03 NaN NaN " + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton.loc[df['PctCnt'] == df_Clinton['PctCnt'].min()]" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PrecNo\n", + "1.0 391.0\n", + "2.0 679.0\n", + "3.0 457.0\n", + "4.0 717.0\n", + "5.0 922.0\n", + "6.0 707.0\n", + "7.0 377.0\n", + "8.0 522.0\n", + "9.0 421.0\n", + "10.0 446.0\n", + "11.0 385.0\n", + "12.0 359.0\n", + "13.0 277.0\n", + "14.0 329.0\n", + "15.0 195.0\n", + "16.0 635.0\n", + "17.0 535.0\n", + "18.0 1360.0\n", + "19.0 1283.0\n", + "20.0 1073.0\n", + "21.0 860.0\n", + "22.0 505.0\n", + "23.0 692.0\n", + "24.0 1643.0\n", + "25.0 1451.0\n", + "26.0 1897.0\n", + "27.0 1904.0\n", + "28.0 1043.0\n", + "29.0 1020.0\n", + "30.0 555.0\n", + " ... \n", + "62.0 356.0\n", + "63.0 160.0\n", + "64.0 1827.0\n", + "65.0 1857.0\n", + "66.0 795.0\n", + "67.0 1414.0\n", + "68.0 1618.0\n", + "69.0 496.0\n", + "70.0 792.0\n", + "71.0 1210.0\n", + "72.0 973.0\n", + "73.0 200.0\n", + "74.0 91.0\n", + "75.0 372.0\n", + "76.0 564.0\n", + "77.0 280.0\n", + "78.0 945.0\n", + "79.0 740.0\n", + "80.0 443.0\n", + "81.0 439.0\n", + "82.0 740.0\n", + "83.0 852.0\n", + "84.0 1667.0\n", + "85.0 414.0\n", + "86.0 910.0\n", + "87.0 917.0\n", + "88.0 996.0\n", + "89.0 1089.0\n", + "90.0 999.0\n", + "91.0 713.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres.groupby(['PrecNo']).Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/week3/.ipynb_checkpoints/josemg_pset2-checkpoint.ipynb b/week3/.ipynb_checkpoints/josemg_pset2-checkpoint.ipynb new file mode 100644 index 0000000..288fd22 --- /dev/null +++ b/week3/.ipynb_checkpoints/josemg_pset2-checkpoint.ipynb @@ -0,0 +1,3200 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problem Set 2: Intro to Pandas" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 1\n", + "\n", + "In this problem set, we want to determine if we can use voter registrations as a proxy for votes cast. Because who you vote for on an individual basis is not recorded, we would like to see if the numbers for those registered in a precinct as Republican or Democrate actually reflect the results of the election based on the outcome. We'll continue our analysis of Centre County, Pennsylvania, and we are going to use Pandas, Numpy, and Matplotlib as our tools to explore the data.\n", + "\n", + "\n", + "Building off the in class example, first a short example will introduce us to the dataset, some data wrangling functions of Pandas, and a few plots with Matplotlib.\n", + "\n", + "\n", + "\n", + "Throughout the exercises we will be continuously using Pandas and some of its merging functionality to join the numerous OD files available. We will be building exploratory data visualizations, finding urban patterns and locating divergent areas within the dataset. Some useful documentation for merging data with Pandas can be found at:\n", + "\n", + "\n", + "http://pandas.pydata.org/pandas-docs/stable/merging.html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, lets install our libraries." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "from itertools import cycle, islice\n", + "\n", + "# This line lets us plot on our ipython notebook\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let's open up one of the files. Let's look at the voter registrations, this is the same as we did in the inclass.\n", + "\n", + "**Problem 1: Load CENTRE_FVE_20170123.csv into Pandas as a data frame called 'df_voters'.**" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
12345678910...144145146147148149150151152153
0002013865-14NaNMILLSJAMESARTHURNaNM2/7/6510/1/00A...NaNABRNaNNaNNaNNaNNaNCENTRENaN
1002020582-14NaNTERRYCHARLESDNaNU9/16/769/1/02I...NaNNaNNaNNaNNaNAPDNaNCENTRENaN
2002287451-14NaNMURRELLRICHARDLNaNM8/11/5010/1/72A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
3002365541-14NaNMILLSJOYCEELLENNaNF5/6/6910/1/00A...NaNAPRNaNNaNNaNNaNNaNCENTRENaN
4002370224-14NaNFENTONCASEYJAMESNaNM11/22/833/1/02A...NaNAPDNaNNaNNaNNaN5707687675CENTRENaN
5002572852-14NaNMURRELLSUSANLNaNF12/16/4910/1/94A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
6004529096-14NaNHAIRSTEVENMNaNM12/11/7912/21/99A...NaNAPRNaNNaNNaNNaNNaNCENTRENaN
7005138406-14NaNBROOKSHARRYCNaNM3/19/501/1/01A...RAPRNaNNaNAPRNaNCENTRENaN
8005163451-14NaNBROOKSDEBRALOUISENaNF5/22/513/15/91A...RAPRNaNNaNAPRNaNCENTRENaN
9005194526-14NaNGENSIMOREGARYDAVIDNaNM3/6/685/22/96A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
10005881492-14NaNGRAHAMKATHRYNLEENaNF2/12/478/29/96A...NaNNaNNaNNaNNaNNaNNaN8145065538CENTRENaN
11007026230-14NaNSCHNEIDERWALTERGNaNM5/29/711/31/92A...RAPRAPRNaNNaNNaNCENTRENaN
12007094976-14NaNMURRAYRACHAELRNaNU6/19/765/16/00A...NaNNaNNaNNaNNaNNaNNaN6105098485CENTRENaN
13007376473-14NaNOCKERROSALIEJEANNaNF3/10/587/5/02A...NaNAPDNaNNaNAPD8147691906CENTRENaN
14007398108-14NaNOCKERJEANENaNF4/16/299/4/62A...NaNAPDNaNNaNNaNNaNNaNCENTRENaN
15009621382-14NaNMACHIKASALEXANDRAMNaNF3/2/876/16/05A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
16009878128-14NaNBRUNGARDLARACNaNF3/2/833/18/04A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
17010437417-14NaNRANKINLUCASROBERTNaNM1/31/804/21/98A...RAPRAPRAPR8143550831CENTRENaN
18010464969-14NaNSHENKCOLBYRYANNaNM9/29/739/4/97A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
19010573042-14NaNSTEPHENSERINLNaNF12/13/747/3/02A...NaNAPDAPDAPDNaNCENTRENaN
20010634062-14NaNSTEVERSHEILAMNaNF11/1/6610/9/84A...NaNAPNFNaNNaNNaNNaN6108446630CENTRENaN
21010849083-14NaNSMITHANNETTELNaNF3/2/458/28/68A...DAPDAPDAPD3530656CENTRENaN
22010849366-14NaNMENNAFRANKLINMNaNU1/13/508/28/76A...NaNAPDNaNNaNAPD3559388CENTRENaN
23010855262-14NaNPROVANDAVIDANaNU1/16/523/29/76A...DAPDAPDAPD3559067CENTRENaN
24010857411-14NaNWALKERRALPHENaNU3/15/412/27/64A...RAPRAPRAPRNaNCENTRENaN
25010858336-14NaNNASTASEELIZABETHENaNU11/18/252/13/47A...DAPDNaNNaNNaNNaN3553298CENTRENaN
26010858340-14NaNBEIGHTOLVELMAFNaNU8/2/199/29/47A...NaNABRNaNNaNNaNNaNNaNCENTRENaN
27010858347-14NaNBONFATTOMARYMNaNU4/19/279/11/48A...RAPRAPRAPRNaNCENTRENaN
28010858364-14NaNMANEYDENNISCNaNU9/8/279/11/52I...NaNNaNNaNNaNNaNAPR3553569CENTRENaN
29010858367-14NaNRHOADSDALEFNaNU6/10/289/12/52A...DAPDNaNNaNAPDNaNCENTRENaN
..................................................................
123413108229919-14NaNMISHRASONIKANaNNaNF2/22/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123414108245924-14NaNPECKYNOCHRISTOPHERRNaNNaN11/10/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123415108251099-14NaNAVEZZANOKATHERINEGNaNNaN9/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123416108251824-14NaNTERRERIRONALDCJRNaN12/4/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123417108262483-14NaNMADIASSTEVENPNaNNaN4/2/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123418108262546-14NaNSACCONICOLETTEDNaNNaN5/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123419108263616-14NaNSKAVERYCHANTELLENICOLENaNF12/29/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709005611CENTRENaN
123420108266993-14NaNFROMSTEINELISHAMNaNNaN10/10/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123421108268621-14NaNMCGARRIGALEMILYRNaNNaN4/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123422108268872-14NaNFELBERELINaNNaNNaN4/3/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN2036045055CENTRENaN
123423108268974-14NaNNEWCOMBMICHAELFIIINaN2/11/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN2034614023CENTRENaN
123424108272412-14NaNCOLONYKAYLEYRENEENaNF8/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123425108273735-14NaNMUIRRACHAELNaNNaNF10/26/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709034112CENTRENaN
123426108281100-14NaNBREENMAURAPNaNF1/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123427108281392-14NaNMENZELMEGANANNNaNF4/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN5704179068CENTRENaN
123428108281516-14NaNCOLONERICANNaNF9/18/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709055297CENTRENaN
123429108283090-14NaNSHAHIDAIMANaNNaNF9/19/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN9546629236CENTRENaN
123430108283218-14NaNCOPEZACHARYNaNNaNM1/22/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN6306312989CENTRENaN
123431108286601-14NaNLANDISJODYJEANNaNF7/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN5704368864CENTRENaN
123432108286706-14NaNZARROABIGAILHAYESNaNF9/30/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123433108288642-14NaNBUTLERJULIAKNaNNaN2/19/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123434108290220-14NaNMCGOVERNJAMESJIVM9/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN9732242161CENTRENaN
123435108290356-14NaNGORDONMARLEYRNaNF12/31/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN7247775506CENTRENaN
123436108290630-14NaNBRUGGEMEIERGRACENaNNaNF11/21/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN6309359977CENTRENaN
123437108290772-14NaNFEUERBERGANDRESNaNNaNNaN4/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123438108303668-14NaNFERENCIHANNAHCNaNNaN4/1/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123439108307850-14NaNNEILANDKAYLANaNNaNNaN10/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN6315594571CENTRENaN
123440108318654-14NaNFLYNNRILEYGNaNNaN11/24/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123441108325614-14NaNSOLIMANFAROUKNaNNaNNaN7/1/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123442108325661-14NaNCAUTELAALEXANDERNaNNaNNaN4/16/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
\n", + "

123443 rows × 153 columns

\n", + "
" + ], + "text/plain": [ + " 1 2 3 4 5 6 7 \\\n", + "0 002013865-14 NaN MILLS JAMES ARTHUR NaN M \n", + "1 002020582-14 NaN TERRY CHARLES D NaN U \n", + "2 002287451-14 NaN MURRELL RICHARD L NaN M \n", + "3 002365541-14 NaN MILLS JOYCE ELLEN NaN F \n", + "4 002370224-14 NaN FENTON CASEY JAMES NaN M \n", + "5 002572852-14 NaN MURRELL SUSAN L NaN F \n", + "6 004529096-14 NaN HAIR STEVEN M NaN M \n", + "7 005138406-14 NaN BROOKS HARRY C NaN M \n", + "8 005163451-14 NaN BROOKS DEBRA LOUISE NaN F \n", + "9 005194526-14 NaN GENSIMORE GARY DAVID NaN M \n", + "10 005881492-14 NaN GRAHAM KATHRYN LEE NaN F \n", + "11 007026230-14 NaN SCHNEIDER WALTER G NaN M \n", + "12 007094976-14 NaN MURRAY RACHAEL R NaN U \n", + "13 007376473-14 NaN OCKER ROSALIE JEAN NaN F \n", + "14 007398108-14 NaN OCKER JEAN E NaN F \n", + "15 009621382-14 NaN MACHIKAS ALEXANDRA M NaN F \n", + "16 009878128-14 NaN BRUNGARD LARA C NaN F \n", + "17 010437417-14 NaN RANKIN LUCAS ROBERT NaN M \n", + "18 010464969-14 NaN SHENK COLBY RYAN NaN M \n", + "19 010573042-14 NaN STEPHENS ERIN L NaN F \n", + "20 010634062-14 NaN STEVER SHEILA M NaN F \n", + "21 010849083-14 NaN SMITH ANNETTE L NaN F \n", + "22 010849366-14 NaN MENNA FRANKLIN M NaN U \n", + "23 010855262-14 NaN PROVAN DAVID A NaN U \n", + "24 010857411-14 NaN WALKER RALPH E NaN U \n", + "25 010858336-14 NaN NASTASE ELIZABETH E NaN U \n", + "26 010858340-14 NaN BEIGHTOL VELMA F NaN U \n", + "27 010858347-14 NaN BONFATTO MARY M NaN U \n", + "28 010858364-14 NaN MANEY DENNIS C NaN U \n", + "29 010858367-14 NaN RHOADS DALE F NaN U \n", + "... ... ... ... ... ... ... ... \n", + "123413 108229919-14 NaN MISHRA SONIKA NaN NaN F \n", + "123414 108245924-14 NaN PECKYNO CHRISTOPHER R NaN NaN \n", + "123415 108251099-14 NaN AVEZZANO KATHERINE G NaN NaN \n", + "123416 108251824-14 NaN TERRERI RONALD C JR NaN \n", + "123417 108262483-14 NaN MADIAS STEVEN P NaN NaN \n", + "123418 108262546-14 NaN SACCO NICOLETTE D NaN NaN \n", + "123419 108263616-14 NaN SKAVERY CHANTELLE NICOLE NaN F \n", + "123420 108266993-14 NaN FROMSTEIN ELISHA M NaN NaN \n", + "123421 108268621-14 NaN MCGARRIGAL EMILY R NaN NaN \n", + "123422 108268872-14 NaN FELBER ELI NaN NaN NaN \n", + "123423 108268974-14 NaN NEWCOMB MICHAEL F III NaN \n", + "123424 108272412-14 NaN COLONY KAYLEY RENEE NaN F \n", + "123425 108273735-14 NaN MUIR RACHAEL NaN NaN F \n", + "123426 108281100-14 NaN BREEN MAURA P NaN F \n", + "123427 108281392-14 NaN MENZEL MEGAN ANN NaN F \n", + "123428 108281516-14 NaN COLON ERICA N NaN F \n", + "123429 108283090-14 NaN SHAHID AIMA NaN NaN F \n", + "123430 108283218-14 NaN COPE ZACHARY NaN NaN M \n", + "123431 108286601-14 NaN LANDIS JODY JEAN NaN F \n", + "123432 108286706-14 NaN ZARRO ABIGAIL HAYES NaN F \n", + "123433 108288642-14 NaN BUTLER JULIA K NaN NaN \n", + "123434 108290220-14 NaN MCGOVERN JAMES J IV M \n", + "123435 108290356-14 NaN GORDON MARLEY R NaN F \n", + "123436 108290630-14 NaN BRUGGEMEIER GRACE NaN NaN F \n", + "123437 108290772-14 NaN FEUERBERG ANDRES NaN NaN NaN \n", + "123438 108303668-14 NaN FERENCI HANNAH C NaN NaN \n", + "123439 108307850-14 NaN NEILAND KAYLA NaN NaN NaN \n", + "123440 108318654-14 NaN FLYNN RILEY G NaN NaN \n", + "123441 108325614-14 NaN SOLIMAN FAROUK NaN NaN NaN \n", + "123442 108325661-14 NaN CAUTELA ALEXANDER NaN NaN NaN \n", + "\n", + " 8 9 10 ... 144 145 146 147 148 149 150 \\\n", + "0 2/7/65 10/1/00 A ... NaN AB R NaN NaN NaN NaN \n", + "1 9/16/76 9/1/02 I ... NaN NaN NaN NaN NaN AP D \n", + "2 8/11/50 10/1/72 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "3 5/6/69 10/1/00 A ... NaN AP R NaN NaN NaN NaN \n", + "4 11/22/83 3/1/02 A ... NaN AP D NaN NaN NaN NaN \n", + "5 12/16/49 10/1/94 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "6 12/11/79 12/21/99 A ... NaN AP R NaN NaN NaN NaN \n", + "7 3/19/50 1/1/01 A ... R AP R NaN NaN AP R \n", + "8 5/22/51 3/15/91 A ... R AP R NaN NaN AP R \n", + "9 3/6/68 5/22/96 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "10 2/12/47 8/29/96 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "11 5/29/71 1/31/92 A ... R AP R AP R NaN NaN \n", + "12 6/19/76 5/16/00 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "13 3/10/58 7/5/02 A ... NaN AP D NaN NaN AP D \n", + "14 4/16/29 9/4/62 A ... NaN AP D NaN NaN NaN NaN \n", + "15 3/2/87 6/16/05 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "16 3/2/83 3/18/04 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "17 1/31/80 4/21/98 A ... R AP R AP R AP R \n", + "18 9/29/73 9/4/97 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "19 12/13/74 7/3/02 A ... NaN AP D AP D AP D \n", + "20 11/1/66 10/9/84 A ... NaN AP NF NaN NaN NaN NaN \n", + "21 3/2/45 8/28/68 A ... D AP D AP D AP D \n", + "22 1/13/50 8/28/76 A ... NaN AP D NaN NaN AP D \n", + "23 1/16/52 3/29/76 A ... D AP D AP D AP D \n", + "24 3/15/41 2/27/64 A ... R AP R AP R AP R \n", + "25 11/18/25 2/13/47 A ... D AP D NaN NaN NaN NaN \n", + "26 8/2/19 9/29/47 A ... NaN AB R NaN NaN NaN NaN \n", + "27 4/19/27 9/11/48 A ... R AP R AP R AP R \n", + "28 9/8/27 9/11/52 I ... NaN NaN NaN NaN NaN AP R \n", + "29 6/10/28 9/12/52 A ... D AP D NaN NaN AP D \n", + "... ... ... .. ... ... ... ... ... ... ... ... \n", + "123413 2/22/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123414 11/10/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123415 9/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123416 12/4/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123417 4/2/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123418 5/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123419 12/29/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123420 10/10/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123421 4/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123422 4/3/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123423 2/11/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123424 8/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123425 10/26/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123426 1/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123427 4/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123428 9/18/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123429 9/19/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123430 1/22/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123431 7/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123432 9/30/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123433 2/19/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123434 9/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123435 12/31/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123436 11/21/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123437 4/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123438 4/1/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123439 10/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123440 11/24/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123441 7/1/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123442 4/16/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "\n", + " 151 152 153 \n", + "0 NaN CENTRE NaN \n", + "1 NaN CENTRE NaN \n", + "2 NaN CENTRE NaN \n", + "3 NaN CENTRE NaN \n", + "4 5707687675 CENTRE NaN \n", + "5 NaN CENTRE NaN \n", + "6 NaN CENTRE NaN \n", + "7 NaN CENTRE NaN \n", + "8 NaN CENTRE NaN \n", + "9 NaN CENTRE NaN \n", + "10 8145065538 CENTRE NaN \n", + "11 NaN CENTRE NaN \n", + "12 6105098485 CENTRE NaN \n", + "13 8147691906 CENTRE NaN \n", + "14 NaN CENTRE NaN \n", + "15 NaN CENTRE NaN \n", + "16 NaN CENTRE NaN \n", + "17 8143550831 CENTRE NaN \n", + "18 NaN CENTRE NaN \n", + "19 NaN CENTRE NaN \n", + "20 6108446630 CENTRE NaN \n", + "21 3530656 CENTRE NaN \n", + "22 3559388 CENTRE NaN \n", + "23 3559067 CENTRE NaN \n", + "24 NaN CENTRE NaN \n", + "25 3553298 CENTRE NaN \n", + "26 NaN CENTRE NaN \n", + "27 NaN CENTRE NaN \n", + "28 3553569 CENTRE NaN \n", + "29 NaN CENTRE NaN \n", + "... ... ... .. \n", + "123413 NaN CENTRE NaN \n", + "123414 NaN CENTRE NaN \n", + "123415 NaN CENTRE NaN \n", + "123416 NaN CENTRE NaN \n", + "123417 NaN CENTRE NaN \n", + "123418 NaN CENTRE NaN \n", + "123419 5709005611 CENTRE NaN \n", + "123420 NaN CENTRE NaN \n", + "123421 NaN CENTRE NaN \n", + "123422 2036045055 CENTRE NaN \n", + "123423 2034614023 CENTRE NaN \n", + "123424 NaN CENTRE NaN \n", + "123425 5709034112 CENTRE NaN \n", + "123426 NaN CENTRE NaN \n", + "123427 5704179068 CENTRE NaN \n", + "123428 5709055297 CENTRE NaN \n", + "123429 9546629236 CENTRE NaN \n", + "123430 6306312989 CENTRE NaN \n", + "123431 5704368864 CENTRE NaN \n", + "123432 NaN CENTRE NaN \n", + "123433 NaN CENTRE NaN \n", + "123434 9732242161 CENTRE NaN \n", + "123435 7247775506 CENTRE NaN \n", + "123436 6309359977 CENTRE NaN \n", + "123437 NaN CENTRE NaN \n", + "123438 NaN CENTRE NaN \n", + "123439 6315594571 CENTRE NaN \n", + "123440 NaN CENTRE NaN \n", + "123441 NaN CENTRE NaN \n", + "123442 NaN CENTRE NaN \n", + "\n", + "[123443 rows x 153 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Import df_voters\n", + "df_voters = pd.read_table('data/CENTRE_FVE_20170123.csv', sep=',', low_memory=False)\n", + "df_voters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To start us off, we need to determine party affiliations for each of those registered. Reading in the metadata, this is held in column 12. Let's take a look at unique party registrations in column 12.\n", + "\n", + "**The data documentation file is located in your data folder. It will describe the fields.**" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['R', 'D', 'NF', 'LN', 'I', 'NON', 'AT', 'GR', 'NO', 'OTH', 'S',\n", + " 'TP', 'AE', 'NOP', 'NST', 'SEC', 'UPP', 'GW', 'INDE', 'C', 'CT',\n", + " 'DNV', 'AI', 'PR', 'INDd', 'IND', 'ID', 'WH', 'GP', 'PL', 'MW',\n", + " 'AM', 'UNA', nan, 'LI', 'IAPP', 'THPY', 'IR', 'UNK', 'NTS', 'DS',\n", + " 'SAME', 'IT', 'ICO', 'BM', 'M', 'NS', 'JD', 'LT', 'BH', 'AH', 'MZ',\n", + " 'PG', 'PP', 'NL', 'UND', 'N', 'FD', 'IDK', 'RF', 'AYE', 'AD',\n", + " 'PPOA', 'MA', 'MM', 'OLAP', 'CNT', 'AF', 'CON', 'GT', 'FR', 'AC',\n", + " 'DTP', 'CH', 'SOD', 'IK', 'PZ', 'PIR', 'H', 'FE', 'COL', 'BP', 'CB',\n", + " 'AL', 'CM', 'OP', 'IA', 'L', 'TPP', 'ACO', 'COI', 'MAJA', 'KEG'], dtype=object)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# View the unique values in column 12\n", + "df_voters['12'].unique()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "There are quite a few, and its pretty messy. Let's to explore MatPlotLib, let's make some charts to see which parties have the highest subscriptions and graph it in a bar chart.\n", + "\n", + "**Group our data so we can plot. Find the number of subscribers to each party and sum them in a table. Call your new data frame 'df_summed', name the columns 'PARTY' and 'NUMBER'**" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NUMBER
PARTY
D51162
R47668
NF17608
NON2814
I2006
LN805
OTH368
GR264
INDE183
NO175
NOP137
IND31
C24
CT20
S11
LI10
IR10
ID9
UNK7
NTS6
RF5
UND5
M5
UNA5
AD4
GP4
AM4
WH4
NS3
MW3
......
AH1
AF1
TPP1
ACO1
OLAP1
FE1
DTP1
MM1
MAJA1
MA1
OP1
LT1
PG1
PIR1
L1
KEG1
N1
UPP1
PL1
IK1
PPOA1
ICO1
IA1
H1
GW1
GT1
NST1
SAME1
FR1
PZ1
\n", + "

92 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " NUMBER\n", + "PARTY \n", + "D 51162\n", + "R 47668\n", + "NF 17608\n", + "NON 2814\n", + "I 2006\n", + "LN 805\n", + "OTH 368\n", + "GR 264\n", + "INDE 183\n", + "NO 175\n", + "NOP 137\n", + "IND 31\n", + "C 24\n", + "CT 20\n", + "S 11\n", + "LI 10\n", + "IR 10\n", + "ID 9\n", + "UNK 7\n", + "NTS 6\n", + "RF 5\n", + "UND 5\n", + "M 5\n", + "UNA 5\n", + "AD 4\n", + "GP 4\n", + "AM 4\n", + "WH 4\n", + "NS 3\n", + "MW 3\n", + "... ...\n", + "AH 1\n", + "AF 1\n", + "TPP 1\n", + "ACO 1\n", + "OLAP 1\n", + "FE 1\n", + "DTP 1\n", + "MM 1\n", + "MAJA 1\n", + "MA 1\n", + "OP 1\n", + "LT 1\n", + "PG 1\n", + "PIR 1\n", + "L 1\n", + "KEG 1\n", + "N 1\n", + "UPP 1\n", + "PL 1\n", + "IK 1\n", + "PPOA 1\n", + "ICO 1\n", + "IA 1\n", + "H 1\n", + "GW 1\n", + "GT 1\n", + "NST 1\n", + "SAME 1\n", + "FR 1\n", + "PZ 1\n", + "\n", + "[92 rows x 1 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Your code here\n", + "grouped = df_voters.groupby('12') # Group by party registrations\n", + "summed = grouped['12'].count() # Get counts of each group\n", + "summed.sort_values(inplace=True, ascending=False)\n", + "df_summed = summed.to_frame()\n", + "df_summed.columns = ['NUMBER']\n", + "df_summed.index.names = ['PARTY']\n", + "df_summed" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's make a bar chart to do some initial exploration of the data. To get a simple exploratory plot, we use Matplotlib. Matplotlib is integrated into Pandas, and you can create plots from data frames. For more reading, check out the Matplotlib documentation at [Pandas Plotting Documentation](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html) and the [Matplotlib Documentation](http://matplotlib.org/2.0.0/contents.html).\n", + "\n", + "Using **df_summed** that you just created, the following will give you a basic bar chart of your dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_summed.plot.bar(legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is alot of values! It doesn't make much sense to show them all, let's group categories into three, Republican, Democrat, or Other. We can do this doing some grouping and by implementing what we've learned so far. The following shows you how to find all of the party affiliations that are not 'Democrat' or 'Republican'." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NUMBER
PARTY
NF17608
NON2814
I2006
LN805
OTH368
GR264
INDE183
NO175
NOP137
IND31
C24
CT20
S11
LI10
IR10
ID9
UNK7
NTS6
RF5
UND5
M5
UNA5
AD4
GP4
AM4
WH4
NS3
MW3
TP3
BM3
......
AH1
AF1
TPP1
ACO1
OLAP1
FE1
DTP1
MM1
MAJA1
MA1
OP1
LT1
PG1
PIR1
L1
KEG1
N1
UPP1
PL1
IK1
PPOA1
ICO1
IA1
H1
GW1
GT1
NST1
SAME1
FR1
PZ1
\n", + "

90 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " NUMBER\n", + "PARTY \n", + "NF 17608\n", + "NON 2814\n", + "I 2006\n", + "LN 805\n", + "OTH 368\n", + "GR 264\n", + "INDE 183\n", + "NO 175\n", + "NOP 137\n", + "IND 31\n", + "C 24\n", + "CT 20\n", + "S 11\n", + "LI 10\n", + "IR 10\n", + "ID 9\n", + "UNK 7\n", + "NTS 6\n", + "RF 5\n", + "UND 5\n", + "M 5\n", + "UNA 5\n", + "AD 4\n", + "GP 4\n", + "AM 4\n", + "WH 4\n", + "NS 3\n", + "MW 3\n", + "TP 3\n", + "BM 3\n", + "... ...\n", + "AH 1\n", + "AF 1\n", + "TPP 1\n", + "ACO 1\n", + "OLAP 1\n", + "FE 1\n", + "DTP 1\n", + "MM 1\n", + "MAJA 1\n", + "MA 1\n", + "OP 1\n", + "LT 1\n", + "PG 1\n", + "PIR 1\n", + "L 1\n", + "KEG 1\n", + "N 1\n", + "UPP 1\n", + "PL 1\n", + "IK 1\n", + "PPOA 1\n", + "ICO 1\n", + "IA 1\n", + "H 1\n", + "GW 1\n", + "GT 1\n", + "NST 1\n", + "SAME 1\n", + "FR 1\n", + "PZ 1\n", + "\n", + "[90 rows x 1 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_summed[(df_summed.index != 'D') & (df_summed.index != 'R')]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Group the parties into Democrat, Republican, and Other. Create a single row table with parties as the rows, and the number of voter registrations as columns. The rows should be Democrat, Republican, and Other. Call the table 'df_parties'\n", + "\n", + "Hint, sum the values you want from **df_summed** for each group and save them as variables. You will then need to create a new numpy array that contains the summed valued for each group and create the new data frame with your answer. This [Stack Exchange Question](http://stackoverflow.com/questions/17839973/construct-pandas-dataframe-from-values-in-variables) will help you, along with the [Pandas documentation on DataFrames](http://pandas.pydata.org/pandas-docs/stable/dsintro.html#dataframe)." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
N
Democrat51162
Republican47668
Other24609
\n", + "
" + ], + "text/plain": [ + " N\n", + "Democrat 51162\n", + "Republican 47668\n", + "Other 24609" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parties = ['Democrat', 'Republican', 'Other']\n", + "values = np.array([df_summed[(df_summed.index == 'D')].NUMBER.item(),df_summed[(df_summed.index == 'R')].NUMBER.item(),df_summed[(df_summed.index != 'D') & (df_summed.index != 'R')].NUMBER.sum()])\n", + "df_parties = pd.DataFrame(values,index=parties,columns=list('N'))\n", + "df_parties " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Problem 2: Plot this as a bar chart, using red for Republican, blue for Democrat, and yellow for other.**\n", + "\n", + "You can learn more about bar plots in in the [Bar Plot Documentation](http://pandas.pydata.org/pandas-docs/version/0.18.1/visualization.html#visualization-barplot). This will also give you hints as to how you can assign colors, along with the other properties affiated with bar charts, such as legends and axes." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_parties.plot.bar(legend = False, color='BRY')\n", + "plt.ylabel('Registered Voters')\n", + "plt.xlabel('Party')\n", + "plt.title('Party affiliation')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Problem 3: For this next question, implement the above. We want to compare how the number of voter registrations to election results for one precinct (PRECINCT 42). Create a bar chart that has two bars each for category (Democrat, Republican, and Other). One of the bars will represent the number of registered voters to that party, and the second bar representing the count of results (ie how many people actually voted for that parties candidate) for each group**\n", + "\n", + "Hint, you will have to load the precinct level result data into Pandas, then perform the correct grouping and summing to get the numbers you need from both the voter registration data and the precinct level results, then join the two into single dataframe to make your chart. You can base your answers on the following help page: http://chrisalbon.com/python/matplotlib_grouped_bar_plot.html" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Votes
Democrat802.0
Republican736.0
Other81.0
\n", + "
" + ], + "text/plain": [ + " Votes\n", + "Democrat 802.0\n", + "Republican 736.0\n", + "Other 81.0" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Difference between registered voters to the party and results.\n", + "\n", + "# Read Election Results data and create a table for Precinct 42\n", + "df_results = pd.read_table('data/centrecounty_precinct_results_nov2016.txt', sep=',') #Read table\n", + "df_res_prec42 = df_results[df_results['PrecNo'] == 42] #Filter results for precinct 42\n", + "df_respres_p42 = df_res_prec42.loc [df_res_prec42['Contest'] == 'PRESIDENTIAL ELECTORS'] #filter results to get only for presidential election\n", + "df_respres_p42.groupby('Candidate').Count.sum() \n", + "\n", + "grouped_res42 = df_respres_p42.groupby('Candidate') # Group by candidate\n", + "summed_res42 = grouped_res42['Count'].sum() # Get counts of each group\n", + "summed_res42.sort_values(inplace=True, ascending=False)\n", + "df_summed_res42 = summed_res42.to_frame() #Create a data frame with the values\n", + "df_summed_res42.columns = ['VOTES']\n", + "df_summed_res42.index.names = ['CANDIDATE']\n", + "\n", + "parties = ['Democrat','Republican','Other']\n", + "values_res = np.array([df_summed_res42[(df_summed_res42.index == 'HILLARY CLINTON, PRESIDENT')].VOTES.item(),df_summed_res42[(df_summed_res42.index == 'DONALD J TRUMP, PRESIDENT')].VOTES.item(),df_summed_res42[(df_summed_res42.index != 'HILLARY CLINTON, PRESIDENT') & (df_summed_res42.index != 'DONALD J TRUMP, PRESIDENT')].VOTES.sum()])\n", + "df_results42 = pd.DataFrame(values_res,index=parties,columns=['Votes'])\n", + "df_results42 " + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Reg Voters
Democrat824
Republican978
Other314
\n", + "
" + ], + "text/plain": [ + " Reg Voters\n", + "Democrat 824\n", + "Republican 978\n", + "Other 314" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Read Voter Registration data and create a table for Precinct 42\n", + "df_prec42 = df_voters[df_voters['27'] == 42]\n", + "\n", + "grouped42 = df_prec42.groupby('12') # Group by party registration\n", + "summed42 = grouped42['12'].count() # Get counts of each group\n", + "summed42.sort_values(inplace=True, ascending=False)\n", + "df_summed42 = summed42.to_frame() #create data frame with registered voters\n", + "df_summed42.columns = ['Voters']\n", + "df_summed42.index.names = ['PARTY']\n", + "\n", + "parties = ['Democrat', 'Republican', 'Other'] #Group all others and add them to table\n", + "values = np.array([df_summed42[(df_summed42.index == 'D')].Voters.item(),df_summed42[(df_summed42.index == 'R')].Voters.item(),df_summed42[(df_summed42.index != 'D') & (df_summed42.index != 'R')].Voters.sum()])\n", + "df_voters42 = pd.DataFrame(values,index=parties,columns=['Reg Voters'])\n", + "df_voters42" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VotesReg Voters
Democrat802.0824
Republican736.0978
Other81.0314
\n", + "
" + ], + "text/plain": [ + " Votes Reg Voters\n", + "Democrat 802.0 824\n", + "Republican 736.0 978\n", + "Other 81.0 314" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Join the two tables\n", + "df_prec42_diff = pd.concat([df_results42, df_voters42], axis=1)\n", + "df_prec42_diff" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n0KBBRW8bEfziF79g+vTpTJ8+nXnz5nHYYYcxbNgwHnnkEXbccUdGjx7NjTfe2IxH0PycPMzMaujQ\noQMHHXQQp5xyCqNGZff+HHDAAfz+979n3bp1LFmyhEceeYQhQ4bQsWNHli1btn7bESNGcM0117Bm\nzRoA/vWvf/Huu+8yf/58evTowamnnspXvvIVpk2blsuxNRW3eZiZ1WLUqFEcc8wx6y9fHXPMMTz+\n+OMMGDAASVx88cV86EMfolu3brRq1YoBAwYwevRozjrrLF588UX23ntvIoLu3bvzpz/9iUmTJnHJ\nJZfQpk0bOnToUPE1j812DPOqqqrweB5Wjnyrbv1mzZrF7rvvnncYW4TazrWkqRFR1dC2vmxlZmYl\nc/IwM7OSOXmYmVnJnDzMzKxkTh5mZlYyJw8zMyuZk4eZWQ2tWrVa34HhkUceyVtvvdXo1/z73//O\nvvvuu1HZ2rVr6dGjB6+88kqd211//fX1Ls+LHxI0s7LW1M/FFPPcS7t27Zg+fToAJ598MldddRXn\nnXdeo/Z7wAEHsGDBAubPn8/OO+8MwN/+9jf69u3LDjvsUOd2119/Pf369at3nZrWrl1L69bN+/Hu\nmoeZWT323XdfFi7cMPr1JZdcsr679fPPP399+Y9+9CP69OnD/vvvz6hRo7j00ks3ep2tttqK448/\nfv0T67Ch00WA6dOns88++9C/f3+OOeYY3nzzTe644w6mTJnCSSedxMCBA1m5ciVTp07lwAMPZNCg\nQYwYMYJFixYBMHz4cM4++2yqqqq44ooruP322+nXrx8DBgxg2LBhTX5enDzMzOqwbt06Jk6cyFFH\nHQVkPebOmTOHyZMnM336dKZOncojjzzCU089xR/+8AdmzJjBfffdR129WxT21rt69Wr+8pe/8NnP\nfhaAL37xi/z0pz/lmWeeYc899+SCCy7g2GOPpaqqiltuuYXp06fTunVrvvGNb3DHHXcwdepUTjnl\nlI1qRO+99x5Tpkzh29/+NhdeeCH3338/M2bM4O67727yc+PLVmZmNaxcuZKBAweycOFCdt99dw49\n9FAgSx4PPPAAe+21FwDLly9nzpw5LFu2jJEjR9K2bVvatm3LkUceWevrVlVVsXz5cmbPns2sWbMY\nOnQoXbt25e233+att97iwAMPBLJLZccdd9z7tp89ezbPPffc+njWrVvH9ttvv3755z73ufXT++23\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the dataset\n", + "df_prec42_diff.plot.bar(color = 'GY')\n", + "plt.title('Registered voters and results in Precinct 42')\n", + "plt.ylabel('Number')\n", + "plt.xlabel('Party')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 2 - Scatterplotting\n", + "\n", + "Now we will use the **precinct_centroids** file provided to display the geographical location of the centroid of each precinct, plot them in a scatterplot, then size the points in the scatterplot according to the number of votes.\n", + "\n", + "First, load the CSV." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
XYOBJECTIDNAMEPrecinctGlobalIDMDJShapeSTAreShapeSTLen
0-77.97239141.1293401BURNSIDE40{A309C3DE-8AD8-46A5-B8EA-B8F7E1ADB972}49-3-032.530029e+09280069.560289
1-77.64141441.0685052LIBERTY60{57577111-D7B7-4048-9517-EF2ED6059928}49-3-026.878831e+08131265.443714
2-77.68809041.0103103HOWARD TWP58{C9B8B5CF-6699-485A-97D2-74FB9B2D6FFE}49-3-025.275320e+08111072.612891
3-77.64234840.9859814MARION61{FA3740D2-624B-4464-B6CD-16F6E219ADEA}49-3-026.135493e+08131038.017743
4-77.94989241.0275685SNOW SHOE14{908F092A-BCFF-4EA5-99D7-B9248A2EA56A}49-3-031.644442e+0719920.287608
\n", + "
" + ], + "text/plain": [ + " X Y OBJECTID NAME Precinct \\\n", + "0 -77.972391 41.129340 1 BURNSIDE 40 \n", + "1 -77.641414 41.068505 2 LIBERTY 60 \n", + "2 -77.688090 41.010310 3 HOWARD TWP 58 \n", + "3 -77.642348 40.985981 4 MARION 61 \n", + "4 -77.949892 41.027568 5 SNOW SHOE 14 \n", + "\n", + " GlobalID MDJ ShapeSTAre \\\n", + "0 {A309C3DE-8AD8-46A5-B8EA-B8F7E1ADB972} 49-3-03 2.530029e+09 \n", + "1 {57577111-D7B7-4048-9517-EF2ED6059928} 49-3-02 6.878831e+08 \n", + "2 {C9B8B5CF-6699-485A-97D2-74FB9B2D6FFE} 49-3-02 5.275320e+08 \n", + "3 {FA3740D2-624B-4464-B6CD-16F6E219ADEA} 49-3-02 6.135493e+08 \n", + "4 {908F092A-BCFF-4EA5-99D7-B9248A2EA56A} 49-3-03 1.644442e+07 \n", + "\n", + " ShapeSTLen \n", + "0 280069.560289 \n", + "1 131265.443714 \n", + "2 111072.612891 \n", + "3 131038.017743 \n", + "4 19920.287608 " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_precinct_locations = pd.read_table('data/center_county_precinct_centroids.csv', sep=',', low_memory=False)\n", + "df_precinct_locations.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have a new `DataFrame` for each precinct and the geographical location of its centroid, we can use lat/lon values to create a scatter plot. We can even vary their size based on the variables or criteria we set. If variation across precincts is not that big, we can use a log function to better visualize it on our plot. Numpy has a quick log implementation:\n", + "```Python\n", + "np.log(value)\n", + "```\n", + "In this following example, we give the points a simple size of 25." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAD8CAYAAABw1c+bAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAG4dJREFUeJzt3X+QXeVdx/H3995kQzZtpECSJg00bQdCoCrqClWKjQlo\nDRnQzoit0kHF4nQsptoOgo7V0dFJSzvS2k4VAy1TnFL81VZUSgmzVGYUuymhJFm2KSUhyZLdLZCE\nsmk2e+/XP+694e7m3t1zf5x7nnPO5zWTyb1379l9npvN9zzn+3yf55i7IyIi+VFIugEiItJbCvwi\nIjmjwC8ikjMK/CIiOaPALyKSMwr8IiI5o8AvIpIzCvwiIjmjwC8ikjMLkm5AI+ecc46vWbMm6WaI\niKTGjh07vu/uy6K8N8jAv2bNGoaGhpJuhohIapjZ/qjvVapHRCRnFPhFRHJGgV9EJGcU+EVEckaB\nX0QkZxT4RURyRoFfRCRnFPhFRHJGgV9EJGcU+EVEcibILRtEQlcqO4Mj4+wePcbFq5ayfu1yigVL\nulkikSjwi7SoVHbee9fj7DxwhONTJRb3Fbnk3DP5wo2XKfhLKijVI9KiwZFxdh44wuRUCQcmp0rs\nPHCEwZHxpJsmEokCv0iLdo8e4/hUacZrx6dK7Bk9llCLRFqjVI/EKou58ItXLWVxX5HJuuC/uK/I\nRauWJtgqkegU+CU2Wc2Fr1+7nEvOPfO0fq1fuzzppolEosAvsanPhcPMXPjGdSsSbl37igXjCzde\nxuDIOHtGj3FRRq5kJD8U+CU2c+XC0xz4oRL8N65bkfp+SD5pcldiU8uF11MuXCR5CvwSm1ouvL+v\niAH9yoWLBEGpHomNcuEiYVLgl1gpFy4SHqV6RERyRoFfRCRnFPhFRHJGgV9EJGcU+EVEciZy4Dez\nopk9YWYPVJ//qpntNrOymQ3McdzdZjZuZru60WAREelMKyP+LcBw3fNdwLuAb8xz3OeBd7bWLBER\niUukwG9mq4GrgW2119x92N1H5jvW3b8BvNh2C0VEpKuijvjvAG4BynE1xMxuMrMhMxuamJiI68eI\niOTevIHfzDYD4+6+I86GuPud7j7g7gPLli2L80eJiORalBH/5cA1ZrYPuA/YYGb3xtoqERGJzbyB\n391vc/fV7r4GeDfwiLtfH3vLREQkFm3X8ZvZr5jZQeBngP8ws69VX19lZv9Z974vAv8DrDWzg2Z2\nY6eNFhGR9pm7J92G0wwMDPjQ0FDSzRARSQ0z2+HuTddU1dPKXRGRnFHgFxHJGQV+EZGcUeAXEckZ\nBX4RkZxR4BcRyRndbF0kx0plZ3BknN2jx7h41VLWr11OsWBJN0tipsAvklOlsvPeux5n54EjHJ8q\nsbivyCXnnskXbrxMwT/jlOoRCUSp7GwfHuNT2/eyfXiMUjnexZWDI+PsPHCEyakSDkxOldh54AiD\nI+Ox/lxJnkb8IgFIYvS9e/QYx6dKM147PlViz+gxNq5bEcvPlDBoxC8SgCRG3xevWsrivuKM1xb3\nFblo1dLYfqaEQYFfJABzjb7jsn7tci4590z6+4oY0F+9yli/dnlsP1PCoFSPSABqo+/JuuAf9+i7\nWDC+cONlDI6Ms2f0GBepqic3FPhFAlAbfc/O8cc9+i4WjI3rViinnzMK/CIB0OhbekmBX1IpiwuP\nNPqWXlHgl9TRwiORzqiqR1JHC49EOqPAL6mTROmjSJYo8EvqaOGRSGcU+CV1tPBIpDOa3JXUUemj\nSGcU+CWVVPoo0j6lekREckaBX0QkZ5TqkcRkcfWtSBoo8EsitPpWJDlK9Uhk3bw1oFbfiiRHI36J\npNsjdN32TyQ5GvFLJN0eoWv1rUhyFPglkm7vj6PVtyLJUapHIun2rQG1+rb3VEUlNQr8EkkctwbU\n6tvumS+oq4pK6inwSyQaoYcrSlCvn6OBmXM0OvHmj3L8EllthH7zxvPZuG6Fgn4goky86x4GUk+B\nXyTlogR1VVFJPQV+kZSLEtRVRSX1Iuf4zawIDAGH3H2zmf0q8OfAOuBSdx9qctw7gU8CRWCbu2/t\nuNUiPZKGSpgoE++ao5F6rUzubgGGgdowYhfwLuDvmx1QPVl8BrgKOAh808y+6u572muuSO+kpRIm\nalBXFZXUREr1mNlq4GpgW+01dx9295F5Dr0U+K67f8/dp4D7gGvbbaxIL6VpPyFNvEsroub47wBu\nAcotfv83AAfqnh+svnYaM7vJzIbMbGhiYqLFHyPSfaqEkayaN/Cb2WZg3N13xNkQd7/T3QfcfWDZ\nsmVx/iiRSFQJI1kVZcR/OXCNme2jkqrZYGb3Rvz+h4Bz656vrr4mEjxVwkhWzTu56+63AbcBmNl6\n4MPufn3E7/9N4HwzexOVgP9u4Nfba6pIb6kSRrKq7S0bzOxXgL8FlgH/YWY73f0XzWwVlbLNTe4+\nbWYfAL5GpZzzbnff3ZWWi/RA1ith0lCuKt1n7u3fRSkuAwMDPjTUcFmAiHRJWspVJRoz2+HuA1He\nq5W7IjmVpnJV6S4FfpGcUrlqfinwi+SUylXzS4FfpAdKZWf78Bif2r6X7cNjlMrJz62pXDW/dCMW\nkZiFOomqctXkJVVVpcAvErOQ736V9XLVkCU5IFCqRyRmmkSVRpKsqlLgF4lZ1idRQ5y/SIMkBwRK\n9YjELMqNUtIq1PmLNKgNCCbrgn+vBgQK/CIxy/IkasjzF6FLckCgwC/SA1mdRJ0rXZG1vnZbkgMC\nBX4RaVuS6YosSGpAoMldEWmbFoGlk0b8ItK2LM9fZJkCv4h0JKvzF1mmVI+ISM4o8IuI5IxSPSId\n0u0LJW0U+HMszQErlLZr5aqkkQJ/TqU5YIXUdq1clTRSjj+n0ny/1ZDarp03JY0U+HMqzQErpLZn\nfefNpGnnz3go1ZNTaV5qH1Lbs7zzZtJCSulljQJ/TqU5YIXUdq1cjY/mT+KjwJ9TaQ5YobVdK1fj\noZ0/46PAn2NpDlhpbrtEE1JKL2s0uSsiQdLOn/HRiF9EghRaSi9LFPhFeiSU1cZpopRePBT4RTow\nVzCv/9q6la/l7see5cmDR+csTYzj5KATjsymwC/SprnqzIEZX+tbUOBkqUxt/VGj0sQ46tZVCy+N\naHJXpE2Nto544rmX+OTD3+FD9+9kx/6XTn3txPSrQb9mcqrErkNH5/x+nW5FEdL2FhIOBX6RNjWs\nMz9Z5rOPPsOXd45yYro87/d4cNfhU9sQxLEVRUjbW0g4FPhF2tRonx6Ak6Xo+8nsf3Hy1Og7jn1/\ntJeQNKLAL5nUi829ZteZLyzOnTM/Z0kfs99RP/qOo25dtfDSiCZ3JXN6NaE5u878ZKnMtseenbHS\ntMaAy88/h6/vGWu6EjWOunXVwksjkQO/mRWBIeCQu282s7OALwFrgH3Ade7+UoPjtgDvo/K7/w/u\nfkcX2p0IlcWlQy8396qvMy+VnaH9L7Fj/0un5fcX9xXZ/GMrmXj5xJyby8VRt65a+GSFGDdaGfFv\nAYaBWnLwVmC7u281s1urz/+o/gAzeyuVoH8pMAU8aGYPuPt3O255j6ksLj2S2tyrNrp+ZHiMv3xg\nD2Mvn2Bqunzqd2XDhSvYcOEKjb5zJNS4ESnwm9lq4Grgr4A/rL58LbC++vgeYJBZgR9YBzzu7pPV\n7/Mo8C7gY500OgmPDI/NGMlpi9hwJbm5V7FgXHXx69mwrnmA1+g7P0LdWjrq5O4dwC1A/fXrCnd/\nvvr4MNCoF7uAK8zsbDPrBzYB57bb2KSUys5fPLDntMv3SZXFBSmECc1aeuXmjeezcd0KigXT3aRy\nKNRy2nlH/Ga2GRh39x1mtr7Re9zdzey032J3HzazjwIPAa8AO4HTZ74qP+cm4CaA8847L3IHemFw\nZJzxl0+c9vqiBQWVxQUoxAnNUC/5sya0fHqoW0tHSfVcDlxjZpuAM4ClZnYvMGZmK939eTNbCTRc\nCujudwF3AZjZXwMHm7zvTuBOgIGBgaCGQrtHjzHVYDHO8qWLVBYXqNAmNEO95M+SEE+uId0trt68\ngd/dbwNuA6iO+D/s7teb2e3ADcDW6t9faXS8mS1393EzO49Kfv9tXWp7zzQ6axcLxrU/virBVkma\n6G5S8Qvx5Bri1Sd0toBrK3CVme0Frqw+x8xWmdl/1r3vX8xsD/DvwO+5+5EOfmYiamftRQte/bhK\nZeeux57lvXc9rlytzEsraOMXaj690XxP0lpawOXug1Sqd3D3F4CNDd4zSmUSt/b8io5aGAh3Py3A\nHz9ZTnxEIekQ6iV/loSaTw+RVu5GMDgyzpMHjzLdYGSvy3WJItRL/izRyTU6Bf4IGl1C1mhEIVGF\nNuGcNTq5RqfAH0GjS0iolHNqRCGdCK38MO10co1GgT+C+kvIyakSixYUWL50ER/ZfBEbLgxjskbS\nJ8TyQ8kHBf4IdAmZHSGNsEMsP5R8UOCPKO5LyJACUlaFNsJWbb8kRYE/AKEFpG4I8UTW7RF2p31s\ntfwwxM9U0kmBPwBZu+QP9UTWzRF2N/rYSvlhqJ+ppJMCfwCydskf6omsmwt8utHHVuaOQv1Mm9HV\nSdgU+AOQtRWHoZ7IurnAp1t9jDp3FOpn2oiuTsKnwB+ArK04DPVE1s3qrF73MdTPtJG0XZ3kkQJ/\nALJWLhryiaxb1Vm97mPIn+lsabo6yStzD29nyYGBAR8aGkq6GdKBWo43CyeyZnrdx7R8ptuHx7j5\ni0/MuDrp7yvyt+/5ia4Hfs0lvMrMdrj7QKT3KvCLSDf1KsevuYSZWgn8SvWISFf1KnWpuYT2KfCL\nSNf1YrM0zSW0r5M7cImIJEZ3NWufRvySaprce1XePos0VTqFRoGf/P2HyQpN7r0qj59F1sqgeyn3\ngT+P/2GyQpN7FaWy88mHv8M3973IyVKlSi8vn4VuvNKe3Of464OHM/M/jIRtrsm9vKgNXD776DOn\ngn5N3j4LiS73gV/BI700uffqwGV20If8fRYSXe4Dv4JHetUm9/r7ihiV1aF5m9xrNHABWFi03H0W\nEl3uc/yqDEgvTe413rxtYdF4/zvewpYrL8jVZyHRacsG0rMHioQlhGowFSdIjfbqEYlZSAFXAxcB\n7dUjEruQSklV0iityv3krkg7VA0maaYRf06EkI/OkjTdEUtkNgX+HAgpHx2KTk+EqgaTNFPgz4GQ\n8tEh6MaJUKWkkmYK/DkQ6r7lnY662z2+WydCTapKWinw50CI+ehOR92dHB/qiVCkV1TVkwMhbm3Q\n6eZ4nRzfyTYdpbKzfXiMT23fy/bhMUrl8NbBiMxHI/4cCDEf3emou9nxuw4dPfX1ZumfdidmNUku\nWaHAnxOh5aM7TT81Ov6MhQUe3HWYv//G9+YMzO2eCDVJLlmhVI8kot30Uy3V8tSho5x3Vj+LFxZO\nHf/Gs5ew/8XJpumfUtn5+u7DfPC+J/jQ/TuZLpW5cOVr2T16jMGR8XnTNlq0JVkRecRvZkVgCDjk\n7pvN7CzgS8AaYB9wnbu/1OC4PwB+B3DgKeC33P2HnTddOpH0gq52Rt2NUi1rzl7CO9/6et76hh/h\nqUNH+eTDe2ccc3yqxL8/OcpTh47y4FPP853xH1CL71/eOUrBwJ1IaZsQJ8lF2tFKqmcLMAzUfstv\nBba7+1Yzu7X6/I/qDzCzNwC/D1zk7sfN7H7g3cDnO224tC+UXHWU9FP9CWq6VOaJ517i+MkyUBnR\n73vhFUplZ/foMcplPy0wm8F/7TrMielyw+9fOwlESdto0ZZkRaTAb2argauBvwL+sPrytcD66uN7\ngEFmBf66n7HYzE4C/cBo+82VbkhLrnr2CWpB0U6/veDJMp999BmmS84ZCwv0LSjQ31fk+FSJQsEo\nl71p0J9tcp7J5U4nyZO+yhKpiTrivwO4BXht3Wsr3P356uPDwGn/W9z9kJl9HHgOOA485O4PddBe\n6YK01LHPPkE1ur1g/eu1K4GzlyxirPTDpu9vpq9o86Zt2p0kD+UqSwQiTO6a2WZg3N13NHuPVzb1\nP+1/mZm9jsqVwZuAVcASM7u+yc+5ycyGzGxoYmIiavulDWm53eRctxW06t+z/fBkmbGXWw/6UEn7\nfPvg0Vjq8ztdtyDSTVFG/JcD15jZJuAMYKmZ3QuMmdlKd3/ezFYCjX6DrwSedfcJADP7V+BngXtn\nv9Hd7wTuhMqNWNrqjUSSllx1o8nU/r4iv/P2N7GwWOBkqcy2x56d8fVG6aCopsvOp7bvbTga7zRN\nk5arLMmHeQO/u98G3AZgZuuBD7v79WZ2O3ADsLX691caHP4c8DYz66eS6tlIpTJIEhTigq5Gmp2g\ntlx5AQCPPD3G2Uv6KJVPcGK6XCnpPKuffS+8cirt06rZo/GN61Z0JU0TWkWQ5hvyrZMFXFuB+83s\nRmA/cB2Ama0Ctrn7Jnd/3Mz+GfgWMA08QXVUL8kKbUFXI81OUMCMQNy3oMB5r1vMn26+iHesXc4N\ndz/Ot547EnlSt5H60Xg3JsNDusrSfIO0FPjdfZBK9Q7u/gKVEfzs94wCm+qe/xnwZ500UvKr0Qlq\n+/DYjEB8YrrM91+ZolAwigXDrPPgVT8a70aaJqSrrLRUdUl8tGWDpM58K2h3HuhstL94YWHGaLxb\naZpQrrI03yCZC/zKXWbT7IVcZywszMjj1wJxs0qgqBYWjfdd8Wa2XHnBqd+bkNI03RDafIP0XqYC\nv3KX2dTo37VvQaUS+Ycny6cF4tlBrRXTJWdhsdCVTd1ClbUTmbQuU4FfuctsavTv2t9X5H1XvJmF\nxcKMQDw7qPUtqJR9Ri3LbzbyDSVN0w1ZO5FJ6zIV+JW77K5Q0mbN/l0XFgvcvPH8Ga8XC8bnf+tS\nPv3IXob2v8RPvvFMHtp1mO+Mv3La9y0WjEULCrh7wyuHLMvSiUxal6nAr9xl99TSK7VN0RYWjbcs\new1f/cDbT6VZeqWVf9dS2fnNz/3fqRH/zgNHOHtJX8PvW1ud2+jKQSTLMrUff4i3GGwkDbfvGxwZ\nn7ET5smS8/Thl7n204/1vL2t/Ls22hph/OUTLGpysqq/cti4boWCvuRCpkb8achdpmUCevfosYar\nX7878YOez5m08u/aKC00NV1m9VmLGT924rQyT10RSh5lKvBD+LnLtExAX7xqKQsb7HszXfJE5kyi\n/rs2Swt9ZPNF4PCXD+xh7OUTTE3nK6cvUi9zgT90aZmAXr92OW9Z9hqePvzyjNdDHyE3K1XccGEl\njbOhugVDqFeEIr2gwN9jaZmALhaMr37g7Vz76cf47sQPmC55KkbI86WFQr8iFOkFBf4eS9Pimb4F\nBR74/SsSGyG3W06q4C4yN6vcQyUsAwMDPjSU3d2bawFN6Ybm0jIJLhIKM9vh7gNR3qsRfwI0Ip1f\nWibB5xPKIjiRegr8EqS0TILPRVctEqpMLeCS7EjLfYHnovvsSqgU+CVIaVmFPZf57hsgkhSleiRI\naViFPZ+0lO5K/ijwS7DSPgmeptJdyRcFfpGYZOGqRbJJgV8yJbTyybRftUg2KfBLZqh8UiQaVfVI\nZqh8UiQaBX7JDJVPikSjwC+ZkYVFXyK9oMAvXZP0LSWzsOhLpBc0uStdEcLEqsonRaJR4JeuCGU3\nTZVPisxPqR7pCk2siqSHAr90hSZWRdJDgV+6QhOrIumhHL90hSZWRdJDgV+6RhOrIumgVI+ISM4o\n8IuI5IwCv4hIzijwi4jkTOTAb2ZFM3vCzB6oPj/LzL5uZnurf7+uwTFrzWxn3Z9jZvbBbnZARERa\n08qIfwswXPf8VmC7u58PbK8+n8HdR9z9Ene/BPgpYBL4tw7aKyIiHYoU+M1sNXA1sK3u5WuBe6qP\n7wF+eZ5vsxF4xt33t9pIERHpnqgj/juAW4By3Wsr3P356uPDwHzF2+8Gvtjsi2Z2k5kNmdnQxMRE\nxGaJiEir5g38ZrYZGHf3Hc3e4+4ONN183cz6gGuAf5rje9zp7gPuPrBs2bL5miUiIm2KsnL3cuAa\nM9sEnAEsNbN7gTEzW+nuz5vZSmCuG5v+EvAtdx/rvMkiItIJqwzWI77ZbD3wYXffbGa3Ay+4+1Yz\nuxU4y91vaXLcfcDX3P1zEX/OBJC2uYBzgO8n3YiEqO/5lOe+Q3j9f6O7R0qXdLJXz1bgfjO7kUqQ\nvg7AzFYB29x9U/X5EuAq4HejfuOojQ+JmQ25+0DS7UiC+q6+51Ga+99S4Hf3QWCw+vgFKpU6s98z\nCmyqe/4KcHYnjRQRke7Ryl0RkZxR4O+eO5NuQILU93zKc98hxf1vaXJXRETSTyN+EZGcUeCPyMy+\nVLfZ3D4z21l9faGZ3WNmT5nZsJnd1uT4283saTP7tpn9m5md2dsedKYL/Z93U79QzdH335i1CWHZ\nzC5pcPwlZva/1fcMmdmlve9Fezrte/W9N1d/93eb2cd624P2daPv1fd/yMzczM7pXevn4e760+If\n4BPAR6qPfx24r/q4H9gHrGlwzC8AC6qPPwp8NOl+9Lj/HwNurT6+Na39r+/7rNd/lMpeVI2OeQj4\nperjTcBg0v3oYd9/HngYWFR9vjzpfvSq79Wvnwt8jUrJ+zlJ96P2RyP+FpmZUVmzUNt3yIElZrYA\nWAxMAcdmH+fuD7n7dPXp/wKre9Dcrmu3/7S+qV9wGvS93nuA+5oc6sDS6uMfAUa737p4ddD39wNb\n3f0EgLvPtcI/SB30HeBvqOxzFtRkqgJ/664Axtx9b/X5PwOvAM8DzwEfd/cX5/kevw38V3xNjFW7\n/W91U78Qze57vV+j+SaEHwRuN7MDwMeBhumwwLXb9wuAK8zscTN71Mx+OrYWxqetvpvZtcAhd38y\nzsa1o5OVu5ljZg8Dr2/wpT9x969UH7+Hmf/QlwIlYBXwOuC/zexhd/9ek5/xJ8A08I9da3iX9KL/\nUNnUz8yCGgG12ffasZcBk+6+q8m3fz/wB+7+L2Z2HXAXcGUXmt0VMfd9AXAW8Dbgp6ms9n+zV/Mg\nSYur72bWD/wxlRRveJLONaXpD5Vf4jFgdd1rnwHeW/f8buC6Jsf/JvA/QH/Sfel1/4ERYGX18Upg\nJOn+dNr3uq/9DfDHcxx7lFdLpw04lnR/etj3B4Gfr3v+DLAs6T7F3Xcquf9xKnNe+6gM9p4DXp90\nn9yV42/VlcDT7n6w7rXngA1wal+itwFPzz7QzN5JJdd3jbtP9qCtcWi7/8BXgRuqj28AvtLgPSFr\n1HfMrEAl/ztXnncUeEf18QagUcogZJ30/ctUJngxswuAPsLa2Gw+bfXd3Z9y9+Xuvsbd1wAHgZ90\n98NxNzgKBf7WNLqZzGeA15jZbuCbwOfc/dsAZrbNzGqbOH0aeC3w9WoJ2N/1qtFd1En/twJXmdle\nKv+Ztvaozd3S7EZCPwcc8FmprVl9fx/wCTN7Evhr4KZYW9p9nfT9buDNZraLSpC8watD4pTopO/B\n0spdEZGc0YhfRCRnFPhFRHJGgV9EJGcU+EVEckaBX0QkZxT4RURyRoFfRCRnFPhFRHLm/wGFwB/0\nSTiLpQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(df_precinct_locations['X'],df_precinct_locations['Y'], s=25)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Problem 4: Using the above example, and the documentation on scatterplots, create two scatterplots using longitude and latitude X and Y locations, one showing percentage of vote for Trump, and other percentage of vote for Clinton. Make the Trump dots colored red, and Clinton blue.**\n", + "\n", + "Find the [Scatterplot documentation here](http://pandas.pydata.org/pandas-docs/version/0.19.1/visualization.html#scatter-plot)\n", + "\n", + "Hint: You will need to join the results precincts file to the centroids, and then set the size of the plot points to be the percentages. This is accessed using the S property.\n", + "\n", + "To perform the join, use merge. This [Stack Exchange](http://stackoverflow.com/questions/20375561/joining-pandas-dataframes-by-column-names) question will help!" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nZ0leSY8eqZM1QlYWcMghyTnW4MFyrO++k2q4sQgGgUceqf3e0qWiKLZvr32X//ffcic/cKAouUDA\nO9mt9E0nMl+DSlFcRn0YDZGiIhnMFiyQHhi77ioK4pxzmnbWbVmZJNN9/LEoz4gPJRiUa/TJJ7XN\nUcuXy2xn+/b4jmSfT8rHzJyZeHZnl/feAy66yLwPY9o0LSWuuIYVH4YqDCU9qKqSBLV168Ss1r27\n9Fi3kyC2fDkwcaKUDy8oEL/JwIE772voUCkJkyibPi9PIrrOO8+6LGaorJSS4lu3Jl63Wzc5L02c\nU1xCFYbScNi2TcxEEyaILyEclsEwHJYy6uPGiT/B7bv7deskoMBsJd+ePWuH47rNjBlSbSCeOQ0Q\nxTVnjjc+IKXJolFSSsNg+XIxEd1/vyiOwkLJNSgqEv/MX39JV7rjjqt/ILXD559bU0JLl3pbk2vg\nQDGltWwpkWXRBIPSY+Orr1RZKClFnd5Kati2DejXD1i7tn6TUCgkjuzTTpMaS26ZYgoLrZWOz8kB\nduyQAd0rBg6UyLKpUyWUessWMVWNHCl1nNQMpaQYVRhKanjsMbljN1ONt6xMcjdmz5awWDfYdVfJ\noDdrkqqokG28JjNTTFMnneT9sRTFImqSUpJPVZU0GCorM79NKCQhxW4xeLC1GUbPnsmp+qsoaYwq\nDCX5zJkTv/x4PJglCbC42B0ZWraUcuhm/Bh5eeJ8V5QmjioMJfmsW2dvu+xsdx3PTzwhZqbMzPjr\n+P3SL+X00907rqI0UFRhKMnHbogss/3KvbFo2xaYO1fqR+Xl1XYq5+RI0t7w4VKx1m4LWkVpRKjT\nW0k+3bvbaz3rRVmMTp2k5/m338qM4/ffRVn07y/tdzt3dvd4itKAUYWhJJ9evYD27WVwNktWloSX\nutU/Ixoi4IgjZFEUJS46z1aSDxFw001iBjJLdjZw7bXeyaQoSkJUYSipYeRIKaBnps9HIADcfHPy\ne3soilILVRhKasjMlB4ZAwfu7HCOkJ0tCuWmm4Dbbku+jIqi1EIVhpI6fD5RGp99JpVjc3JkNuH3\ny+OoUcDPPwP//KeWxVCUNECd3kpqIZKaUv36SYHBzZvFwd2ypbshtIqiOMbzGQYRZRLRz0T0ifG6\nORFNJ6JlxuNOBXqIaC8imh+1FBLRdV7LqqQYvx/o2FHyI1RZKErakQyT1LUAFke9vgnADGbeE8AM\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Map 1: Votes for Trump\n", + "# Add your code below:\n", + "df_rtrump = df_results[(df_results['Contest'] == 'PRESIDENTIAL ELECTORS') & (df_results['Candidate'] == 'DONALD J TRUMP, PRESIDENT')]\n", + "df_plottrump = df_rtrump[['PrecNo','PctCnt']]\n", + "df_trump = df_precinct_locations.merge(df_plottrump, left_on ='Precinct', right_on ='PrecNo', how='left')\n", + "plt.scatter(df_trump['X'],df_trump['Y'], s=df_trump['PctCnt']**1.3, color = ['R'])\n", + "plt.ylabel('Lat')\n", + "plt.xlabel('Lon')\n", + "plt.title('Precincts by percentage of votes for Trump')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nA+PtcRa5zSHdAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Map 2: Votes for Clinton\n", + "# Add your code below:\n", + "df_rhillary = df_results[(df_results['Contest'] == 'PRESIDENTIAL ELECTORS') & (df_results['Candidate'] == 'HILLARY CLINTON, PRESIDENT')]\n", + "df_plothillary = df_rhillary[['PrecNo','PctCnt']]\n", + "df_hillary = df_precinct_locations.merge(df_plothillary, left_on ='Precinct', right_on ='PrecNo', how='left')\n", + "plt.scatter(df_hillary['X'],df_hillary['Y'], s=df_hillary['PctCnt']**1.3, color = ['B'])\n", + "plt.ylabel('Lat')\n", + "plt.xlabel('Lon')\n", + "plt.title('Precincts by percentage of votes for Clinton')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Graphic Presentation\n", + "\n", + "Make sure to label all the axis, add legends and units (where appropriate).\n", + "\n", + "\n", + "## Code Quality\n", + "\n", + "While code performance and optimization won't count, all the code should be highly readable, and reusable. Where possible, create functions, build helper functions where needed, and make sure the code is self-explanatory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/week3/.ipynb_checkpoints/let it gooooo-checkpoint.ipynb b/week3/.ipynb_checkpoints/let it gooooo-checkpoint.ipynb new file mode 100644 index 0000000..be53df4 --- /dev/null +++ b/week3/.ipynb_checkpoints/let it gooooo-checkpoint.ipynb @@ -0,0 +1,7703 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "from itertools import cycle, islice\n", + "\n", + "# This line lets us plot on our ipython notebook\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
12345678910...144145146147148149150151152153
0002013865-14NaNMILLSJAMESARTHURNaNM2/7/6510/1/00A...NaNABRNaNNaNNaNNaNNaNCENTRENaN
1002020582-14NaNTERRYCHARLESDNaNU9/16/769/1/02I...NaNNaNNaNNaNNaNAPDNaNCENTRENaN
2002287451-14NaNMURRELLRICHARDLNaNM8/11/5010/1/72A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
3002365541-14NaNMILLSJOYCEELLENNaNF5/6/6910/1/00A...NaNAPRNaNNaNNaNNaNNaNCENTRENaN
4002370224-14NaNFENTONCASEYJAMESNaNM11/22/833/1/02A...NaNAPDNaNNaNNaNNaN5707687675CENTRENaN
5002572852-14NaNMURRELLSUSANLNaNF12/16/4910/1/94A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
6004529096-14NaNHAIRSTEVENMNaNM12/11/7912/21/99A...NaNAPRNaNNaNNaNNaNNaNCENTRENaN
7005138406-14NaNBROOKSHARRYCNaNM3/19/501/1/01A...RAPRNaNNaNAPRNaNCENTRENaN
8005163451-14NaNBROOKSDEBRALOUISENaNF5/22/513/15/91A...RAPRNaNNaNAPRNaNCENTRENaN
9005194526-14NaNGENSIMOREGARYDAVIDNaNM3/6/685/22/96A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
10005881492-14NaNGRAHAMKATHRYNLEENaNF2/12/478/29/96A...NaNNaNNaNNaNNaNNaNNaN8145065538CENTRENaN
11007026230-14NaNSCHNEIDERWALTERGNaNM5/29/711/31/92A...RAPRAPRNaNNaNNaNCENTRENaN
12007094976-14NaNMURRAYRACHAELRNaNU6/19/765/16/00A...NaNNaNNaNNaNNaNNaNNaN6105098485CENTRENaN
13007376473-14NaNOCKERROSALIEJEANNaNF3/10/587/5/02A...NaNAPDNaNNaNAPD8147691906CENTRENaN
14007398108-14NaNOCKERJEANENaNF4/16/299/4/62A...NaNAPDNaNNaNNaNNaNNaNCENTRENaN
15009621382-14NaNMACHIKASALEXANDRAMNaNF3/2/876/16/05A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
16009878128-14NaNBRUNGARDLARACNaNF3/2/833/18/04A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
17010437417-14NaNRANKINLUCASROBERTNaNM1/31/804/21/98A...RAPRAPRAPR8143550831CENTRENaN
18010464969-14NaNSHENKCOLBYRYANNaNM9/29/739/4/97A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
19010573042-14NaNSTEPHENSERINLNaNF12/13/747/3/02A...NaNAPDAPDAPDNaNCENTRENaN
20010634062-14NaNSTEVERSHEILAMNaNF11/1/6610/9/84A...NaNAPNFNaNNaNNaNNaN6108446630CENTRENaN
21010849083-14NaNSMITHANNETTELNaNF3/2/458/28/68A...DAPDAPDAPD3530656CENTRENaN
22010849366-14NaNMENNAFRANKLINMNaNU1/13/508/28/76A...NaNAPDNaNNaNAPD3559388CENTRENaN
23010855262-14NaNPROVANDAVIDANaNU1/16/523/29/76A...DAPDAPDAPD3559067CENTRENaN
24010857411-14NaNWALKERRALPHENaNU3/15/412/27/64A...RAPRAPRAPRNaNCENTRENaN
25010858336-14NaNNASTASEELIZABETHENaNU11/18/252/13/47A...DAPDNaNNaNNaNNaN3553298CENTRENaN
26010858340-14NaNBEIGHTOLVELMAFNaNU8/2/199/29/47A...NaNABRNaNNaNNaNNaNNaNCENTRENaN
27010858347-14NaNBONFATTOMARYMNaNU4/19/279/11/48A...RAPRAPRAPRNaNCENTRENaN
28010858364-14NaNMANEYDENNISCNaNU9/8/279/11/52I...NaNNaNNaNNaNNaNAPR3553569CENTRENaN
29010858367-14NaNRHOADSDALEFNaNU6/10/289/12/52A...DAPDNaNNaNAPDNaNCENTRENaN
..................................................................
123413108229919-14NaNMISHRASONIKANaNNaNF2/22/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123414108245924-14NaNPECKYNOCHRISTOPHERRNaNNaN11/10/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123415108251099-14NaNAVEZZANOKATHERINEGNaNNaN9/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123416108251824-14NaNTERRERIRONALDCJRNaN12/4/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123417108262483-14NaNMADIASSTEVENPNaNNaN4/2/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123418108262546-14NaNSACCONICOLETTEDNaNNaN5/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123419108263616-14NaNSKAVERYCHANTELLENICOLENaNF12/29/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709005611CENTRENaN
123420108266993-14NaNFROMSTEINELISHAMNaNNaN10/10/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123421108268621-14NaNMCGARRIGALEMILYRNaNNaN4/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123422108268872-14NaNFELBERELINaNNaNNaN4/3/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN2036045055CENTRENaN
123423108268974-14NaNNEWCOMBMICHAELFIIINaN2/11/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN2034614023CENTRENaN
123424108272412-14NaNCOLONYKAYLEYRENEENaNF8/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123425108273735-14NaNMUIRRACHAELNaNNaNF10/26/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709034112CENTRENaN
123426108281100-14NaNBREENMAURAPNaNF1/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123427108281392-14NaNMENZELMEGANANNNaNF4/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN5704179068CENTRENaN
123428108281516-14NaNCOLONERICANNaNF9/18/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709055297CENTRENaN
123429108283090-14NaNSHAHIDAIMANaNNaNF9/19/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN9546629236CENTRENaN
123430108283218-14NaNCOPEZACHARYNaNNaNM1/22/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN6306312989CENTRENaN
123431108286601-14NaNLANDISJODYJEANNaNF7/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN5704368864CENTRENaN
123432108286706-14NaNZARROABIGAILHAYESNaNF9/30/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123433108288642-14NaNBUTLERJULIAKNaNNaN2/19/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123434108290220-14NaNMCGOVERNJAMESJIVM9/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN9732242161CENTRENaN
123435108290356-14NaNGORDONMARLEYRNaNF12/31/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN7247775506CENTRENaN
123436108290630-14NaNBRUGGEMEIERGRACENaNNaNF11/21/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN6309359977CENTRENaN
123437108290772-14NaNFEUERBERGANDRESNaNNaNNaN4/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123438108303668-14NaNFERENCIHANNAHCNaNNaN4/1/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123439108307850-14NaNNEILANDKAYLANaNNaNNaN10/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN6315594571CENTRENaN
123440108318654-14NaNFLYNNRILEYGNaNNaN11/24/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123441108325614-14NaNSOLIMANFAROUKNaNNaNNaN7/1/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123442108325661-14NaNCAUTELAALEXANDERNaNNaNNaN4/16/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
\n", + "

123443 rows × 153 columns

\n", + "
" + ], + "text/plain": [ + " 1 2 3 4 5 6 7 \\\n", + "0 002013865-14 NaN MILLS JAMES ARTHUR NaN M \n", + "1 002020582-14 NaN TERRY CHARLES D NaN U \n", + "2 002287451-14 NaN MURRELL RICHARD L NaN M \n", + "3 002365541-14 NaN MILLS JOYCE ELLEN NaN F \n", + "4 002370224-14 NaN FENTON CASEY JAMES NaN M \n", + "5 002572852-14 NaN MURRELL SUSAN L NaN F \n", + "6 004529096-14 NaN HAIR STEVEN M NaN M \n", + "7 005138406-14 NaN BROOKS HARRY C NaN M \n", + "8 005163451-14 NaN BROOKS DEBRA LOUISE NaN F \n", + "9 005194526-14 NaN GENSIMORE GARY DAVID NaN M \n", + "10 005881492-14 NaN GRAHAM KATHRYN LEE NaN F \n", + "11 007026230-14 NaN SCHNEIDER WALTER G NaN M \n", + "12 007094976-14 NaN MURRAY RACHAEL R NaN U \n", + "13 007376473-14 NaN OCKER ROSALIE JEAN NaN F \n", + "14 007398108-14 NaN OCKER JEAN E NaN F \n", + "15 009621382-14 NaN MACHIKAS ALEXANDRA M NaN F \n", + "16 009878128-14 NaN BRUNGARD LARA C NaN F \n", + "17 010437417-14 NaN RANKIN LUCAS ROBERT NaN M \n", + "18 010464969-14 NaN SHENK COLBY RYAN NaN M \n", + "19 010573042-14 NaN STEPHENS ERIN L NaN F \n", + "20 010634062-14 NaN STEVER SHEILA M NaN F \n", + "21 010849083-14 NaN SMITH ANNETTE L NaN F \n", + "22 010849366-14 NaN MENNA FRANKLIN M NaN U \n", + "23 010855262-14 NaN PROVAN DAVID A NaN U \n", + "24 010857411-14 NaN WALKER RALPH E NaN U \n", + "25 010858336-14 NaN NASTASE ELIZABETH E NaN U \n", + "26 010858340-14 NaN BEIGHTOL VELMA F NaN U \n", + "27 010858347-14 NaN BONFATTO MARY M NaN U \n", + "28 010858364-14 NaN MANEY DENNIS C NaN U \n", + "29 010858367-14 NaN RHOADS DALE F NaN U \n", + "... ... ... ... ... ... ... ... \n", + "123413 108229919-14 NaN MISHRA SONIKA NaN NaN F \n", + "123414 108245924-14 NaN PECKYNO CHRISTOPHER R NaN NaN \n", + "123415 108251099-14 NaN AVEZZANO KATHERINE G NaN NaN \n", + "123416 108251824-14 NaN TERRERI RONALD C JR NaN \n", + "123417 108262483-14 NaN MADIAS STEVEN P NaN NaN \n", + "123418 108262546-14 NaN SACCO NICOLETTE D NaN NaN \n", + "123419 108263616-14 NaN SKAVERY CHANTELLE NICOLE NaN F \n", + "123420 108266993-14 NaN FROMSTEIN ELISHA M NaN NaN \n", + "123421 108268621-14 NaN MCGARRIGAL EMILY R NaN NaN \n", + "123422 108268872-14 NaN FELBER ELI NaN NaN NaN \n", + "123423 108268974-14 NaN NEWCOMB MICHAEL F III NaN \n", + "123424 108272412-14 NaN COLONY KAYLEY RENEE NaN F \n", + "123425 108273735-14 NaN MUIR RACHAEL NaN NaN F \n", + "123426 108281100-14 NaN BREEN MAURA P NaN F \n", + "123427 108281392-14 NaN MENZEL MEGAN ANN NaN F \n", + "123428 108281516-14 NaN COLON ERICA N NaN F \n", + "123429 108283090-14 NaN SHAHID AIMA NaN NaN F \n", + "123430 108283218-14 NaN COPE ZACHARY NaN NaN M \n", + "123431 108286601-14 NaN LANDIS JODY JEAN NaN F \n", + "123432 108286706-14 NaN ZARRO ABIGAIL HAYES NaN F \n", + "123433 108288642-14 NaN BUTLER JULIA K NaN NaN \n", + "123434 108290220-14 NaN MCGOVERN JAMES J IV M \n", + "123435 108290356-14 NaN GORDON MARLEY R NaN F \n", + "123436 108290630-14 NaN BRUGGEMEIER GRACE NaN NaN F \n", + "123437 108290772-14 NaN FEUERBERG ANDRES NaN NaN NaN \n", + "123438 108303668-14 NaN FERENCI HANNAH C NaN NaN \n", + "123439 108307850-14 NaN NEILAND KAYLA NaN NaN NaN \n", + "123440 108318654-14 NaN FLYNN RILEY G NaN NaN \n", + "123441 108325614-14 NaN SOLIMAN FAROUK NaN NaN NaN \n", + "123442 108325661-14 NaN CAUTELA ALEXANDER NaN NaN NaN \n", + "\n", + " 8 9 10 ... 144 145 146 147 148 149 150 \\\n", + "0 2/7/65 10/1/00 A ... NaN AB R NaN NaN NaN NaN \n", + "1 9/16/76 9/1/02 I ... NaN NaN NaN NaN NaN AP D \n", + "2 8/11/50 10/1/72 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "3 5/6/69 10/1/00 A ... NaN AP R NaN NaN NaN NaN \n", + "4 11/22/83 3/1/02 A ... NaN AP D NaN NaN NaN NaN \n", + "5 12/16/49 10/1/94 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "6 12/11/79 12/21/99 A ... NaN AP R NaN NaN NaN NaN \n", + "7 3/19/50 1/1/01 A ... R AP R NaN NaN AP R \n", + "8 5/22/51 3/15/91 A ... R AP R NaN NaN AP R \n", + "9 3/6/68 5/22/96 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "10 2/12/47 8/29/96 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "11 5/29/71 1/31/92 A ... R AP R AP R NaN NaN \n", + "12 6/19/76 5/16/00 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "13 3/10/58 7/5/02 A ... NaN AP D NaN NaN AP D \n", + "14 4/16/29 9/4/62 A ... NaN AP D NaN NaN NaN NaN \n", + "15 3/2/87 6/16/05 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "16 3/2/83 3/18/04 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "17 1/31/80 4/21/98 A ... R AP R AP R AP R \n", + "18 9/29/73 9/4/97 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "19 12/13/74 7/3/02 A ... NaN AP D AP D AP D \n", + "20 11/1/66 10/9/84 A ... NaN AP NF NaN NaN NaN NaN \n", + "21 3/2/45 8/28/68 A ... D AP D AP D AP D \n", + "22 1/13/50 8/28/76 A ... NaN AP D NaN NaN AP D \n", + "23 1/16/52 3/29/76 A ... D AP D AP D AP D \n", + "24 3/15/41 2/27/64 A ... R AP R AP R AP R \n", + "25 11/18/25 2/13/47 A ... D AP D NaN NaN NaN NaN \n", + "26 8/2/19 9/29/47 A ... NaN AB R NaN NaN NaN NaN \n", + "27 4/19/27 9/11/48 A ... R AP R AP R AP R \n", + "28 9/8/27 9/11/52 I ... NaN NaN NaN NaN NaN AP R \n", + "29 6/10/28 9/12/52 A ... D AP D NaN NaN AP D \n", + "... ... ... .. ... ... ... ... ... ... ... ... \n", + "123413 2/22/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123414 11/10/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123415 9/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123416 12/4/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123417 4/2/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123418 5/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123419 12/29/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123420 10/10/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123421 4/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123422 4/3/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123423 2/11/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123424 8/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123425 10/26/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123426 1/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123427 4/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123428 9/18/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123429 9/19/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123430 1/22/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123431 7/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123432 9/30/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123433 2/19/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123434 9/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123435 12/31/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123436 11/21/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123437 4/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123438 4/1/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123439 10/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123440 11/24/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123441 7/1/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123442 4/16/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "\n", + " 151 152 153 \n", + "0 NaN CENTRE NaN \n", + "1 NaN CENTRE NaN \n", + "2 NaN CENTRE NaN \n", + "3 NaN CENTRE NaN \n", + "4 5707687675 CENTRE NaN \n", + "5 NaN CENTRE NaN \n", + "6 NaN CENTRE NaN \n", + "7 NaN CENTRE NaN \n", + "8 NaN CENTRE NaN \n", + "9 NaN CENTRE NaN \n", + "10 8145065538 CENTRE NaN \n", + "11 NaN CENTRE NaN \n", + "12 6105098485 CENTRE NaN \n", + "13 8147691906 CENTRE NaN \n", + "14 NaN CENTRE NaN \n", + "15 NaN CENTRE NaN \n", + "16 NaN CENTRE NaN \n", + "17 8143550831 CENTRE NaN \n", + "18 NaN CENTRE NaN \n", + "19 NaN CENTRE NaN \n", + "20 6108446630 CENTRE NaN \n", + "21 3530656 CENTRE NaN \n", + "22 3559388 CENTRE NaN \n", + "23 3559067 CENTRE NaN \n", + "24 NaN CENTRE NaN \n", + "25 3553298 CENTRE NaN \n", + "26 NaN CENTRE NaN \n", + "27 NaN CENTRE NaN \n", + "28 3553569 CENTRE NaN \n", + "29 NaN CENTRE NaN \n", + "... ... ... .. \n", + "123413 NaN CENTRE NaN \n", + "123414 NaN CENTRE NaN \n", + "123415 NaN CENTRE NaN \n", + "123416 NaN CENTRE NaN \n", + "123417 NaN CENTRE NaN \n", + "123418 NaN CENTRE NaN \n", + "123419 5709005611 CENTRE NaN \n", + "123420 NaN CENTRE NaN \n", + "123421 NaN CENTRE NaN \n", + "123422 2036045055 CENTRE NaN \n", + "123423 2034614023 CENTRE NaN \n", + "123424 NaN CENTRE NaN \n", + "123425 5709034112 CENTRE NaN \n", + "123426 NaN CENTRE NaN \n", + "123427 5704179068 CENTRE NaN \n", + "123428 5709055297 CENTRE NaN \n", + "123429 9546629236 CENTRE NaN \n", + "123430 6306312989 CENTRE NaN \n", + "123431 5704368864 CENTRE NaN \n", + "123432 NaN CENTRE NaN \n", + "123433 NaN CENTRE NaN \n", + "123434 9732242161 CENTRE NaN \n", + "123435 7247775506 CENTRE NaN \n", + "123436 6309359977 CENTRE NaN \n", + "123437 NaN CENTRE NaN \n", + "123438 NaN CENTRE NaN \n", + "123439 6315594571 CENTRE NaN \n", + "123440 NaN CENTRE NaN \n", + "123441 NaN CENTRE NaN \n", + "123442 NaN CENTRE NaN \n", + "\n", + "[123443 rows x 153 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Import df_voters\n", + "df_voters = pd.read_table('data/CENTRE_FVE_20170123.csv', sep=',', low_memory=False)\n", + "df_voters" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['R', 'D', 'NF', 'LN', 'I', 'NON', 'AT', 'GR', 'NO', 'OTH', 'S',\n", + " 'TP', 'AE', 'NOP', 'NST', 'SEC', 'UPP', 'GW', 'INDE', 'C', 'CT',\n", + " 'DNV', 'AI', 'PR', 'INDd', 'IND', 'ID', 'WH', 'GP', 'PL', 'MW',\n", + " 'AM', 'UNA', nan, 'LI', 'IAPP', 'THPY', 'IR', 'UNK', 'NTS', 'DS',\n", + " 'SAME', 'IT', 'ICO', 'BM', 'M', 'NS', 'JD', 'LT', 'BH', 'AH', 'MZ',\n", + " 'PG', 'PP', 'NL', 'UND', 'N', 'FD', 'IDK', 'RF', 'AYE', 'AD',\n", + " 'PPOA', 'MA', 'MM', 'OLAP', 'CNT', 'AF', 'CON', 'GT', 'FR', 'AC',\n", + " 'DTP', 'CH', 'SOD', 'IK', 'PZ', 'PIR', 'H', 'FE', 'COL', 'BP', 'CB',\n", + " 'AL', 'CM', 'OP', 'IA', 'L', 'TPP', 'ACO', 'COI', 'MAJA', 'KEG'], dtype=object)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# View the unique values in column 12\n", + "df_voters['12'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NUMBER
PARTY
D51162
R47668
NF17608
NON2814
I2006
LN805
OTH368
GR264
INDE183
NO175
NOP137
IND31
C24
CT20
S11
LI10
IR10
ID9
UNK7
NTS6
RF5
UND5
M5
UNA5
AD4
GP4
AM4
WH4
NS3
MW3
......
AH1
AF1
TPP1
ACO1
OLAP1
FE1
DTP1
MM1
MAJA1
MA1
OP1
LT1
PG1
PIR1
L1
KEG1
N1
UPP1
PL1
IK1
PPOA1
ICO1
IA1
H1
GW1
GT1
NST1
SAME1
FR1
PZ1
\n", + "

92 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " NUMBER\n", + "PARTY \n", + "D 51162\n", + "R 47668\n", + "NF 17608\n", + "NON 2814\n", + "I 2006\n", + "LN 805\n", + "OTH 368\n", + "GR 264\n", + "INDE 183\n", + "NO 175\n", + "NOP 137\n", + "IND 31\n", + "C 24\n", + "CT 20\n", + "S 11\n", + "LI 10\n", + "IR 10\n", + "ID 9\n", + "UNK 7\n", + "NTS 6\n", + "RF 5\n", + "UND 5\n", + "M 5\n", + "UNA 5\n", + "AD 4\n", + "GP 4\n", + "AM 4\n", + "WH 4\n", + "NS 3\n", + "MW 3\n", + "... ...\n", + "AH 1\n", + "AF 1\n", + "TPP 1\n", + "ACO 1\n", + "OLAP 1\n", + "FE 1\n", + "DTP 1\n", + "MM 1\n", + "MAJA 1\n", + "MA 1\n", + "OP 1\n", + "LT 1\n", + "PG 1\n", + "PIR 1\n", + "L 1\n", + "KEG 1\n", + "N 1\n", + "UPP 1\n", + "PL 1\n", + "IK 1\n", + "PPOA 1\n", + "ICO 1\n", + "IA 1\n", + "H 1\n", + "GW 1\n", + "GT 1\n", + "NST 1\n", + "SAME 1\n", + "FR 1\n", + "PZ 1\n", + "\n", + "[92 rows x 1 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Your code here\n", + "grouped = df_voters.groupby('12') # Group by party registrations\n", + "summed = grouped['12'].count() # Get counts of each group\n", + "summed.sort_values(inplace=True, ascending=False)\n", + "df_summed = summed.to_frame()\n", + "df_summed.columns = ['NUMBER']\n", + "df_summed.index.names = ['PARTY']\n", + "df_summed" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NUMBER
PARTY
NF17608
NON2814
I2006
LN805
OTH368
GR264
INDE183
NO175
NOP137
IND31
C24
CT20
S11
LI10
IR10
ID9
UNK7
NTS6
RF5
UND5
M5
UNA5
AD4
GP4
AM4
WH4
NS3
MW3
TP3
BM3
......
AH1
AF1
TPP1
ACO1
OLAP1
FE1
DTP1
MM1
MAJA1
MA1
OP1
LT1
PG1
PIR1
L1
KEG1
N1
UPP1
PL1
IK1
PPOA1
ICO1
IA1
H1
GW1
GT1
NST1
SAME1
FR1
PZ1
\n", + "

90 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " NUMBER\n", + "PARTY \n", + "NF 17608\n", + "NON 2814\n", + "I 2006\n", + "LN 805\n", + "OTH 368\n", + "GR 264\n", + "INDE 183\n", + "NO 175\n", + "NOP 137\n", + "IND 31\n", + "C 24\n", + "CT 20\n", + "S 11\n", + "LI 10\n", + "IR 10\n", + "ID 9\n", + "UNK 7\n", + "NTS 6\n", + "RF 5\n", + "UND 5\n", + "M 5\n", + "UNA 5\n", + "AD 4\n", + "GP 4\n", + "AM 4\n", + "WH 4\n", + "NS 3\n", + "MW 3\n", + "TP 3\n", + "BM 3\n", + "... ...\n", + "AH 1\n", + "AF 1\n", + "TPP 1\n", + "ACO 1\n", + "OLAP 1\n", + "FE 1\n", + "DTP 1\n", + "MM 1\n", + "MAJA 1\n", + "MA 1\n", + "OP 1\n", + "LT 1\n", + "PG 1\n", + "PIR 1\n", + "L 1\n", + "KEG 1\n", + "N 1\n", + "UPP 1\n", + "PL 1\n", + "IK 1\n", + "PPOA 1\n", + "ICO 1\n", + "IA 1\n", + "H 1\n", + "GW 1\n", + "GT 1\n", + "NST 1\n", + "SAME 1\n", + "FR 1\n", + "PZ 1\n", + "\n", + "[90 rows x 1 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_summed[(df_summed.index != 'D') & (df_summed.index != 'R')]" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
voters
Democrat51162
Republican47668
Other24609
\n", + "
" + ], + "text/plain": [ + " voters\n", + "Democrat 51162\n", + "Republican 47668\n", + "Other 24609" + ] + }, + "execution_count": 102, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parties = ['Democrat', 'Republican', 'Other']\n", + "values = np.array([df_summed[(df_summed.index == 'D')].NUMBER.item(),df_summed[(df_summed.index == 'R')].NUMBER.item(),df_summed[(df_summed.index != 'D') & (df_summed.index != 'R')].NUMBER.sum()])\n", + "df_parties = pd.DataFrame(values,index=parties,columns=['voters'])\n", + "df_parties" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nIdCAAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_parties.plot.bar(color='BRY')\n", + "plt.ylabel('Registered Voters')\n", + "plt.xlabel('Party')\n", + "plt.title('Party affiliation')\n", + "plt.show()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
12345678910...144145146147148149150151152153
60899001060962-14NaNMISKAJENNIFERSELLERNaNF8/5/611/4/02A...DAPDAPDNaNNaNNaNCENTRENaN
60900001076841-14NaNDUNNLORETTAMNaNU11/4/171/1/82I...NaNNaNNaNNaNNaNABDNaNCENTRENaN
60901001109561-14NaNBEECHAMJANAMICHELLENaNF4/14/721/1/92A...NaNNaNNaNNaNNaNNaNNaN8142312689CENTRENaN
60902001304938-14NaNWELESKOJOHNPNaNM9/11/4212/18/63A...RAPRNaNNaNNaNNaNNaNCENTRENaN
60903001350294-14NaNWELESKOMAUREENANaNF10/16/499/7/76A...RAPRNaNNaNNaNNaNNaNCENTRENaN
\n", + "

5 rows × 153 columns

\n", + "
" + ], + "text/plain": [ + " 1 2 3 4 5 6 7 8 \\\n", + "60899 001060962-14 NaN MISKA JENNIFER SELLER NaN F 8/5/61 \n", + "60900 001076841-14 NaN DUNN LORETTA M NaN U 11/4/17 \n", + "60901 001109561-14 NaN BEECHAM JANA MICHELLE NaN F 4/14/72 \n", + "60902 001304938-14 NaN WELESKO JOHN P NaN M 9/11/42 \n", + "60903 001350294-14 NaN WELESKO MAUREEN A NaN F 10/16/49 \n", + "\n", + " 9 10 ... 144 145 146 147 148 149 150 151 152 \\\n", + "60899 1/4/02 A ... D AP D AP D NaN NaN NaN CENTRE \n", + "60900 1/1/82 I ... NaN NaN NaN NaN NaN AB D NaN CENTRE \n", + "60901 1/1/92 A ... NaN NaN NaN NaN NaN NaN NaN 8142312689 CENTRE \n", + "60902 12/18/63 A ... R AP R NaN NaN NaN NaN NaN CENTRE \n", + "60903 9/7/76 A ... R AP R NaN NaN NaN NaN NaN CENTRE \n", + "\n", + " 153 \n", + "60899 NaN \n", + "60900 NaN \n", + "60901 NaN \n", + "60902 NaN \n", + "60903 NaN \n", + "\n", + "[5 rows x 153 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_prec42 = df_voters[df_voters['27'] == 42]\n", + "df_prec42.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NUMBER
PARTY
R978
D824
NF231
I48
LN14
OTH4
NOP4
NO4
NON3
WH1
UNK1
INDE1
IND1
GR1
C1
\n", + "
" + ], + "text/plain": [ + " NUMBER\n", + "PARTY \n", + "R 978\n", + "D 824\n", + "NF 231\n", + "I 48\n", + "LN 14\n", + "OTH 4\n", + "NOP 4\n", + "NO 4\n", + "NON 3\n", + "WH 1\n", + "UNK 1\n", + "INDE 1\n", + "IND 1\n", + "GR 1\n", + "C 1" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "grouped42 = df_prec42.groupby('12') # Group by party registrations\n", + "summed42 = grouped42['12'].count() # Get counts of each group\n", + "summed42.sort_values(inplace=True, ascending=False)\n", + "df_summed42 = summed42.to_frame()\n", + "df_summed42.columns = ['NUMBER']\n", + "df_summed42.index.names = ['PARTY']\n", + "df_summed42" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
N
Democrat824
Republican978
Other314
\n", + "
" + ], + "text/plain": [ + " N\n", + "Democrat 824\n", + "Republican 978\n", + "Other 314" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parties = ['Democrat', 'Republican', 'Other']\n", + "values = np.array([df_summed42[(df_summed42.index == 'D')].NUMBER.item(),df_summed42[(df_summed42.index == 'R')].NUMBER.item(),df_summed42[(df_summed42.index != 'D') & (df_summed42.index != 'R')].NUMBER.sum()])\n", + "df_parties42 = pd.DataFrame(values,index=parties,columns=list('N'))\n", + "df_parties42 " + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
0CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNREGISTERED VOTERS - TOTALNaNNaNNaN10.0507.0NaNNaNNaN
1CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNBALLOTS CAST - TOTALNaNNaNNaN11.0391.0NaNNaNNaN
2CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNVOTER TURNOUT - TOTALNaNNaNNaN12.0NaN77.12NaNNaN
3CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1DEMOCRATIC17.046.040.35NaNNaN
4CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1REPUBLICAN18.066.057.89NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "0 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "1 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "2 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "3 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "4 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest Descr \\\n", + "0 1.0 01 BELLEFONTE NORTH NaN REGISTERED VOTERS - TOTAL NaN \n", + "1 1.0 01 BELLEFONTE NORTH NaN BALLOTS CAST - TOTAL NaN \n", + "2 1.0 01 BELLEFONTE NORTH NaN VOTER TURNOUT - TOTAL NaN \n", + "3 1.0 01 BELLEFONTE NORTH DEMOCRATIC STRAIGHT PARTY NaN \n", + "4 1.0 01 BELLEFONTE NORTH REPUBLICAN STRAIGHT PARTY NaN \n", + "\n", + " VoteFor Candidate Posn Count PctCnt Total PctTot \n", + "0 NaN NaN 10.0 507.0 NaN NaN NaN \n", + "1 NaN NaN 11.0 391.0 NaN NaN NaN \n", + "2 NaN NaN 12.0 NaN 77.12 NaN NaN \n", + "3 VOTE FOR NOT MORE THAN 1 DEMOCRATIC 17.0 46.0 40.35 NaN NaN \n", + "4 VOTE FOR NOT MORE THAN 1 REPUBLICAN 18.0 66.0 57.89 NaN NaN " + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_results = pd.read_table('data/centrecounty_precinct_results_nov2016.txt', sep=',')\n", + "df_results.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_res_prec42 = df_results[df_results['PrecNo'] == 42]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
1584CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201642.042 COLLEGE SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT3488.0802.049.54NaNNaN
1585CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201642.042 COLLEGE SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT3489.0736.045.46NaNNaN
1586CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201642.042 COLLEGE SOUTHCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT3490.06.00.37NaNNaN
1587CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201642.042 COLLEGE SOUTHGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT3491.016.00.99NaNNaN
1588CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201642.042 COLLEGE SOUTHLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT3492.034.02.10NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "1584 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1585 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1586 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1587 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1588 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party \\\n", + "1584 NOVEMBER 8 2016 42.0 42 COLLEGE SOUTH DEMOCRATIC \n", + "1585 NOVEMBER 8 2016 42.0 42 COLLEGE SOUTH REPUBLICAN \n", + "1586 NOVEMBER 8 2016 42.0 42 COLLEGE SOUTH CONSTITUTION PARTY \n", + "1587 NOVEMBER 8 2016 42.0 42 COLLEGE SOUTH GREEN \n", + "1588 NOVEMBER 8 2016 42.0 42 COLLEGE SOUTH LIBERTARIAN \n", + "\n", + " Contest Descr VoteFor \\\n", + "1584 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1585 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1586 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1587 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1588 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "\n", + " Candidate Posn Count PctCnt Total PctTot \n", + "1584 HILLARY CLINTON, PRESIDENT 3488.0 802.0 49.54 NaN NaN \n", + "1585 DONALD J TRUMP, PRESIDENT 3489.0 736.0 45.46 NaN NaN \n", + "1586 DARRELL L CASTLE, PRESIDENT 3490.0 6.0 0.37 NaN NaN \n", + "1587 JILL STEIN, PRESIDENT 3491.0 16.0 0.99 NaN NaN \n", + "1588 GARY JOHNSON, PRESIDENT 3492.0 34.0 2.10 NaN NaN " + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_respres_p42 = df_res_prec42.loc [df_res_prec42['Contest'] == 'PRESIDENTIAL ELECTORS']\n", + "df_respres_p42.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Candidate\n", + "DARRELL L CASTLE, PRESIDENT 6.0\n", + "DONALD J TRUMP, PRESIDENT 736.0\n", + "GARY JOHNSON, PRESIDENT 34.0\n", + "HILLARY CLINTON, PRESIDENT 802.0\n", + "JILL STEIN, PRESIDENT 16.0\n", + "WRITE-IN 25.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_respres_p42.groupby('Candidate').Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Candidate\n", + "DARRELL L CASTLE, PRESIDENT 6.0\n", + "DONALD J TRUMP, PRESIDENT 736.0\n", + "GARY JOHNSON, PRESIDENT 34.0\n", + "HILLARY CLINTON, PRESIDENT 802.0\n", + "JILL STEIN, PRESIDENT 16.0\n", + "WRITE-IN 25.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "grouped_res42 = df_respres_p42.groupby('Candidate')\n", + "summed_res42 = grouped_res42['Count'].sum()\n", + "summed_res42" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VOTES
CANDIDATE
HILLARY CLINTON, PRESIDENT802.0
DONALD J TRUMP, PRESIDENT736.0
GARY JOHNSON, PRESIDENT34.0
WRITE-IN25.0
JILL STEIN, PRESIDENT16.0
DARRELL L CASTLE, PRESIDENT6.0
\n", + "
" + ], + "text/plain": [ + " VOTES\n", + "CANDIDATE \n", + "HILLARY CLINTON, PRESIDENT 802.0\n", + "DONALD J TRUMP, PRESIDENT 736.0\n", + "GARY JOHNSON, PRESIDENT 34.0\n", + "WRITE-IN 25.0\n", + "JILL STEIN, PRESIDENT 16.0\n", + "DARRELL L CASTLE, PRESIDENT 6.0" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "grouped_res42 = df_respres_p42.groupby('Candidate') # Group by party registrations\n", + "summed_res42 = grouped_res42['Count'].sum() # Get counts of each group\n", + "summed_res42.sort_values(inplace=True, ascending=False)\n", + "df_summed_res42 = summed_res42.to_frame()\n", + "df_summed_res42.columns = ['VOTES']\n", + "df_summed_res42.index.names = ['CANDIDATE']\n", + "df_summed_res42" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
V
Democrat802.0
Republican736.0
Other81.0
\n", + "
" + ], + "text/plain": [ + " V\n", + "Democrat 802.0\n", + "Republican 736.0\n", + "Other 81.0" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parties = ['Democrat','Republican','Other']\n", + "values_res = np.array([df_summed_res42[(df_summed_res42.index == 'HILLARY CLINTON, PRESIDENT')].VOTES.item(),df_summed_res42[(df_summed_res42.index == 'DONALD J TRUMP, PRESIDENT')].VOTES.item(),df_summed_res42[(df_summed_res42.index != 'HILLARY CLINTON, PRESIDENT') & (df_summed_res42.index != 'DONALD J TRUMP, PRESIDENT')].VOTES.sum()])\n", + "df_results42 = pd.DataFrame(values_res,index=parties,columns=list('V'))\n", + "df_results42 " + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VN
Democrat802.0824
Republican736.0978
Other81.0314
\n", + "
" + ], + "text/plain": [ + " V N\n", + "Democrat 802.0 824\n", + "Republican 736.0 978\n", + "Other 81.0 314" + ] + }, + "execution_count": 139, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_prec42_diff = pd.concat([df_results42, df_parties42], axis=1)\n", + "df_prec42_diff" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_prec42_diff.plot.bar(color = 'BR')\n", + "plt.title('Precinct 42 Registered voters and results')\n", + "plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
XYOBJECTIDNAMEPrecinctGlobalIDMDJShapeSTAreShapeSTLen
0-77.97239141.1293401BURNSIDE40{A309C3DE-8AD8-46A5-B8EA-B8F7E1ADB972}49-3-032.530029e+09280069.560289
1-77.64141441.0685052LIBERTY60{57577111-D7B7-4048-9517-EF2ED6059928}49-3-026.878831e+08131265.443714
2-77.68809041.0103103HOWARD TWP58{C9B8B5CF-6699-485A-97D2-74FB9B2D6FFE}49-3-025.275320e+08111072.612891
3-77.64234840.9859814MARION61{FA3740D2-624B-4464-B6CD-16F6E219ADEA}49-3-026.135493e+08131038.017743
4-77.94989241.0275685SNOW SHOE14{908F092A-BCFF-4EA5-99D7-B9248A2EA56A}49-3-031.644442e+0719920.287608
\n", + "
" + ], + "text/plain": [ + " X Y OBJECTID NAME Precinct \\\n", + "0 -77.972391 41.129340 1 BURNSIDE 40 \n", + "1 -77.641414 41.068505 2 LIBERTY 60 \n", + "2 -77.688090 41.010310 3 HOWARD TWP 58 \n", + "3 -77.642348 40.985981 4 MARION 61 \n", + "4 -77.949892 41.027568 5 SNOW SHOE 14 \n", + "\n", + " GlobalID MDJ ShapeSTAre \\\n", + "0 {A309C3DE-8AD8-46A5-B8EA-B8F7E1ADB972} 49-3-03 2.530029e+09 \n", + "1 {57577111-D7B7-4048-9517-EF2ED6059928} 49-3-02 6.878831e+08 \n", + "2 {C9B8B5CF-6699-485A-97D2-74FB9B2D6FFE} 49-3-02 5.275320e+08 \n", + "3 {FA3740D2-624B-4464-B6CD-16F6E219ADEA} 49-3-02 6.135493e+08 \n", + "4 {908F092A-BCFF-4EA5-99D7-B9248A2EA56A} 49-3-03 1.644442e+07 \n", + "\n", + " ShapeSTLen \n", + "0 280069.560289 \n", + "1 131265.443714 \n", + "2 111072.612891 \n", + "3 131038.017743 \n", + "4 19920.287608 " + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_precinct_locations = pd.read_table('data/center_county_precinct_centroids.csv', sep=',', low_memory=False)\n", + "df_precinct_locations.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nSTiLpQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(df_precinct_locations['X'],df_precinct_locations['Y'], s=25)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_rprescont = df_results[df_results['Contest'] == 'PRESIDENTIAL ELECTORS']" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PrecNo Candidate \n", + "1.0 DARRELL L CASTLE, PRESIDENT 2.0\n", + " DONALD J TRUMP, PRESIDENT 174.0\n", + " GARY JOHNSON, PRESIDENT 22.0\n", + " HILLARY CLINTON, PRESIDENT 188.0\n", + " JILL STEIN, PRESIDENT 3.0\n", + " WRITE-IN 2.0\n", + "2.0 DARRELL L CASTLE, PRESIDENT 9.0\n", + " DONALD J TRUMP, PRESIDENT 385.0\n", + " GARY JOHNSON, PRESIDENT 10.0\n", + " HILLARY CLINTON, PRESIDENT 259.0\n", + " JILL STEIN, PRESIDENT 7.0\n", + " WRITE-IN 9.0\n", + "3.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 193.0\n", + " GARY JOHNSON, PRESIDENT 17.0\n", + " HILLARY CLINTON, PRESIDENT 230.0\n", + " JILL STEIN, PRESIDENT 4.0\n", + " WRITE-IN 7.0\n", + "4.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 375.0\n", + " GARY JOHNSON, PRESIDENT 35.0\n", + " HILLARY CLINTON, PRESIDENT 283.0\n", + " JILL STEIN, PRESIDENT 10.0\n", + " WRITE-IN 8.0\n", + "5.0 DARRELL L CASTLE, PRESIDENT 7.0\n", + " DONALD J TRUMP, PRESIDENT 398.0\n", + " GARY JOHNSON, PRESIDENT 48.0\n", + " HILLARY CLINTON, PRESIDENT 443.0\n", + " JILL STEIN, PRESIDENT 13.0\n", + " WRITE-IN 13.0\n", + " ... \n", + "87.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 509.0\n", + " GARY JOHNSON, PRESIDENT 44.0\n", + " HILLARY CLINTON, PRESIDENT 343.0\n", + " JILL STEIN, PRESIDENT 5.0\n", + " WRITE-IN 10.0\n", + "88.0 DARRELL L CASTLE, PRESIDENT 9.0\n", + " DONALD J TRUMP, PRESIDENT 292.0\n", + " GARY JOHNSON, PRESIDENT 19.0\n", + " HILLARY CLINTON, PRESIDENT 642.0\n", + " JILL STEIN, PRESIDENT 10.0\n", + " WRITE-IN 24.0\n", + "89.0 DARRELL L CASTLE, PRESIDENT 3.0\n", + " DONALD J TRUMP, PRESIDENT 391.0\n", + " GARY JOHNSON, PRESIDENT 39.0\n", + " HILLARY CLINTON, PRESIDENT 628.0\n", + " JILL STEIN, PRESIDENT 6.0\n", + " WRITE-IN 22.0\n", + "90.0 DARRELL L CASTLE, PRESIDENT 0.0\n", + " DONALD J TRUMP, PRESIDENT 536.0\n", + " GARY JOHNSON, PRESIDENT 37.0\n", + " HILLARY CLINTON, PRESIDENT 394.0\n", + " JILL STEIN, PRESIDENT 13.0\n", + " WRITE-IN 19.0\n", + "91.0 DARRELL L CASTLE, PRESIDENT 1.0\n", + " DONALD J TRUMP, PRESIDENT 281.0\n", + " GARY JOHNSON, PRESIDENT 16.0\n", + " HILLARY CLINTON, PRESIDENT 396.0\n", + " JILL STEIN, PRESIDENT 6.0\n", + " WRITE-IN 13.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_rprescont.groupby(['PrecNo','Candidate']).Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
8CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT26.0188.048.08NaNNaN
47CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT111.0259.038.14NaNNaN
86CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT196.0230.050.33NaNNaN
125CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT281.0283.039.47NaNNaN
164CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT366.0443.048.05NaNNaN
203CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT451.0230.032.53NaNNaN
242CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT536.0122.032.36NaNNaN
281CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20168.008 MILESBURGDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT621.0143.027.39NaNNaN
320CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20169.009 MILLHEIMDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT706.0169.040.14NaNNaN
359CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201610.010 PHILIPSBURG 1ST WARDDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT791.0159.035.65NaNNaN
397CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201611.011 PHILIPSBURG 2ND WARDDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT875.0143.037.14NaNNaN
435CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201612.012 PHILIPSBURG 3RD WARDDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT959.0124.034.54NaNNaN
473CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201613.013 PORT MATILDADEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1043.070.025.27NaNNaN
512CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201614.014 SNOW SHOE BORODEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1128.083.025.23NaNNaN
551CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201615.015 RUSH NORTH CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1213.057.029.23NaNNaN
589CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201616.016 SC NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1297.0495.077.95NaNNaN
627CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201617.017 SC NORTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1381.0399.074.58NaNNaN
665CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201618.018 SC NORTHWESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1465.0928.068.24NaNNaN
703CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201619.019 SC SOUTH 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1549.0888.069.21NaNNaN
741CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201620.020 SC SOUTH 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1633.0739.068.87NaNNaN
779CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201621.021 SC SOUTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1717.0611.071.05NaNNaN
817CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201622.022 SC SOUTH CENTRAL 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1801.0322.063.76NaNNaN
855CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201623.023 SC SOUTH CENTRAL 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1885.0490.070.81NaNNaN
893CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201624.024 SC EAST 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1969.0867.052.77NaNNaN
931CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201625.025 SC EAST 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2053.0977.067.33NaNNaN
969CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201626.026 SC EAST 3DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2137.01188.062.63NaNNaN
1007CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201627.027 SC EAST 4DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2221.01195.062.76NaNNaN
1045CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201628.028 SC EAST CENTRAL 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2305.0706.067.69NaNNaN
1083CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201629.029 SC EAST CENTRAL 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2389.0641.062.84NaNNaN
1121CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201630.030 SC EAST CENTRAL 3DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2473.0325.058.56NaNNaN
...................................................
2364CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201662.062 MILES EASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5192.097.027.25NaNNaN
2403CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201663.063 MILES WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5277.038.023.75NaNNaN
2442CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201664.064 PATTON NORTH 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5362.01102.060.32NaNNaN
2480CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201665.065 PATTON NORTH 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5446.0873.047.01NaNNaN
2519CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201666.066 PATTON SOUTH 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5531.0511.064.28NaNNaN
2558CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201667.067 PATTON SOUTH 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5616.0904.063.93NaNNaN
2596CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201668.068 PATTON SOUTH 3DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5700.01015.062.73NaNNaN
2635CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201669.069 PENNDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5785.0130.026.21NaNNaN
2674CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201670.070 POTTER NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5870.0228.028.79NaNNaN
2713CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201671.071 POTTER SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5955.0406.033.55NaNNaN
2752CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201672.072 RUSH NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6040.0242.024.87NaNNaN
2790CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201673.073 RUSH SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6124.047.023.50NaNNaN
2828CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201674.074 RUSH EASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6208.032.035.16NaNNaN
2866CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201675.075 RUSH WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6292.089.023.92NaNNaN
2904CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201676.076 SNOW SHOE EASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6376.0146.025.89NaNNaN
2943CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201677.077 SNOW SHOE WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6461.066.023.57NaNNaN
2982CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201678.078 SPRING NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6546.0349.036.93NaNNaN
3021CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201679.079 SPRING SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6631.0229.030.95NaNNaN
3060CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201680.080 SPRING WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6716.0130.029.35NaNNaN
3099CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201681.081 TAYLORDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6801.076.017.31NaNNaN
3138CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201682.082 UNIONDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6886.0126.017.03NaNNaN
3177CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201683.083 WALKER EASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6971.0224.026.29NaNNaN
3216CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201684.084 WALKER WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7056.0514.030.83NaNNaN
3255CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201685.085 WORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7141.097.023.43NaNNaN
3294CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201686.086 SPRING EASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7226.0250.027.47NaNNaN
3333CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7311.0343.037.40NaNNaN
3372CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7396.0642.064.46NaNNaN
3411CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7481.0628.057.67NaNNaN
3450CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7566.0394.039.44NaNNaN
3489CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7651.0396.055.54NaNNaN
\n", + "

91 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "8 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "47 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "86 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "125 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "164 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "203 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "242 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "281 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "320 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "359 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "397 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "435 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "473 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "512 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "551 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "589 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "627 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "665 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "703 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "741 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "779 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "817 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "855 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "893 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "931 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "969 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1007 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1045 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1083 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1121 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "... ... ... ... \n", + "2364 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2403 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2442 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2480 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2519 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2558 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2596 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2635 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2674 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2713 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2752 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2790 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2828 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2866 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2904 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2943 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2982 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3021 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3060 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3099 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3138 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3177 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3216 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3255 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3294 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3333 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3372 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3411 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3450 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3489 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party \\\n", + "8 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH DEMOCRATIC \n", + "47 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST DEMOCRATIC \n", + "86 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH DEMOCRATIC \n", + "125 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST DEMOCRATIC \n", + "164 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST DEMOCRATIC \n", + "203 NOVEMBER 8 2016 6.0 06 CENTRE HALL DEMOCRATIC \n", + "242 NOVEMBER 8 2016 7.0 07 HOWARD BORO DEMOCRATIC \n", + "281 NOVEMBER 8 2016 8.0 08 MILESBURG DEMOCRATIC \n", + "320 NOVEMBER 8 2016 9.0 09 MILLHEIM DEMOCRATIC \n", + "359 NOVEMBER 8 2016 10.0 10 PHILIPSBURG 1ST WARD DEMOCRATIC \n", + "397 NOVEMBER 8 2016 11.0 11 PHILIPSBURG 2ND WARD DEMOCRATIC \n", + "435 NOVEMBER 8 2016 12.0 12 PHILIPSBURG 3RD WARD DEMOCRATIC \n", + "473 NOVEMBER 8 2016 13.0 13 PORT MATILDA DEMOCRATIC \n", + "512 NOVEMBER 8 2016 14.0 14 SNOW SHOE BORO DEMOCRATIC \n", + "551 NOVEMBER 8 2016 15.0 15 RUSH NORTH CENTRAL DEMOCRATIC \n", + "589 NOVEMBER 8 2016 16.0 16 SC NORTH DEMOCRATIC \n", + "627 NOVEMBER 8 2016 17.0 17 SC NORTHEAST DEMOCRATIC \n", + "665 NOVEMBER 8 2016 18.0 18 SC NORTHWEST DEMOCRATIC \n", + "703 NOVEMBER 8 2016 19.0 19 SC SOUTH 1 DEMOCRATIC \n", + "741 NOVEMBER 8 2016 20.0 20 SC SOUTH 2 DEMOCRATIC \n", + "779 NOVEMBER 8 2016 21.0 21 SC SOUTHEAST DEMOCRATIC \n", + "817 NOVEMBER 8 2016 22.0 22 SC SOUTH CENTRAL 1 DEMOCRATIC \n", + "855 NOVEMBER 8 2016 23.0 23 SC SOUTH CENTRAL 2 DEMOCRATIC \n", + "893 NOVEMBER 8 2016 24.0 24 SC EAST 1 DEMOCRATIC \n", + "931 NOVEMBER 8 2016 25.0 25 SC EAST 2 DEMOCRATIC \n", + "969 NOVEMBER 8 2016 26.0 26 SC EAST 3 DEMOCRATIC \n", + "1007 NOVEMBER 8 2016 27.0 27 SC EAST 4 DEMOCRATIC \n", + "1045 NOVEMBER 8 2016 28.0 28 SC EAST CENTRAL 1 DEMOCRATIC \n", + "1083 NOVEMBER 8 2016 29.0 29 SC EAST CENTRAL 2 DEMOCRATIC \n", + "1121 NOVEMBER 8 2016 30.0 30 SC EAST CENTRAL 3 DEMOCRATIC \n", + "... ... ... ... ... \n", + "2364 NOVEMBER 8 2016 62.0 62 MILES EAST DEMOCRATIC \n", + "2403 NOVEMBER 8 2016 63.0 63 MILES WEST DEMOCRATIC \n", + "2442 NOVEMBER 8 2016 64.0 64 PATTON NORTH 1 DEMOCRATIC \n", + "2480 NOVEMBER 8 2016 65.0 65 PATTON NORTH 2 DEMOCRATIC \n", + "2519 NOVEMBER 8 2016 66.0 66 PATTON SOUTH 1 DEMOCRATIC \n", + "2558 NOVEMBER 8 2016 67.0 67 PATTON SOUTH 2 DEMOCRATIC \n", + "2596 NOVEMBER 8 2016 68.0 68 PATTON SOUTH 3 DEMOCRATIC \n", + "2635 NOVEMBER 8 2016 69.0 69 PENN DEMOCRATIC \n", + "2674 NOVEMBER 8 2016 70.0 70 POTTER NORTH DEMOCRATIC \n", + "2713 NOVEMBER 8 2016 71.0 71 POTTER SOUTH DEMOCRATIC \n", + "2752 NOVEMBER 8 2016 72.0 72 RUSH NORTH DEMOCRATIC \n", + "2790 NOVEMBER 8 2016 73.0 73 RUSH SOUTH DEMOCRATIC \n", + "2828 NOVEMBER 8 2016 74.0 74 RUSH EAST DEMOCRATIC \n", + "2866 NOVEMBER 8 2016 75.0 75 RUSH WEST DEMOCRATIC \n", + "2904 NOVEMBER 8 2016 76.0 76 SNOW SHOE EAST DEMOCRATIC \n", + "2943 NOVEMBER 8 2016 77.0 77 SNOW SHOE WEST DEMOCRATIC \n", + "2982 NOVEMBER 8 2016 78.0 78 SPRING NORTH DEMOCRATIC \n", + "3021 NOVEMBER 8 2016 79.0 79 SPRING SOUTH DEMOCRATIC \n", + "3060 NOVEMBER 8 2016 80.0 80 SPRING WEST DEMOCRATIC \n", + "3099 NOVEMBER 8 2016 81.0 81 TAYLOR DEMOCRATIC \n", + "3138 NOVEMBER 8 2016 82.0 82 UNION DEMOCRATIC \n", + "3177 NOVEMBER 8 2016 83.0 83 WALKER EAST DEMOCRATIC \n", + "3216 NOVEMBER 8 2016 84.0 84 WALKER WEST DEMOCRATIC \n", + "3255 NOVEMBER 8 2016 85.0 85 WORTH DEMOCRATIC \n", + "3294 NOVEMBER 8 2016 86.0 86 SPRING EAST DEMOCRATIC \n", + "3333 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST DEMOCRATIC \n", + "3372 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 DEMOCRATIC \n", + "3411 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL DEMOCRATIC \n", + "3450 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL DEMOCRATIC \n", + "3489 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL DEMOCRATIC \n", + "\n", + " Contest Descr VoteFor \\\n", + "8 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "47 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "86 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "125 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "164 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "203 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "242 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "281 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "320 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "359 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "397 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "435 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "473 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "512 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "551 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "589 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "627 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "665 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "703 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "741 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "779 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "817 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "855 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "893 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "931 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "969 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1007 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1045 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1083 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1121 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "... ... ... ... \n", + "2364 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2403 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2442 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2480 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2519 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2558 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2596 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2635 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2674 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2713 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2752 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2790 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2828 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2866 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2904 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2943 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2982 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3021 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3060 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3099 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3138 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3177 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3216 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3255 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3294 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3333 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3372 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3411 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3450 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3489 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "\n", + " Candidate Posn Count PctCnt Total PctTot \n", + "8 HILLARY CLINTON, PRESIDENT 26.0 188.0 48.08 NaN NaN \n", + "47 HILLARY CLINTON, PRESIDENT 111.0 259.0 38.14 NaN NaN \n", + "86 HILLARY CLINTON, PRESIDENT 196.0 230.0 50.33 NaN NaN \n", + "125 HILLARY CLINTON, PRESIDENT 281.0 283.0 39.47 NaN NaN \n", + "164 HILLARY CLINTON, PRESIDENT 366.0 443.0 48.05 NaN NaN \n", + "203 HILLARY CLINTON, PRESIDENT 451.0 230.0 32.53 NaN NaN \n", + "242 HILLARY CLINTON, PRESIDENT 536.0 122.0 32.36 NaN NaN \n", + "281 HILLARY CLINTON, PRESIDENT 621.0 143.0 27.39 NaN NaN \n", + "320 HILLARY CLINTON, PRESIDENT 706.0 169.0 40.14 NaN NaN \n", + "359 HILLARY CLINTON, PRESIDENT 791.0 159.0 35.65 NaN NaN \n", + "397 HILLARY CLINTON, PRESIDENT 875.0 143.0 37.14 NaN NaN \n", + "435 HILLARY CLINTON, PRESIDENT 959.0 124.0 34.54 NaN NaN \n", + "473 HILLARY CLINTON, PRESIDENT 1043.0 70.0 25.27 NaN NaN \n", + "512 HILLARY CLINTON, PRESIDENT 1128.0 83.0 25.23 NaN NaN \n", + "551 HILLARY CLINTON, PRESIDENT 1213.0 57.0 29.23 NaN NaN \n", + "589 HILLARY CLINTON, PRESIDENT 1297.0 495.0 77.95 NaN NaN \n", + "627 HILLARY CLINTON, PRESIDENT 1381.0 399.0 74.58 NaN NaN \n", + "665 HILLARY CLINTON, PRESIDENT 1465.0 928.0 68.24 NaN NaN \n", + "703 HILLARY CLINTON, PRESIDENT 1549.0 888.0 69.21 NaN NaN \n", + "741 HILLARY CLINTON, PRESIDENT 1633.0 739.0 68.87 NaN NaN \n", + "779 HILLARY CLINTON, PRESIDENT 1717.0 611.0 71.05 NaN NaN \n", + "817 HILLARY CLINTON, PRESIDENT 1801.0 322.0 63.76 NaN NaN \n", + "855 HILLARY CLINTON, PRESIDENT 1885.0 490.0 70.81 NaN NaN \n", + "893 HILLARY CLINTON, PRESIDENT 1969.0 867.0 52.77 NaN NaN \n", + "931 HILLARY CLINTON, PRESIDENT 2053.0 977.0 67.33 NaN NaN \n", + "969 HILLARY CLINTON, PRESIDENT 2137.0 1188.0 62.63 NaN NaN \n", + "1007 HILLARY CLINTON, PRESIDENT 2221.0 1195.0 62.76 NaN NaN \n", + "1045 HILLARY CLINTON, PRESIDENT 2305.0 706.0 67.69 NaN NaN \n", + "1083 HILLARY CLINTON, PRESIDENT 2389.0 641.0 62.84 NaN NaN \n", + "1121 HILLARY CLINTON, PRESIDENT 2473.0 325.0 58.56 NaN NaN \n", + "... ... ... ... ... ... ... \n", + "2364 HILLARY CLINTON, PRESIDENT 5192.0 97.0 27.25 NaN NaN \n", + "2403 HILLARY CLINTON, PRESIDENT 5277.0 38.0 23.75 NaN NaN \n", + "2442 HILLARY CLINTON, PRESIDENT 5362.0 1102.0 60.32 NaN NaN \n", + "2480 HILLARY CLINTON, PRESIDENT 5446.0 873.0 47.01 NaN NaN \n", + "2519 HILLARY CLINTON, PRESIDENT 5531.0 511.0 64.28 NaN NaN \n", + "2558 HILLARY CLINTON, PRESIDENT 5616.0 904.0 63.93 NaN NaN \n", + "2596 HILLARY CLINTON, PRESIDENT 5700.0 1015.0 62.73 NaN NaN \n", + "2635 HILLARY CLINTON, PRESIDENT 5785.0 130.0 26.21 NaN NaN \n", + "2674 HILLARY CLINTON, PRESIDENT 5870.0 228.0 28.79 NaN NaN \n", + "2713 HILLARY CLINTON, PRESIDENT 5955.0 406.0 33.55 NaN NaN \n", + "2752 HILLARY CLINTON, PRESIDENT 6040.0 242.0 24.87 NaN NaN \n", + "2790 HILLARY CLINTON, PRESIDENT 6124.0 47.0 23.50 NaN NaN \n", + "2828 HILLARY CLINTON, PRESIDENT 6208.0 32.0 35.16 NaN NaN \n", + "2866 HILLARY CLINTON, PRESIDENT 6292.0 89.0 23.92 NaN NaN \n", + "2904 HILLARY CLINTON, PRESIDENT 6376.0 146.0 25.89 NaN NaN \n", + "2943 HILLARY CLINTON, PRESIDENT 6461.0 66.0 23.57 NaN NaN \n", + "2982 HILLARY CLINTON, PRESIDENT 6546.0 349.0 36.93 NaN NaN \n", + "3021 HILLARY CLINTON, PRESIDENT 6631.0 229.0 30.95 NaN NaN \n", + "3060 HILLARY CLINTON, PRESIDENT 6716.0 130.0 29.35 NaN NaN \n", + "3099 HILLARY CLINTON, PRESIDENT 6801.0 76.0 17.31 NaN NaN \n", + "3138 HILLARY CLINTON, PRESIDENT 6886.0 126.0 17.03 NaN NaN \n", + "3177 HILLARY CLINTON, PRESIDENT 6971.0 224.0 26.29 NaN NaN \n", + "3216 HILLARY CLINTON, PRESIDENT 7056.0 514.0 30.83 NaN NaN \n", + "3255 HILLARY CLINTON, PRESIDENT 7141.0 97.0 23.43 NaN NaN \n", + "3294 HILLARY CLINTON, PRESIDENT 7226.0 250.0 27.47 NaN NaN \n", + "3333 HILLARY CLINTON, PRESIDENT 7311.0 343.0 37.40 NaN NaN \n", + "3372 HILLARY CLINTON, PRESIDENT 7396.0 642.0 64.46 NaN NaN \n", + "3411 HILLARY CLINTON, PRESIDENT 7481.0 628.0 57.67 NaN NaN \n", + "3450 HILLARY CLINTON, PRESIDENT 7566.0 394.0 39.44 NaN NaN \n", + "3489 HILLARY CLINTON, PRESIDENT 7651.0 396.0 55.54 NaN NaN \n", + "\n", + "[91 rows x 16 columns]" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_rhillary = df_results[(df_results['Contest'] == 'PRESIDENTIAL ELECTORS') & (df_results['Candidate'] == 'HILLARY CLINTON, PRESIDENT')]\n", + "df_rhillary" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PrecNoPctCnt
81.048.08
472.038.14
863.050.33
1254.039.47
1645.048.05
2036.032.53
2427.032.36
2818.027.39
3209.040.14
35910.035.65
39711.037.14
43512.034.54
47313.025.27
51214.025.23
55115.029.23
58916.077.95
62717.074.58
66518.068.24
70319.069.21
74120.068.87
77921.071.05
81722.063.76
85523.070.81
89324.052.77
93125.067.33
96926.062.63
100727.062.76
104528.067.69
108329.062.84
112130.058.56
.........
236462.027.25
240363.023.75
244264.060.32
248065.047.01
251966.064.28
255867.063.93
259668.062.73
263569.026.21
267470.028.79
271371.033.55
275272.024.87
279073.023.50
282874.035.16
286675.023.92
290476.025.89
294377.023.57
298278.036.93
302179.030.95
306080.029.35
309981.017.31
313882.017.03
317783.026.29
321684.030.83
325585.023.43
329486.027.47
333387.037.40
337288.064.46
341189.057.67
345090.039.44
348991.055.54
\n", + "

91 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " PrecNo PctCnt\n", + "8 1.0 48.08\n", + "47 2.0 38.14\n", + "86 3.0 50.33\n", + "125 4.0 39.47\n", + "164 5.0 48.05\n", + "203 6.0 32.53\n", + "242 7.0 32.36\n", + "281 8.0 27.39\n", + "320 9.0 40.14\n", + "359 10.0 35.65\n", + "397 11.0 37.14\n", + "435 12.0 34.54\n", + "473 13.0 25.27\n", + "512 14.0 25.23\n", + "551 15.0 29.23\n", + "589 16.0 77.95\n", + "627 17.0 74.58\n", + "665 18.0 68.24\n", + "703 19.0 69.21\n", + "741 20.0 68.87\n", + "779 21.0 71.05\n", + "817 22.0 63.76\n", + "855 23.0 70.81\n", + "893 24.0 52.77\n", + "931 25.0 67.33\n", + "969 26.0 62.63\n", + "1007 27.0 62.76\n", + "1045 28.0 67.69\n", + "1083 29.0 62.84\n", + "1121 30.0 58.56\n", + "... ... ...\n", + "2364 62.0 27.25\n", + "2403 63.0 23.75\n", + "2442 64.0 60.32\n", + "2480 65.0 47.01\n", + "2519 66.0 64.28\n", + "2558 67.0 63.93\n", + "2596 68.0 62.73\n", + "2635 69.0 26.21\n", + "2674 70.0 28.79\n", + "2713 71.0 33.55\n", + "2752 72.0 24.87\n", + "2790 73.0 23.50\n", + "2828 74.0 35.16\n", + "2866 75.0 23.92\n", + "2904 76.0 25.89\n", + "2943 77.0 23.57\n", + "2982 78.0 36.93\n", + "3021 79.0 30.95\n", + "3060 80.0 29.35\n", + "3099 81.0 17.31\n", + "3138 82.0 17.03\n", + "3177 83.0 26.29\n", + "3216 84.0 30.83\n", + "3255 85.0 23.43\n", + "3294 86.0 27.47\n", + "3333 87.0 37.40\n", + "3372 88.0 64.46\n", + "3411 89.0 57.67\n", + "3450 90.0 39.44\n", + "3489 91.0 55.54\n", + "\n", + "[91 rows x 2 columns]" + ] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_plothillary = df_rhillary[['PrecNo','PctCnt']]\n", + "df_plothillary" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_hillary = df_precinct_locations.merge(df_plothillary, left_on ='Precinct', right_on ='PrecNo')" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEWCAYAAAB1xKBvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXeYVOXVwH9newUsqCAi1tglghV7jYol9oLdqBg/ey+J\nJQl2jZpojF0soBF7L4jGBohGFBUlKCJNkbYLu8vu+f44d7PDMuXO7tyZ2d3ze555dua299w7s/fc\n91RRVRzHcRwnFQW5FsBxHMfpGLjCcBzHcULhCsNxHMcJhSsMx3EcJxSuMBzHcZxQuMJwHMdxQuEK\no5MgIp+LyM45HP94EXk3V+M7LYjIr0TkExFZKCJn5lqeMIjIIBGZLCKLROTALI15l4hcEbzfWUR+\niFk3VUR2z4YcHQlXGBET/PAWB/8Is0TkARGpyvQ4qrqxqo5uzzH8ph+e1jeYPONC4C1VrVbV2zJ1\n0Ih/H1cDd6hqlao+3d6DBf9nf2q1rJ+IqIgUAajqaap6TXvH6kq4wsgO+6lqFbAFMBC4vPUGYvj3\nkUG68DVdE/g810KkSZtlblYA+UA+yRIFXfGfKWeo6nTgJWATABEZLSJ/FpF/A7XA2iLSXUTuFZEZ\nIjJdRP4kIoXNxxCR34nIpMDc8IWIbBEs/98UWkSuFJGRIvJQsN3nIjIw5hhriMhTIjJHRH4WkTtE\nZEPgLmDbYDY0L9h2n2CchYE85yc5RQmONV9EvhSR3YKFh4rI+FYbnisizyQ4yGgRGSYiH4nIAhF5\nRkRWjFm/jYi8JyLzROTTWFNcgmu6oojcLyI/isgvIvJ0zPaDA/PNvOCYm8Wsmyoi54vIf4JzGiEi\nZSJSGXyPvYNrtUhEeovIViLyfnCsGcG1KIk53p4i8lVwrL+LyNsicnLM+hOD7/YXEXlFRNZMcqH3\nD77XecE5bxgsfxPYBbgjkGv9VvsdLiLjWi07R0SeDd53D343c0TkOxG5XEQKkvw+SkXkRhH5XmwG\nfZeIlAfrVhaR5wMZ54rIOxJHgYvIt8DawHPBsUuD6/lssN83IvK7mO2vFJEnRWS4iCwAjk90nZIh\ncWYhCbZL9b2qiPxeRCYDk0XkbyJyU6tjPCsi57RFzrxCVf0V4QuYCuwevF8De4q6Jvg8Gvge2Bgo\nAoqBUcA/gEpgFeAj4NRg+0OB6cCWgADrAmvGGedKYAmwD1AIDAM+CNYVAp8CtwRjlAHbB+uOB95t\nJf8MYIfg/QrAFgnO83hgKXBOcB6HA/OBFYFSYC6wYcz2E4CDExxrdHCemwQy/gsYHqxbHfg5OLcC\nYI/gc88k1/QFYEQgfzGwU7Dtr4HZwNbBdTkuuI6lMdf0I6B3cB6TgNOCdTsDP7SSewCwTTBuv2D7\ns4N1KwMLgIOC9WcBDcDJwfoDgG+ADYP1lwPvJbg+6wM1wbkXYyaob4CSmGtwcoJ9K4CFwHoxy8YC\nRwTvHwKeAaqDc/gaOCnJ7+MW4Nng+lQDzwHDgnXDMCVTHLx2ACTV/0nweQzwd+z32R+YA+wa8/tu\nAA4MfgPlcY73APCnVsv6AQoUtd6m9ffJsv9PCb/XYL0CrwXXoBzYCvgRKIj57muBVXN9P2r3/SzX\nAnT2V/DDWwTMA74L/gnKg3Wjgatjtl0VqIv9BwCOxOzRAK8AZyUZJ1ZhvB6zbiNgcfB+2+CfryjO\nMeLdEL4HTgW6pTjP44N/EolZ9hFwTPD+TuDPwfuNgV8IbsxxjjUauLaV/PXYTf0i4OFW278CHJfg\nmvYCmoAV4oxzJ4Hyjln2FS0KZSowJGbd9cBdwftlbjAJzuNsYFTw/ljg/Zh1AkyjRWG8RHBjDj4X\nBDeZNeMc9wpgZKttpwM7x1yDuAojWD8c+EPwfj1MgVQE17ce2Chm21OB0fF+H8E51ADrxCzbFvhv\n8P5qTPmsG/L/JPbBqhGojlk/DHgg5vc9JsXxHsAemubFvBbQBoWR7HsNPiuBMotZNgnYI3h/BvBi\nqmvQEV5uksoOB6pqD1VdU1VPV9XFMeumxbxfE3sSmxFMf+dhs41VgvVrAN+GHHNmzPtaoEzMvroG\n8J2qLg15nIOxp/nvAhPKtkm2na7Bf0jAd9jTOcCDwFEiIsAx2A2vLsmxYq/Ld9h1WRm7Roc2X5/g\nGm2PKYZ4+64BzFXVX+KMsSZwXqtjrREjMyx/HRMGLIjI+oEJZmZgKvlLIDPBMf8nV3CdYp3mawJ/\njZFjLnZDXj3OUL2xa9J8rKbg2PG2jcej2IMIwFHA06paG8haHHvs4H2i4/bEFM34GLlfDpYD3IDN\nfF4VkSkicnFI+Xpj39nCJHJMIzU3Bv93PVS1B7BZyj3ikOJ7TSTPg8CQ4P0Q4OG2jJ1vuMLIPbE3\n2GnYDGPlmB96N1XdOGb9Ou0cbxrQV+I755YrXayqY1X1AExpPQ2MTHLs1QOF0ExfbNaBqn6APb3u\ngN2kUv0DrdHqOA3AT4H8D8feCFS1UlWvTXAe04AVRaRHnDGmYbOe2GNVqOpjKWRrPUYzdwJfYuae\nbsCl2E0fzLTXp3nD4Dr1idl3GmZ6jJWlXFXfizPOj5iCiT3WGtgsIwyvAT1FpD+mOB4Nlv+EXedY\n30nfmOO2PuefgMXAxjEyd1cL8EBVF6rqeaq6NrA/cK4Efq0U/Ih9Z9UJ5IgnS5Qk+14TyTMcOEBE\nNsfMjO2O/MoHXGHkEao6A3gVuElEugXOxnVEZKdgk3uA80VkgBjrJnOMJuAj7OZ1rYhUijlxBwXr\nZgF9mh16IlIiIkeLSHdVbcCm9E1Jjr0KcKaIFIvIodg/yosx6x8C7gAaVDVVeOYQEdlIRCow08aT\nqtqI/SPuJyJ7iUhhIP/OItIn3kGCa/oS8HcRWSGQbcdg9T+B00Rk6+B6VorIvq1uVImYBawkIt1j\nllVj12iRiGwADI1Z9wKwqYgcGCjr3wOrxay/C7hERDaG/zmfD00w9khgXxHZTUSKgfOwB414ymU5\ngu/yCWwGsCKmQAiu70jgzyJSHfy2zsWuefM5/+/3Ecxs/gncIiKrBHKvLiJ7Be8HB79RwfxZjST/\n/TTLNy04l2HB97sZcFKMHNkm2fcaF1X9AfMNPQz8q5VVocPiCiP/OBYoAb7A7PxPEphbVPUJ4M/Y\nE+FC7KllxfiHiU9wU9gPc5h/j5lFDg9Wv4k55WeKyE/BsmOAqcFU/DTg6CSH/xCzif8UyHmIqv4c\ns/5hzJEd5h//YczGPBNzfJ4ZyD8NcxBfivlipgEXkPy3fAz25Pwl5uQ+OzjWOOB3mBL7BTOfHB9C\nNlT1S+AxYEpgjukNnI/NnhZiN9IRMdv/hAUtXI856TcCxmE3elR1FHAd8HhwrScCeycY+yvMzHE7\ndq33w0K368PIHvAosDvwRCvz5P9hfokpwLvBdvcF6+L9Pi7CrtsHgdyvA78K1q0XfF4EvA/8XVXf\nCinfkZiD+UcsEOSPqvp6GueXSRJ+ryl4ENiUTmKOgsBB6TjZQCzccjYWaTU5yXajsaioe7IlW7YR\nCy/9ATg6jZuo04EIZrLDscCFTnGj9RmGk02GAmOTKYvOTGBG6yEipbTYwT/IsVhOBASmwrOAezqL\nsgCLK3acyBGRqdgNMit1gvKUbTETT7PJ8cDOYtt2WhBLchyH5TudkGNxMoqbpBzHcZxQuEnKcRzH\nCUWnMkmtvPLK2q9fv1yL4TiO02EYP378T6raM/WWnUxh9OvXj3HjxqXe0HEcxwFARL5LvZXhJinH\ncRwnFK4wHMdxnFC4wnAcx3FC4QrDcRzHCYUrDMdxHCcUrjAcx3GcULjCcBzHcULhCsNxHMcJhSsM\nx3EcJxSuMBzHcZxQuMJwHMdxQuEKw3EcxwmFKwzHcRwnFJ2qWq3j5DM1NfDqqzBnDlRWwg47QN++\nuZbKccLjCsNxImbuXLjsMnjoISgshMZGKCiApUth0CC4/nrYYotcS+k4qXGF4TgRMmMGbL01zJoF\n9fXLr3/jDZtpPPUU7LVX9uVznHRwH4bjRIQq7LmnKY14yqKZ2lo4+GD49tvsyeY4bcEVhuNExOjR\nMHWqmZ5SUV8Pt9wStUSO0z5cYThORNx4ozm6w9DQAA88AEuWRCqS47QLVxhO3jF3Llx7LQwYAAMH\n2o133rxcS5U+EyaYWSosIjBtWnTyOE57cae3k1dMmWJO4poaWLzYln3xBdx8M3z0EfTpk1v50qGx\nMb3tRcKZrxwnV/gMw8krjj7aZhjNygLs/ezZcPzxOROrTaSbY1FfD716RSOL42QCVxhO3jB1Knzy\nCTQ1Lb+usRHefdfCUzsKZ58NVVXhthWBPfaAHj2ilclx2oMrDCdvmD4dSksTry8ttRDVjsIhh0Bx\ncbhty8vhoouilcdx2osrDCdvWGstqKtLvL6+HtZYI3vytJfSUnjhBaioSL5dRQVccAFsv3125HKc\ntuIKw8kbeveGHXeM/1ReUgJ77w0rrZR9udrDtttaPsa661r9KJGWdVVV0K0b3HADXHllriR0nPB4\nlJSTVzz8sN1kZ8+GRYtsWVWVRUfdc09uZWsrW24JX38NH3xg9aSmT4fqath3X8vwTmaGc5x8whWG\nk1essoqF0T75JDzxhBXrO+ww+O1vbZbRURExRbjttrmWxHHajisMJ+8oLbXw2qOPzrUkjuPE4j4M\nx3EcJxSuMBzHcZxQuMJwHMdxQuEKw3EcxwlF5ApDRApFZIKIPB98PlREPheRJhEZmGS/+0RktohM\njFpGx3EcJzXZmGGcBUyK+TwROAgYk2K/B4DfRCST4ziOkyaRKgwR6QPsC/wv5UpVJ6nqV6n2VdUx\nwNwIxXMcx3HSIOoZxq3AhUCc+qOZQUROEZFxIjJuzpw5UQ3jOI7T5YlMYYjIYGC2qo6PagwAVb1b\nVQeq6sCePXtGOZTjOE6XJsoZxiBgfxGZCjwO7CoiwyMcz3Ecx4mQyBSGql6iqn1UtR9wBPCmqg6J\najzHcRwnWrKehyEivxWRH4BtgRdE5JVgeW8ReTFmu8eA94FficgPInJStmV1HMdxWhBVzbUMGWPg\nwIE6bty4XIvhOI7TYRCR8aqaMCcuFs/0dhzHcULhCsNxHMcJhSsMx3EcJxSuMBzHCY0qjBwJAwZA\n9+6w1lrWk7ymJteSOdnAFYbjOKFQhd/9Dk48ET7+GBYsgKlT4Y9/hK22goULcy2hEzWuMByng/Pd\ndzB2LMybF+04b74Jjz++/Gxi8WL49lu45ppox3dyjysMx+mgfPcdbLMNbLAB7L479OoFQ4dCQ0M0\n4912W2LTU10d/OMfNgtxOi9FuRbAcZz0WbwYtt0WZs+GxkZYssSWP/gg1NfDvfdmfswpU5KvX7jQ\nlFVJSebHdvIDn2E4Tgdk5Ei7QTc2Lrt88WJ49FGIonDzuuuCSOL13bq5sujsuMJwnA7ImDGwaFH8\ndaWl8OmnmR/zzDOhoiLxmKedlvkxnfzCFYbjdEBWWw2Ki+OvW7oUVlop82PuvDMccwxUVi67vLwc\n1l8fLr8882M6+YUrDKfLMGsW/OUvcOih5hz+8MOO66Q9/ngoSuCBXHVV6N8/82OKwN//DsOHm7N9\npZXMTDVsGHzwAVRVZX5MJ7/w4oNOl+Chh8xkomoO4oICezLeYQd4+mkzqXQ0br0VLr3UnNyNjXY+\nJSXw9tuw+ea5ls7pKKRTfNAVhtPpef99CzutrV1+XXk5HHUU3HPP8us6AhMnWjjr99/DoEFw0knR\nmKOczosrDMeJYd994aWXEpufyspg+nRYccXsyuU4+YCXN3ecGEaPTu6rKCmB997LmjiO02FxheE4\njuOEwhWG0+nZccfk6+vrLWvacZzkuMJwOj1XXJE44ay8HI480h3FjhMGVxhOp2e77eCOO8y5XVZm\ny0QsAW377S23wHGc1HjxQadDoWp5Bi+9BE1NsMceFjJbkOLR54QTYO+94Z//hAkToGdPS37bZpvk\n9ZEcx2nBw2qdDsOsWaYcpk61Mtuqll3cqxe88QassUauJXScjoeH1Tp5haoVw3vpJfjqq7YfY889\n4csvrehe83POokVWdnvnnZev3Oo4TmZxheFEyvjx1uBn0CBzLv/619YPevLk9I7zzjumGJYuXX5d\nY6OV83755czI7DhOfFxhOJExebI9+X/9tZmQ5s+3fg2ffNLS/CcsL7+cuJw3WG+I555rt8iO4yTB\nFYYTGddcYwqiNU1NpkD+9rfwx2pqSr1NJ3LHOU5e4grDiYynn07sV1iyBB57LPyx9twzefns6mqL\ngnIyxy+/wHXXQd++lq/SsyecfbYFHThdE1cYTmSkckLX14c/1i67WBRUvB4QBQVWOHDw4PTkc6Cu\nrqUfeCzffGO+p6uugmnTbJuffoI774RNNrGoNKfr4QrDiYzttku8rqjIZg1hEYHXX4e11152plFd\nbYpk9OjEDYWc5XnlFQs+qKy069m/P7zwgq1rbITddjMF0dqkWF9v5sQDD4Qff8y+3E5u8X8xJzL+\n+EerAhuvD0VJCZx/fnrH690bJk2C114zB7cq7LWXlS8vLMyMzF2BBx+E009f9nv59FM47DC45RbL\na/nll+R+o4YGy5D/05+il9fJHzxxz4mUhx+GU081s1FtrT3RisCTT6Y3w3AyQ00NrLJKfCUO5qvY\nay/zP6VizTXdn9EZSCdxz2cYTqQccwwccIApiOnTYZ114Le/tRuTk32efTb5bKyw0MKgw5AszNnp\nnLjCcCKnWzc48cRcS5FdPvvMnMW/+pUpyXxh1ixzdCdiyRL7vgoLUwcteCmWroc7vR0ng/z3v7Dp\nplbU8KijLKJot91g7txcS2astx6UliZeX14Ohx9uPqZkVFXBOedkVjYn/4lcYYhIoYhMEJHng8+H\nisjnItIkIgntZiLyGxH5SkS+EZGLo5bTcdpLXZ2VS//iC/MRzJ9vT+zvvmuO+Xxgr72SK4zCQnOI\n7713YrNhcbEFIBx2WDQyOvlLNmYYZwGTYj5PBA4CxiTaQUQKgb8BewMbAUeKyEZRCuk47WXUKFiw\nYPnoovp6+M9/4OOPcyNXLEVF5tCuqrIbf+zyykpbV1ICjz4K++1n/UOatysosG0228xqezX3FnG6\nDpEqDBHpA+wL3NO8TFUnqWqqmqVbAd+o6hRVrQceBw6ITlLHaT8ffZTcETxhQvZkScagQabATj0V\n+vSB1VeHk0+2Gl877WTblJbCiBHmizn/fDNTnX66JeyNHWuRVk7XI2qn963AhUB1mvutDkyL+fwD\nsHW8DUXkFOAUgL59+7ZBRMfJDL162Y02nlO5sDC/brJrrQW3326vZKy7LvzlL9mRycl/IpthiMhg\nYLaqjo9qDABVvVtVB6rqwJ49e0Y5lOMkZciQxN37CgvNf9DRWboUnnrKcmi22MK6Fn7ySa6lcrJF\nlCapQcD+IjIVMyntKiLDQ+47HYgN2usTLHOcvKVXL7jrLnMWN9v9y8rM7j9qVOrIo3ynpsbKvRx3\nnGXbT5gAw4fbMs/47hpEpjBU9RJV7aOq/YAjgDdVdUjI3ccC64nIWiJSEuz/bESiOk7GOO448w+c\neSbsvz9ccklLX5COzhlnmE8j1k/T2Gj1poYN84KEXYGsJ+6JyG+B24GewAsi8omq7iUivYF7VHUf\nVV0qImcArwCFwH2q+nm2ZXWctrDuunDjjbmWIrPMnw+PPx6/si1YGPGwYZZz4nResqIwVHU0MDp4\nPwoYFWebH4F9Yj6/CLyYDfkcx0nOpEnm0E+kMMDa8TqdG8/0dhwnJeXlqUuFJEsIdDoHrjAcJ08Z\nORI23thu1muuCbfemvqmHRWbbmrO+0QUF8MRR2RPnq7Izz9bB8T+/WHDDS135osvsiuDlzd3nDxk\n2DCLPIotQ15RYdnXjz+eG5keegiGDo1fGr1bN5g40QsSRsWECbDrrpbj09zUqrDQIu+uuw7+7//a\nfux0ypu7wnCcPGPePAvRjecvqKiAf//bnjJzwZ13woUXWpmQxkbLO1llFQsb3myz3MjU2VmyxDLy\nf/45/vqKCutGue22bTt+OgrDTVKOk2e89VbinI26Ous2mCuGDoXZs61r3+23W6vXb75JT1moWi2q\nww+HgQOtP8prr9lyZ3mefDJ5SfrFi7OXje/9MBwnz0iULd68riDHj3nl5dbTuy00NVlG/LPPmmlL\n1aKrXn/dKv0+++yyRREdeOml5DXKVGFMwlKumcVnGI6TZ+y6q/XMjkdxsXUw7KjcdBM884xljcfO\nKBYtgrffhksvzZ1sHZlkDxmZxBWG4+QZ3brBn/9stulYKirMjLPJJrmRq700NsL11yfuJ754sZVW\naXbqOsbgwVCdpHyrCOyyS3ZkcYXhOHnIOedYNNTAgaZA1l/fwmrvvTfXkrWdadMSK4tmCgosSdBp\n4eCDEzezAlt3ySXZkcV9GI6Tp+y3n706C4WFqR3bqrad00JJidXp2mknc37X1Njy4mJrfHXrrbDV\nVtmRxRWG4zhZoU8f6NkTvv8+8TbFxZas6CzLJpvAlCmWC/PII6Y4dtzRilyus0725HCF4ThOVhCB\nq66C3/8+vmmqogIuvtiemp3l6d7dEvTak6TXXtyH4ThO1jj+eDjvPOsT0pxrUlxsn084wdrBOvmL\n63InLZqaLFnrzTehvh5+/Ws47LDlI3qc5DQ2WvLajBnQuzfssEPu8yuyxdVXw0knwX33Wa+QNdeE\nE0+E9dbLtWROKrw0iBOaMWNMOdTUtCQSNReku/Zaa7DjpGbUKDjttGXDRysr4e67O5eT2+kYpFMa\nxGcYTijeew/23nt523NzxMZFF5kj7rzzsi9bOsyZA59+Cqutlpt8hueeg6OPXj7XYOFCy7H417/s\nOjtOPuIzDCclqrDBBvD118m3KyuD6dNhxRWzI1c6NDVZbsPdd1vfhoYG64z3wgsWvZMNVK2a6/Qk\n3en79bNomGxl7jpOxosPisigMMuczsm4cclvcs2ImF06H/nrX+Gee6zy5/z5NlP6/HPYc8/sFb0b\nO9bGTkbzDMhpO2PHmvP81FPh0UeTF+5z0iOsm+32kMucTsi4cfaEnorFi7NXBC1dbrxxeXNaY6Nl\nH3/0UXZkmD07dVJaUZFt56RPXR3suy/svDPcfLPNJk891WZ1n3+ea+k6B0l9GCKyLbAd0FNEzo1Z\n1Q3wfExnOfLVlDJnTvzlBQXwww+w9dbRy9C3b+Kigs00NNh2Tvqcc46Vho/1Dy1aZK9ddrGHA28j\n2z5SzTBKgCpMsVTHvBYAh0QrmpMvbLVVOEVQUWHlC/KRDTeMv7y+PnvNiDbbLHVHunXWMX+Rkx4L\nFsD99ycuXLh4sfWVcNpHUoWhqm+r6lXANqp6VczrZlWdnCUZnRwzYIDFyqeiqcmSr/KR665bvoBb\neTnss092Syvcd1/inJWKCvjnP7MnS2fiiy8SN50Cm2WMHp01cTotYX0YtSJyg4i8KCJvNr8ilczJ\nK+6/P3lyXkWF3ZRXWCF7MqXDb34DI0dacpgIVFVZiYrHHsuuHNttZ0mPW2xhCqt7d4suGzjQ+kH0\n72/29vHjzYSyZAm8+qrJ/uabqU1aXZXy8uR+tubv3GkfYfMwHgFGAIOB04DjgARWYaczsvXW1kbz\nsMMs0qc5ca/5n/DGG83BmM8MHmyvpUvN+Zwrf8vWW5tC+O9/YeZM699dWGhVR3fd1bYRaWkyVFpq\n6wsK7HX22XDZZV5zKZZNN7XfYqLOdOXlcMQR2ZWpMxIqDyOI0x0gIv9R1c2CZWNVdcvIJUwDz8OI\nHlUrtfz222b/33xzOOgge0p2wjFzJjzwgM0kVl7ZnNyXXWbXs7Ex9f4VFdbO9IUXTGlMn24RQR9/\nbDO8Y481xdPWUiNNTfYdv/66ybPNNtblL99bp44YYSVGWkfDlZdbZdeXXsrfoIxcEkWmd/NEeIaI\n7Av8CORhepYTNSKw++72ctJDFa65BoYNs89LlrTtOLW1VofqppuspMgFF9ixm/MNRo2ypMQ330zf\nRPj55+bXmTu35Wm9utoU08iR+f29H364XYdzzjHZCwvtmhxzDNx2myuLTBB2hjEYeAdYA8u/6AZc\nqarPRSteevgMw8ln/vY3uPDC1F3nwlJdbea1eJFBJSUW3fbOO+GP9/33FsmVKLmwosKUUDZCkNtD\nU5MlPy5ebL01unfPtUT5TcYzvVX1eVWdr6oTVXUXVR0AZDG2xHE6Ng0NcMUVmVMWYPWnEoWR1teb\niSqdrPG//KWlNlg8amvzv1YYmCnu17+2AANXFpmlPQWVz029ieM4AO++a7OBbFJXB88/H27bpibr\n5pZKxvHj4ccf2y+b0zFpj8Jwi6DjhOSXX7JvQ29sDF9HadGicAqttNQVRlemPQqj85S5jZC6Ohg+\n3KKJqqvNCXnoofDhh7mWzGnN/PnW3GejjSxM86abEpt80mXNNcNFQGWS6mrzY4QhbAOs+vr8rEbc\n2aivz9OcG1VN+AIWYmVAWr8WAkuT7ZuL14ABAzSf+Pln1U02Ua2oULX4DXuJ2LKLLsq1hE4z8+er\nrrOOallZy/dUXq46YIDqkiXtP35Tk+raay/7O4j6teqqqkuXhpfxoINUCwqSH3PDDdt/LZz4LF2q\nevfd9jssKLDXxhurDh9uv5+oAMZpyHtsqtIg1araLc6rWlU9bSgFv/mNlSxo7ehUtWW33WYlt53c\nc8cdls8QG+q6eDF8+aXF97cXESv7kax8RVsoLFx+dlBcbLOLF15IXR03lj/8IXk+TUWFdVZ0Ms/S\npZZUevbZ8O235lNqarIw51NPhSFDsleGPxmRdxEWkUIRmSAizwefVxSR10RkcvA3bqS4iJwlIhNF\n5HMROTtqOTPNW2+lLgu+eLFFzoQpHe5Ey4gR8fMiamoyVz5k113hmWcy58soLoahQ+HOO617YEUF\nrLSStX/97DOrAZYOm29uHf8qK5dVQqWlpkhuuAH23z8zsucL9fX23R9zjCWgXnhh6kZhUXDTTdYa\nIF4UXU0NPP00PPhg9uVajrBTkba+sGiqR4Hng8/XAxcH7y8GrouzzybARKACSy58HVg31Vj5ZJLa\nYINwZoOuI6WXAAAgAElEQVTSUtX338+1tM6AAYm/owMOyOxYl1+uWlLSfpNTZaXqlCmZlU1V9Zdf\nVG+6SXXnnVV32MHknT498+PkmieeUO3eXbW6uuWaFhWZWXLXXc2knA2WLlXt2TP1973uutGYpsiU\nSaq9iEgfYF8g1vByANCsKx8EDoyz64bAh6paq6pLgbeBg6KUNZMsXBj+KaWhAWbNilYeJzUnnRTf\n8VtZCccfn9mxzj8fVl89PXNRPI49FtZaKzMyxdKjB5x7rs2Sx4yx7PTevTM/Ti4ZMcKu3/z59v/a\nzNKlNtN8910riRK7LiqmTk2e/9LMd99ZGfdcErVJ6lbgQiDW6LKqqs4I3s8EVo2z30RgBxFZSUQq\ngH2wLPMOwdtvh78ZNDW1/8bhtJ+TTjITTmVly7LKSthrr8ybYbp3h/fes8q57Skg+PTTbs5sC4sW\nWc2pZBFw9fWW+f7nP0cvT2NjuLpfItmPtGtNZAojKCcyW1XHJ9ommA4t58pR1UnAdcCrwMvAJ0Dc\nSyUip4jIOBEZNydRW7Uss2hReoXaqqujk8UJR0mJlb247z448EA45BDzXTzxRNuL+CVjtdXMz/DY\nY1aAsC0sXOitR9vCI4+E8yPV1cFdd5nyiJIwvWbAZn49ekQrSyqinGEMAvYXkanA48CuIjIcmCUi\nvQCCv3E7GKvqvao6QFV3BH4B4hp5VPVuVR2oqgN79uwZxXmkTZ8+6c0a/vKX6GRxwlNUZOXbR40y\nRbHfftEoi9jxDjnEeni/9RbsvXd6DxqFhbk3UXRERowIZwIC8x58/HG08pSWwsknJ28fW15uZsIo\nf49hiGx4Vb1EVfuoaj/gCOBNVR0CPIv10yD4+0y8/UVkleBvX8x/8WhUsmaa7bZLT2G8/TbMmJF6\nO6dzIgI77wwvvmgzhrBKo77eZipOeqTjl2juSxI1V18N/frFVxplZRYFd9ZZ0cuRilzoq2uBPURk\nMrB78BkR6S0iL8Zs9y8R+QJ4Dvi9qs7Lvqhto6Bg+XagySgttRo9jrPeeuHDYbt1s5nJzz9HK1Nn\no0+f8NsuXQqrxvOyZpjqavjoI/OtVFTYd1tdba8zzrCHynzoOROqvHlHIV/Kmy9YYOUTwjqoune3\nwm+dLcbdaRuvvGI5Aakq2zY/mDQ2WrmZu+4KX+KjK/PSS2Z6TNSdL5a114ZvvsluHbDaWvjqKxtz\nww2Tm6oyQcbLmzvp0dCQXvRLXZ31IXDykzlzLBP8kkvgr3+N3ny4115mokh1829qMnPJkiXmc9lx\nx7Y3ZepK7LWXPdClUgIVFdYJMdtFIysqrDx7//7RK4t0cYURASusYFPKsGy5pdkvnfyiqckcjX37\nWgbwtdfCxRdb7sOpp0Zbrvy88+Dll+3mVlyc2ie2ZImVobn55uhk6iwUFNi17d49sRO5ogIOPhhO\nOCG7suU7rjAioKDA2kSGsTlWVsLtt7d9rJ9+sqfeM86A66/30tOZ5Kyz4B//sJtxc8z+kiUtFYhP\nPjn9YzY2mr/qrbfM7JCMHXawG9sPP4RzhC9eDLfeuqwptLbWcj7efddKrDvGhhta9NPgwfYUX10N\nVVX2d9VVrY3ugw96W9flCJsS3hFe+VQaZMkS1W22Wbb6aeyruNjKAbSnLMg999jxy8tbyoyUlqr+\n+c+ZO49cMHOm6r//rTp5cu5kmD7drmWyUg1lZarffBPueEuXql5/vX3n1dVWkqKiwqq/Pv108n1f\nf121W7dw5UKqqlS/+EK1pkb1jDOsfEi3bjZeWZnqEUeozp7d/uvTmZg5U/XJJ60q7OjRqo2NuZYo\nu5BGaZCc3+Qz+conhaFqSuOaa1RXWslqBxUU2D/woEGqo0apNjS0/dhvvbV82fTmV0WF6ogRGTuN\nrDFrluo++9iNrXt3U4Sbbqo6fnz2ZRk2LLXCKC5Wvfji1MdqbLR6VMm+rxtvTLz/c8+FVxjduqm+\n957qFlvEf1gpKlJdffX8VBo1Narffqv600+5lqRr4Qojz1i6VHXGDPtHyFTxsJ12Sn7jWH/9zIyT\nLWpqVNday27C8Z6aJ03KrjynnBLuBn3ooamPdeediZVF86u8XPWTT+Lv/+mn9qARRp7SUisW2Dzr\nTKTojjkms9erPUyfrjpkiCm4ykp7uNpuO9V33821ZF2DdBSG+zCyQGGhJVittFLmbKLvvZd8/ZQp\nHSsL+OGHLeM5Xpex2lr44x+zK88qq6SOdGv+XpOhas7yVCGy9fVW4joem24avvjfttta341kdZIa\nGiyqKh9+H9OnW0TQ44+bf6imxq7Fe+/BnntaTw8nf3CF0UEJo3g6ksPuoYcSZ9Q2NVkfiWwyZEhq\nhVFamrqS7dSppghT0dgIzz4bf52IlY9JFWZbXm7RXHPnph6vpCQ3fR9ac8YZlngYL+KsthaOPjr6\nWk5OeFxhdFB23jn5+o026lhFDVM9gUcZwhqPX/0K9tgjcaRbaan1y95ii+THqa0Nn5OT7MZ4yCFw\n+eWmNFo/CDR33bvzTsvF0BC5uKrtq5SbCebOtSiwZAmumX5YqKuzWlKXXmozv8mTM3fsroArjA7K\nlVcmfuKsqIA//Smr4rSbPfdM3r60f//sydLM449baGtlZUu8voh9Hjgw3I2sd+/wT8ipzFuXXGIV\ndX/7W7vZFxSY4hoyBD78EI47zmRbf/3UYxUU2ENFLpkyJXVi2qJF1iY3E7z9tl3jk0+2sNk//MES\nZg8/3GcxoQnr7OgIr3x1ekfFyJHmJKyq0v91YCsrU/3733MtWfp8/31ix25Fherzz2durJoaiyR6\n+WXVd95RnTs3+fYffaR60kmqu++uetxxFvKbTvDCPvuoiiR3VldUqN5yS/hjNjWpLl4cX45HHknu\nJC8vV73ssvBjRcWXX6YOBigtTe+6JOKrrxJfk/Jy1eOPb/8YHRU8SqrrsGiR6gMPqF55perdd1t7\nzY7KW29ZWGizAiwvtxvGzTdn5viTJy+fmxCbnzB2bGbGac348clvjCKWnzFvXmbGa2pSPfHE+DfI\nigqLsKury8xY7aGpSbVfv+QKo6xMderU9o914omqhYXJx5kxo/3jdERcYTgdltpa1YcfVr30UtXb\nbstcvsBDD5kCihe2C5YjU1FhT95R9E1+/nk7fuvciKoq1VVXtaftTNLUZDPQ/v1NIRUUWNjynXeq\n1tcvu21d3fLLssWIEYmVaXm5KfJMsOKKyRVTVZXq/fdnZqyOhisMx4lhxIjkeQmtn8D/8Ido5Jg5\nU/Xqq1XXXdeURP/+qvfeayayKGloWH5GUV+v+o9/qK6zjikUEcs6f+AByxvKJrffvmzFgqIie3/Q\nQZb8mgmaZ63Jvve77srMWB2NdBSGlzfPAA0NFg1TXZ37jljOsvzyC6y+evK8hNZUVMC//50bR3s2\nqKuD3Xe3mlatr0tlpUVaPftsdqOo5s61+lxffWUta486yiLVMsUuu8Do0YnXd/bvPBle3jxLTJ9u\nESrV1dCzpyXmXXqpl5jOJ+67L/18lLq6zl319cwz4f334yvRmhqLJsp2lN2KK5pcf/sbXHVVZpUF\n2P9lZWX8dYWFFlnWFZVFuvgMo400Z6jOnbtsHHlZmf3wxoxJrz+zk3lUrbtaWyr4lpXBzJlWArsz\nMWOGzbhS/dv36GEJh53pN3zFFfYgsHhxy/lXVNi5vv++lbHvivgMIwtcdpmZO1onHS1ZAp99ZslB\nTm6prQ2XZR2PkpLMJ3XV18PIkfB//2etOC+/3H4r2WTo0HCJfU1NkAfNKzPKNdfAG29Yn4t11oHN\nN7fkvUmTuq6ySJcc53p2TJqaLKkrUfZxTY11aBsyJLtyOctSU2N2+LZkiYskLlWSLk1Nlih2ww32\nfuFCW15YaE+8v/qVtVfdeuvMjJeIujpr/xoGkdTZ9x2RbbaxOlpO2/AZRhtYsiT1TWjOnOzI4iSm\nW7e2Z/A2NaXXNTHZcY480mpBzZ/foizAZqeLF8Mnn8Cuu8Jrr7V/vGRMnx7en1NXZ0/hjhOLK4w2\nUF5uds9EiMDGG2dPHic+ZWVW6bUtFBRk5jscNswqrqZ6Wq+ttZIf333X/jETUVoazhwF5p/ztsFO\na1xhtAERa99ZXh5/fXk5nH9+dmVy4nPRRdZ6Mx1KS83Wn6y2VRjq680MFda01dDQvna9qejd2xze\nqSgpsba/jtMaVxht5KKLzOYcG6onYlEXZ59tsexO7jnooMSKPRFFRfD73y+7bMYM68mx8cYWebXu\nulZ6e/z4xMcZNcpMUmGpr4e77zZzUBSIWMhqsjLpIvD887DlltHI4HRs3OndRkpKzOY8apQ9Fc6a\nZTeTc8+F7bfPtXSZRdVCTBsa7GbZkZITS0vh1Vet6uyiRam3Ly+HRx6x8wTzMZx4on3PIsvm2Pz3\nv/D007DWWvDUU8tXiR0zZlmfRVimTIENN0x/vzAcfbQlx914o32fzb64oiI793feseghx4mHK4x2\nUFQEhx5qr87K88/DeefB99/bDbN7d3vSPvXU3DVo+vhjSy5bvNgSJg880P4mon9/a9B01FGJkypL\nSy1q6YknYJ99bFltrSn/SZPiP/U3Ndk2X3xhT+TvvruszySMgmqNSHpZ6W3h6qvhiCPM7DR2rM2S\nhwwxZZKu+c7pYoStIdIRXl5LKrMkqsEUZb2lZLz0kupGG9n4JSUtBQPLyqzu0LRp8ff761/tPIqK\nEtcSKi21MuSLF7fsd8ghyxcLTPZaeWXVhQtb9r/4YpMx7P7NBfcyUZ3VccKC9/R22ktjI5x+evyn\n3dpauP767IYO//Of5o/44gsbv76+5Ql/yRJrZtS/P3z77bL73XabNR5avDh5KHRdHbz0ks1UDjjA\nZiTPPZdemZfFi60eUjM775z+LKxfP1hzzfT2cZxs4QrDicv77yfPYSgsNPt9NvjwQ4tKS2aqaWy0\nzPtdd21RDJMmwcUXh09AUzUz0rPPwkknpe98rqkxRapqGdxHHZW8/WhrKistmMJx8hVXGE5cFi5M\n7txuaGibQ7ctXHNNuCf9piZTGs8/b5+vu67thSDb2kN85kzzC+y8s9UZC0txsUVeHXFE28Z1nGzg\nTm8nLpttlvxmW1ICW2wRvRyzZ8Prr4dPOFu40HIfqqvhwQejlS0excUWgbRgQXr7VVRYnaNUPa4d\nJ5f4DMOJy+qrwx57xL+BFRTAaqvBTjtFL8ekSZaxnQ4ffmj9HnJBfb3NcNKdodTVdaxwZadr4j9R\nJyEPP2z5ALGhltXVpixefTU7YbVtMQ2l4zfINEuWtO26FBbCk08uv3zpUvjyS6sc++234WdajhMF\nbpJyEtKjh2Uyv/qq5SfU1cG++8Kee8LEifDDDzBwYPqZ1OnQr1/bCwjmirbkUdTU2PVsZs4cq3h8\nxx12/gUF5jdaZRW44AI44YTkGduOEwWuMJykFBTAb35jr4YGS+I76aSWxjpNTVYK5aqrojGprLOO\nlf/+5JPMHzsq2jsL+M9/rKVoc8hwLN99BxdeaOHCY8bAqqu2byzHSYfITVIiUigiE0Tk+eDziiLy\nmohMDv6ukGC/c0TkcxGZKCKPiUialmwn0xx2GNxzjz1BL1hgr0WLrKfD0KHRjZusvWZnobLS8i+m\nTWuJsEoUdFBba+VDdtop+qxwx4klGz6Ms4BJMZ8vBt5Q1fWAN4LPyyAiqwNnAgNVdROgEPCAwxzS\nbJpKlMj30EMwdWo0Yx9yiL06swmmsdE6wV1zTbhw5aVLzYQVmyjoOFETqcIQkT7AvsA9MYsPAJoD\nHh8EDkywexFQLiJFQAXQhs7MTqZ46KHkYbZNTdZ+NApE4L77rLVpWVnnUxyFhXD44fZ3+PDwjv6a\nGss1cUe4ky2inmHcClwIxBZ5XlVVZwTvZwLLWWFVdTpwI/A9MAOYr6qvxhtARE4RkXEiMm6Ot7mL\njJ9/Tl6qu77etomKggLrvzxjhnWv22MPGDQI1lsvujGzRbduVhBwzJgW31BYpk9f1lkeFdOmWdb8\nwIGWf3PWWfDNN9GP6+QXkSkMERkMzFbVhB0DgsJXyz0fBX6NA4C1gN5ApYjE7ZCtqner6kBVHdgz\nWclSp11ssUXyJ/uqKkv2i5oePexm9eqrVh32mGNyVzW3vRQUwAorwFtvQd++MG9e+rOFkhLbL0pu\nvtlKt996q5kmJ0yAO++0yryXXOIznK5ElDOMQcD+IjIVeBzYVUSGA7NEpBdA8Hd2nH13B/6rqnNU\ntQF4CtguQlmdFBx/fPIbQ0GB2eCzzYABHbck92qrWURUc/+Jqqr0ld/SpZYbExXDh8MVV5g5Mra2\nVkODLbvtNlMoTtcgMoWhqpeoah9V7Yc5rN9U1SHAs8BxwWbHAc/E2f17YBsRqRARAXZjWce5k2VW\nXNFuHhUVZmtvpqjIInxGjUo/IzsT7LVXbsbNBD//vGwm/aBB6eec9Ohhs5MoaGqyEN5kxRtray2k\nOqougU5+kYtM72uBPURkMjaTuBZARHqLyIsAqvoh8CTwMfBZIOfdOZDVieGgg6zsxpFHWvx/r16W\nkzFhglWJzQWFhXDOOdEmD0ZFaan5IJpZaSXYf//w+SwVFZYXE1VJkX//O3wTqBdeiEYGJ7/IisJQ\n1dGqOjh4/7Oq7qaq66nq7qo6N1j+o6ruE7PPH1V1A1XdRFWPUdVIn2Hq6qzV6nrr2VPb5ptbaYx0\nejJ3BTbZxK7LzJnw449w113xHc8//ADvvWfd8aJ++jznHNhgg/QdxvlAUavU2SuvDKf8RMxZftJJ\nkYgFmKM7DPX12XG8O7nHa0lhttiddrIokG++gfnzzbY8dKiVm3alEZ7XX4fttjMlss8+loTWsyec\nf3565b7ToawM3nzTfAIdifr65c1JG25ojZsqK5c1/cVSUmLX9O23rWVuVHTrFs6nUlQUrR/FyR9c\nYWAzi//8Z3lbbU0NvPiiNdRxUvPXv1q3uvffNyU8f74loS1caM7R/v1tZhIFPXokvsHmI4WFZuLr\n1m35dbvsYjOzI480ZditW8urutryUT77zCKXoiS2GVUyGhth8OBoZXHyA9FOFBM3cOBAHTduXNr7\n9e2bfPq9004wenTb5eoKjBljDuhkyX0iZuqbMCEaGcrL294wKdtUVJiPoH//5NvNmwcffWS+hBVW\nsNlbNntmnHuumR0TlSApKzPF98gj2ZPJySwiMl5VB4bZ1osPYk16kvH999mRoyMTpiueqlW5HTsW\nttwy8zJ0lGefigpr8pRKWYDNnPbcM3qZEnHddTabef99m3HHUlEBG20Ed3s4SpfBTVKktn2vvXZ2\n5EjFt9/CgQfak3R1NZx8crTZ1WGZOzf8DGzpUlMuUZDveZvV1TZL+Oc/4fTTcy1NOIqL4eWX4e9/\nh403tlmiiP1P3HSTJU929sKQTgs+w8CibC69NH68eWWlle/ONT/+aE/l8+e3OOEfeshu1BMn5jYX\nYdas9Lb/4IPMy7BggT2xT5+eHzONkhLYe++W3uc9e8LRR1vYbOvIqHynsBCOPdZejY12fTvaOTiZ\nwb92LBpq1CjrahY77a6stOzlfffNnWzN3HyzyRYbsdXQYDfrkSPtnzlXVFSk1xnvl18yO/7EiS39\nI/JBWTSHvN53nyU8diY6UmCBk3ncJIU9Db72mkXybLaZJaVtuy08+CA88EB+1Cp6/fX4WcCLFsEb\nb2Rfnlj69k3vGmUy0eybb2D77eGnn5JnJGeLggIzPb31VtuVRVOTndf48fDVV21rU+s4UeAzjIDi\nYjjxRHvlI6utBp9+uvzy4mLo3Tv78sQiYs7ZsDOHTHaJO+qocP0jYikqiuYmXFYGffpYKHZbqujO\nmwf33mu+gfnzTc7GRjvumWfCaadZi1bHyRU+w+ggnHVW/GqxRUXRZvuG5fzzw80ySkrgjDMyM+ak\nSWaOSjexcqONzG+VSb9Pt25WQffrr9umLCZNsla0V1xhJdxra80vU1NjgQ3Dhtn6sWMzJ7PjpIsr\njA7C3nvDBRfYTa6y0swe5eUWcbPuurmWDk49NVzV2NLSzCm42283P066fPstXH459OvX/nIihYX2\n1P/ll7DDDm0zX/7wg5nV5sxJnO+wZInNQHbbzcZynFzgCqMDceWVdrO7/XZLppoxwyJv8oGVVjJT\nTGVlfB9FQYGte+EF2zYTjB3bdtPSggXwzjs222hrefSqKlM648dbIca2cvHFZoIK47BftAh+//u2\nj+U47cEVRgejd2844QSz3UdZR6gtbL+9RZodcojNhLp3t1dZmS0bN86ewjNFW4saFhTYE/vKK5tM\nw4dbkENhoclaWGjFDK+9Fn73OzMFdu9uZqfu3W1m9+tfwz33wBdfmN+ircybB//6l/kqwqBqRR2/\n+67tYzpOW3Gnt5NRNtgARowwB/jXX9uy9de3hLVM09ZEvbq6lllOUZHVvzrgAFu+YIHNhGL9Rbfc\nYrWd5s0zhdKvX+Zawz7zTPo5DU1N8PjjcNFFmZHBccLiCsOJhBVWgK23jnaM445rqbOUDhts0KJs\nmposZPnGG60AZWOjRaSdfrq1f62qMgWSyZlRLDNnpl//qr7ey9U4ucFNUk6H5bDD0t+nqqrlyXzK\nFJspHHyw5eHMmmX5HBMnWoDBqqvCk09mVubWFBe3LS+lIzaMcjo+rjCcDktZmd38w9YyKiw0U9TB\nB1t14q22gqlT489QamostPXYYy2TPio22ST96rNVVS19wB0nm7jCcDo0l11m5bXj5ajEUlRkymL0\naLtBH3us+SRS5XAsXgzHH5/5cibN7L57atnjceihmZfFcVLhCsPp0IhYCZcrrrAIptad30pLbSay\n227wySfmsP7vf60AYtjIJBG4//6Miw6YOeqCC8IrjfJyy3nJZbFJp+viDZScnDN3ruVn/PKLzQIG\nD25byHB9vRWRfPRRS4KrqIBttrGSGrGhr3/4g/V5iFebKxFrrWU+jyhobIT99rOWq8nqYZWVWa2z\nMWOy20TJ6dyk00DJFYaTM+bPt2ikp54yk1FDg5UOaWiwPJPbb2+buSYVRxxhob/pUF4ebXHDhga7\nFsOH2+fYyKmSEpuJ7LsvPPywO7ydzJKOwnCTlJMTFiwwp/O//mU3x0WLLA9i4UL7/OijMGhQ4lIZ\n7aEtvRyiLutdXGxlXqZMgQsvhA03hNVXt/pRZ5xhtaaefNKVhZNbXGE4OeG88yxbOVG29pIlVjPp\nqqsyP/YWW6R/411nnczLEY9eveycv/jCakx9+aVVr+3XLzvjO04yXGE4WWfhQnjkkdSlPZYsgTvv\nTM/XEIbjjkuv0VJVlTmmHaer4wrDyTqjR6dXJfb99zM7/korWVhq2Eij0lKrheU4XR1XGE7WWbAg\nfA8LkfQbJIXhzjstyzuV0qiqglde8agkxwFXGE4OWHXV8OUwGhsz26GvmcpKq/q6334tuRrNNJdi\n32gj22bAgMyP7zgdES8+6GSdnXYKrzC6d4eBoQL+0qeqysp+zJwJd98NH35ofpW114ZTToluXMfp\nqLjCcLJOcbFFSQ0bljy3oaICLr20bV3s0mG11SyZz3Gc5LhJyskJl1wCe+yRODGvstKKBA4dml25\nHMdJjCsMJycUFlqG9w03QN++piC6dzcFss46cNttViMq6tmF4zjhcZOUkzMKCqwcxtChlsn8yy/W\nNnX99V1ROE4+4grDyTkiFpHkOE5+4yYpx3EcJxSRKwwRKRSRCSLyfPB5RRF5TUQmB39XiLPPr0Tk\nk5jXAhE5O2pZHcdxnMRkY4ZxFjAp5vPFwBuquh7wRvB5GVT1K1Xtr6r9gQFALTAqC7I6juM4CYhU\nYYhIH2Bf4J6YxQcADwbvHwQOTHGY3YBvVfW7zEvoOI7jhCXqGcatwIVAbOWgVVV1RvB+JpCq8MMR\nwGOJVorIKSIyTkTGzZkzp13COo7jOImJTGGIyGBgtqqOT7SNWru/hIWmRaQE2B94Iskx7lbVgao6\nsGfPnu0R2XEcx0lClGG1g4D9RWQfoAzoJiLDgVki0ktVZ4hIL2B2kmPsDXysqrMilNNxHMcJQWQz\nDFW9RFX7qGo/zKz0pqoOAZ4Fjgs2Ow54JslhjiSJOcpxHMfJHrnIw7gW2ENEJgO7B58Rkd4i8mLz\nRiJSCewBPJUDGR3HcZxWZCXTW1VHA6OD9z9jkU+tt/kR2Cfmcw2wUjbkcxzHcVLjmd6O4zhOKFxh\nOI7jOKFwheE4juOEQiwVonMgInOAjpgRvjLwU66FyAFd9bzBz70rnnu+nveaqhoqia1TKYyOioiM\nU9Uu10G6q543+Ll3xXPvDOftJinHcRwnFK4wHMdxnFC4wsgP7s61ADmiq543+Ll3RTr8ebsPw3Ec\nxwmFzzAcx3GcULjCcBzHcULhCiMLiMiImP7kU0Xkk2B5sYg8KCKficgkEbkkwf43iMiXIvIfERkl\nIj2yewZtJwPnnrIHfL6S5NyPbtWzvklE+sfZv7+IfBBsM05Etsr+WaRPe8872Pb/gt/85yJyfXbP\noO1k4tyD7c8TERWRlbMnfQhU1V9ZfAE3AX8I3h8FPB68rwCmAv3i7LMnUBS8vw64LtfnkcVzvx64\nOHh/cWc491bLN8VaEMfb51Vg7+D9PsDoXJ9Hls57F+B1oDT4vEquzyNb5x6sXwN4BUtCXjnX5xH7\n8hlGFhERAQ6jpceHApUiUgSUA/XAgtb7qeqrqro0+PgB0CcL4maUtp476feAzzvinHssRwKPJ9hV\ngW7B++7Aj5mXLjracd5DgWtVtQ5AVZM1WctL2nHuALdgra3zLiLJFUZ22QGYpaqTg89PAjXADOB7\n4EZVnZviGCcCL0UnYmS09dzT7QGfj7Q+91gOJ3GTsLOBG0RkGnAjENdsl8e09bzXB3YQkQ9F5G0R\n2TIyCaOjTecuIgcA01X10yiFaytZ6YfRFRCR14HV4qy6TFWbuwq27iC4FdAI9AZWAN4RkddVdUqC\nMWnLJO0AAAK4SURBVC4DlgKPZEzwDJCNcwfrAS8iefXU1cZzb953a6BWVScmOPxQ4BxV/ZeIHAbc\nizUdyzkRn3cRsCKwDbAlMFJE1tbAXpNrojp3EakALsVM0PlJrm1iXeWF/RPMAvrELPsbcEzM5/uA\nwxLsfzzwPlCR63PJ5rkDXwG9gve9gK9yfT7tPfeYdbcAlybZdz4tuVICLMj1+WTpvF8Gdon5/C3Q\nM9fnFPW5Y76N2Zg/byr2cPg9sFquz6n55Sap7LE78KWq/hCz7HtgV/hfS9ptgC9b7ygiv8Fsmvur\nam0WZM00bT530usBn4/EO3dEpACzcSezZf8I7BS83xWIZ97IV9pz3k9jjm9EZH2ghPys8pqINp27\nqn6mqquoaj9V7Qf8AGyhqjOjFjgsrjCyxxEsP0X9G1AlIp8DY4H7VfU/ACJyj4g0V7a8A6gGXgtC\n8u7KltAZoj3nHrcHfAci3rkD7AhM01YmuFbn/jvgJhH5FPgLcEqkkmaW9pz3fcDaIjIRu7kep8Ej\neAehPeee13hpEMdxHCcUPsNwHMdxQuEKw3EcxwmFKwzHcRwnFK4wHMdxnFC4wnAcx3FC4QrDcTKA\niCzKtQyOEzWuMBzHcZxQuMJwnIgQkX4i8mbQx+QNEekbLH9ARG4TkfdEZIqIHJJrWR0nDK4wHCc6\nbgceVNXNsIKRt8Ws6wVsDwym42WvO10Uz/R2nAwgIotUtarVsp+wwokNIlIMzFDVlUXkAeA1VX0k\n2G6hqlZnX2rHSQ+fYThObqiLeS85k8Jx0sAVhuNEx3tYITqAo4F3ciiL47Qbb6DkOJmhQkRiy1nf\nDPwfcL+IXADMAU7IiWSOkyHch+E4juOEwk1SjuM4TihcYTiO4zihcIXhOI7jhMIVhuM4jhMKVxiO\n4zhOKFxhOI7jOKFwheE4juOE4v8BYJD+dZFAdu0AAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(df_hillary['X'],df_hillary['Y'], s=df_hillary['PctCnt']**1.3, color = ['B'])\n", + "plt.ylabel('Lat')\n", + "plt.xlabel('Lon')\n", + "plt.title('Precincts by percentage of votes for Hillary')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
9CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT27.0174.044.50NaNNaN
48CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT112.0385.056.70NaNNaN
87CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT197.0193.042.23NaNNaN
126CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT282.0375.052.30NaNNaN
165CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT367.0398.043.17NaNNaN
204CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT452.0443.062.66NaNNaN
243CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT537.0228.060.48NaNNaN
282CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20168.008 MILESBURGREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT622.0352.067.43NaNNaN
321CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20169.009 MILLHEIMREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT707.0233.055.34NaNNaN
360CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201610.010 PHILIPSBURG 1ST WARDREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT792.0265.059.42NaNNaN
398CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201611.011 PHILIPSBURG 2ND WARDREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT876.0231.060.00NaNNaN
436CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201612.012 PHILIPSBURG 3RD WARDREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT960.0212.059.05NaNNaN
474CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201613.013 PORT MATILDAREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1044.0195.070.40NaNNaN
513CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201614.014 SNOW SHOE BOROREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1129.0236.071.73NaNNaN
552CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201615.015 RUSH NORTH CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1214.0123.063.08NaNNaN
590CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201616.016 SC NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1298.0102.016.06NaNNaN
628CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201617.017 SC NORTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1382.0105.019.63NaNNaN
666CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201618.018 SC NORTHWESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1466.0336.024.71NaNNaN
704CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201619.019 SC SOUTH 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1550.0284.022.14NaNNaN
742CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201620.020 SC SOUTH 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1634.0280.026.10NaNNaN
780CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201621.021 SC SOUTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1718.0188.021.86NaNNaN
818CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201622.022 SC SOUTH CENTRAL 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1802.0122.024.16NaNNaN
856CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201623.023 SC SOUTH CENTRAL 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1886.0157.022.69NaNNaN
894CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201624.024 SC EAST 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1970.0670.040.78NaNNaN
932CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201625.025 SC EAST 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2054.0387.026.67NaNNaN
970CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201626.026 SC EAST 3REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2138.0600.031.63NaNNaN
1008CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201627.027 SC EAST 4REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2222.0580.030.46NaNNaN
1046CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201628.028 SC EAST CENTRAL 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2306.0261.025.02NaNNaN
1084CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201629.029 SC EAST CENTRAL 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2390.0314.030.78NaNNaN
1122CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201630.030 SC EAST CENTRAL 3REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2474.0196.035.32NaNNaN
...................................................
2365CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201662.062 MILES EASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5193.0241.067.70NaNNaN
2404CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201663.063 MILES WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5278.0108.067.50NaNNaN
2443CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201664.064 PATTON NORTH 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5363.0613.033.55NaNNaN
2481CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201665.065 PATTON NORTH 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5447.0826.044.48NaNNaN
2520CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201666.066 PATTON SOUTH 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5532.0227.028.55NaNNaN
2559CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201667.067 PATTON SOUTH 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5617.0378.026.73NaNNaN
2597CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201668.068 PATTON SOUTH 3REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5701.0485.029.98NaNNaN
2636CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201669.069 PENNREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5786.0335.067.54NaNNaN
2675CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201670.070 POTTER NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5871.0516.065.15NaNNaN
2714CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201671.071 POTTER SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5956.0727.060.08NaNNaN
2753CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201672.072 RUSH NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6041.0685.070.40NaNNaN
2791CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201673.073 RUSH SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6125.0137.068.50NaNNaN
2829CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201674.074 RUSH EASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6209.058.063.74NaNNaN
2867CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201675.075 RUSH WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6293.0275.073.92NaNNaN
2905CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201676.076 SNOW SHOE EASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6377.0397.070.39NaNNaN
2944CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201677.077 SNOW SHOE WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6462.0207.073.93NaNNaN
2983CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201678.078 SPRING NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6547.0539.057.04NaNNaN
3022CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201679.079 SPRING SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6632.0440.059.46NaNNaN
3061CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201680.080 SPRING WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6717.0286.064.56NaNNaN
3100CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201681.081 TAYLORREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6802.0347.079.04NaNNaN
3139CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201682.082 UNIONREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6887.0587.079.32NaNNaN
3178CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201683.083 WALKER EASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6972.0592.069.48NaNNaN
3217CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201684.084 WALKER WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7057.01083.064.97NaNNaN
3256CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201685.085 WORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7142.0304.073.43NaNNaN
3295CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201686.086 SPRING EASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7227.0596.065.49NaNNaN
3334CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7312.0509.055.51NaNNaN
3373CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7397.0292.029.32NaNNaN
3412CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7482.0391.035.90NaNNaN
3451CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7567.0536.053.65NaNNaN
3490CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7652.0281.039.41NaNNaN
\n", + "

91 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "9 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "48 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "87 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "126 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "165 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "204 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "243 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "282 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "321 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "360 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "398 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "436 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "474 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "513 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "552 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "590 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "628 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "666 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "704 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "742 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "780 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "818 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "856 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "894 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "932 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "970 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1008 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1046 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1084 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1122 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "... ... ... ... \n", + "2365 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2404 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2443 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2481 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2520 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2559 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2597 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2636 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2675 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2714 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2753 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2791 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2829 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2867 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2905 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2944 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2983 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3022 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3061 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3100 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3139 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3178 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3217 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3256 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3295 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3334 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3373 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3412 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3451 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3490 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party \\\n", + "9 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH REPUBLICAN \n", + "48 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST REPUBLICAN \n", + "87 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH REPUBLICAN \n", + "126 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST REPUBLICAN \n", + "165 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST REPUBLICAN \n", + "204 NOVEMBER 8 2016 6.0 06 CENTRE HALL REPUBLICAN \n", + "243 NOVEMBER 8 2016 7.0 07 HOWARD BORO REPUBLICAN \n", + "282 NOVEMBER 8 2016 8.0 08 MILESBURG REPUBLICAN \n", + "321 NOVEMBER 8 2016 9.0 09 MILLHEIM REPUBLICAN \n", + "360 NOVEMBER 8 2016 10.0 10 PHILIPSBURG 1ST WARD REPUBLICAN \n", + "398 NOVEMBER 8 2016 11.0 11 PHILIPSBURG 2ND WARD REPUBLICAN \n", + "436 NOVEMBER 8 2016 12.0 12 PHILIPSBURG 3RD WARD REPUBLICAN \n", + "474 NOVEMBER 8 2016 13.0 13 PORT MATILDA REPUBLICAN \n", + "513 NOVEMBER 8 2016 14.0 14 SNOW SHOE BORO REPUBLICAN \n", + "552 NOVEMBER 8 2016 15.0 15 RUSH NORTH CENTRAL REPUBLICAN \n", + "590 NOVEMBER 8 2016 16.0 16 SC NORTH REPUBLICAN \n", + "628 NOVEMBER 8 2016 17.0 17 SC NORTHEAST REPUBLICAN \n", + "666 NOVEMBER 8 2016 18.0 18 SC NORTHWEST REPUBLICAN \n", + "704 NOVEMBER 8 2016 19.0 19 SC SOUTH 1 REPUBLICAN \n", + "742 NOVEMBER 8 2016 20.0 20 SC SOUTH 2 REPUBLICAN \n", + "780 NOVEMBER 8 2016 21.0 21 SC SOUTHEAST REPUBLICAN \n", + "818 NOVEMBER 8 2016 22.0 22 SC SOUTH CENTRAL 1 REPUBLICAN \n", + "856 NOVEMBER 8 2016 23.0 23 SC SOUTH CENTRAL 2 REPUBLICAN \n", + "894 NOVEMBER 8 2016 24.0 24 SC EAST 1 REPUBLICAN \n", + "932 NOVEMBER 8 2016 25.0 25 SC EAST 2 REPUBLICAN \n", + "970 NOVEMBER 8 2016 26.0 26 SC EAST 3 REPUBLICAN \n", + "1008 NOVEMBER 8 2016 27.0 27 SC EAST 4 REPUBLICAN \n", + "1046 NOVEMBER 8 2016 28.0 28 SC EAST CENTRAL 1 REPUBLICAN \n", + "1084 NOVEMBER 8 2016 29.0 29 SC EAST CENTRAL 2 REPUBLICAN \n", + "1122 NOVEMBER 8 2016 30.0 30 SC EAST CENTRAL 3 REPUBLICAN \n", + "... ... ... ... ... \n", + "2365 NOVEMBER 8 2016 62.0 62 MILES EAST REPUBLICAN \n", + "2404 NOVEMBER 8 2016 63.0 63 MILES WEST REPUBLICAN \n", + "2443 NOVEMBER 8 2016 64.0 64 PATTON NORTH 1 REPUBLICAN \n", + "2481 NOVEMBER 8 2016 65.0 65 PATTON NORTH 2 REPUBLICAN \n", + "2520 NOVEMBER 8 2016 66.0 66 PATTON SOUTH 1 REPUBLICAN \n", + "2559 NOVEMBER 8 2016 67.0 67 PATTON SOUTH 2 REPUBLICAN \n", + "2597 NOVEMBER 8 2016 68.0 68 PATTON SOUTH 3 REPUBLICAN \n", + "2636 NOVEMBER 8 2016 69.0 69 PENN REPUBLICAN \n", + "2675 NOVEMBER 8 2016 70.0 70 POTTER NORTH REPUBLICAN \n", + "2714 NOVEMBER 8 2016 71.0 71 POTTER SOUTH REPUBLICAN \n", + "2753 NOVEMBER 8 2016 72.0 72 RUSH NORTH REPUBLICAN \n", + "2791 NOVEMBER 8 2016 73.0 73 RUSH SOUTH REPUBLICAN \n", + "2829 NOVEMBER 8 2016 74.0 74 RUSH EAST REPUBLICAN \n", + "2867 NOVEMBER 8 2016 75.0 75 RUSH WEST REPUBLICAN \n", + "2905 NOVEMBER 8 2016 76.0 76 SNOW SHOE EAST REPUBLICAN \n", + "2944 NOVEMBER 8 2016 77.0 77 SNOW SHOE WEST REPUBLICAN \n", + "2983 NOVEMBER 8 2016 78.0 78 SPRING NORTH REPUBLICAN \n", + "3022 NOVEMBER 8 2016 79.0 79 SPRING SOUTH REPUBLICAN \n", + "3061 NOVEMBER 8 2016 80.0 80 SPRING WEST REPUBLICAN \n", + "3100 NOVEMBER 8 2016 81.0 81 TAYLOR REPUBLICAN \n", + "3139 NOVEMBER 8 2016 82.0 82 UNION REPUBLICAN \n", + "3178 NOVEMBER 8 2016 83.0 83 WALKER EAST REPUBLICAN \n", + "3217 NOVEMBER 8 2016 84.0 84 WALKER WEST REPUBLICAN \n", + "3256 NOVEMBER 8 2016 85.0 85 WORTH REPUBLICAN \n", + "3295 NOVEMBER 8 2016 86.0 86 SPRING EAST REPUBLICAN \n", + "3334 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST REPUBLICAN \n", + "3373 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 REPUBLICAN \n", + "3412 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL REPUBLICAN \n", + "3451 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL REPUBLICAN \n", + "3490 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL REPUBLICAN \n", + "\n", + " Contest Descr VoteFor \\\n", + "9 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "48 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "87 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "126 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "165 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "204 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "243 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "282 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "321 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "360 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "398 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "436 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "474 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "513 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "552 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "590 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "628 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "666 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "704 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "742 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "780 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "818 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "856 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "894 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "932 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "970 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1008 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1046 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1084 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1122 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "... ... ... ... \n", + "2365 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2404 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2443 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2481 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2520 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2559 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2597 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2636 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2675 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2714 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2753 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2791 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2829 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2867 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2905 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2944 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2983 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3022 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3061 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3100 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3139 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3178 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3217 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3256 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3295 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3334 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3373 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3412 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3451 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3490 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "\n", + " Candidate Posn Count PctCnt Total PctTot \n", + "9 DONALD J TRUMP, PRESIDENT 27.0 174.0 44.50 NaN NaN \n", + "48 DONALD J TRUMP, PRESIDENT 112.0 385.0 56.70 NaN NaN \n", + "87 DONALD J TRUMP, PRESIDENT 197.0 193.0 42.23 NaN NaN \n", + "126 DONALD J TRUMP, PRESIDENT 282.0 375.0 52.30 NaN NaN \n", + "165 DONALD J TRUMP, PRESIDENT 367.0 398.0 43.17 NaN NaN \n", + "204 DONALD J TRUMP, PRESIDENT 452.0 443.0 62.66 NaN NaN \n", + "243 DONALD J TRUMP, PRESIDENT 537.0 228.0 60.48 NaN NaN \n", + "282 DONALD J TRUMP, PRESIDENT 622.0 352.0 67.43 NaN NaN \n", + "321 DONALD J TRUMP, PRESIDENT 707.0 233.0 55.34 NaN NaN \n", + "360 DONALD J TRUMP, PRESIDENT 792.0 265.0 59.42 NaN NaN \n", + "398 DONALD J TRUMP, PRESIDENT 876.0 231.0 60.00 NaN NaN \n", + "436 DONALD J TRUMP, PRESIDENT 960.0 212.0 59.05 NaN NaN \n", + "474 DONALD J TRUMP, PRESIDENT 1044.0 195.0 70.40 NaN NaN \n", + "513 DONALD J TRUMP, PRESIDENT 1129.0 236.0 71.73 NaN NaN \n", + "552 DONALD J TRUMP, PRESIDENT 1214.0 123.0 63.08 NaN NaN \n", + "590 DONALD J TRUMP, PRESIDENT 1298.0 102.0 16.06 NaN NaN \n", + "628 DONALD J TRUMP, PRESIDENT 1382.0 105.0 19.63 NaN NaN \n", + "666 DONALD J TRUMP, PRESIDENT 1466.0 336.0 24.71 NaN NaN \n", + "704 DONALD J TRUMP, PRESIDENT 1550.0 284.0 22.14 NaN NaN \n", + "742 DONALD J TRUMP, PRESIDENT 1634.0 280.0 26.10 NaN NaN \n", + "780 DONALD J TRUMP, PRESIDENT 1718.0 188.0 21.86 NaN NaN \n", + "818 DONALD J TRUMP, PRESIDENT 1802.0 122.0 24.16 NaN NaN \n", + "856 DONALD J TRUMP, PRESIDENT 1886.0 157.0 22.69 NaN NaN \n", + "894 DONALD J TRUMP, PRESIDENT 1970.0 670.0 40.78 NaN NaN \n", + "932 DONALD J TRUMP, PRESIDENT 2054.0 387.0 26.67 NaN NaN \n", + "970 DONALD J TRUMP, PRESIDENT 2138.0 600.0 31.63 NaN NaN \n", + "1008 DONALD J TRUMP, PRESIDENT 2222.0 580.0 30.46 NaN NaN \n", + "1046 DONALD J TRUMP, PRESIDENT 2306.0 261.0 25.02 NaN NaN \n", + "1084 DONALD J TRUMP, PRESIDENT 2390.0 314.0 30.78 NaN NaN \n", + "1122 DONALD J TRUMP, PRESIDENT 2474.0 196.0 35.32 NaN NaN \n", + "... ... ... ... ... ... ... \n", + "2365 DONALD J TRUMP, PRESIDENT 5193.0 241.0 67.70 NaN NaN \n", + "2404 DONALD J TRUMP, PRESIDENT 5278.0 108.0 67.50 NaN NaN \n", + "2443 DONALD J TRUMP, PRESIDENT 5363.0 613.0 33.55 NaN NaN \n", + "2481 DONALD J TRUMP, PRESIDENT 5447.0 826.0 44.48 NaN NaN \n", + "2520 DONALD J TRUMP, PRESIDENT 5532.0 227.0 28.55 NaN NaN \n", + "2559 DONALD J TRUMP, PRESIDENT 5617.0 378.0 26.73 NaN NaN \n", + "2597 DONALD J TRUMP, PRESIDENT 5701.0 485.0 29.98 NaN NaN \n", + "2636 DONALD J TRUMP, PRESIDENT 5786.0 335.0 67.54 NaN NaN \n", + "2675 DONALD J TRUMP, PRESIDENT 5871.0 516.0 65.15 NaN NaN \n", + "2714 DONALD J TRUMP, PRESIDENT 5956.0 727.0 60.08 NaN NaN \n", + "2753 DONALD J TRUMP, PRESIDENT 6041.0 685.0 70.40 NaN NaN \n", + "2791 DONALD J TRUMP, PRESIDENT 6125.0 137.0 68.50 NaN NaN \n", + "2829 DONALD J TRUMP, PRESIDENT 6209.0 58.0 63.74 NaN NaN \n", + "2867 DONALD J TRUMP, PRESIDENT 6293.0 275.0 73.92 NaN NaN \n", + "2905 DONALD J TRUMP, PRESIDENT 6377.0 397.0 70.39 NaN NaN \n", + "2944 DONALD J TRUMP, PRESIDENT 6462.0 207.0 73.93 NaN NaN \n", + "2983 DONALD J TRUMP, PRESIDENT 6547.0 539.0 57.04 NaN NaN \n", + "3022 DONALD J TRUMP, PRESIDENT 6632.0 440.0 59.46 NaN NaN \n", + "3061 DONALD J TRUMP, PRESIDENT 6717.0 286.0 64.56 NaN NaN \n", + "3100 DONALD J TRUMP, PRESIDENT 6802.0 347.0 79.04 NaN NaN \n", + "3139 DONALD J TRUMP, PRESIDENT 6887.0 587.0 79.32 NaN NaN \n", + "3178 DONALD J TRUMP, PRESIDENT 6972.0 592.0 69.48 NaN NaN \n", + "3217 DONALD J TRUMP, PRESIDENT 7057.0 1083.0 64.97 NaN NaN \n", + "3256 DONALD J TRUMP, PRESIDENT 7142.0 304.0 73.43 NaN NaN \n", + "3295 DONALD J TRUMP, PRESIDENT 7227.0 596.0 65.49 NaN NaN \n", + "3334 DONALD J TRUMP, PRESIDENT 7312.0 509.0 55.51 NaN NaN \n", + "3373 DONALD J TRUMP, PRESIDENT 7397.0 292.0 29.32 NaN NaN \n", + "3412 DONALD J TRUMP, PRESIDENT 7482.0 391.0 35.90 NaN NaN \n", + "3451 DONALD J TRUMP, PRESIDENT 7567.0 536.0 53.65 NaN NaN \n", + "3490 DONALD J TRUMP, PRESIDENT 7652.0 281.0 39.41 NaN NaN \n", + "\n", + "[91 rows x 16 columns]" + ] + }, + "execution_count": 125, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_rtrump = df_results[(df_results['Contest'] == 'PRESIDENTIAL ELECTORS') & (df_results['Candidate'] == 'DONALD J TRUMP, PRESIDENT')]\n", + "df_rtrump" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PrecNoPctCnt
91.044.50
482.056.70
873.042.23
1264.052.30
1655.043.17
2046.062.66
2437.060.48
2828.067.43
3219.055.34
36010.059.42
39811.060.00
43612.059.05
47413.070.40
51314.071.73
55215.063.08
59016.016.06
62817.019.63
66618.024.71
70419.022.14
74220.026.10
78021.021.86
81822.024.16
85623.022.69
89424.040.78
93225.026.67
97026.031.63
100827.030.46
104628.025.02
108429.030.78
112230.035.32
.........
236562.067.70
240463.067.50
244364.033.55
248165.044.48
252066.028.55
255967.026.73
259768.029.98
263669.067.54
267570.065.15
271471.060.08
275372.070.40
279173.068.50
282974.063.74
286775.073.92
290576.070.39
294477.073.93
298378.057.04
302279.059.46
306180.064.56
310081.079.04
313982.079.32
317883.069.48
321784.064.97
325685.073.43
329586.065.49
333487.055.51
337388.029.32
341289.035.90
345190.053.65
349091.039.41
\n", + "

91 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " PrecNo PctCnt\n", + "9 1.0 44.50\n", + "48 2.0 56.70\n", + "87 3.0 42.23\n", + "126 4.0 52.30\n", + "165 5.0 43.17\n", + "204 6.0 62.66\n", + "243 7.0 60.48\n", + "282 8.0 67.43\n", + "321 9.0 55.34\n", + "360 10.0 59.42\n", + "398 11.0 60.00\n", + "436 12.0 59.05\n", + "474 13.0 70.40\n", + "513 14.0 71.73\n", + "552 15.0 63.08\n", + "590 16.0 16.06\n", + "628 17.0 19.63\n", + "666 18.0 24.71\n", + "704 19.0 22.14\n", + "742 20.0 26.10\n", + "780 21.0 21.86\n", + "818 22.0 24.16\n", + "856 23.0 22.69\n", + "894 24.0 40.78\n", + "932 25.0 26.67\n", + "970 26.0 31.63\n", + "1008 27.0 30.46\n", + "1046 28.0 25.02\n", + "1084 29.0 30.78\n", + "1122 30.0 35.32\n", + "... ... ...\n", + "2365 62.0 67.70\n", + "2404 63.0 67.50\n", + "2443 64.0 33.55\n", + "2481 65.0 44.48\n", + "2520 66.0 28.55\n", + "2559 67.0 26.73\n", + "2597 68.0 29.98\n", + "2636 69.0 67.54\n", + "2675 70.0 65.15\n", + "2714 71.0 60.08\n", + "2753 72.0 70.40\n", + "2791 73.0 68.50\n", + "2829 74.0 63.74\n", + "2867 75.0 73.92\n", + "2905 76.0 70.39\n", + "2944 77.0 73.93\n", + "2983 78.0 57.04\n", + "3022 79.0 59.46\n", + "3061 80.0 64.56\n", + "3100 81.0 79.04\n", + "3139 82.0 79.32\n", + "3178 83.0 69.48\n", + "3217 84.0 64.97\n", + "3256 85.0 73.43\n", + "3295 86.0 65.49\n", + "3334 87.0 55.51\n", + "3373 88.0 29.32\n", + "3412 89.0 35.90\n", + "3451 90.0 53.65\n", + "3490 91.0 39.41\n", + "\n", + "[91 rows x 2 columns]" + ] + }, + "execution_count": 126, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_plottrump = df_rtrump[['PrecNo','PctCnt']]\n", + "df_plottrump" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "df_trump = df_precinct_locations.merge(df_plottrump, left_on ='Precinct', right_on ='PrecNo')" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nZ0leSY8eqZM1QlYWcMghyTnW4MFyrO++k2q4sQgGgUceqf3e0qWiKLZvr32X//ffcic/cKAouUDA\nO9mt9E0nMl+DSlFcRn0YDZGiIhnMFiyQHhi77ioK4pxzmnbWbVmZJNN9/LEoz4gPJRiUa/TJJ7XN\nUcuXy2xn+/b4jmSfT8rHzJyZeHZnl/feAy66yLwPY9o0LSWuuIYVH4YqDCU9qKqSBLV168Ss1r27\n9Fi3kyC2fDkwcaKUDy8oEL/JwIE772voUCkJkyibPi9PIrrOO8+6LGaorJSS4lu3Jl63Wzc5L02c\nU1xCFYbScNi2TcxEEyaILyEclsEwHJYy6uPGiT/B7bv7deskoMBsJd+ePWuH47rNjBlSbSCeOQ0Q\nxTVnjjc+IKXJolFSSsNg+XIxEd1/vyiOwkLJNSgqEv/MX39JV7rjjqt/ILXD559bU0JLl3pbk2vg\nQDGltWwpkWXRBIPSY+Orr1RZKClFnd5Kati2DejXD1i7tn6TUCgkjuzTTpMaS26ZYgoLrZWOz8kB\nduyQAd0rBg6UyLKpUyWUessWMVWNHCl1nNQMpaQYVRhKanjsMbljN1ONt6xMcjdmz5awWDfYdVfJ\noDdrkqqokG28JjNTTFMnneT9sRTFImqSUpJPVZU0GCorM79NKCQhxW4xeLC1GUbPnsmp+qsoaYwq\nDCX5zJkTv/x4PJglCbC42B0ZWraUcuhm/Bh5eeJ8V5QmjioMJfmsW2dvu+xsdx3PTzwhZqbMzPjr\n+P3SL+X00907rqI0UFRhKMnHbogss/3KvbFo2xaYO1fqR+Xl1XYq5+RI0t7w4VKx1m4LWkVpRKjT\nW0k+3bvbaz3rRVmMTp2k5/m338qM4/ffRVn07y/tdzt3dvd4itKAUYWhJJ9evYD27WVwNktWloSX\nutU/Ixoi4IgjZFEUJS46z1aSDxFw001iBjJLdjZw7bXeyaQoSkJUYSipYeRIKaBnps9HIADcfHPy\ne3soilILVRhKasjMlB4ZAwfu7HCOkJ0tCuWmm4Dbbku+jIqi1EIVhpI6fD5RGp99JpVjc3JkNuH3\ny+OoUcDPPwP//KeWxVCUNECd3kpqIZKaUv36SYHBzZvFwd2ypbshtIqiOMbzGQYRZRLRz0T0ifG6\nORFNJ6JlxuNOBXqIaC8imh+1FBLRdV7LqqQYvx/o2FHyI1RZKErakQyT1LUAFke9vgnADGbeE8AM\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(df_trump['X'],df_trump['Y'], s=df_trump['PctCnt']**1.3, color = ['R'])\n", + "plt.ylabel('Lat')\n", + "plt.xlabel('Lon')\n", + "plt.title('Precincts by percentage of votes for Trump')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/week3/02. Pandas Introduction.ipynb b/week3/02. Pandas Introduction.ipynb index 9292642..c7faeba 100755 --- a/week3/02. Pandas Introduction.ipynb +++ b/week3/02. Pandas Introduction.ipynb @@ -4786,14 +4786,13 @@ ] }, { - "cell_type": "code", - "execution_count": 28, + "cell_type": "raw", "metadata": { "collapsed": true }, - "outputs": [], "source": [ - "# Your code here\n" + "# Your code here\n", + "df_prec[df_pres" ] }, { diff --git a/week3/Week3_prueba.ipynb b/week3/Week3_prueba.ipynb new file mode 100644 index 0000000..46ef1f5 --- /dev/null +++ b/week3/Week3_prueba.ipynb @@ -0,0 +1,4582 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
name
0Joey
1Jeremy
2Jenny
\n", + "
" + ], + "text/plain": [ + " name\n", + "0 Joey\n", + "1 Jeremy\n", + "2 Jenny" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Create empty dataframe\n", + "df = pd.DataFrame()\n", + "\n", + "# Create a column\n", + "df['name'] = ['Joey', 'Jeremy', 'Jenny']\n", + "\n", + "# View dataframe\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
nameage
0Joey28
1Jeremy33
2Jenny27
\n", + "
" + ], + "text/plain": [ + " name age\n", + "0 Joey 28\n", + "1 Jeremy 33\n", + "2 Jenny 27" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Assign a new column to df called 'age' with a list of ages\n", + "df.assign(age = [28, 33, 27])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
0CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNREGISTERED VOTERS - TOTALNaNNaNNaN10.0507.0NaNNaNNaN
1CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNBALLOTS CAST - TOTALNaNNaNNaN11.0391.0NaNNaNNaN
2CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNVOTER TURNOUT - TOTALNaNNaNNaN12.0NaN77.12NaNNaN
3CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1DEMOCRATIC17.046.040.35NaNNaN
4CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1REPUBLICAN18.066.057.89NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "0 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "1 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "2 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "3 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "4 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest Descr \\\n", + "0 1.0 01 BELLEFONTE NORTH NaN REGISTERED VOTERS - TOTAL NaN \n", + "1 1.0 01 BELLEFONTE NORTH NaN BALLOTS CAST - TOTAL NaN \n", + "2 1.0 01 BELLEFONTE NORTH NaN VOTER TURNOUT - TOTAL NaN \n", + "3 1.0 01 BELLEFONTE NORTH DEMOCRATIC STRAIGHT PARTY NaN \n", + "4 1.0 01 BELLEFONTE NORTH REPUBLICAN STRAIGHT PARTY NaN \n", + "\n", + " VoteFor Candidate Posn Count PctCnt Total PctTot \n", + "0 NaN NaN 10.0 507.0 NaN NaN NaN \n", + "1 NaN NaN 11.0 391.0 NaN NaN NaN \n", + "2 NaN NaN 12.0 NaN 77.12 NaN NaN \n", + "3 VOTE FOR NOT MORE THAN 1 DEMOCRATIC 17.0 46.0 40.35 NaN NaN \n", + "4 VOTE FOR NOT MORE THAN 1 REPUBLICAN 18.0 66.0 57.89 NaN NaN " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# We are reading a CSV with election data\n", + "df = pd.read_table('data/centrecounty_precinct_results_nov2016.txt', sep=',')\n", + "\n", + "# We can print the first 5 rows of the df\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "County object\n", + "ElecYear float64\n", + "Election object\n", + "ElecDate object\n", + "PrecNo float64\n", + "PrecName object\n", + "Party object\n", + "Contest object\n", + "Descr float64\n", + "VoteFor object\n", + "Candidate object\n", + "Posn float64\n", + "Count float64\n", + "PctCnt float64\n", + "Total float64\n", + "PctTot float64\n", + "dtype: object" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(3526, 16)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(3526, 16)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape[0], df.shape[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['County', 'ElecYear', 'Election', 'ElecDate', 'PrecNo', 'PrecName',\n", + " 'Party', 'Contest', 'Descr', 'VoteFor', 'Candidate', 'Posn', 'Count',\n", + " 'PctCnt', 'Total', 'PctTot'],\n", + " dtype='object')" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 REGISTERED VOTERS - TOTAL\n", + "1 BALLOTS CAST - TOTAL\n", + "2 VOTER TURNOUT - TOTAL\n", + "3 STRAIGHT PARTY\n", + "4 STRAIGHT PARTY\n", + "5 STRAIGHT PARTY\n", + "6 STRAIGHT PARTY\n", + "7 STRAIGHT PARTY\n", + "8 PRESIDENTIAL ELECTORS\n", + "9 PRESIDENTIAL ELECTORS\n", + "10 PRESIDENTIAL ELECTORS\n", + "11 PRESIDENTIAL ELECTORS\n", + "12 PRESIDENTIAL ELECTORS\n", + "13 PRESIDENTIAL ELECTORS\n", + "14 UNITED STATES SENATOR\n", + "15 UNITED STATES SENATOR\n", + "16 UNITED STATES SENATOR\n", + "17 UNITED STATES SENATOR\n", + "18 ATTORNEY GENERAL\n", + "19 ATTORNEY GENERAL\n", + "20 ATTORNEY GENERAL\n", + "21 AUDITOR GENERAL\n", + "22 AUDITOR GENERAL\n", + "23 AUDITOR GENERAL\n", + "24 AUDITOR GENERAL\n", + "25 AUDITOR GENERAL\n", + "26 STATE TREASURER\n", + "27 STATE TREASURER\n", + "28 STATE TREASURER\n", + "29 STATE TREASURER\n", + " ... \n", + "3496 UNITED STATES SENATOR\n", + "3497 UNITED STATES SENATOR\n", + "3498 UNITED STATES SENATOR\n", + "3499 ATTORNEY GENERAL\n", + "3500 ATTORNEY GENERAL\n", + "3501 ATTORNEY GENERAL\n", + "3502 AUDITOR GENERAL\n", + "3503 AUDITOR GENERAL\n", + "3504 AUDITOR GENERAL\n", + "3505 AUDITOR GENERAL\n", + "3506 AUDITOR GENERAL\n", + "3507 STATE TREASURER\n", + "3508 STATE TREASURER\n", + "3509 STATE TREASURER\n", + "3510 STATE TREASURER\n", + "3511 STATE TREASURER\n", + "3512 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL\n", + "3513 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL\n", + "3514 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL\n", + "3515 REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST L...\n", + "3516 REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST L...\n", + "3517 REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST L...\n", + "3518 JUDGES AGE\n", + "3519 JUDGES AGE\n", + "3520 NaN\n", + "3521 NaN\n", + "3522 NaN\n", + "3523 NaN\n", + "3524 NaN\n", + "3525 NaN\n", + "Name: Contest, dtype: object" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.Contest" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['REGISTERED VOTERS - TOTAL', 'BALLOTS CAST - TOTAL',\n", + " 'VOTER TURNOUT - TOTAL', 'STRAIGHT PARTY', 'PRESIDENTIAL ELECTORS',\n", + " 'UNITED STATES SENATOR', 'ATTORNEY GENERAL', 'AUDITOR GENERAL',\n", + " 'STATE TREASURER', 'REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 171ST LEGISLATIVE',\n", + " 'JUDGES AGE',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LEGISLATIVE',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 77TH LEGISLATIVE',\n", + " 'REPRESENTATIVE IN THE GENERAL ASSEMBLY 81ST LEGISLATIVE', nan], dtype=object)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.Contest.unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ContestPrecNoCount
0REGISTERED VOTERS - TOTAL1.0507.0
1BALLOTS CAST - TOTAL1.0391.0
2VOTER TURNOUT - TOTAL1.0NaN
3STRAIGHT PARTY1.046.0
4STRAIGHT PARTY1.066.0
\n", + "
" + ], + "text/plain": [ + " Contest PrecNo Count\n", + "0 REGISTERED VOTERS - TOTAL 1.0 507.0\n", + "1 BALLOTS CAST - TOTAL 1.0 391.0\n", + "2 VOTER TURNOUT - TOTAL 1.0 NaN\n", + "3 STRAIGHT PARTY 1.0 46.0\n", + "4 STRAIGHT PARTY 1.0 66.0" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_multipleColumns = df[['Contest','PrecNo', 'Count']]\n", + "df_multipleColumns.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 True\n", + "1 True\n", + "2 True\n", + "3 True\n", + "4 True\n", + "5 True\n", + "6 True\n", + "7 True\n", + "8 True\n", + "9 True\n", + "10 True\n", + "11 True\n", + "12 True\n", + "13 True\n", + "14 True\n", + "15 True\n", + "16 True\n", + "17 True\n", + "18 True\n", + "19 True\n", + "20 True\n", + "21 True\n", + "22 True\n", + "23 True\n", + "24 True\n", + "25 True\n", + "26 True\n", + "27 True\n", + "28 True\n", + "29 True\n", + " ... \n", + "3496 False\n", + "3497 False\n", + "3498 False\n", + "3499 False\n", + "3500 False\n", + "3501 False\n", + "3502 False\n", + "3503 False\n", + "3504 False\n", + "3505 False\n", + "3506 False\n", + "3507 False\n", + "3508 False\n", + "3509 False\n", + "3510 False\n", + "3511 False\n", + "3512 False\n", + "3513 False\n", + "3514 False\n", + "3515 False\n", + "3516 False\n", + "3517 False\n", + "3518 False\n", + "3519 False\n", + "3520 False\n", + "3521 False\n", + "3522 False\n", + "3523 False\n", + "3524 False\n", + "3525 False\n", + "Name: PrecNo, dtype: bool" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['PrecNo'] == 1" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "df_precinct1 = df[df['PrecNo']== 1 ]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
0CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNREGISTERED VOTERS - TOTALNaNNaNNaN10.0507.0NaNNaNNaN
1CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNBALLOTS CAST - TOTALNaNNaNNaN11.0391.0NaNNaNNaN
2CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNVOTER TURNOUT - TOTALNaNNaNNaN12.0NaN77.12NaNNaN
3CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1DEMOCRATIC17.046.040.35NaNNaN
4CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1REPUBLICAN18.066.057.89NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "0 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "1 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "2 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "3 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "4 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest Descr \\\n", + "0 1.0 01 BELLEFONTE NORTH NaN REGISTERED VOTERS - TOTAL NaN \n", + "1 1.0 01 BELLEFONTE NORTH NaN BALLOTS CAST - TOTAL NaN \n", + "2 1.0 01 BELLEFONTE NORTH NaN VOTER TURNOUT - TOTAL NaN \n", + "3 1.0 01 BELLEFONTE NORTH DEMOCRATIC STRAIGHT PARTY NaN \n", + "4 1.0 01 BELLEFONTE NORTH REPUBLICAN STRAIGHT PARTY NaN \n", + "\n", + " VoteFor Candidate Posn Count PctCnt Total PctTot \n", + "0 NaN NaN 10.0 507.0 NaN NaN NaN \n", + "1 NaN NaN 11.0 391.0 NaN NaN NaN \n", + "2 NaN NaN 12.0 NaN 77.12 NaN NaN \n", + "3 VOTE FOR NOT MORE THAN 1 DEMOCRATIC 17.0 46.0 40.35 NaN NaN \n", + "4 VOTE FOR NOT MORE THAN 1 REPUBLICAN 18.0 66.0 57.89 NaN NaN " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_precinct1.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
195CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNREGISTERED VOTERS - TOTALNaNNaNNaN435.0892.0NaNNaNNaN
196CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNBALLOTS CAST - TOTALNaNNaNNaN436.0709.0NaNNaNNaN
197CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNVOTER TURNOUT - TOTALNaNNaNNaN437.0NaN79.48NaNNaN
198CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1DEMOCRATIC442.062.031.00NaNNaN
199CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1REPUBLICAN443.0134.067.00NaNNaN
200CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLCONSTITUTION PARTYSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1CONSTITUTION PARTY444.00.0NaNNaNNaN
201CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1GREEN445.02.01.00NaNNaN
202CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1LIBERTARIAN446.02.01.00NaNNaN
203CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT451.0230.032.53NaNNaN
204CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT452.0443.062.66NaNNaN
205CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT453.02.00.28NaNNaN
206CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT454.02.00.28NaNNaN
207CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT455.023.03.25NaNNaN
208CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN456.07.00.99NaNNaN
209CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1KATIE MCGINTY461.0239.034.09NaNNaN
210CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1PAT TOOMEY462.0400.057.06NaNNaN
211CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1EDWARD T CLIFFORD, III463.062.08.84NaNNaN
212CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1WRITE-IN464.00.0NaNNaNNaN
213CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOSH SHAPIRO469.0278.040.12NaNNaN
214CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOHN RAFFERTY470.0415.059.88NaNNaN
215CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN471.00.0NaNNaNNaN
216CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1EUGENE A DEPASQUALE476.0255.037.28NaNNaN
217CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN BROWN477.0385.056.29NaNNaN
218CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN J SWEENEY478.022.03.22NaNNaN
219CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1ROY A MINET479.022.03.22NaNNaN
220CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLNaNAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN480.00.0NaNNaNNaN
221CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JOE TORSELLA485.0250.036.76NaNNaN
222CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1OTTO VOIT486.0365.053.68NaNNaN
223CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLGREENSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1KRISTIN COMBS487.047.06.91NaNNaN
224CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLLIBERTARIANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JAMES BABB488.018.02.65NaNNaN
...................................................
243CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT537.0228.060.48NaNNaN
244CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT538.04.01.06NaNNaN
245CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT539.01.00.27NaNNaN
246CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT540.018.04.77NaNNaN
247CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN541.04.01.06NaNNaN
248CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1KATIE MCGINTY546.0124.033.16NaNNaN
249CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1PAT TOOMEY547.0218.058.29NaNNaN
250CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1EDWARD T CLIFFORD, III548.032.08.56NaNNaN
251CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNUNITED STATES SENATORNaNVOTE FOR NOT MORE THAN 1WRITE-IN549.00.0NaNNaNNaN
252CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOSH SHAPIRO554.0137.037.03NaNNaN
253CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1JOHN RAFFERTY555.0233.062.97NaNNaN
254CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNATTORNEY GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN556.00.0NaNNaNNaN
255CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1EUGENE A DEPASQUALE561.0137.037.03NaNNaN
256CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN BROWN562.0197.053.24NaNNaN
257CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROGREENAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1JOHN J SWEENEY563.017.04.59NaNNaN
258CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1ROY A MINET564.019.05.14NaNNaN
259CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNAUDITOR GENERALNaNVOTE FOR NOT MORE THAN 1WRITE-IN565.00.0NaNNaNNaN
260CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JOE TORSELLA570.0131.035.60NaNNaN
261CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1OTTO VOIT571.0194.052.72NaNNaN
262CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROGREENSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1KRISTIN COMBS572.022.05.98NaNNaN
263CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROLIBERTARIANSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1JAMES BABB573.021.05.71NaNNaN
264CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNSTATE TREASURERNaNVOTE FOR NOT MORE THAN 1WRITE-IN574.00.0NaNNaNNaN
265CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICREPRESENTATIVE IN CONGRESS 5TH CONGRESSIONALNaNVOTE FOR NOT MORE THAN 1KERITH STRANO TAYLOR578.094.025.47NaNNaN
266CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANREPRESENTATIVE IN CONGRESS 5TH CONGRESSIONALNaNVOTE FOR NOT MORE THAN 1GLENN GT THOMPSON579.0275.074.53NaNNaN
267CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNREPRESENTATIVE IN CONGRESS 5TH CONGRESSIONALNaNVOTE FOR NOT MORE THAN 1WRITE-IN580.00.0NaNNaNNaN
268CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICREPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE...NaNVOTE FOR NOT MORE THAN 1MIKE HANNA585.0178.048.11NaNNaN
269CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANREPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE...NaNVOTE FOR NOT MORE THAN 1STEPHANIE BOROWICZ586.0191.051.62NaNNaN
270CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNREPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE...NaNVOTE FOR NOT MORE THAN 1WRITE-IN587.01.00.27NaNNaN
271CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNJUDGES AGENaNVOTE FOR NOT MORE THAN 1YES592.0159.052.13NaNNaN
272CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORONaNJUDGES AGENaNVOTE FOR NOT MORE THAN 1NO593.0146.047.87NaNNaN
\n", + "

78 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "195 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "196 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "197 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "198 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "199 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "200 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "201 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "202 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "203 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "204 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "205 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "206 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "207 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "208 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "209 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "210 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "211 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "212 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "213 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "214 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "215 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "216 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "217 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "218 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "219 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "220 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "221 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "222 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "223 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "224 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + ".. ... ... ... ... \n", + "243 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "244 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "245 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "246 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "247 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "248 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "249 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "250 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "251 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "252 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "253 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "254 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "255 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "256 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "257 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "258 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "259 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "260 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "261 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "262 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "263 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "264 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "265 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "266 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "267 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "268 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "269 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "270 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "271 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "272 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party \\\n", + "195 6.0 06 CENTRE HALL NaN \n", + "196 6.0 06 CENTRE HALL NaN \n", + "197 6.0 06 CENTRE HALL NaN \n", + "198 6.0 06 CENTRE HALL DEMOCRATIC \n", + "199 6.0 06 CENTRE HALL REPUBLICAN \n", + "200 6.0 06 CENTRE HALL CONSTITUTION PARTY \n", + "201 6.0 06 CENTRE HALL GREEN \n", + "202 6.0 06 CENTRE HALL LIBERTARIAN \n", + "203 6.0 06 CENTRE HALL DEMOCRATIC \n", + "204 6.0 06 CENTRE HALL REPUBLICAN \n", + "205 6.0 06 CENTRE HALL CONSTITUTION PARTY \n", + "206 6.0 06 CENTRE HALL GREEN \n", + "207 6.0 06 CENTRE HALL LIBERTARIAN \n", + "208 6.0 06 CENTRE HALL NaN \n", + "209 6.0 06 CENTRE HALL DEMOCRATIC \n", + "210 6.0 06 CENTRE HALL REPUBLICAN \n", + "211 6.0 06 CENTRE HALL LIBERTARIAN \n", + "212 6.0 06 CENTRE HALL NaN \n", + "213 6.0 06 CENTRE HALL DEMOCRATIC \n", + "214 6.0 06 CENTRE HALL REPUBLICAN \n", + "215 6.0 06 CENTRE HALL NaN \n", + "216 6.0 06 CENTRE HALL DEMOCRATIC \n", + "217 6.0 06 CENTRE HALL REPUBLICAN \n", + "218 6.0 06 CENTRE HALL GREEN \n", + "219 6.0 06 CENTRE HALL LIBERTARIAN \n", + "220 6.0 06 CENTRE HALL NaN \n", + "221 6.0 06 CENTRE HALL DEMOCRATIC \n", + "222 6.0 06 CENTRE HALL REPUBLICAN \n", + "223 6.0 06 CENTRE HALL GREEN \n", + "224 6.0 06 CENTRE HALL LIBERTARIAN \n", + ".. ... ... ... \n", + "243 7.0 07 HOWARD BORO REPUBLICAN \n", + "244 7.0 07 HOWARD BORO CONSTITUTION PARTY \n", + "245 7.0 07 HOWARD BORO GREEN \n", + "246 7.0 07 HOWARD BORO LIBERTARIAN \n", + "247 7.0 07 HOWARD BORO NaN \n", + "248 7.0 07 HOWARD BORO DEMOCRATIC \n", + "249 7.0 07 HOWARD BORO REPUBLICAN \n", + "250 7.0 07 HOWARD BORO LIBERTARIAN \n", + "251 7.0 07 HOWARD BORO NaN \n", + "252 7.0 07 HOWARD BORO DEMOCRATIC \n", + "253 7.0 07 HOWARD BORO REPUBLICAN \n", + "254 7.0 07 HOWARD BORO NaN \n", + "255 7.0 07 HOWARD BORO DEMOCRATIC \n", + "256 7.0 07 HOWARD BORO REPUBLICAN \n", + "257 7.0 07 HOWARD BORO GREEN \n", + "258 7.0 07 HOWARD BORO LIBERTARIAN \n", + "259 7.0 07 HOWARD BORO NaN \n", + "260 7.0 07 HOWARD BORO DEMOCRATIC \n", + "261 7.0 07 HOWARD BORO REPUBLICAN \n", + "262 7.0 07 HOWARD BORO GREEN \n", + "263 7.0 07 HOWARD BORO LIBERTARIAN \n", + "264 7.0 07 HOWARD BORO NaN \n", + "265 7.0 07 HOWARD BORO DEMOCRATIC \n", + "266 7.0 07 HOWARD BORO REPUBLICAN \n", + "267 7.0 07 HOWARD BORO NaN \n", + "268 7.0 07 HOWARD BORO DEMOCRATIC \n", + "269 7.0 07 HOWARD BORO REPUBLICAN \n", + "270 7.0 07 HOWARD BORO NaN \n", + "271 7.0 07 HOWARD BORO NaN \n", + "272 7.0 07 HOWARD BORO NaN \n", + "\n", + " Contest Descr \\\n", + "195 REGISTERED VOTERS - TOTAL NaN \n", + "196 BALLOTS CAST - TOTAL NaN \n", + "197 VOTER TURNOUT - TOTAL NaN \n", + "198 STRAIGHT PARTY NaN \n", + "199 STRAIGHT PARTY NaN \n", + "200 STRAIGHT PARTY NaN \n", + "201 STRAIGHT PARTY NaN \n", + "202 STRAIGHT PARTY NaN \n", + "203 PRESIDENTIAL ELECTORS NaN \n", + "204 PRESIDENTIAL ELECTORS NaN \n", + "205 PRESIDENTIAL ELECTORS NaN \n", + "206 PRESIDENTIAL ELECTORS NaN \n", + "207 PRESIDENTIAL ELECTORS NaN \n", + "208 PRESIDENTIAL ELECTORS NaN \n", + "209 UNITED STATES SENATOR NaN \n", + "210 UNITED STATES SENATOR NaN \n", + "211 UNITED STATES SENATOR NaN \n", + "212 UNITED STATES SENATOR NaN \n", + "213 ATTORNEY GENERAL NaN \n", + "214 ATTORNEY GENERAL NaN \n", + "215 ATTORNEY GENERAL NaN \n", + "216 AUDITOR GENERAL NaN \n", + "217 AUDITOR GENERAL NaN \n", + "218 AUDITOR GENERAL NaN \n", + "219 AUDITOR GENERAL NaN \n", + "220 AUDITOR GENERAL NaN \n", + "221 STATE TREASURER NaN \n", + "222 STATE TREASURER NaN \n", + "223 STATE TREASURER NaN \n", + "224 STATE TREASURER NaN \n", + ".. ... ... \n", + "243 PRESIDENTIAL ELECTORS NaN \n", + "244 PRESIDENTIAL ELECTORS NaN \n", + "245 PRESIDENTIAL ELECTORS NaN \n", + "246 PRESIDENTIAL ELECTORS NaN \n", + "247 PRESIDENTIAL ELECTORS NaN \n", + "248 UNITED STATES SENATOR NaN \n", + "249 UNITED STATES SENATOR NaN \n", + "250 UNITED STATES SENATOR NaN \n", + "251 UNITED STATES SENATOR NaN \n", + "252 ATTORNEY GENERAL NaN \n", + "253 ATTORNEY GENERAL NaN \n", + "254 ATTORNEY GENERAL NaN \n", + "255 AUDITOR GENERAL NaN \n", + "256 AUDITOR GENERAL NaN \n", + "257 AUDITOR GENERAL NaN \n", + "258 AUDITOR GENERAL NaN \n", + "259 AUDITOR GENERAL NaN \n", + "260 STATE TREASURER NaN \n", + "261 STATE TREASURER NaN \n", + "262 STATE TREASURER NaN \n", + "263 STATE TREASURER NaN \n", + "264 STATE TREASURER NaN \n", + "265 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL NaN \n", + "266 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL NaN \n", + "267 REPRESENTATIVE IN CONGRESS 5TH CONGRESSIONAL NaN \n", + "268 REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE... NaN \n", + "269 REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE... NaN \n", + "270 REPRESENTATIVE IN THE GENERAL ASSEMBLY 76TH LE... NaN \n", + "271 JUDGES AGE NaN \n", + "272 JUDGES AGE NaN \n", + "\n", + " VoteFor Candidate Posn Count \\\n", + "195 NaN NaN 435.0 892.0 \n", + "196 NaN NaN 436.0 709.0 \n", + "197 NaN NaN 437.0 NaN \n", + "198 VOTE FOR NOT MORE THAN 1 DEMOCRATIC 442.0 62.0 \n", + "199 VOTE FOR NOT MORE THAN 1 REPUBLICAN 443.0 134.0 \n", + "200 VOTE FOR NOT MORE THAN 1 CONSTITUTION PARTY 444.0 0.0 \n", + "201 VOTE FOR NOT MORE THAN 1 GREEN 445.0 2.0 \n", + "202 VOTE FOR NOT MORE THAN 1 LIBERTARIAN 446.0 2.0 \n", + "203 VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 451.0 230.0 \n", + "204 VOTE FOR NOT MORE THAN 1 DONALD J TRUMP, PRESIDENT 452.0 443.0 \n", + "205 VOTE FOR NOT MORE THAN 1 DARRELL L CASTLE, PRESIDENT 453.0 2.0 \n", + "206 VOTE FOR NOT MORE THAN 1 JILL STEIN, PRESIDENT 454.0 2.0 \n", + "207 VOTE FOR NOT MORE THAN 1 GARY JOHNSON, PRESIDENT 455.0 23.0 \n", + "208 VOTE FOR NOT MORE THAN 1 WRITE-IN 456.0 7.0 \n", + "209 VOTE FOR NOT MORE THAN 1 KATIE MCGINTY 461.0 239.0 \n", + "210 VOTE FOR NOT MORE THAN 1 PAT TOOMEY 462.0 400.0 \n", + "211 VOTE FOR NOT MORE THAN 1 EDWARD T CLIFFORD, III 463.0 62.0 \n", + "212 VOTE FOR NOT MORE THAN 1 WRITE-IN 464.0 0.0 \n", + "213 VOTE FOR NOT MORE THAN 1 JOSH SHAPIRO 469.0 278.0 \n", + "214 VOTE FOR NOT MORE THAN 1 JOHN RAFFERTY 470.0 415.0 \n", + "215 VOTE FOR NOT MORE THAN 1 WRITE-IN 471.0 0.0 \n", + "216 VOTE FOR NOT MORE THAN 1 EUGENE A DEPASQUALE 476.0 255.0 \n", + "217 VOTE FOR NOT MORE THAN 1 JOHN BROWN 477.0 385.0 \n", + "218 VOTE FOR NOT MORE THAN 1 JOHN J SWEENEY 478.0 22.0 \n", + "219 VOTE FOR NOT MORE THAN 1 ROY A MINET 479.0 22.0 \n", + "220 VOTE FOR NOT MORE THAN 1 WRITE-IN 480.0 0.0 \n", + "221 VOTE FOR NOT MORE THAN 1 JOE TORSELLA 485.0 250.0 \n", + "222 VOTE FOR NOT MORE THAN 1 OTTO VOIT 486.0 365.0 \n", + "223 VOTE FOR NOT MORE THAN 1 KRISTIN COMBS 487.0 47.0 \n", + "224 VOTE FOR NOT MORE THAN 1 JAMES BABB 488.0 18.0 \n", + ".. ... ... ... ... \n", + "243 VOTE FOR NOT MORE THAN 1 DONALD J TRUMP, PRESIDENT 537.0 228.0 \n", + "244 VOTE FOR NOT MORE THAN 1 DARRELL L CASTLE, PRESIDENT 538.0 4.0 \n", + "245 VOTE FOR NOT MORE THAN 1 JILL STEIN, PRESIDENT 539.0 1.0 \n", + "246 VOTE FOR NOT MORE THAN 1 GARY JOHNSON, PRESIDENT 540.0 18.0 \n", + "247 VOTE FOR NOT MORE THAN 1 WRITE-IN 541.0 4.0 \n", + "248 VOTE FOR NOT MORE THAN 1 KATIE MCGINTY 546.0 124.0 \n", + "249 VOTE FOR NOT MORE THAN 1 PAT TOOMEY 547.0 218.0 \n", + "250 VOTE FOR NOT MORE THAN 1 EDWARD T CLIFFORD, III 548.0 32.0 \n", + "251 VOTE FOR NOT MORE THAN 1 WRITE-IN 549.0 0.0 \n", + "252 VOTE FOR NOT MORE THAN 1 JOSH SHAPIRO 554.0 137.0 \n", + "253 VOTE FOR NOT MORE THAN 1 JOHN RAFFERTY 555.0 233.0 \n", + "254 VOTE FOR NOT MORE THAN 1 WRITE-IN 556.0 0.0 \n", + "255 VOTE FOR NOT MORE THAN 1 EUGENE A DEPASQUALE 561.0 137.0 \n", + "256 VOTE FOR NOT MORE THAN 1 JOHN BROWN 562.0 197.0 \n", + "257 VOTE FOR NOT MORE THAN 1 JOHN J SWEENEY 563.0 17.0 \n", + "258 VOTE FOR NOT MORE THAN 1 ROY A MINET 564.0 19.0 \n", + "259 VOTE FOR NOT MORE THAN 1 WRITE-IN 565.0 0.0 \n", + "260 VOTE FOR NOT MORE THAN 1 JOE TORSELLA 570.0 131.0 \n", + "261 VOTE FOR NOT MORE THAN 1 OTTO VOIT 571.0 194.0 \n", + "262 VOTE FOR NOT MORE THAN 1 KRISTIN COMBS 572.0 22.0 \n", + "263 VOTE FOR NOT MORE THAN 1 JAMES BABB 573.0 21.0 \n", + "264 VOTE FOR NOT MORE THAN 1 WRITE-IN 574.0 0.0 \n", + "265 VOTE FOR NOT MORE THAN 1 KERITH STRANO TAYLOR 578.0 94.0 \n", + "266 VOTE FOR NOT MORE THAN 1 GLENN GT THOMPSON 579.0 275.0 \n", + "267 VOTE FOR NOT MORE THAN 1 WRITE-IN 580.0 0.0 \n", + "268 VOTE FOR NOT MORE THAN 1 MIKE HANNA 585.0 178.0 \n", + "269 VOTE FOR NOT MORE THAN 1 STEPHANIE BOROWICZ 586.0 191.0 \n", + "270 VOTE FOR NOT MORE THAN 1 WRITE-IN 587.0 1.0 \n", + "271 VOTE FOR NOT MORE THAN 1 YES 592.0 159.0 \n", + "272 VOTE FOR NOT MORE THAN 1 NO 593.0 146.0 \n", + "\n", + " PctCnt Total PctTot \n", + "195 NaN NaN NaN \n", + "196 NaN NaN NaN \n", + "197 79.48 NaN NaN \n", + "198 31.00 NaN NaN \n", + "199 67.00 NaN NaN \n", + "200 NaN NaN NaN \n", + "201 1.00 NaN NaN \n", + "202 1.00 NaN NaN \n", + "203 32.53 NaN NaN \n", + "204 62.66 NaN NaN \n", + "205 0.28 NaN NaN \n", + "206 0.28 NaN NaN \n", + "207 3.25 NaN NaN \n", + "208 0.99 NaN NaN \n", + "209 34.09 NaN NaN \n", + "210 57.06 NaN NaN \n", + "211 8.84 NaN NaN \n", + "212 NaN NaN NaN \n", + "213 40.12 NaN NaN \n", + "214 59.88 NaN NaN \n", + "215 NaN NaN NaN \n", + "216 37.28 NaN NaN \n", + "217 56.29 NaN NaN \n", + "218 3.22 NaN NaN \n", + "219 3.22 NaN NaN \n", + "220 NaN NaN NaN \n", + "221 36.76 NaN NaN \n", + "222 53.68 NaN NaN \n", + "223 6.91 NaN NaN \n", + "224 2.65 NaN NaN \n", + ".. ... ... ... \n", + "243 60.48 NaN NaN \n", + "244 1.06 NaN NaN \n", + "245 0.27 NaN NaN \n", + "246 4.77 NaN NaN \n", + "247 1.06 NaN NaN \n", + "248 33.16 NaN NaN \n", + "249 58.29 NaN NaN \n", + "250 8.56 NaN NaN \n", + "251 NaN NaN NaN \n", + "252 37.03 NaN NaN \n", + "253 62.97 NaN NaN \n", + "254 NaN NaN NaN \n", + "255 37.03 NaN NaN \n", + "256 53.24 NaN NaN \n", + "257 4.59 NaN NaN \n", + "258 5.14 NaN NaN \n", + "259 NaN NaN NaN \n", + "260 35.60 NaN NaN \n", + "261 52.72 NaN NaN \n", + "262 5.98 NaN NaN \n", + "263 5.71 NaN NaN \n", + "264 NaN NaN NaN \n", + "265 25.47 NaN NaN \n", + "266 74.53 NaN NaN \n", + "267 NaN NaN NaN \n", + "268 48.11 NaN NaN \n", + "269 51.62 NaN NaN \n", + "270 0.27 NaN NaN \n", + "271 52.13 NaN NaN \n", + "272 47.87 NaN NaN \n", + "\n", + "[78 rows x 16 columns]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[(df['PrecNo']< 8) & (df['PrecNo']>5)]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
8CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT26.0188.048.08NaNNaN
9CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT27.0174.044.50NaNNaN
10CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT28.02.00.51NaNNaN
11CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT29.03.00.77NaNNaN
12CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT30.022.05.63NaNNaN
13CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN31.02.00.51NaNNaN
47CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT111.0259.038.14NaNNaN
48CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT112.0385.056.70NaNNaN
49CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT113.09.01.33NaNNaN
50CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT114.07.01.03NaNNaN
51CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT115.010.01.47NaNNaN
52CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN116.09.01.33NaNNaN
86CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT196.0230.050.33NaNNaN
87CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT197.0193.042.23NaNNaN
88CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT198.06.01.31NaNNaN
89CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT199.04.00.88NaNNaN
90CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT200.017.03.72NaNNaN
91CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN201.07.01.53NaNNaN
125CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT281.0283.039.47NaNNaN
126CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT282.0375.052.30NaNNaN
127CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT283.06.00.84NaNNaN
128CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT284.010.01.39NaNNaN
129CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT285.035.04.88NaNNaN
130CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN286.08.01.12NaNNaN
164CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT366.0443.048.05NaNNaN
165CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT367.0398.043.17NaNNaN
166CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT368.07.00.76NaNNaN
167CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT369.013.01.41NaNNaN
168CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT370.048.05.21NaNNaN
169CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN371.013.01.41NaNNaN
...................................................
3333CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7311.0343.037.40NaNNaN
3334CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7312.0509.055.51NaNNaN
3335CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7313.06.00.65NaNNaN
3336CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7314.05.00.55NaNNaN
3337CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7315.044.04.80NaNNaN
3338CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7316.010.01.09NaNNaN
3372CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7396.0642.064.46NaNNaN
3373CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7397.0292.029.32NaNNaN
3374CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3CONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7398.09.00.90NaNNaN
3375CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3GREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7399.010.01.00NaNNaN
3376CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3LIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7400.019.01.91NaNNaN
3377CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3NaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7401.024.02.41NaNNaN
3411CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7481.0628.057.67NaNNaN
3412CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7482.0391.035.90NaNNaN
3413CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7483.03.00.28NaNNaN
3414CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7484.06.00.55NaNNaN
3415CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7485.039.03.58NaNNaN
3416CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7486.022.02.02NaNNaN
3450CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7566.0394.039.44NaNNaN
3451CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7567.0536.053.65NaNNaN
3452CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7568.00.0NaNNaNNaN
3453CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7569.013.01.30NaNNaN
3454CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7570.037.03.70NaNNaN
3455CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7571.019.01.90NaNNaN
3489CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7651.0396.055.54NaNNaN
3490CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7652.0281.039.41NaNNaN
3491CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT7653.01.00.14NaNNaN
3492CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT7654.06.00.84NaNNaN
3493CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT7655.016.02.24NaNNaN
3494CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALNaNPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1WRITE-IN7656.013.01.82NaNNaN
\n", + "

546 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "8 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "9 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "10 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "11 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "12 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "13 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "47 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "48 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "49 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "50 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "51 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "52 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "86 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "87 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "88 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "89 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "90 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "91 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "125 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "126 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "127 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "128 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "129 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "130 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "164 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "165 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "166 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "167 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "168 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "169 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "... ... ... ... \n", + "3333 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3334 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3335 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3336 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3337 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3338 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3372 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3373 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3374 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3375 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3376 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3377 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3411 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3412 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3413 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3414 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3415 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3416 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3450 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3451 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3452 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3453 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3454 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3455 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3489 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3490 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3491 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3492 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3493 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3494 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party \\\n", + "8 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH DEMOCRATIC \n", + "9 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH REPUBLICAN \n", + "10 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH CONSTITUTION PARTY \n", + "11 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH GREEN \n", + "12 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH LIBERTARIAN \n", + "13 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH NaN \n", + "47 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST DEMOCRATIC \n", + "48 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST REPUBLICAN \n", + "49 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST CONSTITUTION PARTY \n", + "50 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST GREEN \n", + "51 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST LIBERTARIAN \n", + "52 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST NaN \n", + "86 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH DEMOCRATIC \n", + "87 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH REPUBLICAN \n", + "88 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH CONSTITUTION PARTY \n", + "89 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH GREEN \n", + "90 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH LIBERTARIAN \n", + "91 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH NaN \n", + "125 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST DEMOCRATIC \n", + "126 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST REPUBLICAN \n", + "127 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST CONSTITUTION PARTY \n", + "128 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST GREEN \n", + "129 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST LIBERTARIAN \n", + "130 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST NaN \n", + "164 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST DEMOCRATIC \n", + "165 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST REPUBLICAN \n", + "166 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST CONSTITUTION PARTY \n", + "167 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST GREEN \n", + "168 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST LIBERTARIAN \n", + "169 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST NaN \n", + "... ... ... ... ... \n", + "3333 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST DEMOCRATIC \n", + "3334 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST REPUBLICAN \n", + "3335 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST CONSTITUTION PARTY \n", + "3336 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST GREEN \n", + "3337 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST LIBERTARIAN \n", + "3338 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST NaN \n", + "3372 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 DEMOCRATIC \n", + "3373 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 REPUBLICAN \n", + "3374 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 CONSTITUTION PARTY \n", + "3375 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 GREEN \n", + "3376 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 LIBERTARIAN \n", + "3377 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 NaN \n", + "3411 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL DEMOCRATIC \n", + "3412 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL REPUBLICAN \n", + "3413 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL CONSTITUTION PARTY \n", + "3414 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL GREEN \n", + "3415 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL LIBERTARIAN \n", + "3416 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL NaN \n", + "3450 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL DEMOCRATIC \n", + "3451 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL REPUBLICAN \n", + "3452 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL CONSTITUTION PARTY \n", + "3453 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL GREEN \n", + "3454 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL LIBERTARIAN \n", + "3455 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL NaN \n", + "3489 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL DEMOCRATIC \n", + "3490 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL REPUBLICAN \n", + "3491 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL CONSTITUTION PARTY \n", + "3492 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL GREEN \n", + "3493 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL LIBERTARIAN \n", + "3494 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL NaN \n", + "\n", + " Contest Descr VoteFor \\\n", + "8 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "9 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "10 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "11 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "12 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "13 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "47 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "48 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "49 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "50 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "51 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "52 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "86 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "87 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "88 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "89 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "90 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "91 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "125 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "126 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "127 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "128 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "129 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "130 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "164 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "165 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "166 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "167 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "168 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "169 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "... ... ... ... \n", + "3333 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3334 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3335 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3336 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3337 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3338 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3372 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3373 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3374 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3375 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3376 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3377 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3411 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3412 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3413 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3414 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3415 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3416 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3450 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3451 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3452 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3453 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3454 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3455 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3489 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3490 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3491 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3492 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3493 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3494 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "\n", + " Candidate Posn Count PctCnt Total PctTot \n", + "8 HILLARY CLINTON, PRESIDENT 26.0 188.0 48.08 NaN NaN \n", + "9 DONALD J TRUMP, PRESIDENT 27.0 174.0 44.50 NaN NaN \n", + "10 DARRELL L CASTLE, PRESIDENT 28.0 2.0 0.51 NaN NaN \n", + "11 JILL STEIN, PRESIDENT 29.0 3.0 0.77 NaN NaN \n", + "12 GARY JOHNSON, PRESIDENT 30.0 22.0 5.63 NaN NaN \n", + "13 WRITE-IN 31.0 2.0 0.51 NaN NaN \n", + "47 HILLARY CLINTON, PRESIDENT 111.0 259.0 38.14 NaN NaN \n", + "48 DONALD J TRUMP, PRESIDENT 112.0 385.0 56.70 NaN NaN \n", + "49 DARRELL L CASTLE, PRESIDENT 113.0 9.0 1.33 NaN NaN \n", + "50 JILL STEIN, PRESIDENT 114.0 7.0 1.03 NaN NaN \n", + "51 GARY JOHNSON, PRESIDENT 115.0 10.0 1.47 NaN NaN \n", + "52 WRITE-IN 116.0 9.0 1.33 NaN NaN \n", + "86 HILLARY CLINTON, PRESIDENT 196.0 230.0 50.33 NaN NaN \n", + "87 DONALD J TRUMP, PRESIDENT 197.0 193.0 42.23 NaN NaN \n", + "88 DARRELL L CASTLE, PRESIDENT 198.0 6.0 1.31 NaN NaN \n", + "89 JILL STEIN, PRESIDENT 199.0 4.0 0.88 NaN NaN \n", + "90 GARY JOHNSON, PRESIDENT 200.0 17.0 3.72 NaN NaN \n", + "91 WRITE-IN 201.0 7.0 1.53 NaN NaN \n", + "125 HILLARY CLINTON, PRESIDENT 281.0 283.0 39.47 NaN NaN \n", + "126 DONALD J TRUMP, PRESIDENT 282.0 375.0 52.30 NaN NaN \n", + "127 DARRELL L CASTLE, PRESIDENT 283.0 6.0 0.84 NaN NaN \n", + "128 JILL STEIN, PRESIDENT 284.0 10.0 1.39 NaN NaN \n", + "129 GARY JOHNSON, PRESIDENT 285.0 35.0 4.88 NaN NaN \n", + "130 WRITE-IN 286.0 8.0 1.12 NaN NaN \n", + "164 HILLARY CLINTON, PRESIDENT 366.0 443.0 48.05 NaN NaN \n", + "165 DONALD J TRUMP, PRESIDENT 367.0 398.0 43.17 NaN NaN \n", + "166 DARRELL L CASTLE, PRESIDENT 368.0 7.0 0.76 NaN NaN \n", + "167 JILL STEIN, PRESIDENT 369.0 13.0 1.41 NaN NaN \n", + "168 GARY JOHNSON, PRESIDENT 370.0 48.0 5.21 NaN NaN \n", + "169 WRITE-IN 371.0 13.0 1.41 NaN NaN \n", + "... ... ... ... ... ... ... \n", + "3333 HILLARY CLINTON, PRESIDENT 7311.0 343.0 37.40 NaN NaN \n", + "3334 DONALD J TRUMP, PRESIDENT 7312.0 509.0 55.51 NaN NaN \n", + "3335 DARRELL L CASTLE, PRESIDENT 7313.0 6.0 0.65 NaN NaN \n", + "3336 JILL STEIN, PRESIDENT 7314.0 5.0 0.55 NaN NaN \n", + "3337 GARY JOHNSON, PRESIDENT 7315.0 44.0 4.80 NaN NaN \n", + "3338 WRITE-IN 7316.0 10.0 1.09 NaN NaN \n", + "3372 HILLARY CLINTON, PRESIDENT 7396.0 642.0 64.46 NaN NaN \n", + "3373 DONALD J TRUMP, PRESIDENT 7397.0 292.0 29.32 NaN NaN \n", + "3374 DARRELL L CASTLE, PRESIDENT 7398.0 9.0 0.90 NaN NaN \n", + "3375 JILL STEIN, PRESIDENT 7399.0 10.0 1.00 NaN NaN \n", + "3376 GARY JOHNSON, PRESIDENT 7400.0 19.0 1.91 NaN NaN \n", + "3377 WRITE-IN 7401.0 24.0 2.41 NaN NaN \n", + "3411 HILLARY CLINTON, PRESIDENT 7481.0 628.0 57.67 NaN NaN \n", + "3412 DONALD J TRUMP, PRESIDENT 7482.0 391.0 35.90 NaN NaN \n", + "3413 DARRELL L CASTLE, PRESIDENT 7483.0 3.0 0.28 NaN NaN \n", + "3414 JILL STEIN, PRESIDENT 7484.0 6.0 0.55 NaN NaN \n", + "3415 GARY JOHNSON, PRESIDENT 7485.0 39.0 3.58 NaN NaN \n", + "3416 WRITE-IN 7486.0 22.0 2.02 NaN NaN \n", + "3450 HILLARY CLINTON, PRESIDENT 7566.0 394.0 39.44 NaN NaN \n", + "3451 DONALD J TRUMP, PRESIDENT 7567.0 536.0 53.65 NaN NaN \n", + "3452 DARRELL L CASTLE, PRESIDENT 7568.0 0.0 NaN NaN NaN \n", + "3453 JILL STEIN, PRESIDENT 7569.0 13.0 1.30 NaN NaN \n", + "3454 GARY JOHNSON, PRESIDENT 7570.0 37.0 3.70 NaN NaN \n", + "3455 WRITE-IN 7571.0 19.0 1.90 NaN NaN \n", + "3489 HILLARY CLINTON, PRESIDENT 7651.0 396.0 55.54 NaN NaN \n", + "3490 DONALD J TRUMP, PRESIDENT 7652.0 281.0 39.41 NaN NaN \n", + "3491 DARRELL L CASTLE, PRESIDENT 7653.0 1.0 0.14 NaN NaN \n", + "3492 JILL STEIN, PRESIDENT 7654.0 6.0 0.84 NaN NaN \n", + "3493 GARY JOHNSON, PRESIDENT 7655.0 16.0 2.24 NaN NaN \n", + "3494 WRITE-IN 7656.0 13.0 1.82 NaN NaN \n", + "\n", + "[546 rows x 16 columns]" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres = df.loc [df['Contest'] == 'PRESIDENTIAL ELECTORS']\n", + "df_pres" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
8CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT26.0188.048.08NaNNaN
47CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT111.0259.038.14NaNNaN
86CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT196.0230.050.33NaNNaN
125CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT281.0283.039.47NaNNaN
164CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT366.0443.048.05NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "8 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "47 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "86 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "125 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "164 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest \\\n", + "8 1.0 01 BELLEFONTE NORTH DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "47 2.0 02 BELLEFONTE NORTHEAST DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "86 3.0 03 BELLEFONTE SOUTH DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "125 4.0 04 BELLEFONTE SOUTHEAST DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "164 5.0 05 BELLEFONTE WEST DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "\n", + " Descr VoteFor Candidate Posn \\\n", + "8 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 26.0 \n", + "47 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 111.0 \n", + "86 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 196.0 \n", + "125 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 281.0 \n", + "164 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 366.0 \n", + "\n", + " Count PctCnt Total PctTot \n", + "8 188.0 48.08 NaN NaN \n", + "47 259.0 38.14 NaN NaN \n", + "86 230.0 50.33 NaN NaN \n", + "125 283.0 39.47 NaN NaN \n", + "164 443.0 48.05 NaN NaN " + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton = df_pres.loc[df_pres['Candidate']== 'HILLARY CLINTON, PRESIDENT']\n", + "df_Clinton.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['HILLARY CLINTON, PRESIDENT', 'DONALD J TRUMP, PRESIDENT',\n", + " 'DARRELL L CASTLE, PRESIDENT', 'JILL STEIN, PRESIDENT',\n", + " 'GARY JOHNSON, PRESIDENT', 'WRITE-IN'], dtype=object)" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres['Candidate'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "8 False\n", + "47 False\n", + "86 True\n", + "125 False\n", + "164 False\n", + "203 False\n", + "242 False\n", + "281 False\n", + "320 False\n", + "359 False\n", + "397 False\n", + "435 False\n", + "473 False\n", + "512 False\n", + "551 False\n", + "589 True\n", + "627 True\n", + "665 True\n", + "703 True\n", + "741 True\n", + "779 True\n", + "817 True\n", + "855 True\n", + "893 True\n", + "931 True\n", + "969 True\n", + "1007 True\n", + "1045 True\n", + "1083 True\n", + "1121 True\n", + " ... \n", + "2364 False\n", + "2403 False\n", + "2442 True\n", + "2480 False\n", + "2519 True\n", + "2558 True\n", + "2596 True\n", + "2635 False\n", + "2674 False\n", + "2713 False\n", + "2752 False\n", + "2790 False\n", + "2828 False\n", + "2866 False\n", + "2904 False\n", + "2943 False\n", + "2982 False\n", + "3021 False\n", + "3060 False\n", + "3099 False\n", + "3138 False\n", + "3177 False\n", + "3216 False\n", + "3255 False\n", + "3294 False\n", + "3333 False\n", + "3372 True\n", + "3411 True\n", + "3450 False\n", + "3489 True\n", + "Name: PctCnt, dtype: bool" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton.PctCnt > 50" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "37088.0" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton.Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Candidate\n", + "DARRELL L CASTLE, PRESIDENT 344.0\n", + "DONALD J TRUMP, PRESIDENT 35274.0\n", + "GARY JOHNSON, PRESIDENT 2644.0\n", + "HILLARY CLINTON, PRESIDENT 37088.0\n", + "JILL STEIN, PRESIDENT 798.0\n", + "WRITE-IN 1159.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres.groupby('Candidate').Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PrecNo Candidate \n", + "1.0 DARRELL L CASTLE, PRESIDENT 2.0\n", + " DONALD J TRUMP, PRESIDENT 174.0\n", + " GARY JOHNSON, PRESIDENT 22.0\n", + " HILLARY CLINTON, PRESIDENT 188.0\n", + " JILL STEIN, PRESIDENT 3.0\n", + " WRITE-IN 2.0\n", + "2.0 DARRELL L CASTLE, PRESIDENT 9.0\n", + " DONALD J TRUMP, PRESIDENT 385.0\n", + " GARY JOHNSON, PRESIDENT 10.0\n", + " HILLARY CLINTON, PRESIDENT 259.0\n", + " JILL STEIN, PRESIDENT 7.0\n", + " WRITE-IN 9.0\n", + "3.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 193.0\n", + " GARY JOHNSON, PRESIDENT 17.0\n", + " HILLARY CLINTON, PRESIDENT 230.0\n", + " JILL STEIN, PRESIDENT 4.0\n", + " WRITE-IN 7.0\n", + "4.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 375.0\n", + " GARY JOHNSON, PRESIDENT 35.0\n", + " HILLARY CLINTON, PRESIDENT 283.0\n", + " JILL STEIN, PRESIDENT 10.0\n", + " WRITE-IN 8.0\n", + "5.0 DARRELL L CASTLE, PRESIDENT 7.0\n", + " DONALD J TRUMP, PRESIDENT 398.0\n", + " GARY JOHNSON, PRESIDENT 48.0\n", + " HILLARY CLINTON, PRESIDENT 443.0\n", + " JILL STEIN, PRESIDENT 13.0\n", + " WRITE-IN 13.0\n", + " ... \n", + "87.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 509.0\n", + " GARY JOHNSON, PRESIDENT 44.0\n", + " HILLARY CLINTON, PRESIDENT 343.0\n", + " JILL STEIN, PRESIDENT 5.0\n", + " WRITE-IN 10.0\n", + "88.0 DARRELL L CASTLE, PRESIDENT 9.0\n", + " DONALD J TRUMP, PRESIDENT 292.0\n", + " GARY JOHNSON, PRESIDENT 19.0\n", + " HILLARY CLINTON, PRESIDENT 642.0\n", + " JILL STEIN, PRESIDENT 10.0\n", + " WRITE-IN 24.0\n", + "89.0 DARRELL L CASTLE, PRESIDENT 3.0\n", + " DONALD J TRUMP, PRESIDENT 391.0\n", + " GARY JOHNSON, PRESIDENT 39.0\n", + " HILLARY CLINTON, PRESIDENT 628.0\n", + " JILL STEIN, PRESIDENT 6.0\n", + " WRITE-IN 22.0\n", + "90.0 DARRELL L CASTLE, PRESIDENT 0.0\n", + " DONALD J TRUMP, PRESIDENT 536.0\n", + " GARY JOHNSON, PRESIDENT 37.0\n", + " HILLARY CLINTON, PRESIDENT 394.0\n", + " JILL STEIN, PRESIDENT 13.0\n", + " WRITE-IN 19.0\n", + "91.0 DARRELL L CASTLE, PRESIDENT 1.0\n", + " DONALD J TRUMP, PRESIDENT 281.0\n", + " GARY JOHNSON, PRESIDENT 16.0\n", + " HILLARY CLINTON, PRESIDENT 396.0\n", + " JILL STEIN, PRESIDENT 6.0\n", + " WRITE-IN 13.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres.groupby(['PrecNo','Candidate']).Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1195.0" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton['Count'].max()" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Highest precinct vote total for Clinton: 1195.0\n", + "Lowest precinct vote total for Clinton: 18.0\n", + "Mean precinct vote total for Clinton: 407.56043956043953\n" + ] + } + ], + "source": [ + "# create min, max, and mean\n", + "max_clinton = df_Clinton['Count'].max()\n", + "min_clinton = df_Clinton['Count'].min()\n", + "mean_clinton = df_Clinton['Count'].mean()\n", + "\n", + "# print out some results\n", + "print(\"Highest precinct vote total for Clinton: \" + str(max_clinton))\n", + "print(\"Lowest precinct vote total for Clinton: \" + str(min_clinton))\n", + "print(\"Mean precinct vote total for Clinton: \" + str(mean_clinton))" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
589CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201616.016 SC NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1297.0495.077.95NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "589 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest Descr \\\n", + "589 16.0 16 SC NORTH DEMOCRATIC PRESIDENTIAL ELECTORS NaN \n", + "\n", + " VoteFor Candidate Posn Count \\\n", + "589 VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 1297.0 495.0 \n", + "\n", + " PctCnt Total PctTot \n", + "589 77.95 NaN NaN " + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton.loc[df['PctCnt'] == df_Clinton['PctCnt'].max()]" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
3138CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201682.082 UNIONDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6886.0126.017.03NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "3138 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party Contest \\\n", + "3138 NOVEMBER 8 2016 82.0 82 UNION DEMOCRATIC PRESIDENTIAL ELECTORS \n", + "\n", + " Descr VoteFor Candidate Posn \\\n", + "3138 NaN VOTE FOR NOT MORE THAN 1 HILLARY CLINTON, PRESIDENT 6886.0 \n", + "\n", + " Count PctCnt Total PctTot \n", + "3138 126.0 17.03 NaN NaN " + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_Clinton.loc[df['PctCnt'] == df_Clinton['PctCnt'].min()]" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PrecNo\n", + "1.0 391.0\n", + "2.0 679.0\n", + "3.0 457.0\n", + "4.0 717.0\n", + "5.0 922.0\n", + "6.0 707.0\n", + "7.0 377.0\n", + "8.0 522.0\n", + "9.0 421.0\n", + "10.0 446.0\n", + "11.0 385.0\n", + "12.0 359.0\n", + "13.0 277.0\n", + "14.0 329.0\n", + "15.0 195.0\n", + "16.0 635.0\n", + "17.0 535.0\n", + "18.0 1360.0\n", + "19.0 1283.0\n", + "20.0 1073.0\n", + "21.0 860.0\n", + "22.0 505.0\n", + "23.0 692.0\n", + "24.0 1643.0\n", + "25.0 1451.0\n", + "26.0 1897.0\n", + "27.0 1904.0\n", + "28.0 1043.0\n", + "29.0 1020.0\n", + "30.0 555.0\n", + " ... \n", + "62.0 356.0\n", + "63.0 160.0\n", + "64.0 1827.0\n", + "65.0 1857.0\n", + "66.0 795.0\n", + "67.0 1414.0\n", + "68.0 1618.0\n", + "69.0 496.0\n", + "70.0 792.0\n", + "71.0 1210.0\n", + "72.0 973.0\n", + "73.0 200.0\n", + "74.0 91.0\n", + "75.0 372.0\n", + "76.0 564.0\n", + "77.0 280.0\n", + "78.0 945.0\n", + "79.0 740.0\n", + "80.0 443.0\n", + "81.0 439.0\n", + "82.0 740.0\n", + "83.0 852.0\n", + "84.0 1667.0\n", + "85.0 414.0\n", + "86.0 910.0\n", + "87.0 917.0\n", + "88.0 996.0\n", + "89.0 1089.0\n", + "90.0 999.0\n", + "91.0 713.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_pres.groupby(['PrecNo']).Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/week3/data/~$ter_registration_list_documentation.doc b/week3/data/~$ter_registration_list_documentation.doc new file mode 100644 index 0000000..0bbd263 Binary files /dev/null and b/week3/data/~$ter_registration_list_documentation.doc differ diff --git a/week3/josemg_pset2.ipynb b/week3/josemg_pset2.ipynb new file mode 100644 index 0000000..288fd22 --- /dev/null +++ b/week3/josemg_pset2.ipynb @@ -0,0 +1,3200 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problem Set 2: Intro to Pandas" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 1\n", + "\n", + "In this problem set, we want to determine if we can use voter registrations as a proxy for votes cast. Because who you vote for on an individual basis is not recorded, we would like to see if the numbers for those registered in a precinct as Republican or Democrate actually reflect the results of the election based on the outcome. We'll continue our analysis of Centre County, Pennsylvania, and we are going to use Pandas, Numpy, and Matplotlib as our tools to explore the data.\n", + "\n", + "\n", + "Building off the in class example, first a short example will introduce us to the dataset, some data wrangling functions of Pandas, and a few plots with Matplotlib.\n", + "\n", + "\n", + "\n", + "Throughout the exercises we will be continuously using Pandas and some of its merging functionality to join the numerous OD files available. We will be building exploratory data visualizations, finding urban patterns and locating divergent areas within the dataset. Some useful documentation for merging data with Pandas can be found at:\n", + "\n", + "\n", + "http://pandas.pydata.org/pandas-docs/stable/merging.html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, lets install our libraries." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "from itertools import cycle, islice\n", + "\n", + "# This line lets us plot on our ipython notebook\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let's open up one of the files. Let's look at the voter registrations, this is the same as we did in the inclass.\n", + "\n", + "**Problem 1: Load CENTRE_FVE_20170123.csv into Pandas as a data frame called 'df_voters'.**" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
12345678910...144145146147148149150151152153
0002013865-14NaNMILLSJAMESARTHURNaNM2/7/6510/1/00A...NaNABRNaNNaNNaNNaNNaNCENTRENaN
1002020582-14NaNTERRYCHARLESDNaNU9/16/769/1/02I...NaNNaNNaNNaNNaNAPDNaNCENTRENaN
2002287451-14NaNMURRELLRICHARDLNaNM8/11/5010/1/72A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
3002365541-14NaNMILLSJOYCEELLENNaNF5/6/6910/1/00A...NaNAPRNaNNaNNaNNaNNaNCENTRENaN
4002370224-14NaNFENTONCASEYJAMESNaNM11/22/833/1/02A...NaNAPDNaNNaNNaNNaN5707687675CENTRENaN
5002572852-14NaNMURRELLSUSANLNaNF12/16/4910/1/94A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
6004529096-14NaNHAIRSTEVENMNaNM12/11/7912/21/99A...NaNAPRNaNNaNNaNNaNNaNCENTRENaN
7005138406-14NaNBROOKSHARRYCNaNM3/19/501/1/01A...RAPRNaNNaNAPRNaNCENTRENaN
8005163451-14NaNBROOKSDEBRALOUISENaNF5/22/513/15/91A...RAPRNaNNaNAPRNaNCENTRENaN
9005194526-14NaNGENSIMOREGARYDAVIDNaNM3/6/685/22/96A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
10005881492-14NaNGRAHAMKATHRYNLEENaNF2/12/478/29/96A...NaNNaNNaNNaNNaNNaNNaN8145065538CENTRENaN
11007026230-14NaNSCHNEIDERWALTERGNaNM5/29/711/31/92A...RAPRAPRNaNNaNNaNCENTRENaN
12007094976-14NaNMURRAYRACHAELRNaNU6/19/765/16/00A...NaNNaNNaNNaNNaNNaNNaN6105098485CENTRENaN
13007376473-14NaNOCKERROSALIEJEANNaNF3/10/587/5/02A...NaNAPDNaNNaNAPD8147691906CENTRENaN
14007398108-14NaNOCKERJEANENaNF4/16/299/4/62A...NaNAPDNaNNaNNaNNaNNaNCENTRENaN
15009621382-14NaNMACHIKASALEXANDRAMNaNF3/2/876/16/05A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
16009878128-14NaNBRUNGARDLARACNaNF3/2/833/18/04A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
17010437417-14NaNRANKINLUCASROBERTNaNM1/31/804/21/98A...RAPRAPRAPR8143550831CENTRENaN
18010464969-14NaNSHENKCOLBYRYANNaNM9/29/739/4/97A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
19010573042-14NaNSTEPHENSERINLNaNF12/13/747/3/02A...NaNAPDAPDAPDNaNCENTRENaN
20010634062-14NaNSTEVERSHEILAMNaNF11/1/6610/9/84A...NaNAPNFNaNNaNNaNNaN6108446630CENTRENaN
21010849083-14NaNSMITHANNETTELNaNF3/2/458/28/68A...DAPDAPDAPD3530656CENTRENaN
22010849366-14NaNMENNAFRANKLINMNaNU1/13/508/28/76A...NaNAPDNaNNaNAPD3559388CENTRENaN
23010855262-14NaNPROVANDAVIDANaNU1/16/523/29/76A...DAPDAPDAPD3559067CENTRENaN
24010857411-14NaNWALKERRALPHENaNU3/15/412/27/64A...RAPRAPRAPRNaNCENTRENaN
25010858336-14NaNNASTASEELIZABETHENaNU11/18/252/13/47A...DAPDNaNNaNNaNNaN3553298CENTRENaN
26010858340-14NaNBEIGHTOLVELMAFNaNU8/2/199/29/47A...NaNABRNaNNaNNaNNaNNaNCENTRENaN
27010858347-14NaNBONFATTOMARYMNaNU4/19/279/11/48A...RAPRAPRAPRNaNCENTRENaN
28010858364-14NaNMANEYDENNISCNaNU9/8/279/11/52I...NaNNaNNaNNaNNaNAPR3553569CENTRENaN
29010858367-14NaNRHOADSDALEFNaNU6/10/289/12/52A...DAPDNaNNaNAPDNaNCENTRENaN
..................................................................
123413108229919-14NaNMISHRASONIKANaNNaNF2/22/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123414108245924-14NaNPECKYNOCHRISTOPHERRNaNNaN11/10/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123415108251099-14NaNAVEZZANOKATHERINEGNaNNaN9/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123416108251824-14NaNTERRERIRONALDCJRNaN12/4/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123417108262483-14NaNMADIASSTEVENPNaNNaN4/2/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123418108262546-14NaNSACCONICOLETTEDNaNNaN5/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123419108263616-14NaNSKAVERYCHANTELLENICOLENaNF12/29/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709005611CENTRENaN
123420108266993-14NaNFROMSTEINELISHAMNaNNaN10/10/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123421108268621-14NaNMCGARRIGALEMILYRNaNNaN4/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123422108268872-14NaNFELBERELINaNNaNNaN4/3/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN2036045055CENTRENaN
123423108268974-14NaNNEWCOMBMICHAELFIIINaN2/11/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN2034614023CENTRENaN
123424108272412-14NaNCOLONYKAYLEYRENEENaNF8/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123425108273735-14NaNMUIRRACHAELNaNNaNF10/26/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709034112CENTRENaN
123426108281100-14NaNBREENMAURAPNaNF1/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123427108281392-14NaNMENZELMEGANANNNaNF4/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN5704179068CENTRENaN
123428108281516-14NaNCOLONERICANNaNF9/18/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709055297CENTRENaN
123429108283090-14NaNSHAHIDAIMANaNNaNF9/19/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN9546629236CENTRENaN
123430108283218-14NaNCOPEZACHARYNaNNaNM1/22/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN6306312989CENTRENaN
123431108286601-14NaNLANDISJODYJEANNaNF7/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN5704368864CENTRENaN
123432108286706-14NaNZARROABIGAILHAYESNaNF9/30/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123433108288642-14NaNBUTLERJULIAKNaNNaN2/19/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123434108290220-14NaNMCGOVERNJAMESJIVM9/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN9732242161CENTRENaN
123435108290356-14NaNGORDONMARLEYRNaNF12/31/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN7247775506CENTRENaN
123436108290630-14NaNBRUGGEMEIERGRACENaNNaNF11/21/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN6309359977CENTRENaN
123437108290772-14NaNFEUERBERGANDRESNaNNaNNaN4/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123438108303668-14NaNFERENCIHANNAHCNaNNaN4/1/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123439108307850-14NaNNEILANDKAYLANaNNaNNaN10/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN6315594571CENTRENaN
123440108318654-14NaNFLYNNRILEYGNaNNaN11/24/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123441108325614-14NaNSOLIMANFAROUKNaNNaNNaN7/1/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123442108325661-14NaNCAUTELAALEXANDERNaNNaNNaN4/16/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
\n", + "

123443 rows × 153 columns

\n", + "
" + ], + "text/plain": [ + " 1 2 3 4 5 6 7 \\\n", + "0 002013865-14 NaN MILLS JAMES ARTHUR NaN M \n", + "1 002020582-14 NaN TERRY CHARLES D NaN U \n", + "2 002287451-14 NaN MURRELL RICHARD L NaN M \n", + "3 002365541-14 NaN MILLS JOYCE ELLEN NaN F \n", + "4 002370224-14 NaN FENTON CASEY JAMES NaN M \n", + "5 002572852-14 NaN MURRELL SUSAN L NaN F \n", + "6 004529096-14 NaN HAIR STEVEN M NaN M \n", + "7 005138406-14 NaN BROOKS HARRY C NaN M \n", + "8 005163451-14 NaN BROOKS DEBRA LOUISE NaN F \n", + "9 005194526-14 NaN GENSIMORE GARY DAVID NaN M \n", + "10 005881492-14 NaN GRAHAM KATHRYN LEE NaN F \n", + "11 007026230-14 NaN SCHNEIDER WALTER G NaN M \n", + "12 007094976-14 NaN MURRAY RACHAEL R NaN U \n", + "13 007376473-14 NaN OCKER ROSALIE JEAN NaN F \n", + "14 007398108-14 NaN OCKER JEAN E NaN F \n", + "15 009621382-14 NaN MACHIKAS ALEXANDRA M NaN F \n", + "16 009878128-14 NaN BRUNGARD LARA C NaN F \n", + "17 010437417-14 NaN RANKIN LUCAS ROBERT NaN M \n", + "18 010464969-14 NaN SHENK COLBY RYAN NaN M \n", + "19 010573042-14 NaN STEPHENS ERIN L NaN F \n", + "20 010634062-14 NaN STEVER SHEILA M NaN F \n", + "21 010849083-14 NaN SMITH ANNETTE L NaN F \n", + "22 010849366-14 NaN MENNA FRANKLIN M NaN U \n", + "23 010855262-14 NaN PROVAN DAVID A NaN U \n", + "24 010857411-14 NaN WALKER RALPH E NaN U \n", + "25 010858336-14 NaN NASTASE ELIZABETH E NaN U \n", + "26 010858340-14 NaN BEIGHTOL VELMA F NaN U \n", + "27 010858347-14 NaN BONFATTO MARY M NaN U \n", + "28 010858364-14 NaN MANEY DENNIS C NaN U \n", + "29 010858367-14 NaN RHOADS DALE F NaN U \n", + "... ... ... ... ... ... ... ... \n", + "123413 108229919-14 NaN MISHRA SONIKA NaN NaN F \n", + "123414 108245924-14 NaN PECKYNO CHRISTOPHER R NaN NaN \n", + "123415 108251099-14 NaN AVEZZANO KATHERINE G NaN NaN \n", + "123416 108251824-14 NaN TERRERI RONALD C JR NaN \n", + "123417 108262483-14 NaN MADIAS STEVEN P NaN NaN \n", + "123418 108262546-14 NaN SACCO NICOLETTE D NaN NaN \n", + "123419 108263616-14 NaN SKAVERY CHANTELLE NICOLE NaN F \n", + "123420 108266993-14 NaN FROMSTEIN ELISHA M NaN NaN \n", + "123421 108268621-14 NaN MCGARRIGAL EMILY R NaN NaN \n", + "123422 108268872-14 NaN FELBER ELI NaN NaN NaN \n", + "123423 108268974-14 NaN NEWCOMB MICHAEL F III NaN \n", + "123424 108272412-14 NaN COLONY KAYLEY RENEE NaN F \n", + "123425 108273735-14 NaN MUIR RACHAEL NaN NaN F \n", + "123426 108281100-14 NaN BREEN MAURA P NaN F \n", + "123427 108281392-14 NaN MENZEL MEGAN ANN NaN F \n", + "123428 108281516-14 NaN COLON ERICA N NaN F \n", + "123429 108283090-14 NaN SHAHID AIMA NaN NaN F \n", + "123430 108283218-14 NaN COPE ZACHARY NaN NaN M \n", + "123431 108286601-14 NaN LANDIS JODY JEAN NaN F \n", + "123432 108286706-14 NaN ZARRO ABIGAIL HAYES NaN F \n", + "123433 108288642-14 NaN BUTLER JULIA K NaN NaN \n", + "123434 108290220-14 NaN MCGOVERN JAMES J IV M \n", + "123435 108290356-14 NaN GORDON MARLEY R NaN F \n", + "123436 108290630-14 NaN BRUGGEMEIER GRACE NaN NaN F \n", + "123437 108290772-14 NaN FEUERBERG ANDRES NaN NaN NaN \n", + "123438 108303668-14 NaN FERENCI HANNAH C NaN NaN \n", + "123439 108307850-14 NaN NEILAND KAYLA NaN NaN NaN \n", + "123440 108318654-14 NaN FLYNN RILEY G NaN NaN \n", + "123441 108325614-14 NaN SOLIMAN FAROUK NaN NaN NaN \n", + "123442 108325661-14 NaN CAUTELA ALEXANDER NaN NaN NaN \n", + "\n", + " 8 9 10 ... 144 145 146 147 148 149 150 \\\n", + "0 2/7/65 10/1/00 A ... NaN AB R NaN NaN NaN NaN \n", + "1 9/16/76 9/1/02 I ... NaN NaN NaN NaN NaN AP D \n", + "2 8/11/50 10/1/72 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "3 5/6/69 10/1/00 A ... NaN AP R NaN NaN NaN NaN \n", + "4 11/22/83 3/1/02 A ... NaN AP D NaN NaN NaN NaN \n", + "5 12/16/49 10/1/94 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "6 12/11/79 12/21/99 A ... NaN AP R NaN NaN NaN NaN \n", + "7 3/19/50 1/1/01 A ... R AP R NaN NaN AP R \n", + "8 5/22/51 3/15/91 A ... R AP R NaN NaN AP R \n", + "9 3/6/68 5/22/96 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "10 2/12/47 8/29/96 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "11 5/29/71 1/31/92 A ... R AP R AP R NaN NaN \n", + "12 6/19/76 5/16/00 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "13 3/10/58 7/5/02 A ... NaN AP D NaN NaN AP D \n", + "14 4/16/29 9/4/62 A ... NaN AP D NaN NaN NaN NaN \n", + "15 3/2/87 6/16/05 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "16 3/2/83 3/18/04 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "17 1/31/80 4/21/98 A ... R AP R AP R AP R \n", + "18 9/29/73 9/4/97 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "19 12/13/74 7/3/02 A ... NaN AP D AP D AP D \n", + "20 11/1/66 10/9/84 A ... NaN AP NF NaN NaN NaN NaN \n", + "21 3/2/45 8/28/68 A ... D AP D AP D AP D \n", + "22 1/13/50 8/28/76 A ... NaN AP D NaN NaN AP D \n", + "23 1/16/52 3/29/76 A ... D AP D AP D AP D \n", + "24 3/15/41 2/27/64 A ... R AP R AP R AP R \n", + "25 11/18/25 2/13/47 A ... D AP D NaN NaN NaN NaN \n", + "26 8/2/19 9/29/47 A ... NaN AB R NaN NaN NaN NaN \n", + "27 4/19/27 9/11/48 A ... R AP R AP R AP R \n", + "28 9/8/27 9/11/52 I ... NaN NaN NaN NaN NaN AP R \n", + "29 6/10/28 9/12/52 A ... D AP D NaN NaN AP D \n", + "... ... ... .. ... ... ... ... ... ... ... ... \n", + "123413 2/22/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123414 11/10/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123415 9/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123416 12/4/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123417 4/2/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123418 5/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123419 12/29/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123420 10/10/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123421 4/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123422 4/3/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123423 2/11/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123424 8/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123425 10/26/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123426 1/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123427 4/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123428 9/18/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123429 9/19/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123430 1/22/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123431 7/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123432 9/30/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123433 2/19/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123434 9/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123435 12/31/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123436 11/21/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123437 4/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123438 4/1/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123439 10/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123440 11/24/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123441 7/1/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123442 4/16/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "\n", + " 151 152 153 \n", + "0 NaN CENTRE NaN \n", + "1 NaN CENTRE NaN \n", + "2 NaN CENTRE NaN \n", + "3 NaN CENTRE NaN \n", + "4 5707687675 CENTRE NaN \n", + "5 NaN CENTRE NaN \n", + "6 NaN CENTRE NaN \n", + "7 NaN CENTRE NaN \n", + "8 NaN CENTRE NaN \n", + "9 NaN CENTRE NaN \n", + "10 8145065538 CENTRE NaN \n", + "11 NaN CENTRE NaN \n", + "12 6105098485 CENTRE NaN \n", + "13 8147691906 CENTRE NaN \n", + "14 NaN CENTRE NaN \n", + "15 NaN CENTRE NaN \n", + "16 NaN CENTRE NaN \n", + "17 8143550831 CENTRE NaN \n", + "18 NaN CENTRE NaN \n", + "19 NaN CENTRE NaN \n", + "20 6108446630 CENTRE NaN \n", + "21 3530656 CENTRE NaN \n", + "22 3559388 CENTRE NaN \n", + "23 3559067 CENTRE NaN \n", + "24 NaN CENTRE NaN \n", + "25 3553298 CENTRE NaN \n", + "26 NaN CENTRE NaN \n", + "27 NaN CENTRE NaN \n", + "28 3553569 CENTRE NaN \n", + "29 NaN CENTRE NaN \n", + "... ... ... .. \n", + "123413 NaN CENTRE NaN \n", + "123414 NaN CENTRE NaN \n", + "123415 NaN CENTRE NaN \n", + "123416 NaN CENTRE NaN \n", + "123417 NaN CENTRE NaN \n", + "123418 NaN CENTRE NaN \n", + "123419 5709005611 CENTRE NaN \n", + "123420 NaN CENTRE NaN \n", + "123421 NaN CENTRE NaN \n", + "123422 2036045055 CENTRE NaN \n", + "123423 2034614023 CENTRE NaN \n", + "123424 NaN CENTRE NaN \n", + "123425 5709034112 CENTRE NaN \n", + "123426 NaN CENTRE NaN \n", + "123427 5704179068 CENTRE NaN \n", + "123428 5709055297 CENTRE NaN \n", + "123429 9546629236 CENTRE NaN \n", + "123430 6306312989 CENTRE NaN \n", + "123431 5704368864 CENTRE NaN \n", + "123432 NaN CENTRE NaN \n", + "123433 NaN CENTRE NaN \n", + "123434 9732242161 CENTRE NaN \n", + "123435 7247775506 CENTRE NaN \n", + "123436 6309359977 CENTRE NaN \n", + "123437 NaN CENTRE NaN \n", + "123438 NaN CENTRE NaN \n", + "123439 6315594571 CENTRE NaN \n", + "123440 NaN CENTRE NaN \n", + "123441 NaN CENTRE NaN \n", + "123442 NaN CENTRE NaN \n", + "\n", + "[123443 rows x 153 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Import df_voters\n", + "df_voters = pd.read_table('data/CENTRE_FVE_20170123.csv', sep=',', low_memory=False)\n", + "df_voters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To start us off, we need to determine party affiliations for each of those registered. Reading in the metadata, this is held in column 12. Let's take a look at unique party registrations in column 12.\n", + "\n", + "**The data documentation file is located in your data folder. It will describe the fields.**" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['R', 'D', 'NF', 'LN', 'I', 'NON', 'AT', 'GR', 'NO', 'OTH', 'S',\n", + " 'TP', 'AE', 'NOP', 'NST', 'SEC', 'UPP', 'GW', 'INDE', 'C', 'CT',\n", + " 'DNV', 'AI', 'PR', 'INDd', 'IND', 'ID', 'WH', 'GP', 'PL', 'MW',\n", + " 'AM', 'UNA', nan, 'LI', 'IAPP', 'THPY', 'IR', 'UNK', 'NTS', 'DS',\n", + " 'SAME', 'IT', 'ICO', 'BM', 'M', 'NS', 'JD', 'LT', 'BH', 'AH', 'MZ',\n", + " 'PG', 'PP', 'NL', 'UND', 'N', 'FD', 'IDK', 'RF', 'AYE', 'AD',\n", + " 'PPOA', 'MA', 'MM', 'OLAP', 'CNT', 'AF', 'CON', 'GT', 'FR', 'AC',\n", + " 'DTP', 'CH', 'SOD', 'IK', 'PZ', 'PIR', 'H', 'FE', 'COL', 'BP', 'CB',\n", + " 'AL', 'CM', 'OP', 'IA', 'L', 'TPP', 'ACO', 'COI', 'MAJA', 'KEG'], dtype=object)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# View the unique values in column 12\n", + "df_voters['12'].unique()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "There are quite a few, and its pretty messy. Let's to explore MatPlotLib, let's make some charts to see which parties have the highest subscriptions and graph it in a bar chart.\n", + "\n", + "**Group our data so we can plot. Find the number of subscribers to each party and sum them in a table. Call your new data frame 'df_summed', name the columns 'PARTY' and 'NUMBER'**" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NUMBER
PARTY
D51162
R47668
NF17608
NON2814
I2006
LN805
OTH368
GR264
INDE183
NO175
NOP137
IND31
C24
CT20
S11
LI10
IR10
ID9
UNK7
NTS6
RF5
UND5
M5
UNA5
AD4
GP4
AM4
WH4
NS3
MW3
......
AH1
AF1
TPP1
ACO1
OLAP1
FE1
DTP1
MM1
MAJA1
MA1
OP1
LT1
PG1
PIR1
L1
KEG1
N1
UPP1
PL1
IK1
PPOA1
ICO1
IA1
H1
GW1
GT1
NST1
SAME1
FR1
PZ1
\n", + "

92 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " NUMBER\n", + "PARTY \n", + "D 51162\n", + "R 47668\n", + "NF 17608\n", + "NON 2814\n", + "I 2006\n", + "LN 805\n", + "OTH 368\n", + "GR 264\n", + "INDE 183\n", + "NO 175\n", + "NOP 137\n", + "IND 31\n", + "C 24\n", + "CT 20\n", + "S 11\n", + "LI 10\n", + "IR 10\n", + "ID 9\n", + "UNK 7\n", + "NTS 6\n", + "RF 5\n", + "UND 5\n", + "M 5\n", + "UNA 5\n", + "AD 4\n", + "GP 4\n", + "AM 4\n", + "WH 4\n", + "NS 3\n", + "MW 3\n", + "... ...\n", + "AH 1\n", + "AF 1\n", + "TPP 1\n", + "ACO 1\n", + "OLAP 1\n", + "FE 1\n", + "DTP 1\n", + "MM 1\n", + "MAJA 1\n", + "MA 1\n", + "OP 1\n", + "LT 1\n", + "PG 1\n", + "PIR 1\n", + "L 1\n", + "KEG 1\n", + "N 1\n", + "UPP 1\n", + "PL 1\n", + "IK 1\n", + "PPOA 1\n", + "ICO 1\n", + "IA 1\n", + "H 1\n", + "GW 1\n", + "GT 1\n", + "NST 1\n", + "SAME 1\n", + "FR 1\n", + "PZ 1\n", + "\n", + "[92 rows x 1 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Your code here\n", + "grouped = df_voters.groupby('12') # Group by party registrations\n", + "summed = grouped['12'].count() # Get counts of each group\n", + "summed.sort_values(inplace=True, ascending=False)\n", + "df_summed = summed.to_frame()\n", + "df_summed.columns = ['NUMBER']\n", + "df_summed.index.names = ['PARTY']\n", + "df_summed" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's make a bar chart to do some initial exploration of the data. To get a simple exploratory plot, we use Matplotlib. Matplotlib is integrated into Pandas, and you can create plots from data frames. For more reading, check out the Matplotlib documentation at [Pandas Plotting Documentation](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html) and the [Matplotlib Documentation](http://matplotlib.org/2.0.0/contents.html).\n", + "\n", + "Using **df_summed** that you just created, the following will give you a basic bar chart of your dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEcCAYAAAAsv3j+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXnYHUWV/z8nC0mQRRIChIC8gYBKWAJERHEB40hQFIZh\ndQEcIMwPGGURDTozgAMjDCKKLIqGTRlDVBQUQTAIIhEwhEgggAQCJIGQlSAhe87vj3M6t9/b992S\nN2Th+3mefm53dVV1dXVVfWs53dfcHSGEEKJMl7WdACGEEOseEgchhBAVJA5CCCEqSByEEEJUkDgI\nIYSoIHEQQghRQeIghBCigsRBCCFEBYmDEEKICt3WdgJWlS233NKbmprWdjKEEGK94tFHH53t7n3b\n8rfeikNTUxPjxo1b28kQQoj1CjN7sT3+NK0khBCigsRBCCFEBYmDEEKICuvtmoMQYsNn6dKlTJs2\njUWLFq3tpKx39OzZk+22247u3buvUniJgxBinWXatGlsuummNDU1YWZrOznrDe7OnDlzmDZtGgMG\nDFilODStJIRYZ1m0aBF9+vSRMHQQM6NPnz6rNeKSOAgh1mkkDKvG6uabxEEIIUQFrTkIIdYbmkbc\n0anxvXDxp9r0Y2acddZZXHbZZQB8+9vf5o033uD888/nhBNO4JBDDuGII45Y6X+TTTbhjTfe4IUX\nXmDAgAF84xvf4MILLwRg9uzZ9OvXj1NOOYUrr7yS888/nx/96Ef07duXRYsWceCBB3LVVVfRpUsX\nTjjhBO6//34233xzADbeeGPGjh3LDTfcwDnnnEP//v1ZtGgRp5xyCmeeeWan5gus5yOHphF3dHph\nEUKIMj169ODWW29l9uzZHQ47YMAA7rij1kb9/Oc/Z9CgQc38nHnmmUyYMIFJkyYxceJE7r///pXn\nLr30UiZMmMCECRMYO3bsSvejjz6aCRMm8OCDD3LRRRcxderUVbiz1mmXOJjZC2Y20cwmmNm4dOtt\nZveY2bP5u0XJ/7lmNtnMnjGzg0ru+2Q8k83sCstJMTPrYWa3pPvDZtbUubcphBCrRrdu3Rg+fDiX\nX355h8NuvPHGvPe97135qZ9bbrmFo446qqHfJUuWsGjRIrbYYouG5xvRp08fBg4cyCuvvNLhtLVF\nR0YOB7r7YHcfkscjgDHuvjMwJo8xs12BY4BBwDDgajPrmmGuAU4Gds5tWLqfCMxz94HA5cAlq35L\nQgjRuZx22mncfPPNzJ8/v8NhjznmGEaNGsXUqVPp2rUr2267bbPzl19+OYMHD6Zfv37ssssuDB48\neOW5c845h8GDBzN48GA+97nPVeJ+6aWXWLRoEXvssUfHb6oNVmda6VDgxty/ETis5D7K3Re7+xRg\nMrCvmfUDNnP3h9zdgZvqwhRx/QIYajJREEKsI2y22WYcd9xxXHHFFc3cGzVT9W7Dhg3jnnvuYdSo\nURx99NEV/8W00syZM1mwYAGjRo1aea48rXTzzTevdL/lllvYY489GDhwIKeeeio9e/Zc3Vus0F5x\ncOAPZvaomQ1Pt63dvRjLzAC2zv3+QHkCbFq69c/9evdmYdx9GTAf6FOfCDMbbmbjzGzcrFmz2pl0\nIYRYfc444wxGjhzJggULVrr16dOHefPmrTyeO3cuW265ZbNwG220Efvssw+XXXZZs4Xrerp3786w\nYcP405/+1GZajj76aB5//HHGjh3LiBEjmDFjxircUeu0Vxw+5O6DgYOB08zsI+WTORLwzk5cPe5+\nrbsPcfchffu2+TlyIYToNHr37s1RRx3FyJEjV7odcMAB3HLLLSxZsgSAG264gQMPPLAS9uyzz+aS\nSy6hd+/eLcbv7jz44IPstNNO7U7TkCFD+MIXvsD3vve9DtxJ+2iXKau7T8/fmWb2K2Bf4FUz6+fu\nr+SU0cz0Ph3YvhR8u3Sbnvv17uUw08ysG7A5MGfVbkkIsaHSHtPTNcnZZ5/NlVdeufL4kEMO4dFH\nH2Wfffaha9eu7LTTTvzgBz+ohBs0aFDFSqng8ssv56c//SlLly5ljz324NRTT1157pxzzllpBgvw\nyCOPVMJ/7WtfY++99+brX/86m2666ercXjMsOv2teDB7B9DF3f+R+/cA3wSGAnPc/WIzGwH0dvev\nmtkg4P8IAdmWWKze2d2Xm9kjwJeAh4HfAd9399+Z2WnA7u7+b2Z2DHC4uzde0k+GDBnisz9+AbD2\nC4wQYs3w1FNP8d73vndtJ2O9pVH+mdmjJcOiFmnPyGFr4Fe5yNIN+D93v8vM/gqMNrMTgReBowDc\n/UkzGw1MApYBp7n78ozrVOAGoBdwZ24AI4GfmNlkYC5h7SSEEGIt0aY4uPvzwJ4N3OcQo4dGYS4C\nLmrgPg7YrYH7IuDIdqRXCCHEW8B6/Ya0EGLDp62pb9GY1c03iYMQYp2lZ8+ezJkzRwLRQYr/c1id\n9x/04T0hxDrLdtttx7Rp09B7TR2n+Ce4VUXiIIRYZ+nevfsq/5OZWD02qGklfaFVCCE6hw1KHIQQ\nQnQOEgchhBAVJA5CCCEqSByEEEJUkDgIIYSoIHEQQghRQeIghBCigsRBCCFEBYmDEEKIChIHIYQQ\nFSQOQgghKkgchBBCVJA4CCGEqCBxEEIIUUHiIIQQooLEQQghRAWJgxBCiAoSByGEEBUkDkIIISpI\nHIQQQlSQOAghhKggcRBCCFFB4iCEEKKCxEEIIUQFiYMQQogKEgchhBAV2i0OZtbVzB4zs9/mcW8z\nu8fMns3fLUp+zzWzyWb2jJkdVHLfx8wm5rkrzMzSvYeZ3ZLuD5tZU+fdohBCiI7SkZHDl4GnSscj\ngDHuvjMwJo8xs12BY4BBwDDgajPrmmGuAU4Gds5tWLqfCMxz94HA5cAlq3Q3QgghOoV2iYOZbQd8\nCvhxyflQ4MbcvxE4rOQ+yt0Xu/sUYDKwr5n1AzZz94fc3YGb6sIUcf0CGFqMKoQQQrz1tHfk8F3g\nq8CKktvW7v5K7s8Ats79/sDUkr9p6dY/9+vdm4Vx92XAfKBPO9MmhBCik2lTHMzsEGCmuz/akp8c\nCXhnJqyFtAw3s3FmNm7WrFlr+nJCCPG2pT0jh/2Bz5jZC8Ao4GNm9lPg1ZwqIn9npv/pwPal8Nul\n2/Tcr3dvFsbMugGbA3PqE+Lu17r7EHcf0rdv33bdoBBCiI7Tpji4+7nuvp27NxELzfe6++eB24Hj\n09vxwG25fztwTFogDSAWnh/JKajXzWy/XE84ri5MEdcReY01PhIRQgjRmG6rEfZiYLSZnQi8CBwF\n4O5PmtloYBKwDDjN3ZdnmFOBG4BewJ25AYwEfmJmk4G5hAgJIYRYS3RIHNz9PuC+3J8DDG3B30XA\nRQ3cxwG7NXBfBBzZkbQIIYRYc+gNaSGEEBUkDkIIISpIHIQQQlSQOAghhKggcRBCCFFB4iCEEKKC\nxEEIIUQFiYMQQogKEgchhBAVJA5CCCEqSByEEEJUkDgIIYSoIHEQQghRQeIghBCigsRBCCFEBYmD\nEEKIChIHIYQQFSQOQgghKkgchBBCVJA4CCGEqCBxEEIIUUHiIIQQooLEQQghRAWJgxBCiAoSByGE\nEBUkDkIIISpIHIQQQlSQOAghhKggcRBCCFFB4iCEEKKCxEEIIUQFiYMQQogKbYqDmfU0s0fM7G9m\n9qSZXZDuvc3sHjN7Nn+3KIU518wmm9kzZnZQyX0fM5uY564wM0v3HmZ2S7o/bGZNnX+rQggh2kt7\nRg6LgY+5+57AYGCYme0HjADGuPvOwJg8xsx2BY4BBgHDgKvNrGvGdQ1wMrBzbsPS/URgnrsPBC4H\nLumEexNCCLGKtCkOHryRh91zc+BQ4MZ0vxE4LPcPBUa5+2J3nwJMBvY1s37AZu7+kLs7cFNdmCKu\nXwBDi1GFEEKIt552rTmYWVczmwDMBO5x94eBrd39lfQyA9g69/sDU0vBp6Vb/9yvd28Wxt2XAfOB\nPg3SMdzMxpnZuFmzZrUn6UIIIVaBdomDuy9398HAdsQoYLe6806MJtYo7n6tuw9x9yF9+/Zd05cT\nQoi3LR2yVnL314A/EmsFr+ZUEfk7M71NB7YvBdsu3abnfr17szBm1g3YHJjTkbQJIYToPNpjrdTX\nzN6Z+72AfwKeBm4Hjk9vxwO35f7twDFpgTSAWHh+JKegXjez/XI94bi6MEVcRwD35mhECCHEWqBb\nO/z0A25Mi6MuwGh3/62Z/QUYbWYnAi8CRwG4+5NmNhqYBCwDTnP35RnXqcANQC/gztwARgI/MbPJ\nwFzC2kkIIcRaok1xcPfHgb0auM8BhrYQ5iLgogbu44DdGrgvAo5sR3qFEEK8BegNaSGEEBUkDkII\nISpIHIQQQlSQOAghhKggcRBCCFFB4iCEEKKCxEEIIUQFiYMQQogKEgchhBAVJA5CCCEqSByEEEJU\nkDgIIYSoIHEQQghRQeIghBCigsRBCCFEBYmDEEKIChIHIYQQFSQOQgghKkgchBBCVJA4CCGEqCBx\nEEIIUUHiIIQQooLEQQghRAWJgxBCiAoSByGEEBUkDkIIISpIHIQQQlSQOAghhKggcRBCCFFB4iCE\nEKKCxEEIIUSFNsXBzLY3sz+a2SQze9LMvpzuvc3sHjN7Nn+3KIU518wmm9kzZnZQyX0fM5uY564w\nM0v3HmZ2S7o/bGZNnX+rQggh2kt7Rg7LgLPdfVdgP+A0M9sVGAGMcfedgTF5TJ47BhgEDAOuNrOu\nGdc1wMnAzrkNS/cTgXnuPhC4HLikE+5NCCHEKtKmOLj7K+4+Pvf/ATwF9AcOBW5MbzcCh+X+ocAo\nd1/s7lOAycC+ZtYP2MzdH3J3B26qC1PE9QtgaDGqEEII8dbToTWHnO7ZC3gY2NrdX8lTM4Ctc78/\nMLUUbFq69c/9evdmYdx9GTAf6NORtAkhhOg82i0OZrYJ8EvgDHd/vXwuRwLeyWlrlIbhZjbOzMbN\nmjVrTV9OCCHetrRLHMysOyEMN7v7ren8ak4Vkb8z0306sH0p+HbpNj33692bhTGzbsDmwJz6dLj7\nte4+xN2H9O3btz1JF0IIsQq0x1rJgJHAU+7+ndKp24Hjc/944LaS+zFpgTSAWHh+JKegXjez/TLO\n4+rCFHEdAdyboxEhhBBrgW7t8LM/8AVgoplNSLevAxcDo83sROBF4CgAd3/SzEYDkwhLp9PcfXmG\nOxW4AegF3JkbhPj8xMwmA3MJaychhBBriTbFwd3/DLRkOTS0hTAXARc1cB8H7NbAfRFwZFtpEUII\n8dagN6SFEEJUkDgIIYSoIHEQQghRQeIghBCigsRBCCFEhQ1WHJpG3EHTiDvWdjKEEGK9ZIMVByGE\nEKuOxEEIIUQFiYMQQogKEgchhBAVJA5CCCEqSByEEEJUkDgIIYSoIHEQQghRQeIghBCigsRBCCFE\nBYmDEEKIChIHIYQQFSQOQgghKkgchBBCVJA4CCGEqCBxEEIIUUHiIIQQooLEQQghRAWJgxBCiAoS\nByGEEBUkDkIIISpIHIQQQlSQOAghhKggcRBCCFFB4iCEEKKCxEEIIUSFNsXBzK4zs5lm9kTJrbeZ\n3WNmz+bvFqVz55rZZDN7xswOKrnvY2YT89wVZmbp3sPMbkn3h82sqXNvUQghREdpz8jhBmBYndsI\nYIy77wyMyWPMbFfgGGBQhrnazLpmmGuAk4GdcyviPBGY5+4DgcuBS1b1ZoQQQnQObYqDu/8JmFvn\nfChwY+7fCBxWch/l7ovdfQowGdjXzPoBm7n7Q+7uwE11YYq4fgEMLUYVQggh1g6ruuawtbu/kvsz\ngK1zvz8wteRvWrr1z/1692Zh3H0ZMB/o0+iiZjbczMaZ2bhZs2atYtKFEEK0xWovSOdIwDshLe25\n1rXuPsTdh/Tt2/etuKQQQrwtWVVxeDWnisjfmek+Hdi+5G+7dJue+/XuzcKYWTdgc2DOKqZLCCFE\nJ7Cq4nA7cHzuHw/cVnI/Ji2QBhALz4/kFNTrZrZfriccVxemiOsI4N4cjQghhFhLdGvLg5n9DDgA\n2NLMpgHnARcDo83sROBF4CgAd3/SzEYDk4BlwGnuvjyjOpWwfOoF3JkbwEjgJ2Y2mVj4PqZT7kwI\nIcQq06Y4uPuxLZwa2oL/i4CLGriPA3Zr4L4IOLKtdAghhHjr0BvSQgghKkgchBBCVJA4CCGEqCBx\nEEIIUUHiIIQQooLEQQghRAWJgxBCiAoSByGEEBUkDkIIISpIHIQQQlSQOAghhKggcRBCCFFB4iCE\nEKKCxEEIIUQFiYMQQogKEgchhBAVJA5CCCEqSByEEEJUkDgIIYSoIHEQQghRQeIghBCigsRBCCFE\nBYmDEEKICm8bcWgacQdNI+5Y28kQQoj1greNOAghhGg/EgchhBAVJA5CCCEqvG3FQesPQgjRMm9b\ncRBCCNEyEgchhBAVJA5CCCEqrDPiYGbDzOwZM5tsZiPWdnqEEOLtzDohDmbWFbgKOBjYFTjWzHZ9\nq66vF+SEEKI564Q4APsCk939eXdfAowCDl1biZFYCCHe7qwr4tAfmFo6npZua516oWjtWKIihNhQ\nMHdf22nAzI4Ahrn7SXn8BeD97n56nb/hwPA8fDfwDLAlMLvkrXy8qufWBb/revo2pHtR+nQvb6f0\n7eDufWkLd1/rG/AB4Pel43OBc9sZdlxLx6t6bl3wu66nb0O6F6VP9/J2TF9b27oyrfRXYGczG2Bm\nGwHHALev5TQJIcTblm5rOwEA7r7MzE4Hfg90Ba5z9yfXcrKEEOJtyzohDgDu/jvgd6sQ9NpWjlf1\n3Lrgd11PX0f8Kn0bdvo64lfpW3fS1yrrxIK0EEKIdYt1Zc1BCCHEOoTEQQghRAWJwxrCzAaa2f4N\n3Pc3s8PMbJuS23FmdpuZXWFmvd/alK45zKynmZ1hZlea2Slm9pascZnZFm/BNQ5Z09dY31iLz7v7\nW3GdtxvrrTiYWV8z61s6/p/S/ifM7HPtjOfw1rY6v+/K363M7AIzu8vMXjazmWZ2q5n1N7NuZvZp\nwhT3cDM7JN3uzmheB24AlmRcHwEuBm4C5tPGopGZfaKVc0Oygu5lZlu15/4bxLG9mZ1jZoPN7Agz\ne28Hw29hZt3NbC/iMyhDgInEd7Muq/N7vJmNN7MFuT1hZseVzm9sZnvks77bzN5tZmfms/lxXVxF\nw3QD8ESjhsnMupjZ50r39tXSuf3r/J5eH76OW83sh2b2zgbXeVdrW53fZuW4QVyHt3Quzx9mZl8x\ns4PM7Ckz+w8z26nOz+fL91kqi+25T8zspfz9lzr3+jy+kdaf91Zm9l0z+62ZfasssGnGvrLMmdkl\nbdRNM7OhZjYSmFEK9z4z+39t3VML97l/af+MDobdvKWwZjYkf3ua2ZGtxHGQmZ1TOr6h7vwNpf2P\nlfYH1Pk73MwOKh3Xl7kW09DM3/q0IG1mBpwHnE4ImwHdgSeB3sAuee7bRCM8MYN+pC6qrnXHywDP\nuJywmtoYmAHMBK4DRhAF/hDg/4gG/svATzOOzwJPA32AV4D3EI3jXsA2wBJ33z3vY6G798r9q4CB\nhBkvwNnAd4DBwObA0+7+VTP7DvF2+DuAN4GngCuADwLfJz43cl1ef3Lmx0TgZ5nOdwM9gDeA54lP\nlBRsBAwCtsj7dmAp8BiwNTAl85hMVz3dgAeAV4kXGDcDFmT6v+Lul2dD8gjw5wzznozrAWAW8HFg\nOrAJ8F13/4mZ/Qm4Bvg0sCfQD7iZ+DhjX+Bx4Dh3X2FmtwC9iBcqp+f1HyNE+tPA7sDexLM24rkO\nBO5z96FmNt7d985nciBwK/BypvUp4ErgXzJvAL6Y8e+e97U18Kc899m6/OlJlMdNcvsKcBCwP1EW\nuwDLgauBTwE7EmXpJOCH7r63mZ0IbAp8Dfi6u19vZlcTz20sMBRoAkYCRwFzMv0TMp7vZFrOyt/v\nuPt3yvfdCDObSJSdp4lnVrxxa0RZK76g/M/AQHfvl+GK5/0NokzsSpSLV4AfZX591t37pP+XibL5\nKPB+YEDm74TS9SCe+4DMi97A3YQgvZ7pnA7MLT3LQ4Ht3P2qPH4486kbcGGWzUOArxPl/2vufnsK\n4jTi2UHUgf3Tz0zgV+7+pVI+/RX4hLvPM7OX3L3oSA4DfkKU1Q8T5ecfRH26pMg3ou3aOqN7OfPp\n3cD27v6PjKtcRiv7ZvYBoh34L6JcPJr5McTdty+ltdVnvpKOvDG3tjeiYN8DDMjj24BfZEa/CdwH\n3E9U5n0abKcBLwJ/rYt3E6LSLSZeyHuKaFT/mg9pBtHAPgY8BOyV4d4sxTGYaFDPyONnS+e+lAXi\n8NyWAkfk/jRgDCF65xEN7GNEA/5A/o4FFgH/kXFNzEL1aIb/LFF4LwFey2tuk/fzGHAg0VDPBv6e\nYf4X+B+iAr8GzCMa6c3z/g/O+P8fsAIYTzQEt5a2efk7s5T+M/IZnUA0UAvznm4jCuqSjOulfJ7H\n5zYlf5uAh/IeJubvE3mtOzPPjsrneHfmzRHAc8T3uQ4hBGEOcAowOu/naeCXhGicBfw70RjNzGs8\nlr+fyrS8SAjSYOBf8zlcVkrvnPw9lyh7TjTwi/Oejy9tdxFlaQ4xOrwr03t5Xmd4PotF+Yw2Af4J\neBgYn+naiGhgphBl/OfAJKBrnt+Y5uVxP+Av+WwX5+95RHmeS3RcDs/7Ory81dWNHfK57UA0Wt/J\ndI8kykXx3F8GXq4L+yIwDvgYIQwTc/+RvOdyehcCG+d+n8yLURn+P4lOwrNEXTkpn8vc9Dc+821w\n5vP4UrwPEg1scTw38++q3P9plo3DgN8AH0x/U4l6fwPRGXwT+CFwPlFPltXd68mEkPXNsB/NtC7L\n57SUqFObAdsSswXziXbhzkzLCxnPt/L5LiLKzN+JcjwFOJao7y8QnZ29M/03Umu3FmTa5xP15ti6\ntD7WrvZ2bTf4HRSHx4AtS8dF49GXaHT+QTTy04gGoNiuBP5A9FoPLoV/Zz7s54ELgb/lg+yZ57cg\nKnxT6fqTSuEXESOD4iGtKB3fBZxc8ruc6Nn/OQvCq0QDOYd46Q+iB/Eg0Rh2SbevZAEbXIrrC0RF\nex9R8Z8mGtU7gBfqrtlUOu4KDCME1YnK+wVC8JqA59Nf0SA15bkJwL8BfyQa/pMy74oG9bHSNe4A\nTsj9FZmGhblf9JoW5X45rmdKcUzK38fz9xmicv0BuD63ufk7iagIS4D9inJRuoeuhHj1zHspNxzj\ngTfq7vk+QhTGEyOyK3K7mShXV6T768CpRIN1OtGg1efR3kTj8lQedyfK0MpyDEwoped5YGHpeALR\nKD2e28LcHs97XgEcUPK/srEtuR2Qcawo3fMcoixen/vXEw32I4QglevO2URPHEJYLiUapj8So+Fy\nXi7PfPlHbl46fp2oX1sAO+UzfTOPe9envTgmRsqfJcr5fKJX/BDRIZwLPJn+puTvo0R9mZtbeX9e\n5llRtx4mRLNPHpc/PfES2UnJ4zeIzlnRCXu8QV4X9XJZ+nuZ6MFPAl4s+VtICNSngKdKz75cj4oZ\ngufzd2HGOy+3ZfkM/pj5u4Bau/W3fBZNxIjkr/mMC/EdX5/2Rts68xJcO+nu7uUPSS0FcPdZZjaP\nyJCexLB1U6IQfpTIyJPc/Y8AZrYlUeiPJirJXu4+38w+CSx390UZ7zwzWwLMN7M+xPC/a87xzc94\ni+F6N6IylI+/aLH28ShRKHciGqtdiQfXD7jb3RdkmC5Ej/bH7r4i3b4ELHX3YniNx5TLIqKn0w34\nJlHJ9gc2MrPHiWF4F+D2mI3DIqjvAdxlZjMy/dcTBa881bajmRWfLxmU+fpJooL0IBrzSeS6CfBa\nDs2nE1N448zslxnvcmoVerzHJ9kxs0eJqZljMq6ZZvZJj5chF2a8j2c8RV58xt3fzHn+Q4hKMYZo\nPLoD9+fUYzdghZm9nve9sbsvslio3qZ0b3sCXdLfxmY2P+/vp8TUzvdoTjECO4SovJcTwrPC3ecA\nPwB+YGZDianN3YAfA7u5+/K8bwc2KpXjFaX4XwO2NbOt3f3VPDeFmBbbkhCoZXkM0aO8K9P/KtAz\nn/3Gmc43M3w3YHFOEe2UeTIkf3u6+xfN7LyM81Rg5VoMUS66Z3nbiGg0zd0PNLMVpbK2E7WpR8u0\nb+TuK9eszOwFoi4YMf3RlRBcA3plmSzoWXpOWxE96Q8QUzN7lvLtXelvq/zdiWgoHyTq467E9EzB\nX0t1633pZ0rWkXeUykwvd3+XhYHIWcTz3p0oywuAc8zsTWrTXUvzt3ve17bUOhrFtGHBuUS5vxjo\nY7U1onea2ZXECGgxUb7PBv7i7jPM7DF33yvz8rU8bxn3cmB0lv93AYvd/YX0+wGi8/uYldb02mJ9\nW3NoNldmZsuJBwXx8JyoEEZUkKlET+cvdVE9SFSm64kpiiITdiIqwKyS362IxsrS30JCeIoh7R7E\nlNUlRINySt21diMe1onAl9z9+3X3tD8ww92fK7m9SawbQMzzdiNGE0aMLp7N/R0IMVycfmYDH8pw\nHyGEakhdemYQPZaReY0HiMZ1FrAzMUUwjdqaxLXEFIDn+Y8D7yUq+QfcfVcz24XoUW+T+TGeaDi/\nCfza3c+uSwPZ2LyeebmQENttiee3MTFiej8xN/87YN+ioTGzDxLTNWPr402uJ4SsqLi9Mt7uROP/\n+zy3NzFc/1Mp7H8SDeS57v7JUno3IRrjCcRIYUd3/4OZ7UOMPh929wvNbG9iKmRZ5u94oqwUHANM\n89p8cfGsiwa2W4adQcxBTyamNC8lRsBnlBqIHTKvzieeSRPRq3yN6Dj8wN2npb87iOdO3T7u/mLG\n9yFiWuO/SumdQowovkus73zSzJ539x3N7IlyPJm3nyc6FLtkng9397+V/GBmexIduHNKznvSnJ3z\nft5DlLVvu/u4DN+DqLdfynDLiMbxh8So5gyivkGU3fvc/Ud1+d2bmL7biFr+DwCGuvvD6fdSYqrt\nTmLq8k4a49SEpqiXRRuyBdGZWkh0hn7n7m9k/J/MNL+W97sRIbDfI8rkLcWzTv9lcfhoXRp+S4wo\nC95P6Yu7z7HaAAAX5UlEQVQT7v4ZMzuA6Az3dfdNW7iXlaxv4lAWg2aniEpyQcnti9QafYgplIIm\nYrgP8SDLbE1tcRhiiFbEY+5+f/aSv0pUAiMUvPgPinnENM+iungPAg5y94llRzPbHfgfd/90ya2c\nprFEQX4hj4vGg7z2jkTBAmoVPeMpiwzpt2umdxN337jOXw+iMBeLbnMzzGtEz3UJUchnUGvMivgL\n8fwEsUj+QWIU9DIxonght32JhmweISD3UetVbUT8ydO7CeF4kpibP5qYS33G3cvCXc7HnsS0zkCi\nklzn7ssa+NuGaKD7Ab919wfSfS9CJM/O+34507tD5m83QlxeIjoCU4mKVjRMm2ZePJV5N5Fa7/bC\nUhK2yvssjxgWZxxGPIOTiAauiRD/R4CL3f1OM7vO3f+1wX0dQczLf4roHXuOFJwol72oPauewCJ3\n36N03ycRz+QpYroFQuwPyDxdQTTS/YDtiDI+sBRnL2D7zI/pRPn/O/G8r8+wEJ2V4wkReSnz9LPA\nWe6+0gTZzFYQz/HPeQ/NGirPxeAcDY4mRhVk3i4lFveLReZfZx6PT3+W/obT/JPWexIN8w3p9zbi\nuXQlp+aK5GV6/otaefsDzUcHZd5PCPsM4pl+rpQPW2WedSHaMKh19roSdWAU0cG9OtMNMX3+a6Lz\nOZ2oU2U+RM34A3e/v5Rfp7j7xS2kdSXrlTi0hplVeqfEaOJEYk5xkxbC3eDuJ5SOf0zM/RXWDY8Q\naxq9iLnkx4lpkN8TD72wXCoK/z7EQ/+cuz9Yivev7v6+FtLQmuj1IhrhlrjD3XcrxbUZsfDen5jK\neSDTczJRqYvrlCtcl9wv4vkl0bB3I4bABxMN5WKid/UStYqwguY9qvml/XOIfFlALJAWlf81ojfV\nqPAtoLZO0SV/tyR6eUW6l+TWnagsxbB9PrEY3YeYVplICkWGPZjo9e9NPMMdiUbg3UQjcQthXXN0\n+v9C5sl3ifn2m4ippe8RPcUD3P1pM3s/kdfF/HCRTjJtGxGL2uU/tIJoTL8JfLmlTgO19aFGFNOm\nc4H/Jp7b5nnNi6h1iD5DjPi+RTR4A9Ltk6X7viDDbEmsm+1FNPCbEs9qU0K4/5UQ/l8SHadt030B\nMVp41d13KFkrHUyUx0GZlkl5Tx8jRLNrputsd9+sdP8n1N33QTRnXP4eSpTTb+e9bU+I3LeJdYsz\nMr6PZRouAI5w93sbZaiFCfjppfQ+SSxeNxGj6J2IcjWPyPcH8h5fdPcv18XVkxAPiM7OScTU1IrM\nh6vcvTyVVp+WR4jyfALxzOYRz21ahi+msrsRMyHlEeq+1DpLE4GRjTpLrbHBiEMZM9uUGIqfTFTI\neUTD9iTxQGaW/NZPVS0mTPKm5vGTROWeTTS404ne0yZEA/VrokcA0fO4jZhG+iLNRzKXuvvWNMDM\nJrv7wNJxsZhX8UoI3gsltyJNZJjCsucvhHnjVhnuy+V1CzObUneNoje0EdFjnEZMKfySaAiLqYZH\n8txOmY5NiN7/C0RD3pNab/ujGe/DmZ4HicWxRtQ3WA8Q4vJHYmpiSqZ7R6KHPIfoLZ1FNPBjCUG7\nlOiJ7UxN2GYTc9WvEJXzZ/n7EaJRG+zukzP+F919h9x/BtizWIMyszFEgz0WmOfuPdN9KPHch1ET\ngM8T01ObEAI/mzCdvLr0DP6V6FF+FXjC3e8zs9HuflSen0X0GgsOpTZq3CbjfYhoHPYkRoRj85p7\nE1MTTkz1bU80yv2IXuVTRKM3w91vLU0Vrcg4HiEs4kYDR7t7UyndWwBHElMixZrBs0RDtNTdd0x/\njwPHuPukPB5OWNsMIKzcDibWPAbkNGPRq2/Ep0v7x5b2dyTK6Wbk6CanULoSo5vdad5IXkPzKceV\nswLEmtxmNCDv5ezM088QI9NN81w3on0pd/B6UDONh+i4/JjofMxN96JTVvgpzJp/Tgjw9kT7Mpao\nO7/3munvEqIjchFRt+4hpuAg1r5eJ0ZQLYpXm7Rn1Xp92YjplwuJwjKSqKgX5MP8TO6/AOxfCvM0\nzS2Olpb29yYqUWGe+hBRQM4GfkU0hmcTDeeLhFh8P7e5pf0XiYJ7coM0n0TMLbZ2X4W1R9kSpGwR\nUlgDLaW5xUhhLTSF6NUWv8V+n9z2JaZKZhC9xcWUrCvq0lKs47xAjAp+RQjIy0RvZnbmWWEh8q52\nPLctM633E8JcuC+lZJ1Wcu9LVMSyJVbZwurN0nE3QkjOKPvL/R/lvU7N/aHEQt7KfK+77iBiGuWG\nzNdbCbGbnfn2v4RYFV8Y3pFonF7L/d8QFi/9CcG8n5pRw/1Eg/xE6XqL6q7/WD7bhcTax0uEAH80\ny9hH6/wOz3ufS3SWplEzt30l8/CZvO8pRP0ZTTSe8wnzyKGkJVDGuwuxLvV0Pu/COuhH+QxX0Lz8\nLaBWfpfkfZ5EjLjHU7OQWw7cS80CZ3Zpm0X0oIutmCI6J5/d8MyD5+ry4O/EqOinxFrgr4HXWymH\n5bIxpu5cQ2uqFsJeTgjBpnk8iug4XAt8r+Tvw8D/leMg1u6OJTqYk+uff2l/AdH5uSDDLSM6Vt3y\n2U8s+e1GOy2Uml3vrWi034qNaLCeI+biNqH0PkKdv8HE4mG54S0XyhWl/XuJl9AKv8/VxbWYmhhd\nAmyV7r2z8nye6K3cQszdjiV62Zfldj+h+tuswv12IaaLFmbh37VBIe1DDP0LEehLDPGnAL8sxVNU\n4l8T1h03A7MaNAgziIr670TDNIyYzvhDFsi/ZdznkyaKDdK9X+bBrYQoP5Hxvpbu5YZ6SSv3X99w\nFqL4OiGYy6g1Ul7y9xq1RuY3Ge4OopGbkcfXEGsn/yAWKIuwA4le96UZz9jMs5EZ9rzcZpNmhUU5\nyd9eRIP1K2rmvv8gOw3AcdTeUzmJGJ1AVO6TCAG6MfdvJETwQkK0ys99KLUGeQRwJiG09xAjh/fk\n8yrMRH9DNNxF73aTunMLSnnSSMSnpN/5dX7r/4msMPe9n6g7hZiUzV7LwlIIwEeoieBHiam94dRM\nNucBg+rq9EKad5ZeL13nDGLENhzoVgr3WKP9Ul0vvw/imf9lM9PiGsvJWZkMOy5/u1J6/yndyp2B\nw4DTS8eFMD5PLIj/kbCUuzCf1zal8rEk/Z+T+Ta+7jpva3FYkQ+pqBTlHvTrdX7LBaa+8DTr4VOz\n5T8F+FnuFyOUpcSUzqeIOdlNiYr5PLUXaN5dd+0Dicb134GPrcJ9ds+0PE1U5Cdbubd/lAptYVb6\nU0IAyvHcQ1g7FA3zvxAN0R8JEXOiMXyMeNvzwawUFxBD1iuoCfMdNO/l1W/jiIbjSKJSF+8mNGqw\nVjbUDfKhYtNfOlff0HhpfwHNG5pn647/RjQaY4iecTFS+HdCyG5Lt3JjtDv5vkQeP12XnrIAPE2+\n00E08sW0wX2Z18sJoXqcEJKLiVHBz6n2JMvvkCzPZ7KstE1If08BL9WFfYwQuqtK9WdJqbyU8+/1\nUp4cRvSEyyI+pWiAiE5B4feZVp7Rc8Soe1ymb0bd+eKdnBszrRcSLwaem3nzKDXrvOcy7WOodboe\nIUZo9Y3kPJqPJMo9+fGN9vO4eDek2K4vbdfV+f173fEz7TxX/8LeE3kfY7MMXEeMAhcQllr9Mw+f\noDaDUNR5r9vK4tXi6Km8bZBrDgBm9hTxtuO8OvfewFh3f08eP+bue5UWj3oTo4DizcsTieF4d6Ki\nHkr0fu8h3iv4EjXLpR5ET/w+4FRPO+NOvq9pxIP+LtF7P5zohQPg7reW/HYnFhDPJCwXLvba3Hp9\nPGT69yUq3K5EZZtK3PtAalZRbxILkWcTI5+/ET2rZdRMipdSe/FtpUkoURkHZxqe8uZ28CtN9fJ4\nObWF5zdLcRjRu222iFs6t6O7v6MUz/OEaWwjv//r7juZ2fbUbM8XUDMGWEy+30L00E4mpmJOpvni\n+ylEHj9JzNWf4O5jzOwkore3FWGN0pvoRDxOrO/8s4cN+4GEyHw743gt4z0g86Cwo38+01YsFD9L\niO51xLOaRs3C7iPEHHkX4EPu/s6SddKXiEbnVq8zr24PZvYOoi4cSywu30T0br9V8nYS0eA9BeDu\n38mwBxNm3Qfn8S7EJ0FOyOO+6X9WHvfIPGkiXi49kyizL+X9NRFl4XnimUxy9zEZtmzsUZSb4v0A\nJwS3MCueRkzxWV7jO6Vw/0mMkgtWEOL0Z8/1sFLe/JrI15vy+A5ifac3cJS7f6aFfGhmtGJmV7r7\n6bmYPjLT86S732tm9xNlYDQxrTunnAZ3Ly9OrxIbsjgMJyrwV4hGHmrvI1zn7j9Mf58gej8nEups\nxELQGKLhO5aoqK9kHCcQvbRCkQuT1aLgvUoMBcsZW34BbXXv6/rcLeKv/9bRr0v7ZxM9pbIAFJxO\n3G99Oou4zyZ690e7+9C8drlBGEr0apYQhX4ukV/fJHp4xxILoXcQI64nM46G34dpdNxGPuzQ2nlv\nbtJ7fQveehCLo8sIsfuVu3+lFO63xPsOE/P4WXffOS2JbiLyFWIE9Q6inCwjGo3dqH1K40eERdTH\niVHIBwmxO8rzBcjM28sJa6Mz3P2VdP8qsV72bJ4/L+N6FBjl7istxRrYvt9LlM/CYgpqvcge7t7S\n4m+HKC1Qf59YIC3i7U2YbU4l1qTuIkw4PwAc4u5/L8XxEiFw5e+mLSOmLLsReWfElNw2hMn5AODD\n7v5EB9LaYpmz2ouAjfgoMSIp05uwojrf3VcaDphZf6LDtpB4Tu8k6sMCwtJtfqN8qDdMqUv3c8Qo\nquDM0n5Rh1+j1tbs2Mq9tIsNVhwA6t5HgOh9XOruvyn5+S7RqJ/ptQ9cbUb04BZ6Kyv8ZvZfdU6b\nl/adqCw1h1KDtaqkya5Tq4CFxc0UaqZsGxO9tm2JIXQjARhETA+UBWEWDXpCLaRjC0J8v0A0QocQ\nJsPvLPnpQVSKS4EL3P3KUk+u6JkXI4Libd01+vnltGQ7nOg970JU4qPdfbsGfut7cj8D7nX3H5nZ\nRK99SPEl4i3Wo3MEcABhPbOU2pvnk4gRxyuEUP8PYdFWlIl3UVsAHurucy2+2Hs3MZXSm7DOOpzI\nv6LBL94mb2ZtU+59pwXSA8CJpZHj853RgJRpJO5ZBj5LiKVTenfF3U8r+ZtHTDENd/cpZnYTYRDS\nC/iFu3/N4sunhxMiUtSBBdS9f+AtWBzldepHEkUZNCJww5fDzOwQd/9tA/fewB8adWpK5rMQ4t6P\nmrn4k8Ri9KKS/5spvbBXcj+FKFPjqFLU9RbN9VeVDVoc2oOZPQvs4nUZUTKF+++GAYNh1N5vKGjz\n3YrVoYXeTdGDuZh4l+FEYrj5JrUhNJQEgFj8bCmeZj2huut/idpLbkuJqYlim+jxhdQexDrMscSQ\n/3ZitDa9UZyrQhvmvs0aCGv+yYAfE9MPvyDm9J0QrkpDWYwUSsdbEz3XJYTp6HVED3AfYoF2Rvpr\nNuIohS/eXfgmMf3zGjFddwBhqvk0sQ61W/q/CjjM3fvn8YRiSi6PVwpUHhvVrxYvI6ZAuxDToHcR\nnYIfu/uABvm3ytRPC9ad25soD0dSM4i4snR+CbCt52dFUtDKnYhyg+7EFOdRxFTgu7z01dHVSP/T\nwLD66WAz+yLwH+7e8H2jBtOh5Rcy2/2OgcU7FuUX9iDKVg+iHLxa8luY6xd1/TJimumzhPnwIFaT\n9e3bSu2mQa++jLv7f5f2K42Muy+3+A5OwxfXiKF+f3f/bF5vU2I6oTvRaC6x+E4LtKNH017c/YJ6\nt+y9LCXszr8F7O3xXajziAJTZgfC1rqhABQ9IZrb15dpIhZHzyymPurC30T0jn5HNLrtHvJ3hJZ6\neC1QfoYPESOGfyN69ZtSnXIrGGdmJxc9uaycH7T4rMJmhDnvHcSnHcovM21dLwwZfqKZNRHP6ePu\nvjBHYOcSC96Dge3NrFs2JkNp/iZ1fX3tVXd8JiEA7/PqeyF3EQ3JoYS1zlZmdg0xlXY3ncPQ8kGu\nJRyb22xiZL0Vsd7yCav9N4kRVkMr31Z29y6leJ7w0oueJb4PfL+tKcYOcBZwt5l9yt2fzWufSzS4\n9VN2RdoOJKZuy9xI83cMvm/xHkclOKV2weP9qw/WjTju8NILe1b71tPn8jqfJDqpdxBrVt8iBHO1\n2WBHDtbON6brF49K4T9PafEo3Yx4KF8jpgkuovYF2OJhfc/rFsHXJFb7/su1xPfx679R0yhMi0Ph\nPN9iD7AdcRc9Pmi87rLaArk6lJ7hfxAjgOKzD+cRDWV5Hrw8Uih//mEjat/0gfxcdhGM+NBf/X+G\nFHFOBhYUzylHB7Pc/fw8foUY2cwmppqepmZqfaO775/+TgL+yd2PLsX9WLqVPwlRTDHdXde7LdYJ\nVq4pdTb101m5JvIzwkhiZ3JBmFyXcfddWohnPM3/f6RCuZ6uZpqHEuJ9GDFdsy8xCi5eKCzTm1hL\nOc7dny7FUZ5y7AY80lJd62DaynX9zdzvT4wcRgO3deZocIMVhzKNhmCp0o0WjyAagF6EJcn0fMAn\nEIvbDwHfcvdn6h7WVZ4f1HoryQq4mNrbzeVGqsXGuCUByJ7Qf7r7xxoEW29p6Rnmud2I3uFR3mBB\nMPNk5Vyxh7VIa1MoK9cm6txPIhbrBxFvZS/LqYzh7v6n9PME0Sj1I9YbNiEEqisxDTaTmkD9c3nE\n0koPu9VzawozO4zoxRbTWT8n6t8yaqO17YlF+rNo+RMyPYkpuKmEuDxMbaoUqH07qJPS/WEiz8cS\nZWJRg9GJA3O89kXlcvhVNrRoI11FXV9GlIvl1D5/78DszlxH2qDFocEQrMVefd1QrmwKdxohLGOA\nS8rzkXUP6y3pJVvtY2plGvZgWonjQOI9gudXJ571hdae4WrE2WKFb2PE8c9EJ6X4TMi7iGlAN7OB\nlEYHdXFWBKqDaeqUBmpVsJqV24WEGNwIjHb3u639xh9dacUKrpPSWaxjGTHPX7xE16H6bM2NLqD5\nonentAsWfyFwJJEf2xCie0JnrL2svMaGKg6d1atPAZjJGjRP7WB6OtKDaU1IRhBWI23Gs75T9wx3\nbeClqMgdaQAKm/iGePwFZ4sNupntR93/eeQc/SbuPr4SYfvS1NoHHNe4JVhbWBh/7EvVRLor8eLg\nzq2FL8VTsYJbQ0leLzCz7YiPRR5LTJ3/yt2/vtrxbsDi0Cm9+rYWu7wTzFPXFB0Rkg2ZNfEMc23g\nGuqmN0pxVgwH3u6Y2d9bWVdo8VzJzxq3gusMrJ2fj1/Na7wPmOo1C7njiS8bdCX+wa41K8v2XWND\nFQch1iRrc5pmfaUjxh8Nwpat4EatKSu4zsDMbmF1v4ja9jXGExZvxfswo6hZvL3X3Y9Y7WtIHFrH\nOmBPL9ZN1sQzXB2Lrrcr7TH+aCXsOm0FV2ZNWSvVXeNvrVi8NXsfZlXZYN9z6Cy8Y/b0Yh1kDT3D\nNWL+uSGTjf/764w/flcYf7QRtktbftYhiu9gkRZpa+IaXevehxleOtcp7bpGDkII0YlY65/o6Cxr\npW/QQYu3Dl9D4iCEEOsfa8LirVn8EgchhBD1rE/zeEIIId4iJA5CCCEqSByEaAEzW25mE8zsCTP7\nuZltXDp3mJm5mb2n5NZkZgszzCQzu8nMupvZQek2wczeMLNncv93ZvaCmW1TiuMqiy+BCrFWkTgI\n0TIL3X1wfrBuCfHWa8GxxP9iHFsX5rm0Md+d+G+No9z99xnPYOIPWz6Xx58k/oPj20DxnwcfLo6F\nWJtIHIRoHw8Qn0PAzDYh/mf7RFr4dr67L6f2J/etcS2wU36H6SrgdHdf2kYYIdY4Egch2iDfcj2Y\n+FcviC+M3uXx3w9zzGyfBmF6Au8nPlXdIu6+Avh/xJ/EP1N8uluItY3EQYiW6WVmE4ipoJeAkel+\nLLV/yhtF86mlnTLMq8Ar7v54Wxdx9wnAE8DVnZVwIVYXfT5DiJZZWP+NmvyPkI8Bu1v8jWxXwM3s\nnPTynLsPNrMtgQfN7DPufns7rrWC5n8JKsRaRSMHITrGEcBP3H0Hd2/KP1eZQiwkr8TjrzpHEP8P\nLcR6h8RBiI5xLPEvb2V+SdVqCeDXwMb5t5NCrFfo8xlCCCEqaOQghBCigsRBCCFEBYmDEEKIChIH\nIYQQFSQOQgghKkgchBBCVJA4CCGEqCBxEEIIUeH/A9+xHEo7N01+AAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_summed.plot.bar(legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is alot of values! It doesn't make much sense to show them all, let's group categories into three, Republican, Democrat, or Other. We can do this doing some grouping and by implementing what we've learned so far. The following shows you how to find all of the party affiliations that are not 'Democrat' or 'Republican'." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NUMBER
PARTY
NF17608
NON2814
I2006
LN805
OTH368
GR264
INDE183
NO175
NOP137
IND31
C24
CT20
S11
LI10
IR10
ID9
UNK7
NTS6
RF5
UND5
M5
UNA5
AD4
GP4
AM4
WH4
NS3
MW3
TP3
BM3
......
AH1
AF1
TPP1
ACO1
OLAP1
FE1
DTP1
MM1
MAJA1
MA1
OP1
LT1
PG1
PIR1
L1
KEG1
N1
UPP1
PL1
IK1
PPOA1
ICO1
IA1
H1
GW1
GT1
NST1
SAME1
FR1
PZ1
\n", + "

90 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " NUMBER\n", + "PARTY \n", + "NF 17608\n", + "NON 2814\n", + "I 2006\n", + "LN 805\n", + "OTH 368\n", + "GR 264\n", + "INDE 183\n", + "NO 175\n", + "NOP 137\n", + "IND 31\n", + "C 24\n", + "CT 20\n", + "S 11\n", + "LI 10\n", + "IR 10\n", + "ID 9\n", + "UNK 7\n", + "NTS 6\n", + "RF 5\n", + "UND 5\n", + "M 5\n", + "UNA 5\n", + "AD 4\n", + "GP 4\n", + "AM 4\n", + "WH 4\n", + "NS 3\n", + "MW 3\n", + "TP 3\n", + "BM 3\n", + "... ...\n", + "AH 1\n", + "AF 1\n", + "TPP 1\n", + "ACO 1\n", + "OLAP 1\n", + "FE 1\n", + "DTP 1\n", + "MM 1\n", + "MAJA 1\n", + "MA 1\n", + "OP 1\n", + "LT 1\n", + "PG 1\n", + "PIR 1\n", + "L 1\n", + "KEG 1\n", + "N 1\n", + "UPP 1\n", + "PL 1\n", + "IK 1\n", + "PPOA 1\n", + "ICO 1\n", + "IA 1\n", + "H 1\n", + "GW 1\n", + "GT 1\n", + "NST 1\n", + "SAME 1\n", + "FR 1\n", + "PZ 1\n", + "\n", + "[90 rows x 1 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_summed[(df_summed.index != 'D') & (df_summed.index != 'R')]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Group the parties into Democrat, Republican, and Other. Create a single row table with parties as the rows, and the number of voter registrations as columns. The rows should be Democrat, Republican, and Other. Call the table 'df_parties'\n", + "\n", + "Hint, sum the values you want from **df_summed** for each group and save them as variables. You will then need to create a new numpy array that contains the summed valued for each group and create the new data frame with your answer. This [Stack Exchange Question](http://stackoverflow.com/questions/17839973/construct-pandas-dataframe-from-values-in-variables) will help you, along with the [Pandas documentation on DataFrames](http://pandas.pydata.org/pandas-docs/stable/dsintro.html#dataframe)." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
N
Democrat51162
Republican47668
Other24609
\n", + "
" + ], + "text/plain": [ + " N\n", + "Democrat 51162\n", + "Republican 47668\n", + "Other 24609" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parties = ['Democrat', 'Republican', 'Other']\n", + "values = np.array([df_summed[(df_summed.index == 'D')].NUMBER.item(),df_summed[(df_summed.index == 'R')].NUMBER.item(),df_summed[(df_summed.index != 'D') & (df_summed.index != 'R')].NUMBER.sum()])\n", + "df_parties = pd.DataFrame(values,index=parties,columns=list('N'))\n", + "df_parties " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Problem 2: Plot this as a bar chart, using red for Republican, blue for Democrat, and yellow for other.**\n", + "\n", + "You can learn more about bar plots in in the [Bar Plot Documentation](http://pandas.pydata.org/pandas-docs/version/0.18.1/visualization.html#visualization-barplot). This will also give you hints as to how you can assign colors, along with the other properties affiated with bar charts, such as legends and axes." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAFECAYAAADvOaOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X28HVV97/HPlwQBlRCBmAshaVCiiKgIR0TpbREqxqqA\nFWlQhFIEK2jB1gdCH6C9V9FeK0qpKEJreFAIVku0Yg0BbH0ATADF8FCigCQCCRBJooBJ/N4/Zh3Y\nOZycs5PMPnP2Pt/367Vfe2btWTO/yU7y22vWWjOyTURERB22ajqAiIjoHUkqERFRmySViIioTZJK\nRETUJkklIiJqk6QSERG1SVKJaJikAyXdLWmNpCMkTZb0X5JWS/pHSWdIurBsO12SJY0v61dLOm4z\njzutHHNcnecTY5syTyV6kaR7gcnAeuBXwNXA+2yv2Yx9HQRcanu3OmNs2f8CYJ7tz5T1vwFeCbzN\nA/6BSpoO3ANsbXvdJh7nXuDdtq+pIeyIQaWlEr3sLbafC+wL9AF/vak76G8RdNjvAIsHrN8+MKFE\ndIMkleh5tpdRtVT2BpB0vKQ7yuWln0l6T/+2kg6StFTSRyQ9CHy51N21XCpaI2lXSb+WtFNLvX0l\nrZC09cDjS9pf0g8k/VLSA5LOk/Ss8tlPgRcAXy/7/jJwHPDhsv4Hks6SdOlg5ybpeknvLssvlHSt\npEckPSzpMkkTy2eXANNajvPhQS6l7SppnqRHJS2RdGLLcc6SNFfSxeXPbbGkvi34WqJHJalEz5M0\nFfhD4JZStBx4MzABOB44R9K+LVX+F7AjVYvhWOCNwC9sP7e8fgFcDxzVUuddwOW21w4SwnrgA8DO\nwGuAQ4CTAWy/EPg5pVVl+2jgMuAfyvqmXKoScDawK/ASYCpwVjnOuwYc5x8GqX85sLTUPxL4mKSD\nWz4/rGwzEZgHnLcJscUYkaQSvezfJf0S+C7wHeBjALb/w/ZPXfkO8G3gf7fU+y1wpu0nbT++kX3P\nAY4BKB3dRwOXDLah7UW2b7C9zva9wOeB39/y03vGcZbYnl/iXgF8qt3jlMR7IPAR20/YvhW4kCqp\n9vuu7W/aXk91rq+o+RSiB4zE9eKIphwx2C99SW8EzgReRPXD6tnAbS2brLD9xDD7vgr4nKTdgRcD\nj9m+abANJb2I6j/4vnKs8cCiTTyXYUmaDHyGKkFuT3VuK9usvivwqO3VLWX3UcXc78GW5V8D20oa\nv6kDBqK3paUSY4qkbYB/Az4JTLY9Efgm1aWjfgM7yJ/RYV6Szlyq1sq72EgrpTgfuBOYYXsCcMaA\n49XlY1Sxvqwc5xiGPq9WvwB2lLR9S9k0YFntUUZPS1KJseZZwDbACmBdabUcOkydh4CdJO0woPxi\n4E+o+hqGSirbA6uANZL2BN67GXG3Y3tgDfCYpCnAhwZ8/hDVoIBnsH0/8H3gbEnbSno5cAIw6ACB\niI1JUokxpVze+XOqVsZK4B1Unc5D1bmTahTYz8oIrl1L+feo+l9utn3fELv4YDnOauALwBVbeh4b\n8XdUw6cfA/4D+OqAz88G/rqcwwcHqX80MJ2q1fI1qn6lzGmJTZLJjxFbQNK1wJdsX9h0LBGjQZJK\nxGaS9CpgPjB1QAd3xJiVy18Rm0HSHOAa4LQklIinpaUSERG1SUslIiJqk6QSERG1GXMz6nfeeWdP\nnz696TAiIrrKokWLHrY9abjtxlxSmT59OgsXLmw6jIiIriJpqLlYT8nlr4iIqE2SSkRE1CZJJSIi\napOkEhERtUlSiYiI2iSpREREbZJUIiKiNkkqERFRmzE3+XGkqRMPjR1Fcj/SiGjV0ZaKpHsl3Sbp\nVkkLS9mOkuZLuru8P69l+9mSlki6S9IbWsr3K/tZIulcqfqvWtI2kq4o5TdKmt7J84mIiKGNxOWv\n19nex3ZfWT8dWGB7BrCgrCNpL2AW8FJgJvBZSeNKnfOBE4EZ5TWzlJ8ArLS9B3AO8IkROJ+IiNiI\nJvpUDgfmlOU5wBEt5ZfbftL2PcASYH9JuwATbN/g6uEvFw+o07+vrwCH9LdiIiJi5HU6qRi4RtIi\nSSeVssm2HyjLDwKTy/IU4P6WuktL2ZSyPLB8gzq21wGPATvVfRIREdGeTnfU/67tZZKeD8yXdGfr\nh7YtqeNdvSWhnQQwbdq0Th8uImLM6mhLxfay8r4c+BqwP/BQuaRFeV9eNl8GTG2pvlspW1aWB5Zv\nUEfSeGAH4JFB4rjAdp/tvkmThn0cQEREbKaOJRVJz5G0ff8ycCjwE2AecFzZ7DjgqrI8D5hVRnTt\nTtUhf1O5VLZK0gGlv+TYAXX693UkcG3pd4mIiAZ08vLXZOBrpd98PPAl29+S9ENgrqQTgPuAowBs\nL5Y0F7gdWAecYnt92dfJwBeB7YCrywvgIuASSUuAR6lGj0VEREM01n7Y9/X1eSSf/NjrY9HG2F+f\niDFL0qKWqSEbldu0REREbZJUIiKiNkkqERFRmySViIioTe5SHDGUXh5pkVEW0QFpqURERG2SVCIi\nojZJKhERUZsklYiIqE2SSkRE1CZJJSIiapOkEhERtUlSiYiI2iSpREREbZJUIiKiNkkqERFRmySV\niIioTZJKRETUJkklIiJqk6QSERG1SVKJiIjaJKlERERtklQiIqI2SSoREVGbJJWIiKhNkkpERNQm\nSSUiImqTpBIREbVJUomIiNokqURERG2SVCIiojZJKhERUZuOJxVJ4yTdIukbZX1HSfMl3V3en9ey\n7WxJSyTdJekNLeX7SbqtfHauJJXybSRdUcpvlDS90+cTEREbNxItlVOBO1rWTwcW2J4BLCjrSNoL\nmAW8FJgJfFbSuFLnfOBEYEZ5zSzlJwArbe8BnAN8orOnEhERQ+loUpG0G/Am4MKW4sOBOWV5DnBE\nS/nltp+0fQ+wBNhf0i7ABNs32DZw8YA6/fv6CnBIfysmIiJGXqdbKp8GPgz8tqVssu0HyvKDwOSy\nPAW4v2W7paVsSlkeWL5BHdvrgMeAnQYGIekkSQslLVyxYsUWnVBERGxcx5KKpDcDy20v2tg2peXh\nTsXQcpwLbPfZ7ps0aVKnDxcRMWaN7+C+DwQOk/SHwLbABEmXAg9J2sX2A+XS1vKy/TJgakv93UrZ\nsrI8sLy1zlJJ44EdgEc6dUIRETG0jrVUbM+2vZvt6VQd8NfaPgaYBxxXNjsOuKoszwNmlRFdu1N1\nyN9ULpWtknRA6S85dkCd/n0dWY7R8ZZPREQMrpMtlY35ODBX0gnAfcBRALYXS5oL3A6sA06xvb7U\nORn4IrAdcHV5AVwEXCJpCfAoVfKKiIiGaKz9sO/r6/PChQtH7Hi9Phat5//69PIX2PNfXtRJ0iLb\nfcNtlxn1ERFRmySViIioTZJKRETUJkklIiJqk6QSERG1GTapSPoHSRMkbS1pgaQVko4ZieAiIqK7\ntNNSOdT2KuDNwL3AHsCHOhlURER0p3aSytbl/U3AlbYf62A8ERHRxdqZUT9P0p3A48B7JU0Cnuhs\nWBER0Y2GbKlI2gr4OvBaoM/2WuDXVM8xiYiI2MCQScX2b4F/tv1o/324bP/K9oMjEl1ERHSVdvpU\nFkh6W56oGBERw2knqbwHuBL4jaRVklZLWtXhuCIiogsN21Fve/uRCCQiIrpfO5MfJekYSX9T1qdK\n2r/zoUVERLdp5/LXZ4HXAO8o62uAf+5YRBER0bXamafyatv7SroFwPZKSc/qcFwREdGF2mmprJU0\nDjBAmfz4245GFRERXamdpHIu8DXg+ZI+CnwXOLujUUVERFdqZ/TXZZIWAYcAAo6wfUfHI4uIiK4z\nbFKRdIntdwF3DlIWERHxlHYuf720daX0r+zXmXAiIqKbbTSpSJotaTXw8paZ9KuB5cBVIxZhRER0\njY0mFdtnl9n0/8/2BNvbl9dOtmePYIwREdEl2umony3pMOD3StH1tr/R2bAiIqIbtXOblrOBU4Hb\ny+tUSR/rdGAREdF92plR/yZgn/JsFSTNAW4BzuhkYBER0X3aGf0FMLFleYdOBBIREd2vnZbK2cAt\nkq6jmvz4e8DpHY0qIiK6Ujsd9V+WdD3wqlL0kTxOOCIiBrPRpCLpduBLwJdt/xSYN2JRRUREVxqq\nT+Vo4DnAtyXdJOkDknZtd8eSti31fiRpsaS/K+U7Spov6e7y/ryWOrMlLZF0l6Q3tJTvJ+m28tm5\nklTKt5F0RSm/UdL0TTz/iIio0VCTH39ke7btFwJ/DkwDbpB0naQT29j3k8DBtl8B7APMlHQAVX/M\nAtszgAVlHUl7AbOobgszE/hsuSUMwPnAicCM8ppZyk8AVtreAzgH+ET7px4REXVra/SX7RtsfwA4\nlmok2Hlt1LHtNWV16/IycDgwp5TPAY4oy4cDl9t+0vY9wBJgf0m7ABNKDAYuHlCnf19fAQ7pb8VE\nRMTIa2fy46skfUrSfcBZwOeBti6DSRon6Vaq+4XNt30jMNn2A2WTB4HJZXkKcH9L9aWlbEpZHli+\nQR3b64DHgJ3aiS0iIuo3VEf9x4A/Bh4FLgcOtL10Y9sPxvZ6YB9JE4GvSdp7wOeW5E0Pe9NIOgk4\nCWDatGmdPlxExJg11JDiJ4CZtu/e0oPY/mWZ5zITeEjSLrYfKJe2lpfNlgFTW6rtVsqWleWB5a11\nlkoaTzUx85FBjn8BcAFAX19fx5NYRMRYNVRH/d9vSUKRNKm0UJC0HfB6qgd9zQOOK5sdx9O30Z8H\nzCojunan6pC/qVwqWyXpgNJfcuyAOv37OhK4tvS7REREA9qZUb+5dgHmlBFcWwFzbX9D0g+AuZJO\nAO4DjgKwvVjSXKqbVq4DTimXzwBOBr4IbAdcXV4AFwGXSFpCdZluVgfPJyIihqGx9sO+r6/PCxcu\nHLHj9fpYtJ7/69PLX2DPf3lRJ0mLbPcNt91QHfX7DlXR9s2bE1hERPSuoS5//WN53xboA35EdUPJ\nlwMLgdd0NrSIiOg2Q3XUv87264AHgH1t99neD3glT4++ioiIeEo7M+pfbPu2/hXbPwFe0rmQIiKi\nW7Uz+uvHki4ELi3r7wR+3LmQIiKiW7WTVI4H3kv1nHqA/6K6wWNERMQG2nlI1xOSPgd80/ZdIxBT\nRER0qXZuKHkYcCvwrbK+j6Q8sCsiIp6hnY76M4H9gV8C2L4V2L2TQUVERHdqJ6mstf3YgLJMxY2I\niGdop6N+saR3AOMkzaB6CuT3OxtWRER0o3ZaKu+nesTvk8CXqB6EdVong4qIiO40ZEul3GH4721/\nEPirkQkpIiK61ZAtlXLr+d8doVgiIqLLtdOncksZQnwl8Kv+Qttf7VhUERHRldpJKttSPaL34JYy\nA0kqERGxgXZm1B8/EoFERET3GzapSHoR1b2+JtveW9LLgcNs/9+ORxcRsZmuv76Hn9oJHHTQ6Jwu\n2M6Q4i8As4G1ALZ/TJ4FHxERg2gnqTzb9k0DytZ1IpiIiOhu7SSVhyW9kHJrFklHUj0NMiIiYgPt\njP46BbgA2FPSMuAeqgd1RUREbKCdpGLbfyDpOcBWtldLyl2KIyLiGdq5/PVvALZ/ZXt1KftK50KK\niIhutdGWiqQ9qW4kuYOkP2r5aALVhMiIiIgNDHX568XAm4GJwFtaylcDJ3YyqIiI6E4bTSq2rwKu\nkvQa2z8YwZgiIqJLtdOn8lZJEyRtLWmBpBWSjul4ZBER0XXaSSqH2l5FdSnsXmAP4EOdDCoiIrpT\nO0ll6/L+JuDKQZ5XHxERAbQ3T+Xrku4EHgfeK2kS8ERnw4qIiG40bEvF9unAa4E+22upHtR1eKcD\ni4iI7rPRpCLp4PL+R8BBwOFleSZVkhmSpKmSrpN0u6TFkk4t5TtKmi/p7vL+vJY6syUtkXSXpDe0\nlO8n6bby2bmSVMq3kXRFKb9R0vTN+lOIiIhaDNVS+f3y/pZBXm9uY9/rgL+0vRdwAHCKpL2A04EF\ntmcAC8o65bNZVBMuZwKflTSu7Ot8qrkxM8prZik/AVhpew/gHOATbcQVEREdMtQ8lTPL+2Y9+dH2\nA5S7GZf7hd0BTKG6dHZQ2WwOcD3wkVJ+ue0ngXskLQH2l3QvMMH2DQCSLgaOAK4udc4q+/oKcJ4k\n2R6dT6+JiOhx7Tz58S8GKX4MWGT71nYOUi5LvRK4keoJkv23zn8QmFyWpwA3tFRbWsrWluWB5f11\n7gewvU7SY8BOwMMDjn8ScBLAtGnT2gk5IiI2QztDivuAP6P6D3wK8B6qy09fkPTh4SpLei7VTSlP\nK/NdnlJaFB1vVdi+wHaf7b5JkyZ1+nAREWNWO0llN2Bf239p+y+B/YDnA78H/MlQFSVtTZVQLrP9\n1VL8kKRdyue7AMtL+TJg6oDjLiuv3QYp36COpPHADsAjbZxTRER0QDtJ5fnAky3ra6kuYT0+oHwD\nZYTWRcAdtj/V8tE84LiyfBxwVUv5rDKia3eqDvmbyqWyVZIOKPs8dkCd/n0dCVyb/pSIiOa0M/nx\nMuBGSf3/kb8F+FJ5aNftQ9Q7EHgXcJuk/r6XM4CPA3MlnQDcBxwFYHuxpLlln+uAU2yvL/VOBr4I\nbEfVQX91Kb8IuKR06j9KNXosIiIaonZ+2Evqo0oSAN+zvbCjUXVQX1+fFy4cufCrGTW9q+fbhb38\nBfb4l3f99T383QEHHTSy35+kRbb7htuunctfUD2Ua5XtzwD35XHCERExmGGTiqQzqeaRzC5FWwOX\ndjKoiIjoTm09TwU4jOqeX9j+BbB9J4OKiIju1E5S+U3rfJLSQR8REfEM7SSVuZI+D0yUdCJwDXBh\nZ8OKiIhuNOyQYtuflPR6YBXwYuBvbc/veGQREdF12pmnQkki8wEkbSXpnbYv62hkERHRdYZ6nsqE\n8nyT8yQdqsr7gJ9RJixGRES0GqqlcgmwEvgB8G6q2fACjmj37sQRETG2DJVUXmD7ZQCSLqR6Nso0\n23k+fUREDGqo0V9r+xfKPbiWJqFERMRQhmqpvEJS//NPBGxX1kX1KJQJHY8uIiK6ylCPEx63sc8i\nIiIG0+4NJSMiIoaVpBIREbVJUomIiNokqURERG2SVCIiojZJKhERUZsklYiIqE2SSkRE1CZJJSIi\napOkEhERtUlSiYiI2iSpREREbZJUIiKiNkkqERFRmySViIioTZJKRETUJkklIiJqk6QSERG16VhS\nkfQvkpZL+klL2Y6S5ku6u7w/r+Wz2ZKWSLpL0htayveTdFv57FxJKuXbSLqilN8oaXqnziUiItrT\nyZbKF4GZA8pOBxbYngEsKOtI2guYBby01PmspHGlzvnAicCM8urf5wnAStt7AOcAn+jYmURERFs6\nllRs/xfw6IDiw4E5ZXkOcERL+eW2n7R9D7AE2F/SLsAE2zfYNnDxgDr9+/oKcEh/KyYiIpox0n0q\nk20/UJYfBCaX5SnA/S3bLS1lU8rywPIN6theBzwG7NSZsCMioh2NddSXlodH4liSTpK0UNLCFStW\njMQhIyLGpJFOKg+VS1qU9+WlfBkwtWW73UrZsrI8sHyDOpLGAzsAjwx2UNsX2O6z3Tdp0qSaTiUi\nIgYa6aQyDziuLB8HXNVSPquM6NqdqkP+pnKpbJWkA0p/ybED6vTv60jg2tL6iYiIhozv1I4lfRk4\nCNhZ0lLgTODjwFxJJwD3AUcB2F4saS5wO7AOOMX2+rKrk6lGkm0HXF1eABcBl0haQjUgYFanziUi\nItrTsaRi++iNfHTIRrb/KPDRQcoXAnsPUv4E8PYtiTEiIuqVGfUREVGbJJWIiKhNkkpERNQmSSUi\nImqTpBIREbVJUomIiNokqURERG2SVCIiojZJKhERUZsklYiIqE2SSkRE1CZJJSIiapOkEhERtUlS\niYiI2iSpREREbZJUIiKiNkkqERFRmySViIioTZJKRETUJkklIiJqk6QSERG1SVKJiIjaJKlERERt\nklQiIqI2SSoREVGbJJWIiKhNkkpERNQmSSUiImqTpBIREbVJUomIiNokqURERG2SVCIiojZdn1Qk\nzZR0l6Qlkk5vOp6IiLGsq5OKpHHAPwNvBPYCjpa0V7NRRUSMXV2dVID9gSW2f2b7N8DlwOENxxQR\nMWaNbzqALTQFuL9lfSnw6oEbSToJOKmsrpF01wjE1pSdgYdH6mDSSB1pTBjR7y5fXu1G9vtjxL+/\n32lno25PKm2xfQFwQdNxjARJC233NR1HbLp8d90t31+l2y9/LQOmtqzvVsoiIqIB3Z5UfgjMkLS7\npGcBs4B5DccUETFmdfXlL9vrJL0P+E9gHPAvthc3HFbTxsRlvh6V76675fsDZLvpGCIiokd0++Wv\niIgYRZJUIiKiNkkqERFRmySViIjNIGkrSa9tOo7RJh31PUDSAtuHDFcWo4+kFwEfopqt/NRoTNsH\nNxZUtE3SLbZf2XQco0lXDyke6yRtCzwb2FnS83j6vg0TqG5hE6PflcDngC8A6xuOJTbdAklvA77q\n/EIH0lLpapJOBU4DdqW6k0B/UlkFfMH2eU3FFu2RtMj2fk3HEZtH0mrgOVQ/CB6n+jdo2xMaDaxB\nSSo9QNL7bf9T03HEppN0FrAc+BrwZH+57UebiiliSySp9AhJe1M9U2bb/jLbFzcXUbRD0j2DFNv2\nC0Y8mNhkkgS8E9jd9v+RNBXYxfZNDYfWmCSVHiDpTOAgqqTyTaqHln3X9pFNxhXR6ySdD/wWONj2\nS0rf5rdtv6rh0BqTjvrecCTwCuAW28dLmgxc2nBM0aa0Mrvaq23vK+kWANsry81tx6wkld7wuO3f\nSlonaQLVNfqpw1WK5m2slQkkqXSHteWx5gaQNImq5TJmZfJjb1goaSLVsNRFwM3AD5oNKdp0JHAI\n8KDt46lanDs0G1JsgnOpBlk8X9JHqX4QfKzZkJqVPpUuVzoKd7N9f1mfDkyw/eMm44r2SLrJ9v6S\nFgGvA1YDd9jes+HQok2S9qT6YSBgge07Gg6pUbn81eVsW9I3gZeV9XubjSg20cBW5hrSyuw2d1PN\nDRsPIGma7Z83G1Jz0lLpAZLmAOfZ/mHTscTmSyuz+0h6P3Am8BDVBMj+yY8vbzSwBiWp9ABJdwJ7\nAPcBvyJ/sbuGpLcC19p+rKxPBA6y/e/NRhbtkLSEagTYI03HMlokqfQASb8zWLnt+0Y6ltg0km61\nvc+AstyksEtIug54ve11TccyWqRPpTfsAiy2vRqgDCt+CVXLJUa3wUZg5t/lKCfpL8riz4DrJf0H\nG95m51ONBDYKZEhxbzifqoO335pSFqPfQkmfkvTC8voUVYd9jG7bl9fPgfnAs1rKnttgXI3LL6Le\noNbbbpeJkPluu8P7gb8Brijr84FTmgsn2mH77wAkvd32la2fSXp7M1GNDulT6QGSvgpcz9Otk5OB\n19k+orGgIsYASTfb3ne4srEkv2Z7w59Rzez967J+DXBSc+HEcCR92vZpkr5OucVHK9uHNRBWtEnS\nG4E/BKZIOrflownAmO60T1LpAbaXA7OajiM2ySXl/ZONRhGb6xfAQuDtwP+UsnVU81U+0FRQo0Eu\nf/UASbsB/wQcWIr+GzjV9tLmooroXZK2Bj4KvBu4txRPA/4VOMP22oZCa1ySSg+QNB/4Ek//+j0G\neKft1zcXVQxF0m0MctmLTFztCpLOoRrl9RcDhvJ/kuqu4ac2GV+TklR6wEYm0D2jLEaPjU1Y7ZeJ\nq6ObpLuBF3nAf6DlNvh32p7RTGTNyzyV3vCIpGMkjSuvY4DcNmIUs31f/4tq0twrgJcDTyahdAUP\nTCilcD2Dt0DHjCSV3vCnwFHAg8ADVM/oOL7RiKItkt4N3AT8EdX3doOkP202qmjD7ZKOHVhYftDd\n2UA8o0Yuf0U0SNJdwGv7b0goaSfg+7Zf3GxkMRRJU4CvAo/z9B0Q+oDtgLfaXtZUbE3LkOIeIGl3\nqpnZ02n5TjPXoSs8QvVgrn6ryaXLUa8kjVdLOhh4aSn+pu0FDYY1KqSl0gMk/Qi4CLiNludj2/5O\nY0HFkFpuSLgP1QPWrqK6Fn848GPbf9JQaBFbJC2V3vCE7XOH3yxGke3L+0/Lq99VDcQSUZu0VHqA\npHcAM4Bvs+Htt29uLKiIGJPSUukNLwPeBRzM05e/XNZjFCsPeRpsaGq+u+hKSSq94e3AC2z/pulA\nYpN9sGV5W+BtjPEbEkZ3S1LpDT8BJgLLmw4kNo3tgQ/k+p6kmxoJJqIGSSq9YSJwp6QfsmGfSoYU\nj3KSdmxZ3QrYD9ihoXAitliSSm84s+kAYrMtoupTEdVlr3uAExqNKGILZPRXjyg3KJxh+xpJzwbG\n9d89NSJipKSl0gMknUj1pMcdgRcCU4DPAYc0GVcMT9K2VI9//l2qFst/A5+z/USjgUVsprRUeoCk\nW4H9gRttv7KU3Wb7Zc1GFsORNJfq1iyXlqJ3ABNtv725qCI2X1oqveFJ27+RBICk8Yzx2293kb1t\n79Wyfp2k2xuLJmIL5db3veE7ks4AtpP0euBK4OsNxxTtuVnSAf0rkl5N9ezziK6Uy189QNJWVCOG\nDqUaRfSfwIWDPUQoRhdJdwAvBn5eiqYBd1GNBMtjhaPrJKn0CEmTAGyvaDqWaF8eKxy9Jpe/upgq\nZ0l6mOrX7V2SVkj626Zji/aUpDEVOLgs/wrYquVRwxFdJUmlu30AOBB4le0dbe8IvBo4UNIHmg0t\n2iHpTOAjwOxS9CyeHgkW0XVy+auLSboFeL3thweUTwK+3T+8OEavMhz8lcDNLcPBf5y+lOhWaal0\nt60HJhR4ql9l6wbiiU33mzKgwgCSntNwPBFbJEmluw11q/vcBr87zJX0eWBiuTPCNcCFDccUsdly\n+auLSVpP1bH7jI+AbW2ntdIFytyip4aD257fcEgRmy1JJWIUKXOOjrZ9WdOxRGyOXP6KaICkCZJm\nSzpP0qFlePj7gJ8BRzUdX8TmSkslogGSrgJWAj+gupv086kuf51q+9YmY4vYEkkqEQ1ovYu0pHHA\nA8C03PI+ul0uf0U0Y23/gu31wNIklOgFaalENGDAyD0B2wG/Lsu2PaGp2CK2RJJKRETUJpe/IiKi\nNkkqERGtZwbgAAABoklEQVRRmySViA6RtF7SrZJ+IulKSc/exPqnbWqdiKYlqUR0zuO297G9N9W9\n2P6s3YplmPFpQJJKdJUklYiR8d/AHgCS/l3SIkmLJZ3Uv4GkNZL+UdKPgL8CdgWuk3SdpD+V9OmW\nbU+UdM5In0TEcDL6K6JDJK2x/VxJ44F/A75l+3xJO9p+VNJ2wA+B37f9iCQDf2x7bql/L9Bn+2FJ\nzwV+BOxpe62k7wPvsX1bM2cXMbjxTQcQ0cO2Kw/hgqqlclFZ/nNJby3LU4EZwCPAeqrk8wy210i6\nFnizpDuonqWThBKjTpJKROc8bnuf1gJJBwF/ALzG9q8lXQ9sWz5+osyu35gLgTOAO4F/rT/ciC2X\npBIxsnYAVpaEsidwwBDbrga2Bx4GsH2jpKnAvkAeNxyjUjrqI0bWt4Dx5RLWx4Ebhtj2AuBbkq5r\nKZsLfM/2yg7GGLHZ0lEf0UUkfQM4x/aCpmOJGExaKhFdQNJESf9D1U+ThBKjVloqERFRm7RUIiKi\nNkkqERFRmySViIioTZJKRETUJkklIiJqk6QSERG1+f/+04aAXCvzkAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_parties.plot.bar(legend = False, color='BRY')\n", + "plt.ylabel('Registered Voters')\n", + "plt.xlabel('Party')\n", + "plt.title('Party affiliation')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Problem 3: For this next question, implement the above. We want to compare how the number of voter registrations to election results for one precinct (PRECINCT 42). Create a bar chart that has two bars each for category (Democrat, Republican, and Other). One of the bars will represent the number of registered voters to that party, and the second bar representing the count of results (ie how many people actually voted for that parties candidate) for each group**\n", + "\n", + "Hint, you will have to load the precinct level result data into Pandas, then perform the correct grouping and summing to get the numbers you need from both the voter registration data and the precinct level results, then join the two into single dataframe to make your chart. You can base your answers on the following help page: http://chrisalbon.com/python/matplotlib_grouped_bar_plot.html" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Votes
Democrat802.0
Republican736.0
Other81.0
\n", + "
" + ], + "text/plain": [ + " Votes\n", + "Democrat 802.0\n", + "Republican 736.0\n", + "Other 81.0" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Difference between registered voters to the party and results.\n", + "\n", + "# Read Election Results data and create a table for Precinct 42\n", + "df_results = pd.read_table('data/centrecounty_precinct_results_nov2016.txt', sep=',') #Read table\n", + "df_res_prec42 = df_results[df_results['PrecNo'] == 42] #Filter results for precinct 42\n", + "df_respres_p42 = df_res_prec42.loc [df_res_prec42['Contest'] == 'PRESIDENTIAL ELECTORS'] #filter results to get only for presidential election\n", + "df_respres_p42.groupby('Candidate').Count.sum() \n", + "\n", + "grouped_res42 = df_respres_p42.groupby('Candidate') # Group by candidate\n", + "summed_res42 = grouped_res42['Count'].sum() # Get counts of each group\n", + "summed_res42.sort_values(inplace=True, ascending=False)\n", + "df_summed_res42 = summed_res42.to_frame() #Create a data frame with the values\n", + "df_summed_res42.columns = ['VOTES']\n", + "df_summed_res42.index.names = ['CANDIDATE']\n", + "\n", + "parties = ['Democrat','Republican','Other']\n", + "values_res = np.array([df_summed_res42[(df_summed_res42.index == 'HILLARY CLINTON, PRESIDENT')].VOTES.item(),df_summed_res42[(df_summed_res42.index == 'DONALD J TRUMP, PRESIDENT')].VOTES.item(),df_summed_res42[(df_summed_res42.index != 'HILLARY CLINTON, PRESIDENT') & (df_summed_res42.index != 'DONALD J TRUMP, PRESIDENT')].VOTES.sum()])\n", + "df_results42 = pd.DataFrame(values_res,index=parties,columns=['Votes'])\n", + "df_results42 " + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Reg Voters
Democrat824
Republican978
Other314
\n", + "
" + ], + "text/plain": [ + " Reg Voters\n", + "Democrat 824\n", + "Republican 978\n", + "Other 314" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Read Voter Registration data and create a table for Precinct 42\n", + "df_prec42 = df_voters[df_voters['27'] == 42]\n", + "\n", + "grouped42 = df_prec42.groupby('12') # Group by party registration\n", + "summed42 = grouped42['12'].count() # Get counts of each group\n", + "summed42.sort_values(inplace=True, ascending=False)\n", + "df_summed42 = summed42.to_frame() #create data frame with registered voters\n", + "df_summed42.columns = ['Voters']\n", + "df_summed42.index.names = ['PARTY']\n", + "\n", + "parties = ['Democrat', 'Republican', 'Other'] #Group all others and add them to table\n", + "values = np.array([df_summed42[(df_summed42.index == 'D')].Voters.item(),df_summed42[(df_summed42.index == 'R')].Voters.item(),df_summed42[(df_summed42.index != 'D') & (df_summed42.index != 'R')].Voters.sum()])\n", + "df_voters42 = pd.DataFrame(values,index=parties,columns=['Reg Voters'])\n", + "df_voters42" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VotesReg Voters
Democrat802.0824
Republican736.0978
Other81.0314
\n", + "
" + ], + "text/plain": [ + " Votes Reg Voters\n", + "Democrat 802.0 824\n", + "Republican 736.0 978\n", + "Other 81.0 314" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Join the two tables\n", + "df_prec42_diff = pd.concat([df_results42, df_voters42], axis=1)\n", + "df_prec42_diff" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n0KBBRW8bEfziF79g+vTpTJ8+nXnz5nHYYYcxbNgwHnnkEXbccUdGjx7NjTfe2IxH0PycPMzMaujQ\noQMHHXQQp5xyCqNGZff+HHDAAfz+979n3bp1LFmyhEceeYQhQ4bQsWNHli1btn7bESNGcM0117Bm\nzRoA/vWvf/Huu+8yf/58evTowamnnspXvvIVpk2blsuxNRW3eZiZ1WLUqFEcc8wx6y9fHXPMMTz+\n+OMMGDAASVx88cV86EMfolu3brRq1YoBAwYwevRozjrrLF588UX23ntvIoLu3bvzpz/9iUmTJnHJ\nJZfQpk0bOnToUPE1j812DPOqqqrweB5Wjnyrbv1mzZrF7rvvnncYW4TazrWkqRFR1dC2vmxlZmYl\nc/IwM7OSOXmYmVnJnDzMzKxkTh5mZlYyJw8zMyuZk4eZWQ2tWrVa34HhkUceyVtvvdXo1/z73//O\nvvvuu1HZ2rVr6dGjB6+88kqd211//fX1Ls+LHxI0s7LW1M/FFPPcS7t27Zg+fToAJ598MldddRXn\nnXdeo/Z7wAEHsGDBAubPn8/OO+8MwN/+9jf69u3LDjvsUOd2119/Pf369at3nZrWrl1L69bN+/Hu\nmoeZWT323XdfFi7cMPr1JZdcsr679fPPP399+Y9+9CP69OnD/vvvz6hRo7j00ks3ep2tttqK448/\nfv0T67Ch00WA6dOns88++9C/f3+OOeYY3nzzTe644w6mTJnCSSedxMCBA1m5ciVTp07lwAMPZNCg\nQYwYMYJFixYBMHz4cM4++2yqqqq44ooruP322+nXrx8DBgxg2LBhTX5enDzMzOqwbt06Jk6cyFFH\nHQVkPebOmTOHyZMnM336dKZOncojjzzCU089xR/+8AdmzJjBfffdR129WxT21rt69Wr+8pe/8NnP\nfhaAL37xi/z0pz/lmWeeYc899+SCCy7g2GOPpaqqiltuuYXp06fTunVrvvGNb3DHHXcwdepUTjnl\nlI1qRO+99x5Tpkzh29/+NhdeeCH3338/M2bM4O67727yc+PLVmZmNaxcuZKBAweycOFCdt99dw49\n9FAgSx4PPPAAe+21FwDLly9nzpw5LFu2jJEjR9K2bVvatm3LkUceWevrVlVVsXz5cmbPns2sWbMY\nOnQoXbt25e233+att97iwAMPBLJLZccdd9z7tp89ezbPPffc+njWrVvH9ttvv3755z73ufXT++23\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the dataset\n", + "df_prec42_diff.plot.bar(color = 'GY')\n", + "plt.title('Registered voters and results in Precinct 42')\n", + "plt.ylabel('Number')\n", + "plt.xlabel('Party')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 2 - Scatterplotting\n", + "\n", + "Now we will use the **precinct_centroids** file provided to display the geographical location of the centroid of each precinct, plot them in a scatterplot, then size the points in the scatterplot according to the number of votes.\n", + "\n", + "First, load the CSV." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
XYOBJECTIDNAMEPrecinctGlobalIDMDJShapeSTAreShapeSTLen
0-77.97239141.1293401BURNSIDE40{A309C3DE-8AD8-46A5-B8EA-B8F7E1ADB972}49-3-032.530029e+09280069.560289
1-77.64141441.0685052LIBERTY60{57577111-D7B7-4048-9517-EF2ED6059928}49-3-026.878831e+08131265.443714
2-77.68809041.0103103HOWARD TWP58{C9B8B5CF-6699-485A-97D2-74FB9B2D6FFE}49-3-025.275320e+08111072.612891
3-77.64234840.9859814MARION61{FA3740D2-624B-4464-B6CD-16F6E219ADEA}49-3-026.135493e+08131038.017743
4-77.94989241.0275685SNOW SHOE14{908F092A-BCFF-4EA5-99D7-B9248A2EA56A}49-3-031.644442e+0719920.287608
\n", + "
" + ], + "text/plain": [ + " X Y OBJECTID NAME Precinct \\\n", + "0 -77.972391 41.129340 1 BURNSIDE 40 \n", + "1 -77.641414 41.068505 2 LIBERTY 60 \n", + "2 -77.688090 41.010310 3 HOWARD TWP 58 \n", + "3 -77.642348 40.985981 4 MARION 61 \n", + "4 -77.949892 41.027568 5 SNOW SHOE 14 \n", + "\n", + " GlobalID MDJ ShapeSTAre \\\n", + "0 {A309C3DE-8AD8-46A5-B8EA-B8F7E1ADB972} 49-3-03 2.530029e+09 \n", + "1 {57577111-D7B7-4048-9517-EF2ED6059928} 49-3-02 6.878831e+08 \n", + "2 {C9B8B5CF-6699-485A-97D2-74FB9B2D6FFE} 49-3-02 5.275320e+08 \n", + "3 {FA3740D2-624B-4464-B6CD-16F6E219ADEA} 49-3-02 6.135493e+08 \n", + "4 {908F092A-BCFF-4EA5-99D7-B9248A2EA56A} 49-3-03 1.644442e+07 \n", + "\n", + " ShapeSTLen \n", + "0 280069.560289 \n", + "1 131265.443714 \n", + "2 111072.612891 \n", + "3 131038.017743 \n", + "4 19920.287608 " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_precinct_locations = pd.read_table('data/center_county_precinct_centroids.csv', sep=',', low_memory=False)\n", + "df_precinct_locations.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have a new `DataFrame` for each precinct and the geographical location of its centroid, we can use lat/lon values to create a scatter plot. We can even vary their size based on the variables or criteria we set. If variation across precincts is not that big, we can use a log function to better visualize it on our plot. Numpy has a quick log implementation:\n", + "```Python\n", + "np.log(value)\n", + "```\n", + "In this following example, we give the points a simple size of 25." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nSTiLpQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(df_precinct_locations['X'],df_precinct_locations['Y'], s=25)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Problem 4: Using the above example, and the documentation on scatterplots, create two scatterplots using longitude and latitude X and Y locations, one showing percentage of vote for Trump, and other percentage of vote for Clinton. Make the Trump dots colored red, and Clinton blue.**\n", + "\n", + "Find the [Scatterplot documentation here](http://pandas.pydata.org/pandas-docs/version/0.19.1/visualization.html#scatter-plot)\n", + "\n", + "Hint: You will need to join the results precincts file to the centroids, and then set the size of the plot points to be the percentages. This is accessed using the S property.\n", + "\n", + "To perform the join, use merge. This [Stack Exchange](http://stackoverflow.com/questions/20375561/joining-pandas-dataframes-by-column-names) question will help!" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nZ0leSY8eqZM1QlYWcMghyTnW4MFyrO++k2q4sQgGgUceqf3e0qWiKLZvr32X//ffcic/cKAouUDA\nO9mt9E0nMl+DSlFcRn0YDZGiIhnMFiyQHhi77ioK4pxzmnbWbVmZJNN9/LEoz4gPJRiUa/TJJ7XN\nUcuXy2xn+/b4jmSfT8rHzJyZeHZnl/feAy66yLwPY9o0LSWuuIYVH4YqDCU9qKqSBLV168Ss1r27\n9Fi3kyC2fDkwcaKUDy8oEL/JwIE772voUCkJkyibPi9PIrrOO8+6LGaorJSS4lu3Jl63Wzc5L02c\nU1xCFYbScNi2TcxEEyaILyEclsEwHJYy6uPGiT/B7bv7deskoMBsJd+ePWuH47rNjBlSbSCeOQ0Q\nxTVnjjc+IKXJolFSSsNg+XIxEd1/vyiOwkLJNSgqEv/MX39JV7rjjqt/ILXD559bU0JLl3pbk2vg\nQDGltWwpkWXRBIPSY+Orr1RZKClFnd5Kati2DejXD1i7tn6TUCgkjuzTTpMaS26ZYgoLrZWOz8kB\nduyQAd0rBg6UyLKpUyWUessWMVWNHCl1nNQMpaQYVRhKanjsMbljN1ONt6xMcjdmz5awWDfYdVfJ\noDdrkqqokG28JjNTTFMnneT9sRTFImqSUpJPVZU0GCorM79NKCQhxW4xeLC1GUbPnsmp+qsoaYwq\nDCX5zJkTv/x4PJglCbC42B0ZWraUcuhm/Bh5eeJ8V5QmjioMJfmsW2dvu+xsdx3PTzwhZqbMzPjr\n+P3SL+X00907rqI0UFRhKMnHbogss/3KvbFo2xaYO1fqR+Xl1XYq5+RI0t7w4VKx1m4LWkVpRKjT\nW0k+3bvbaz3rRVmMTp2k5/m338qM4/ffRVn07y/tdzt3dvd4itKAUYWhJJ9evYD27WVwNktWloSX\nutU/Ixoi4IgjZFEUJS46z1aSDxFw001iBjJLdjZw7bXeyaQoSkJUYSipYeRIKaBnps9HIADcfHPy\ne3soilILVRhKasjMlB4ZAwfu7HCOkJ0tCuWmm4Dbbku+jIqi1EIVhpI6fD5RGp99JpVjc3JkNuH3\ny+OoUcDPPwP//KeWxVCUNECd3kpqIZKaUv36SYHBzZvFwd2ypbshtIqiOMbzGQYRZRLRz0T0ifG6\nORFNJ6JlxuNOBXqIaC8imh+1FBLRdV7LqqQYvx/o2FHyI1RZKErakQyT1LUAFke9vgnADGbeE8AM\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Map 1: Votes for Trump\n", + "# Add your code below:\n", + "df_rtrump = df_results[(df_results['Contest'] == 'PRESIDENTIAL ELECTORS') & (df_results['Candidate'] == 'DONALD J TRUMP, PRESIDENT')]\n", + "df_plottrump = df_rtrump[['PrecNo','PctCnt']]\n", + "df_trump = df_precinct_locations.merge(df_plottrump, left_on ='Precinct', right_on ='PrecNo', how='left')\n", + "plt.scatter(df_trump['X'],df_trump['Y'], s=df_trump['PctCnt']**1.3, color = ['R'])\n", + "plt.ylabel('Lat')\n", + "plt.xlabel('Lon')\n", + "plt.title('Precincts by percentage of votes for Trump')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEWCAYAAAB1xKBvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXeYVPXVgN+zvYKKqCAi1tglghUL9qhYYi/YjQZj7L0k\nli/BrlETjb1gN2LB3hCNDRCNKFaCItKUviy7y+75/jh3s8My5c7u3JnZ3fM+z31m5tZz78zcc3+n\niqriOI7jOKkoyLUAjuM4TsfAFYbjOI4TClcYjuM4TihcYTiO4zihcIXhOI7jhMIVhuM4jhMKVxid\nABH5XEQG5/D4x4nIu7k6vtOCiPxKRD4RkYUicnqu5QmDiAwSkW9EZJGIHJCF4w0WkR9jPuf0/9OR\ncIURISIyRURqgz/CTBG5X0SqMn0cVd1YVUe3Zx9+0w9P6xtOnnE+8JaqVqvqLZnaacS/jyuB21S1\nSlWfycQORWQrEXlRROaJyBwR+UhEjo+3bjr/n+A/vVsmZOyIuMKInn1VtQrYAhgIXNp6BTH8u8gg\nXfiargl8nmsh0qTNMotIUZx52wJvAm8D6wI9gGHAb9ohowOgqj5FNAFTgN1iPl8HjArejwb+Avwb\nqMV+2N2Be4DpwDTg/4DCmO1/B0wCFgJfAFu0Pg5wOfAE8GCw3ufAwJh9rAE8DcwGfgFuAzYElgCN\nwCJgXrDu3sFxFgbynJvgPI8LzuM2YD7wJbBrsOwQYHyr9c8Gnk2wr9HAcOAjYAHwLLBSzPJtgPeA\necCnwOBW27a+pisB9wE/AXOBZ2LWHwJ8EuzrPWCzVt/ducB/gnN6HCgDKoN9NwXXahHQG9gKeD/Y\n1/TgWpTE7G8P4KtgX//AbmYnxSw/Ifhu5wKvAGsm+V3tF3yv84Jz3jCY/2bwHS4J5Fq/1XaHAeNa\nzTsLeC543z343cwGvscebgqS/D5KgeuBH4CZwB1AebBsZWBUIOMc4B2gIM65fBdcy9pg36XB9Xwu\n2O5b4Hcx618OPAWMCH4fJ8XZ57vA35Ncv8HAj/H+pyT5/wAPtZL1/GTfR7LfUa7vTW2+p+VagM48\ntfohrhH8qK4KPo8O/mgbA0VAMTAS+Cd2U1oFu2meEqx/CHbT3hIQ7Ga4ZpzjXB78ufcGCrGb7wfB\nskLsJntTcIwyYPtg2XHAu63knw7sELxfkUBBxTnP44Cl2M2nGLsxzcdu1qXBHz/2TzQBOCjBvkYH\n57lJIOO/gBHBstUxJbc3diPbPfjcM8k1fSH4k64YfN4pWPfXwCxg6+C6HBtcx9KYa/oRdvNaCbuZ\n/z5YNpiYG04wbwCmzIqAfsH6ZwbLVsZubgcGy88AGghudsD+2I1xw2D5pcB7Ca7P+kBNcO7FmAnq\nWwLlFFyD5W6iwbIK7Ca4Xsy8scDhwfsHMQVdHZzD18CJSX4fN2E39pWCbZ4HhgfLhmMKpDiYdgAk\n1f8k+DwGU6plQH9Mge0S8/tuAA4IfgPlcc6xEdg5yf9yme+PkP+fBLKm+j6mkOB31BGnnAvQmafg\nx7IIe/L4PvgTND+BjQaujFl3VaAu9g8AHIHZo8GeOs9IcpzYH/zrMcs2AmqD99sGf76iOPuId0P4\nATgF6JbiPI/DnuAlZt5HwNHB+9uBvwTvN8aeoksT7Gs0cHUr+euDP+8FwEOt1n8FODbBNe2FPRGu\nGOc4txMo75h5X9GiUKYAQ2OWXQvcEbwfTCuFEWf/ZwIjg/fHAO/HLBNgKi0K4yWCG3PwuQBYTJxR\nBnAZ8ESrdacRjLRIojCC5SOAPwXv18MUSEVwfeuBjWLWPQUYHe/3EZxDDbBOzLxtgf8G76/ElM+6\nIf8nsQ9WjUB1zPLhwP0xv+8xSfa1OqDABknWWeb7I+T/p/W6Ib+PhL+jjjh1RRtvtjlAVVdQ1TVV\n9VRVrY1ZNjXm/ZrYE8r0wFE3DxttrBIsXwMbvodhRsz7xUBZYOtdA/heVZeG3M9B2JPW9yLydmAb\nTsQ0Df4RAd9jT1UADwBHiogAR2N/sLok+4q9Lt9j12Vl7Bod0nx9gmu0PaYY4m27BjBHVefGOcaa\nwDmt9rVGjMyw/HVMGLAgIuuLyCgRmSEiC4C/BjIT7PN/cgXXKdZpvibwtxg55mA35NXjHKo3dk2a\n99UU7DveuvF4BHsQATgSM9EtDmQtjt138D7RfntiimZ8jNwvB/PBzK/fAq+KyGQRuTCkfL2x72xh\nEjmmkpi52ENCryTrpCLR/yceYb6P0L+jfMcVRm6JvcFOxUYYKwcKZgVV7aaqG8csX6edx5sK9E3w\n49flZqiOVdX9MaX1DGbbTcTqgUJopi826kBVP8CeXnfAblIPpZBzjVb7aQB+DuR/KOb6rKCqlap6\ndYLzmAqsJCIrxDnGVGzUE7uvClV9NIVsrY/RzO2Y72Y9Ve0GXIzd9MFMe32aVwyuU5+YbadipsdY\nWcpV9b04x/kJUzCx+1oDe6oNw2tATxHpjymOR4L5P2PXec2YdfvG7Lf1Of+M2fI3jpG5u1qAB6q6\nUFXPUdW1MRv/2SKyawj5fsK+s+oEcsSTpWWBKb/3sYedKGh97PZ+Hx0KVxh5gqpOB14FbhCRbiJS\nICLriMhOwSp3A+eKyIAgAmhdEVkz8R7j8hF287paRCpFpExEBgXLZgJ9RKQEQERKROQoEemuqg2Y\nDb4pyb5XAU4XkWIROQSzx78Ys/xBzBHcoKqpwjOHishGIlKBmTaeUtVGzJyyr4jsKSKFgfyDRaRP\nvJ0E1/Ql4B8ismIg247B4ruA34vI1sH1rBSRfVrdqBIxE+ghIt1j5lVj12iRiGyAReU08wKwqYgc\nECjrPwCrxSy/A7hIRDYGEJHuwTWMxxPAPiKyq4gUA+dgDxrxlMtyBN/lk9gIYCVMgRBc3yeAv4hI\ndfDbOhu75s3n/L/fR/AkfRdwk4isEsi9uojsGbwfEvxGBfNnNZL899Ms39TgXIYH3+9mwIkxcoTh\nfOA4ETlPRHoE8mwuIo+lsY9EzATWjvncru+jo+EKI784BijBIpPmYtEgvQBU9UksAugRzO78DPaH\nD01wU9gXc5j/gJlFDgsWv4k55WeIyM/BvKOBKYGJ5ffAUUl2/yFmE/85kPNgVf0lZvlDmCM7zB//\nIeB+bChfBpweyD8VcxBfjPlipgLnkfx3fDT25Pwl5uQ+M9jXOCzq7DbsWn+L2elToqpfAo8CkwNz\nTG8sEuZI7Lu5C3O0N6//Mxa0cC3mpN8IGIfdWFDVkcA1wGPBtZ4I7JXg2F8BQ4FbsWu9Lxa6XR9G\n9oBHgN2AJ1uZJ/+I+SUmY5FGjwD3Bsvi/T4uwK7bB4HcrwO/CpatF3xehD3x/0NV3wop3xGY0/0n\nLBDkz6r6etiTC0ZmuwTTZBGZA9zJsg8wbWU4cGnwvZ+boe+jwyDLmp0dJxpEpBy7YW+hqt8kWW80\nFhV1d7ZkyzZBfsiPwFFp3EQdJ+f4CMPJFsOAscmURWcmMKOtICKltPg3PsixWI6TFok8/46TMURk\nCnaDjLxOUB6zLWbiaTY5HtAqYs5x8h43STmO4zihcJOU4ziOE4pOZZJaeeWVtV+/frkWw3Ecp8Mw\nfvz4n1W1Z+o1O5nC6NevH+PGjcu1GI7jOB0GEfk+9VqGm6Qcx3GcULjCcBzHcULhCsNxHMcJhSsM\nx3EcJxSuMBzHcZxQuMJwHMdxQuEKw3EcxwmFKwzHcRwnFK4wHMdxnFC4wnAcx3FC4QrDcRzHCYUr\nDMdxHCcUrjAcx3GcUHSqarWOk8/U1MCrr8Ls2VBZCTvsAH375loqxwmPKwzHiZg5c+CSS+DBB6Gw\nEBoboaAAli6FQYPg2mthiy1yLaXjpMYVhuNEyPTpsPXWMHMm1Ncvv/yNN2yk8fTTsOee2ZfPcdLB\nfRiOExGqsMcepjTiKYtmFi+Ggw6C777LnmyO0xZcYThORIweDVOmmOkpFfX1cNNNUUvkOO3DFYbj\nRMT115ujOwwNDXD//bBkSaQiOU67cIXh5B1z5sDVV8OAATBwoN14583LtVTpM2GCmaXCIgJTp0Yn\nj+O0F3d6O3nF5MnmJK6pgdpam/fFF3DjjfDRR9CnT27lS4fGxvTWFwlnvnKcXOEjDCevOOooG2E0\nKwuw97NmwXHH5UysNpFujkV9PfTqFY0sjpMJXGE4ecOUKfDJJ9DUtPyyxkZ4910LT+0onHkmVFWF\nW1cEdt8dVlghWpkcpz24wnDyhmnToLQ08fLSUgtR7SgcfDAUF4dbt7wcLrggWnkcp724wnDyhrXW\ngrq6xMvr62GNNbInT3spLYUXXoCKiuTrVVTAeefB9ttnRy7HaSuuMJy8oXdv2HHH+E/lJSWw117Q\no0f25WoP225r+Rjrrmv1o0RallVVQbducN11cPnluZLQccLjUVJOXvHQQ3aTnTULFi2yeVVVFh11\n9925la2tbLklfP01fPCB1ZOaNg2qq2GffSzDO5kZznHyCVcYTl6xyioWRvvUU/Dkk1as79BD4be/\ntVFGR0XEFOG22+ZaEsdpO64wnLyjtNTCa486KteSOI4Ti/swHMdxnFC4wnAcx3FC4QrDcRzHCYUr\nDMdxHCcUkSsMESkUkQkiMir4fIiIfC4iTSIyMMl294rILBGZGLWMjuM4TmqyMcI4A5gU83kicCAw\nJsV29wO/iUgmx3EcJ00iVRgi0gfYB/hfypWqTlLVr1Jtq6pjgDkRiuc4juOkQdQjjJuB84E49Ucz\ng4icLCLjRGTc7NmzozqM4zhOlycyhSEiQ4BZqjo+qmMAqOqdqjpQVQf27NkzykM5juN0aaIcYQwC\n9hORKcBjwC4iMiLC4zmO4zgREpnCUNWLVLWPqvYDDgfeVNWhUR3PcRzHiZas52GIyG9F5EdgW+AF\nEXklmN9bRF6MWe9R4H3gVyLyo4icmG1ZHcdxnBZEVXMtQ8YYOHCgjhs3LtdiOI7jdBhEZLyqJsyJ\ni8UzvR3HcZxQuMJwHMdxQuEKw3EcxwmFKwzHcUKjCk88AQMGQPfusNZa1pO8pibXkjnZwBWG4zih\nUIXf/Q5OOAE+/hgWLIApU+DPf4attoKFC3MtoRM1rjAcp4Pz/fcwdizMmxftcd58Ex57bPnRRG0t\nfPcdXHVVtMd3co8rDMfpoHz/PWyzDWywAey2G/TqBcOGQUNDNMe75ZbEpqe6OvjnP20U4nReinIt\ngOM46VNbC9tuC7NmQWMjLFli8x94AOrr4Z57Mn/MyZOTL1+40JRVSUnmj+3kBz7CcJwOyBNP2A26\nsXHZ+bW18MgjEEXh5nXXBZHEy7t1c2XR2XGF4TgdkDFjYNGi+MtKS+HTTzN/zNNPh4qKxMf8/e8z\nf0wnv3CF4TgdkNVWg+Li+MuWLoUePTJ/zMGD4eijobJy2fnl5bD++nDppZk/ppNfuMJwugwzZ8Jf\n/wqHHGLO4Q8/7LhO2uOOg6IEHshVV4X+/TN/TBH4xz9gxAhztvfoYWaq4cPhgw+gqirzx3TyCy8+\n6HQJHnzQTCaq5iAuKLAn4x12gGeeMZNKR+Pmm+Hii83J3dho51NSAm+/DZtvnmvpnI5COsUHXWE4\nnZ7337ew08WLl19WXg5HHgl33738so7AxIkWzvrDDzBoEJx4YjTmKKfz4grDcWLYZx946aXE5qey\nMpg2DVZaKbtyOU4+4OXNHSeG0aOT+ypKSuC997ImjuN0WFxhOI7jOKFwheF0enbcMfny+nrLmnYc\nJzmuMJxOz2WXJU44Ky+HI45wR7HjhMEVhtPp2W47uO02c26Xldk8EUtA2357yy1wHCc1XnzQ6VCo\nWp7BSy9BUxPsvruFzBakePQ5/njYay+46y6YMAF69rTkt222SV4fyXGcFjys1ukwzJxpymHKFCuz\nrWrZxb16wRtvwBpr5FpCx+l4eFitk1eoWjG8l16Cr75q+z722AO+/NKK7jU/5yxaZGW3Bw9evnKr\n4ziZxRWGEynjx1uDn0GDzLn8619bP+hvvklvP++8Y4ph6dLllzU2Wjnvl1/OjMyO48THFYYTGd98\nY0/+X39tJqT5861fwyeftDT/CcvLLycu5w3WG+L559stsuM4SXCF4UTGVVeZgmhNU5MpkL//Pfy+\nmppSr9OJ3HGOk5e4wnAi45lnEvsVliyBRx8Nv6899khePru62qKgnMwxdy5ccw307Wv5Kj17wpln\nWtCB0zVxheFERiondH19+H3tvLNFQcXrAVFQYIUDhwxJTz4H6upa+oHH8u235nu64gqYOtXW+fln\nuP122GQTi0pzuh6uMJzI2G67xMuKimzUEBYReP11WHvtZUca1dWmSEaPTtxQyFmeV16x4IPKSrue\n/fvDCy/YssZG2HVXUxCtTYr19WZOPOAA+Omn7Mvt5Bb/izmR8ec/WxXYeH0oSkrg3HPT21/v3jBp\nErz2mjm4VWHPPa18eWFhZmTuCjzwAJx66rLfy6efwqGHwk03WV7L3LnJ/UYNDZYh/3//F728Tv7g\niXtOpDz0EJxyipmNFi+2J1oReOqp9EYYTmaoqYFVVomvxMF8FXvuaf6nVKy5pvszOgPpJO75CMOJ\nlKOPhv33NwUxbRqssw789rd2Y3Kyz3PPJR+NFRZaGHQYkoU5O50TVxhO5HTrBieckGspsstnn5mz\n+Fe/MiWZL8ycaY7uRCxZYt9XYWHqoAUvxdL1cKe342SQ//4XNt3UihoeeaRFFO26K8yZk2vJjPXW\ng9LSxMvLy+Gww8zHlIyqKjjrrMzK5uQ/kSsMESkUkQkiMir4fIiIfC4iTSKS0G4mIr8Rka9E5FsR\nuTBqOR2nvdTVWbn0L74wH8H8+fbE/u675pjPB/bcM7nCKCw0h/heeyU2GxYXWwDCoYdGI6OTv2Rj\nhHEGMCnm80TgQGBMog1EpBD4O7AXsBFwhIhsFKWQjtNeRo6EBQuWjy6qr4f//Ac+/jg3csVSVGQO\n7aoqu/HHzq+stGUlJfDII7DvvtY/pHm9ggJbZ7PNrLZXc28Rp+sQqcIQkT7APsDdzfNUdZKqpqpZ\nuhXwrapOVtV64DFg/+gkdZz289FHyR3BEyZkT5ZkDBpkCuyUU6BPH1h9dTjpJKvxtdNOtk5pKTz+\nuPlizj3XzFSnnmoJe2PHWqSV0/WI2ul9M3A+UJ3mdqsDU2M+/whsHW9FETkZOBmgb9++bRDRcTJD\nr152o43nVC4szK+b7Fprwa232pSMddeFv/41OzI5+U9kIwwRGQLMUtXxUR0DQFXvVNWBqjqwZ8+e\nUR7KcZIydGji7n2FheY/6OgsXQpPP205NFtsYV0LP/kk11I52SJKk9QgYD8RmYKZlHYRkREht50G\nxAbt9QnmOU7e0qsX3HGHOYub7f5lZWb3HzkydeRRvlNTY+Vejj3Wsu0nTIARI2yeZ3x3DSJTGKp6\nkar2UdV+wOHAm6o6NOTmY4H1RGQtESkJtn8uIlEdJ2Mce6z5B04/HfbbDy66qKUvSEfntNPMpxHr\np2lstHpTw4d7QcKuQNYT90Tkt8CtQE/gBRH5RFX3FJHewN2qureqLhWR04BXgELgXlX9PNuyOk5b\nWHdduP76XEuRWebPh8cei1/ZFiyMePhwyzlxOi9ZURiqOhoYHbwfCYyMs85PwN4xn18EXsyGfI7j\nJGfSJHPoJ1IYYO14nc6NZ3o7jpOS8vLUpUKSJQQ6nQNXGI6TpzzxBGy8sd2s11wTbr459U07Kjbd\n1Jz3iSguhsMPz548XZFffrEOiP37w4YbWu7MF19kVwYvb+44ecjw4RZ5FFuGvKLCsq8feyw3Mj34\nIAwbFr80erduMHGiFySMigkTYJddLMenualVYaFF3l1zDfzxj23fdzrlzV1hOE6eMW+ehejG8xdU\nVMC//21Pmbng9tvh/POtTEhjo+WdrLKKhQ1vtlluZOrsLFliGfm//BJ/eUWFdaPcdtu27T8dheEm\nKcfJM956K3HORl2ddRvMFcOGwaxZ1rXv1lut1eu336anLFStFtVhh8HAgdYf5bXXbL6zPE89lbwk\nfW1t9rLxvR+G4+QZibLFm5cV5Pgxr7zcenq3haYmy4h/7jkzbaladNXrr1ul3+eeW7YoogMvvZS8\nRpkqjElYyjWz+AjDcfKMXXaxntnxKC62DoYdlRtugGeftazx2BHFokXw9ttw8cW5k60jk+whI5O4\nwnCcPKNbN/jLX8w2HUtFhZlxNtkkN3K1l8ZGuPbaxP3Ea2uttEqzU9cxhgyB6iTlW0Vg552zI4sr\nDMfJQ846y6KhBg40BbL++hZWe889uZas7UydmlhZNFNQYEmCTgsHHZS4mRXYsosuyo4s7sNwnDxl\n331t6iwUFqZ2bKvaek4LJSVWp2unncz5XVNj84uLrfHVzTfDVltlRxZXGI7jZIU+faBnT/jhh8Tr\nFBdbsqKzLJtsApMnWy7Mww+b4thxRytyuc462ZPDFYbjOFlBBK64Av7wh/imqYoKuPBCe2p2lqd7\nd0vQa0+SXntxH4bjOFnjuOPgnHOsT0hzrklxsX0+/nhrB+vkL67LnbRoarJkrTffhPp6+PWv4dBD\nl4/ocZLT2GjJa9OnQ+/esMMOuc+vyBZXXgknngj33mu9QtZcE044AdZbL9eSOanw0iBOaMaMMeVQ\nU9OSSNRckO7qq63BjpOakSPh979fNny0shLuvLNzObmdjkE6pUF8hOGE4r33YK+9lrc9N0dsXHCB\nOeLOOSf7sqXD7Nnw6aew2mq5yWd4/nk46qjlcw0WLrQci3/9y66z4+QjPsJwUqIKG2wAX3+dfL2y\nMpg2DVZaKTtypUNTk+U23Hmn9W1oaLDOeC+8YNE72UDVqrlOS9Kdvl8/i4bJVuau42S8+KCIDAoz\nz+mcjBuX/CbXjIjZpfORv/0N7r7bKn/On28jpc8/hz32yF7Ru7Fj7djJaB4BOW1n7Fhznp9yCjzy\nSPLCfU56hHWz3RpyntMJGTfOntBTUVubvSJo6XL99cub0xobLfv4o4+yI8OsWamT0oqKbD0nferq\nYJ99YPBguPFGG02ecoqN6j7/PNfSdQ6S+jBEZFtgO6CniJwds6gb4PmYznLkqyll9uz48wsK4Mcf\nYeuto5ehb9/ERQWbaWiw9Zz0OessKw0f6x9atMimnXe2hwNvI9s+Uo0wSoAqTLFUx0wLgIOjFc3J\nF7baKpwiqKiw8gX5yIYbxp9fX5+9ZkSbbZa6I90665i/yEmPBQvgvvsSFy6srbW+Ek77SKowVPVt\nVb0C2EZVr4iZblTVb7Iko5NjBgywWPlUNDVZ8lU+cs01yxdwKy+HvffObmmFe+9NnLNSUQF33ZU9\nWToTX3yRuOkU2Chj9OisidNpCevDWCwi14nIiyLyZvMUqWROXnHffcmT8yoq7Ka84orZkykdfvMb\neOIJSw4TgaoqK1Hx6KPZlWO77SzpcYstTGF1727RZQMHWj+I/v3N3j5+vJlQliyBV1812d98M7VJ\nq6tSXp7cz9b8nTvtI2wexsPA48AQ4PfAsUACq7DTGdl6a2ujeeihFunTnLjX/Ce8/npzMOYzQ4bY\ntHSpOZ9z5W/ZemtTCP/9L8yYYf27Cwut6uguu9g6Ii1NhkpLbXlBgU1nngmXXOI1l2LZdFP7LSbq\nTFdeDocfnl2ZOiOh8jCCON0BIvIfVd0smDdWVbeMXMI08DyM6FG1Ustvv232/803hwMPtKdkJxwz\nZsD999tIYuWVzcl9ySV2PRsbU29fUWHtTF94wZTGtGkWEfTxxzbCO+YYUzxtLTXS1GTf8euvmzzb\nbGNd/vK9derjj1uJkdbRcOXlVtn1pZfyNygjl0SR6d08EJ4uIvsAPwF5mJ7lRI0I7LabTU56qMJV\nV8Hw4fZ5yZK27WfxYqtDdcMNVlLkvPNs3835BiNHWlLim2+mbyL8/HPz68yZ0/K0Xl1tiumJJ/L7\nez/sMLsOZ51lshcW2jU5+mi45RZXFpkg7AhjCPAOsAaWf9ENuFxVn49WvPTwEYaTz/z973D++am7\nzoWlutrMa/Eig0pKLLrtnXfC7++HHyySK1FyYUWFKaFshCC3h6YmS36srbXeGt2751qi/Cbjmd6q\nOkpV56vqRFXdWVUHAFmMLXGcjk1DA1x2WeaUBVj9qURhpPX1ZqJKJ2v8r39tqQ0Wj8WL879WGJgp\n7te/tgADVxaZpT0Flc9OvYrjOADvvmujgWxSVwejRoVbt6nJurmlknH8ePjpp/bL5nRM2qMw3CLo\nOCGZOzf7NvTGxvB1lBYtCqfQSktdYXRl2qMwOk+Z2wipq4MRIyyaqLranJCHHAIffphryZzWzJ9v\nzX022sjCNG+4IbHJJ13WXDNcBFQmqa42P0YYwjbAqq/Pz2rEnY36+jzNuVHVhBOwECsD0npaCCxN\ntm0upgEDBmg+8csvqptsolpRoWrxGzaJ2LwLLsi1hE4z8+errrOOallZy/dUXq46YIDqkiXt339T\nk+raay/7O4h6WnVV1aVLw8t44IGqBQXJ97nhhu2/Fk58li5VvfNO+x0WFNi08caqI0bY7ycqgHEa\n8h6bqjRItap2izNVq6qnDaXgN7+xkgWtHZ2qNu+WW6zktpN7brvN8hliQ11ra+HLLy2+v72IWNmP\nZOUr2kJh4fKjg+JiG1288ELq6rix/OlPyfNpKiqss6KTeZYutaTSM8+E774zn1JTk4U5n3IKDB2a\nvTL8yYi8i7CIFIrIBBEZFXxeSUReE5Fvgte4keIicoaITBSRz0XkzKjlzDRvvZW6LHhtrUXOhCkd\n7kTL44/Hz4uoqclc+ZBddoFnn82cL6O4GIYNg9tvt+6BFRXQo4e1f/3sM6sBlg6bb24d/yorl1VC\npaWmSK67DvbbLzOy5wv19fbdH320JaCef37qRmFRcMMN1hogXhRdTQ088ww88ED25VqOsEORtk5Y\nNNUjwKjg87XAhcH7C4Fr4myzCTARqMCSC18H1k11rHwySW2wQTizQWmp6vvv51paZ8CAxN/R/vtn\n9liXXqpaUtJ+k1NlperkyZmVTVV17lzVG25QHTxYdYcdTN5p0zJ/nFzz5JOq3burVle3XNOiIjNL\n7rKLmZR32erzAAAgAElEQVSzwdKlqj17pv6+1103GtMUmTJJtRcR6QPsA8QaXvYHmnXlA8ABcTbd\nEPhQVRer6lLgbeDAKGXNJAsXhn9KaWiAmTOjlcdJzYknxnf8VlbCccdl9ljnngurr56euSgexxwD\na62VGZliWWEFOPtsGyWPGWPZ6b17Z/44ueTxx+36zZ9v/9dmli61kea771pJlNhlUTFlSvL8l2a+\n/97KuOeSqE1SNwPnA7FGl1VVdXrwfgawapztJgI7iEgPEakA9sayzDsEb78d/mbQ1NT+G4fTfk48\n0Uw4lZUt8yorYc89M2+G6d4d3nvPKue2p4DgM8+4ObMtLFpkNaeSRcDV11vm+1/+Er08jY3h6n6J\nZD/SrjWRKYygnMgsVR2faJ1gOLScK0dVJwHXAK8CLwOfAHEvlYicLCLjRGTc7ERt1bLMokXpFWqr\nro5OFiccJSVW9uLee+GAA+Dgg8138eSTbS/il4zVVjM/w6OPWgHCtrBwobcebQsPPxzOj1RXB3fc\nYcojSsL0mgEb+a2wQrSypCLKEcYgYD8RmQI8BuwiIiOAmSLSCyB4jdvBWFXvUdUBqrojMBeIa+RR\n1TtVdaCqDuzZs2cU55E2ffqkN2r461+jk8UJT1GRlW8fOdIUxb77RqMsYo938MHWw/utt2CvvdJ7\n0CgszL2JoiPy+OPhTEBg3oOPP45WntJSOOmk5O1jy8vNTBjl7zEMkR1eVS9S1T6q2g84HHhTVYcC\nz2H9NAhen423vYisErz2xfwXj0Qla6bZbrv0FMbbb8P06anXczonIjB4MLz4oo0YwiqN+nobqTjp\nkY5forkvSdRceSX06xdfaZSVWRTcGWdEL0cqcqGvrgZ2F5FvgN2Cz4hIbxF5MWa9f4nIF8DzwB9U\ndV72RW0bBQXLtwNNRmmp1ehxnPXWCx8O262bjUx++SVamTobffqEX3fpUlg1npc1w1RXw0cfmW+l\nosK+2+pqm047zR4q86HnTKjy5h2FfClvvmCBlU8I66Dq3t0Kv3W2GHenbbzyiuUEpKps2/xg0tho\n5WbuuCN8iY+uzEsvmekxUXe+WNZeG779Nrt1wBYvhq++smNuuGFyU1UmyHh5cyc9GhrSi36pq7M+\nBE5+Mnu2ZYJfdBH87W/Rmw/33NNMFKlu/k1NZi5ZssR8Ljvu2PamTF2JPfe0B7pUSqCiwjohZrto\nZEWFlWfv3z96ZZEurjAiYMUVbUgZli23NPulk180NZmjsW9fywC++mq48ELLfTjllGjLlZ9zDrz8\nst3ciotT+8SWLLEyNDfeGJ1MnYWCAru23bsndiJXVMBBB8Hxx2dXtnzHFUYEFBRYm8gwNsfKSrj1\n1rYf6+ef7an3tNPg2mu99HQmOeMM+Oc/7WbcHLO/ZElLBeKTTkp/n42N5q966y0zOyRjhx3sxvbj\nj+Ec4bW1cPPNy5pCFy+2nI9337US646x4YYW/TRkiD3FV1dDVZW9rrqqtdF94AFv67ocYVPCO8KU\nT6VBlixR3WabZaufxk7FxVYOoD1lQe6+2/ZfXt5SZqS0VPUvf8nceeSCGTNU//1v1W++yZ0M06bZ\ntUxWqqGsTPXbb8Ptb+lS1Wuvte+8utpKUlRUWPXXZ55Jvu3rr6t26xauXEhVleoXX6jW1KiedpqV\nD+nWzY5XVqZ6+OGqs2a1//p0JmbMUH3qKasKO3q0amNjriXKLqRRGiTnN/lMTvmkMFRNaVx1lWqP\nHlY7qKDA/sCDBqmOHKna0ND2fb/11vJl05unigrVxx/P2GlkjZkzVffe225s3bubItx0U9Xx47Mv\ny/DhqRVGcbHqhRem3ldjo9WjSvZ9XX994u2ffz68wujWTfW991S32CL+w0pRkerqq+en0qipUf3u\nO9Wff861JF0LVxh5xtKlqtOn2x8hU8XDdtop+Y1j/fUzc5xsUVOjutZadhOO99Q8aVJ25Tn55HA3\n6EMOSb2v229PrCyap/Jy1U8+ib/9p5/ag0YYeUpLrVhg86gzkaI7+ujMXq/2MG2a6tChpuAqK+3h\narvtVN99N9eSdQ3SURjuw8gChYWWYNWjR+Zsou+9l3z55MkdKwv4oYcs4zlel7HFi+HPf86uPKus\nkjrSrfl7TYaqOctThcjW11uJ63hsumn44n/bbmt9N5LVSWposKiqfPh9TJtmEUGPPWb+oZoauxbv\nvQd77GE9PZz8wRVGByWM4ulIDrsHH0ycUdvUZH0kssnQoakVRmlp6kq2U6aYIkxFYyM891z8ZSJW\nPiZVmG15uUVzzZmT+nglJbnp+9Ca006zxMN4EWeLF8NRR0Vfy8kJjyuMDsrgwcmXb7RRxypqmOoJ\nPMoQ1nj86lew++6JI91KS61f9hZbJN/P4sXhc3KS3RgPPhguvdSURusHgeaue7ffbrkYGiIXV7V9\nlXIzwZw5FgWWLME10w8LdXVWS+rii23k9803mdt3V8AVRgfl8ssTP3FWVMD//V9WxWk3e+yRvH1p\n//7Zk6WZxx6z0NbKypZ4fRH7PHBguBtZ797hn5BTmbcuusgq6v72t3azLygwxTV0KHz4IRx7rMm2\n/vqpj1VQYA8VuWTy5NSJaYsWWZvcTPD223aNTzrJwmb/9CdLmD3sMB/FhCass6MjTPnq9I6KJ54w\nJ2FVlf6vA1tZmeo//pFrydLnhx8SO3YrKlRHjcrcsWpqLJLo5ZdV33lHdc6c5Ot/9JHqiSeq7rab\n6rHHWshvOsELe++tKpLcWV1RoXrTTeH32dSkWlsbX46HH07uJC8vV73kkvDHioovv0wdDFBamt51\nScRXXyW+JuXlqscd1/5jdFTwKKmuw6JFqvffr3r55ap33mntNTsqb71lYaHNCrC83G4YN96Ymf1/\n883yuQmx+Qljx2bmOK0ZPz75jVHE8jPmzcvM8ZqaVE84If4NsqLCIuzq6jJzrPbQ1KTar19yhVFW\npjplSvuPdcIJqoWFyY8zfXr7j9MRcYXhdFgWL1Z96CHViy9WveWWzOULPPigKaB4YbtgOTIVFfbk\nHUXf5FGjbP+tcyOqqlRXXdWetjNJU5ONQPv3N4VUUGBhy7ffrlpfv+y6dXXLz8sWjz+eWJmWl5si\nzwQrrZRcMVVVqd53X2aO1dFwheE4MTz+ePK8hNZP4H/6UzRyzJiheuWVquuua0qif3/Ve+4xE1mU\nNDQsP6Kor1f95z9V11nHFIqIZZ3ff7/lDWWTW29dtmJBUZG9P/BAS37NBM2j1mTf+x13ZOZYHY10\nFIaXN88ADQ0WDVNdnfuOWM6yzJ0Lq6+ePC+hNRUV8O9/58bRng3q6mC33aymVevrUllpkVbPPZfd\nKKo5c6w+11dfWcvaI4+0SLVMsfPOMHp04uWd/TtPhpc3zxLTplmESnU19OxpiXkXX+wlpvOJe+9N\nPx+lrq5zV309/XR4//34SrSmxqKJsh1lt9JKJtff/w5XXJFZZQH2v6ysjL+ssNAiy7qiskgXH2G0\nkeYM1Tlzlo0jLyuzH96YMen1Z3Yyj6p1V2tLBd+yMpgxw0pgdyamT7cRV6q//QorWMJhZ/oNX3aZ\nPQjU1racf0WFnev771sZ+66IjzCywCWXmLmjddLRkiXw2WeWHOTklsWLw2VZx6OkJPNJXfX18MQT\n8Mc/WivOSy+130o2GTYsXGJfUxPkQfPKjHLVVfDGG9bnYp11YPPNLXlv0qSuqyzSJce5nh2TpiZL\n6kqUfVxTYx3ahg7NrlzOstTUmB2+LVniIolLlaRLU5Mlil13nb1fuNDmFxbaE++vfmXtVbfeOjPH\nS0RdnbV/DYNI6uz7jsg221gdLadt+AijDSxZkvomNHt2dmRxEtOtW9szeJua0uuamGw/RxxhtaDm\nz29RFmCj09pa+OQT2GUXeO219h8vGdOmhffn1NXZU7jjxOIKow2Ul5vdMxEisPHG2ZPHiU9ZmVV6\nbQsFBZn5DocPt4qrqZ7WFy+2kh/ff9/+YyaitDScOQrMP+dtg53WuMJoAyLWvrO8PP7y8nI499zs\nyuTE54ILrPVmOpSWmq0/WW2rMNTXmxkqrGmroaF97XpT0bu3ObxTUVJibX8dpzWuMNrIBReYzTk2\nVE/Eoi7OPNNi2Z3cc+CBiRV7IoqK4A9/WHbe9OnWk2PjjS3yat11rfT2+PGJ9zNypJmkwlJfD3fe\naeagKBCxkNVkZdJFYNQo2HLLaGRwOjbu9G4jJSVmcx450p4KZ860m8nZZ8P22+dausyiaiGmDQ12\ns+xIyYmlpfDqq1Z1dtGi1OuXl8PDD9t5gvkYTjjBvmeRZXNs/vtfeOYZWGstePrp5avEjhmzrM8i\nLJMnw4Ybpr9dGI46ypLjrr/evs9mX1xRkZ37O+9Y9JDjxMMVRjsoKoJDDrGpszJqFJxzDvzwg90w\nu3e3J+1TTsldg6aPP7bkstpaS5g84AB7TUT//tag6cgjEydVlpZa1NKTT8Lee9u8xYtN+U+aFP+p\nv6nJ1vniC3sif/fdZX0mYRRUa0TSy0pvC1deCYcfbmansWNtlDx0qCmTdM13ThcjbA2RjjB5LanM\nkqgGU5T1lpLx0kuqG21kxy8paSkYWFZmdYemTo2/3d/+ZudRVJS4llBpqZUhr61t2e7gg5cvFphs\nWnll1YULW7a/8EKTMez2zQX3MlGd1XHCgvf0dtpLYyOcemr8p93Fi+Haa7MbOnzXXeaP+OILO359\nfcsT/pIl1syof3/47rtlt7vlFms8VFubPBS6rg5eeslGKvvvbyOS559Pr8xLba3VQ2pm8OD0R2H9\n+sGaa6a3jeNkC1cYTlzefz95DkNhodnvs8GHH1pUWjJTTWOjZd7vskuLYpg0CS68MHwCmqqZkZ57\nDk48MX3nc02NKVJVy+A+8sjk7UdbU1lpwRSOk6+4wnDisnBhcud2Q0PbHLpt4aqrwj3pNzWZ0hg1\nyj5fc03bC0G2tYf4jBnmFxg82OqMhaW42CKvDj+8bcd1nGzgTm8nLpttlvxmW1ICW2wRvRyzZsHr\nr4dPOFu40HIfqqvhgQeilS0excUWgbRgQXrbVVRYnaNUPa4dJ5f4CMOJy+qrw+67x7+BFRTAaqvB\nTjtFL8ekSZaxnQ4ffmj9HnJBfb2NcNIdodTVdaxwZadr4j9RJyEPPWT5ALGhltXVpixefTU7YbVt\nMQ2l4zfINEuWtO26FBbCU08tP3/pUvjyS6sc+9134UdajhMFbpJyErLCCpbJ/Oqrlp9QVwf77AN7\n7AETJ8KPP8LAgelnUqdDv35tLyCYK9qSR1FTY9ezmdmzreLxbbfZ+RcUmN9olVXgvPPg+OOTZ2w7\nThS4wnCSUlAAv/mNTQ0NlsR34oktjXWamqwUyhVXRGNSWWcdK//9ySeZ33dUtHcU8J//WEvR5pDh\nWL7/Hs4/38KFx4yBVVdt37EcJx0iN0mJSKGITBCRUcHnlUTkNRH5JnhdMcF2Z4nI5yIyUUQeFZE0\nLdlOpjn0ULj7bnuCXrDApkWLrKfDsGHRHTdZe83OQmWl5V9MndoSYZUo6GDxYisfstNO0WeFO04s\n2fBhnAFMivl8IfCGqq4HvBF8XgYRWR04HRioqpsAhYAHHOaQZtNUokS+Bx+EKVOiOfbBB9vUmU0w\njY3WCe6qq8KFKy9daias2ERBx4maSBWGiPQB9gHujpm9P9Ac8PgAcECCzYuAchEpAiqANnRmdjLF\ngw8mD7NtarL2o1EgAvfea61Ny8o6n+IoLITDDrPXESPCO/praizXxB3hTraIeoRxM3A+EFvkeVVV\nnR68nwEsZ4VV1WnA9cAPwHRgvqq+Gu8AInKyiIwTkXGzvc1dZPzyS/JS3fX1tk5UFBRY/+Xp0617\n3e67w6BBsN560R0zW3TrZgUBx4xp8Q2FZdq0ZZ3lUTF1qmXNDxxo+TdnnAHffhv9cZ38IjKFISJD\ngFmqmrBjQFD4arnno8CvsT+wFtAbqBSRuB2yVfVOVR2oqgN7JitZ6rSLLbZI/mRfVWXJflGzwgp2\ns3r1VasOe/TRuaua214KCmDFFeGtt6BvX5g3L/3RQkmJbRclN95opdtvvtlMkxMmwO23W2Xeiy7y\nEU5XIsoRxiBgPxGZAjwG7CIiI4CZItILIHidFWfb3YD/qupsVW0Anga2i1BWJwXHHZf8xlBQYDb4\nbDNgQMctyb3aahYR1dx/oqoqfeW3dKnlxkTFiBFw2WVmjoytrdXQYPNuucUUitM1iExhqOpFqtpH\nVfthDus3VXUo8BxwbLDascCzcTb/AdhGRCpERIBdWdZx7mSZlVaym0dFhdnamykqsgifkSPTz8jO\nBHvumZvjZoJfflk2k37QoPRzTlZYwUYnUdDUZCG8yYo3Ll5sIdVRdQl08otcZHpfDewuIt9gI4mr\nAUSkt4i8CKCqHwJPAR8DnwVy3pkDWZ0YDjzQym4ccYTF//fqZTkZEyZYldhcUFgIZ50VbfJgVJSW\nmg+imR49YL/9wuezVFRYXkxUJUX+/e/wTaBeeCEaGZz8IisKQ1VHq+qQ4P0vqrqrqq6nqrup6pxg\n/k+qunfMNn9W1Q1UdRNVPVpVI32GqauzVqvrrWdPbZtvbqUx0unJ3BXYZBO7LjNmwE8/wR13xHc8\n//gjvPeedceL+unzrLNggw3SdxjnA0WtUmcvvzyc8hMxZ/mJJ0YiFmCO7jDU12fH8e7kHq8lhdli\nd9rJokC+/Rbmzzfb8rBhVm7alUZ4Xn8dttvOlMjee1sSWs+ecO656ZX7ToeyMnjzTfMJdCTq65c3\nJ224oTVuqqxc1vQXS0mJXdO337aWuVHRrVs4n0pRUbR+FCd/cIWBjSz+85/lbbU1NfDii9ZQx0nN\n3/5m3eref9+U8Pz5loS2cKE5R/v3t5FJFKywQuIbbD5SWGgmvm7dll+28842MjviCFOG3bq1TNXV\nlo/y2WcWuRQlsc2oktHYCEOGRCuLkx+IdqKYuIEDB+q4cePS3q5v3+TD7512gtGj2y5XV2DMGHNA\nJ0vuEzFT34QJ0chQXt72hknZpqLCfAT9+ydfb948+Ogj8yWsuKKN3rLZM+Pss83smKgESVmZKb6H\nH86eTE5mEZHxqjowzLpefBBr0pOMH37IjhwdmTBd8VStyu3YsbDllpmXoaM8+1RUWJOnVMoCbOS0\nxx7Ry5SIa66x0cz779uIO5aKCthoI7jTw1G6DG6SIrXte+21syNHKr77Dg44wJ6kq6vhpJOiza4O\ny5w54UdgS5eacomCfM/brK62UcJdd8Gpp+ZamnAUF8PLL8M//gEbb2yjRBH7T9xwgyVPdvbCkE4L\nPsLAomwuvjh+vHllpZXvzjU//WRP5fPntzjhH3zQbtQTJ+Y2F2HmzPTW/+CDzMuwYIE9sU+blh8j\njZIS2Guvlt7nPXvCUUdZ2GzryKh8p7AQjjnGpsZGu74d7RyczOBfOxYNNXKkdTWLHXZXVlr28j77\n5E62Zm680WSLjdhqaLCb9RNP2J85V1RUpNcZb+7czB5/4sSW/hH5oCyaQ17vvdcSHjsTHSmwwMk8\nbpLCngZfe80ieTbbzJLStt0WHngA7r8/P2oVvf56/CzgRYvgjTeyL08sffumd40ymWj27bew/fbw\n88/JM5KzRUGBmZ7eeqvtyqKpyc5r/Hj46qu2tal1nCjwEUZAcTGccIJN+chqq8Gnny4/v7gYevfO\nvjyxiJhzNuzIIZNd4o48Mlz/iFiKiqK5CZeVQZ8+Fordliq68+bBPfeYb2D+fJOzsdH2e/rp8Pvf\nW4tWx8kVPsLoIJxxRvxqsUVF0Wb7huXcc8ONMkpK4LTTMnPMSZPMHJVuYuVGG5nfKpN+n27drILu\n11+3TVlMmmStaC+7zEq4L15sfpmaGgtsGD7clo8dmzmZHSddXGF0EPbaC847z25ylZVm9igvt4ib\nddfNtXRwyinhqsaWlmZOwd16q/lx0uW77+DSS6Ffv/aXEykstKf+L7+EHXZom/nyxx/NrDZ7duJ8\nhyVLbASy6652LMfJBa4wOhCXX243u1tvtWSq6dMt8iYf6NHDTDGVlfF9FAUFtuyFF2zdTDB2bNtN\nSwsWwDvv2GijreXRq6pM6Ywfb4UY28qFF5oJKozDftEi+MMf2n4sx2kPrjA6GL17w/HHm+0+yjpC\nbWH77S3S7OCDbSTUvbtNZWU2b9w4ewrPFG0talhQYE/sK69sMo0YYUEOhYUma2GhFTO8+mr43e/M\nFNi9u5mdune3kd2vfw133w1ffGF+i7Yybx7861/mqwiDqhV1/P77th/TcdqKO72djLLBBvD44+YA\n//prm7f++pawlmnamqhXV9cyyikqsvpX++9v8xcssJFQrL/oppusttO8eaZQ+vXLXGvYZ59NP6eh\nqQkeewwuuCAzMjhOWFxhOJGw4oqw9dbRHuPYY1vqLKXDBhu0KJumJgtZvv56K0DZ2GgRaaeeau1f\nq6pMgWRyZBTLjBnp17+qr/dyNU5ucJOU02E59ND0t6mqankynzzZRgoHHWR5ODNnWj7HxIkWYLDq\nqvDUU5mVuTXFxW3LS+mIDaOcjo8rDKfDUlZmN/+wtYwKC80UddBBVp14q61gypT4I5SaGgttPeYY\ny6SPik02Sb/6bFVVSx9wx8kmrjCcDs0ll1h57Xg5KrEUFZmyGD3abtDHHGM+iVQ5HLW1cNxxmS9n\n0sxuu6WWPR6HHJJ5WRwnFa4wnA6NiJVwuewyi2Bq3fmttNRGIrvuCp98Yg7r//7XCiCGjUwSgfvu\ny7jogJmjzjsvvNIoL7ecl1wWm3S6Lt5Ayck5c+ZYfsbcuTYKGDKkbSHD9fVWRPKRRywJrqICttnG\nSmrEhr7+6U/W5yFeba5ErLWW+TyioLER9t3XWq4mq4dVVma1zsaMyW4TJadzk04DJVcYTs6YP9+i\nkZ5+2kxGDQ1WOqShwfJMbr21beaaVBx+uIX+pkN5ebTFDRsa7FqMGGGfYyOnSkpsJLLPPvDQQ+7w\ndjJLOgrDTVJOTliwwJzO//qX3RwXLbI8iIUL7fMjj8CgQYlLZbSHtvRyiLqsd3GxlXmZPBnOPx82\n3BBWX93qR512mtWaeuopVxZObnGF4eSEc86xbOVE2dpLlljNpCuuyPyxt9gi/RvvOutkXo549Opl\n5/zFF1Zj6ssvrXptv37ZOb7jJMMVhpN1Fi6Ehx9OXdpjyRK4/fb0fA1hOPbY9BotVVWZY9pxujqu\nMJysM3p0elVi338/s8fv0cPCUsNGGpWWWi0sx+nquMJwss6CBeF7WIik3yApDLffblneqZRGVRW8\n8opHJTkOuMJwcsCqq4Yvh9HYmNkOfc1UVlrV1333bcnVaKa5FPtGG9k6AwZk/viO0xHx4oNO1tlp\np/AKo3t3GBgq4C99qqqs7MeMGXDnnfDhh+ZXWXttOPnk6I7rOB0VVxhO1ikutiip4cOT5zZUVMDF\nF7eti106rLaaJfM5jpMcN0k5OeGii2D33RMn5lVWWpHAYcOyK5fjOIlxheHkhMJCy/C+7jro29cU\nRPfupkDWWQduucVqREU9unAcJzxuknJyRkGBlcMYNswymefOtbap66/visJx8hFXGE7OEbGIJMdx\n8hs3STmO4zihiFxhiEihiEwQkVHB55VE5DUR+SZ4XTHONr8SkU9ipgUicmbUsjqO4ziJycYI4wxg\nUsznC4E3VHU94I3g8zKo6leq2l9V+wMDgMXAyCzI6jiO4yQgUoUhIn2AfYC7Y2bvDzwQvH8AOCDF\nbnYFvlPV7zMvoeM4jhOWqEcYNwPnA7GVg1ZV1enB+xlAqsIPhwOPJlooIieLyDgRGTd79ux2Ces4\njuMkJjKFISJDgFmqOj7ROmrt/hIWmhaREmA/4Mkk+7hTVQeq6sCePXu2R2THcRwnCVGG1Q4C9hOR\nvYEyoJuIjABmikgvVZ0uIr2AWUn2sRfwsarOjFBOx3EcJwSRjTBU9SJV7aOq/TCz0puqOhR4Djg2\nWO1Y4NkkuzmCJOYox3EcJ3vkIg/jamB3EfkG2C34jIj0FpEXm1cSkUpgd+DpHMjoOI7jtCIrmd6q\nOhoYHbz/BYt8ar3OT8DeMZ9rgB7ZkM9xHMdJjWd6O47jOKFwheE4juOEwhWG4ziOEwqxVIjOgYjM\nBjpiRvjKwM+5FiIHdNXzBj/3rnju+Xrea6pqqCS2TqUwOioiMk5Vu1wH6a563uDn3hXPvTOct5uk\nHMdxnFC4wnAcx3FC4QojP7gz1wLkiK563uDn3hXp8OftPgzHcRwnFD7CcBzHcULhCsNxHMcJhSuM\nLCAij8f0J58iIp8E84tF5AER+UxEJonIRQm2v05EvhSR/4jISBFZIbtn0HYycO4pe8DnK0nO/ahW\nPeubRKR/nO37i8gHwTrjRGSr7J9F+rT3vIN1/xj85j8XkWuzewZtJxPnHqx/joioiKycPelDoKo+\nZXECbgD+FLw/EngseF8BTAH6xdlmD6AoeH8NcE2uzyOL534tcGHw/sLOcO6t5m+KtSCOt82rwF7B\n+72B0bk+jyyd987A60Bp8HmVXJ9Hts49WL4G8AqWhLxyrs8jdvIRRhYREQEOpaXHhwKVIlIElAP1\nwILW26nqq6q6NPj4AdAnC+JmlLaeO+n3gM874px7LEcAjyXYVIFuwfvuwE+Zly462nHew4CrVbUO\nQFWTNVnLS9px7gA3Ya2t8y4iyRVGdtkBmKmq3wSfnwJqgOnAD8D1qjonxT5OAF6KTsTIaOu5p9sD\nPh9pfe6xHEbiJmFnAteJyFTgeiCu2S6Paet5rw/sICIfisjbIrJlZBJGR5vOXUT2B6ap6qdRCtdW\nstIPoysgIq8Dq8VZdImqNncVbN1BcCugEegNrAi8IyKvq+rkBMe4BFgKPJwxwTNANs4drAe8iOTV\nU1cbz715262Bxao6McHuhwFnqeq/RORQ4B6s6VjOifi8i4CVgG2ALYEnRGRtDew1uSaqcxeRCuBi\nzGkiut0AAAJrSURBVASdn+TaJtZVJuxPMBPoEzPv78DRMZ/vBQ5NsP1xwPtARa7PJZvnDnwF9Are\n9wK+yvX5tPfcY5bdBFycZNv5tORKCbAg1+eTpfN+Gdg55vN3QM9cn1PU5475NmZh/rwp2MPhD8Bq\nuT6n5slNUtljN+BLVf0xZt4PwC7wv5a02wBftt5QRH6D2TT3U9XFWZA107T53EmvB3w+Eu/cEZEC\nzMadzJb9E7BT8H4XIJ55I19pz3k/gzm+EZH1gRLys8prItp07qr6maquoqr9VLUf8COwharOiFrg\nsLjCyB6Hs/wQ9e9AlYh8DowF7lPV/wCIyN0i0lzZ8jagGngtCMm7I1tCZ4j2nHvcHvAdiHjnDrAj\nMFVbmeBanfvvgBtE5FPgr8DJkUqaWdpz3vcCa4vIROzmeqwGj+AdhPace17jpUEcx3GcUPgIw3Ec\nxwmFKwzHcRwnFK4wHMdxnFC4wnAcx3FC4QrDcRzHCYUrDMfJACKyKNcyOE7UuMJwHMdxQuEKw3Ei\nQkT6icibQR+TN0SkbzD/fhG5RUTeE5HJInJwrmV1nDC4wnCc6LgVeEBVN8MKRt4Ss6wXsD0whI6X\nve50UTzT23EygIgsUtWqVvN+xgonNohIMTBdVVcWkfuB11T14WC9hapanX2pHSc9fIThOLmhLua9\n5EwKx0kDVxiOEx3vYYXoAI4C3smhLI7TbryBkuNkhgoRiS1nfSPwR+A+ETkPmA0cnxPJHCdDuA/D\ncRzHCYWbpBzHcZxQuMJwHMdxQuEKw3EcxwmFKwzHcRwnFK4wHMdxnFC4wnAcx3FC4QrDcRzHCcX/\nA+PtcRa5zSHdAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Map 2: Votes for Clinton\n", + "# Add your code below:\n", + "df_rhillary = df_results[(df_results['Contest'] == 'PRESIDENTIAL ELECTORS') & (df_results['Candidate'] == 'HILLARY CLINTON, PRESIDENT')]\n", + "df_plothillary = df_rhillary[['PrecNo','PctCnt']]\n", + "df_hillary = df_precinct_locations.merge(df_plothillary, left_on ='Precinct', right_on ='PrecNo', how='left')\n", + "plt.scatter(df_hillary['X'],df_hillary['Y'], s=df_hillary['PctCnt']**1.3, color = ['B'])\n", + "plt.ylabel('Lat')\n", + "plt.xlabel('Lon')\n", + "plt.title('Precincts by percentage of votes for Clinton')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Graphic Presentation\n", + "\n", + "Make sure to label all the axis, add legends and units (where appropriate).\n", + "\n", + "\n", + "## Code Quality\n", + "\n", + "While code performance and optimization won't count, all the code should be highly readable, and reusable. Where possible, create functions, build helper functions where needed, and make sure the code is self-explanatory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/week3/let it gooooo.ipynb b/week3/let it gooooo.ipynb new file mode 100644 index 0000000..be53df4 --- /dev/null +++ b/week3/let it gooooo.ipynb @@ -0,0 +1,7703 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pylab as plt\n", + "from itertools import cycle, islice\n", + "\n", + "# This line lets us plot on our ipython notebook\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
12345678910...144145146147148149150151152153
0002013865-14NaNMILLSJAMESARTHURNaNM2/7/6510/1/00A...NaNABRNaNNaNNaNNaNNaNCENTRENaN
1002020582-14NaNTERRYCHARLESDNaNU9/16/769/1/02I...NaNNaNNaNNaNNaNAPDNaNCENTRENaN
2002287451-14NaNMURRELLRICHARDLNaNM8/11/5010/1/72A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
3002365541-14NaNMILLSJOYCEELLENNaNF5/6/6910/1/00A...NaNAPRNaNNaNNaNNaNNaNCENTRENaN
4002370224-14NaNFENTONCASEYJAMESNaNM11/22/833/1/02A...NaNAPDNaNNaNNaNNaN5707687675CENTRENaN
5002572852-14NaNMURRELLSUSANLNaNF12/16/4910/1/94A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
6004529096-14NaNHAIRSTEVENMNaNM12/11/7912/21/99A...NaNAPRNaNNaNNaNNaNNaNCENTRENaN
7005138406-14NaNBROOKSHARRYCNaNM3/19/501/1/01A...RAPRNaNNaNAPRNaNCENTRENaN
8005163451-14NaNBROOKSDEBRALOUISENaNF5/22/513/15/91A...RAPRNaNNaNAPRNaNCENTRENaN
9005194526-14NaNGENSIMOREGARYDAVIDNaNM3/6/685/22/96A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
10005881492-14NaNGRAHAMKATHRYNLEENaNF2/12/478/29/96A...NaNNaNNaNNaNNaNNaNNaN8145065538CENTRENaN
11007026230-14NaNSCHNEIDERWALTERGNaNM5/29/711/31/92A...RAPRAPRNaNNaNNaNCENTRENaN
12007094976-14NaNMURRAYRACHAELRNaNU6/19/765/16/00A...NaNNaNNaNNaNNaNNaNNaN6105098485CENTRENaN
13007376473-14NaNOCKERROSALIEJEANNaNF3/10/587/5/02A...NaNAPDNaNNaNAPD8147691906CENTRENaN
14007398108-14NaNOCKERJEANENaNF4/16/299/4/62A...NaNAPDNaNNaNNaNNaNNaNCENTRENaN
15009621382-14NaNMACHIKASALEXANDRAMNaNF3/2/876/16/05A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
16009878128-14NaNBRUNGARDLARACNaNF3/2/833/18/04A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
17010437417-14NaNRANKINLUCASROBERTNaNM1/31/804/21/98A...RAPRAPRAPR8143550831CENTRENaN
18010464969-14NaNSHENKCOLBYRYANNaNM9/29/739/4/97A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
19010573042-14NaNSTEPHENSERINLNaNF12/13/747/3/02A...NaNAPDAPDAPDNaNCENTRENaN
20010634062-14NaNSTEVERSHEILAMNaNF11/1/6610/9/84A...NaNAPNFNaNNaNNaNNaN6108446630CENTRENaN
21010849083-14NaNSMITHANNETTELNaNF3/2/458/28/68A...DAPDAPDAPD3530656CENTRENaN
22010849366-14NaNMENNAFRANKLINMNaNU1/13/508/28/76A...NaNAPDNaNNaNAPD3559388CENTRENaN
23010855262-14NaNPROVANDAVIDANaNU1/16/523/29/76A...DAPDAPDAPD3559067CENTRENaN
24010857411-14NaNWALKERRALPHENaNU3/15/412/27/64A...RAPRAPRAPRNaNCENTRENaN
25010858336-14NaNNASTASEELIZABETHENaNU11/18/252/13/47A...DAPDNaNNaNNaNNaN3553298CENTRENaN
26010858340-14NaNBEIGHTOLVELMAFNaNU8/2/199/29/47A...NaNABRNaNNaNNaNNaNNaNCENTRENaN
27010858347-14NaNBONFATTOMARYMNaNU4/19/279/11/48A...RAPRAPRAPRNaNCENTRENaN
28010858364-14NaNMANEYDENNISCNaNU9/8/279/11/52I...NaNNaNNaNNaNNaNAPR3553569CENTRENaN
29010858367-14NaNRHOADSDALEFNaNU6/10/289/12/52A...DAPDNaNNaNAPDNaNCENTRENaN
..................................................................
123413108229919-14NaNMISHRASONIKANaNNaNF2/22/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123414108245924-14NaNPECKYNOCHRISTOPHERRNaNNaN11/10/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123415108251099-14NaNAVEZZANOKATHERINEGNaNNaN9/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123416108251824-14NaNTERRERIRONALDCJRNaN12/4/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123417108262483-14NaNMADIASSTEVENPNaNNaN4/2/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123418108262546-14NaNSACCONICOLETTEDNaNNaN5/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123419108263616-14NaNSKAVERYCHANTELLENICOLENaNF12/29/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709005611CENTRENaN
123420108266993-14NaNFROMSTEINELISHAMNaNNaN10/10/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123421108268621-14NaNMCGARRIGALEMILYRNaNNaN4/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123422108268872-14NaNFELBERELINaNNaNNaN4/3/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN2036045055CENTRENaN
123423108268974-14NaNNEWCOMBMICHAELFIIINaN2/11/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN2034614023CENTRENaN
123424108272412-14NaNCOLONYKAYLEYRENEENaNF8/5/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123425108273735-14NaNMUIRRACHAELNaNNaNF10/26/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709034112CENTRENaN
123426108281100-14NaNBREENMAURAPNaNF1/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123427108281392-14NaNMENZELMEGANANNNaNF4/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN5704179068CENTRENaN
123428108281516-14NaNCOLONERICANNaNF9/18/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN5709055297CENTRENaN
123429108283090-14NaNSHAHIDAIMANaNNaNF9/19/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN9546629236CENTRENaN
123430108283218-14NaNCOPEZACHARYNaNNaNM1/22/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN6306312989CENTRENaN
123431108286601-14NaNLANDISJODYJEANNaNF7/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN5704368864CENTRENaN
123432108286706-14NaNZARROABIGAILHAYESNaNF9/30/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123433108288642-14NaNBUTLERJULIAKNaNNaN2/19/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123434108290220-14NaNMCGOVERNJAMESJIVM9/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN9732242161CENTRENaN
123435108290356-14NaNGORDONMARLEYRNaNF12/31/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN7247775506CENTRENaN
123436108290630-14NaNBRUGGEMEIERGRACENaNNaNF11/21/9710/11/16A...NaNNaNNaNNaNNaNNaNNaN6309359977CENTRENaN
123437108290772-14NaNFEUERBERGANDRESNaNNaNNaN4/11/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123438108303668-14NaNFERENCIHANNAHCNaNNaN4/1/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123439108307850-14NaNNEILANDKAYLANaNNaNNaN10/10/9810/11/16A...NaNNaNNaNNaNNaNNaNNaN6315594571CENTRENaN
123440108318654-14NaNFLYNNRILEYGNaNNaN11/24/9710/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123441108325614-14NaNSOLIMANFAROUKNaNNaNNaN7/1/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
123442108325661-14NaNCAUTELAALEXANDERNaNNaNNaN4/16/9810/11/16A...NaNNaNNaNNaNNaNNaNNaNNaNCENTRENaN
\n", + "

123443 rows × 153 columns

\n", + "
" + ], + "text/plain": [ + " 1 2 3 4 5 6 7 \\\n", + "0 002013865-14 NaN MILLS JAMES ARTHUR NaN M \n", + "1 002020582-14 NaN TERRY CHARLES D NaN U \n", + "2 002287451-14 NaN MURRELL RICHARD L NaN M \n", + "3 002365541-14 NaN MILLS JOYCE ELLEN NaN F \n", + "4 002370224-14 NaN FENTON CASEY JAMES NaN M \n", + "5 002572852-14 NaN MURRELL SUSAN L NaN F \n", + "6 004529096-14 NaN HAIR STEVEN M NaN M \n", + "7 005138406-14 NaN BROOKS HARRY C NaN M \n", + "8 005163451-14 NaN BROOKS DEBRA LOUISE NaN F \n", + "9 005194526-14 NaN GENSIMORE GARY DAVID NaN M \n", + "10 005881492-14 NaN GRAHAM KATHRYN LEE NaN F \n", + "11 007026230-14 NaN SCHNEIDER WALTER G NaN M \n", + "12 007094976-14 NaN MURRAY RACHAEL R NaN U \n", + "13 007376473-14 NaN OCKER ROSALIE JEAN NaN F \n", + "14 007398108-14 NaN OCKER JEAN E NaN F \n", + "15 009621382-14 NaN MACHIKAS ALEXANDRA M NaN F \n", + "16 009878128-14 NaN BRUNGARD LARA C NaN F \n", + "17 010437417-14 NaN RANKIN LUCAS ROBERT NaN M \n", + "18 010464969-14 NaN SHENK COLBY RYAN NaN M \n", + "19 010573042-14 NaN STEPHENS ERIN L NaN F \n", + "20 010634062-14 NaN STEVER SHEILA M NaN F \n", + "21 010849083-14 NaN SMITH ANNETTE L NaN F \n", + "22 010849366-14 NaN MENNA FRANKLIN M NaN U \n", + "23 010855262-14 NaN PROVAN DAVID A NaN U \n", + "24 010857411-14 NaN WALKER RALPH E NaN U \n", + "25 010858336-14 NaN NASTASE ELIZABETH E NaN U \n", + "26 010858340-14 NaN BEIGHTOL VELMA F NaN U \n", + "27 010858347-14 NaN BONFATTO MARY M NaN U \n", + "28 010858364-14 NaN MANEY DENNIS C NaN U \n", + "29 010858367-14 NaN RHOADS DALE F NaN U \n", + "... ... ... ... ... ... ... ... \n", + "123413 108229919-14 NaN MISHRA SONIKA NaN NaN F \n", + "123414 108245924-14 NaN PECKYNO CHRISTOPHER R NaN NaN \n", + "123415 108251099-14 NaN AVEZZANO KATHERINE G NaN NaN \n", + "123416 108251824-14 NaN TERRERI RONALD C JR NaN \n", + "123417 108262483-14 NaN MADIAS STEVEN P NaN NaN \n", + "123418 108262546-14 NaN SACCO NICOLETTE D NaN NaN \n", + "123419 108263616-14 NaN SKAVERY CHANTELLE NICOLE NaN F \n", + "123420 108266993-14 NaN FROMSTEIN ELISHA M NaN NaN \n", + "123421 108268621-14 NaN MCGARRIGAL EMILY R NaN NaN \n", + "123422 108268872-14 NaN FELBER ELI NaN NaN NaN \n", + "123423 108268974-14 NaN NEWCOMB MICHAEL F III NaN \n", + "123424 108272412-14 NaN COLONY KAYLEY RENEE NaN F \n", + "123425 108273735-14 NaN MUIR RACHAEL NaN NaN F \n", + "123426 108281100-14 NaN BREEN MAURA P NaN F \n", + "123427 108281392-14 NaN MENZEL MEGAN ANN NaN F \n", + "123428 108281516-14 NaN COLON ERICA N NaN F \n", + "123429 108283090-14 NaN SHAHID AIMA NaN NaN F \n", + "123430 108283218-14 NaN COPE ZACHARY NaN NaN M \n", + "123431 108286601-14 NaN LANDIS JODY JEAN NaN F \n", + "123432 108286706-14 NaN ZARRO ABIGAIL HAYES NaN F \n", + "123433 108288642-14 NaN BUTLER JULIA K NaN NaN \n", + "123434 108290220-14 NaN MCGOVERN JAMES J IV M \n", + "123435 108290356-14 NaN GORDON MARLEY R NaN F \n", + "123436 108290630-14 NaN BRUGGEMEIER GRACE NaN NaN F \n", + "123437 108290772-14 NaN FEUERBERG ANDRES NaN NaN NaN \n", + "123438 108303668-14 NaN FERENCI HANNAH C NaN NaN \n", + "123439 108307850-14 NaN NEILAND KAYLA NaN NaN NaN \n", + "123440 108318654-14 NaN FLYNN RILEY G NaN NaN \n", + "123441 108325614-14 NaN SOLIMAN FAROUK NaN NaN NaN \n", + "123442 108325661-14 NaN CAUTELA ALEXANDER NaN NaN NaN \n", + "\n", + " 8 9 10 ... 144 145 146 147 148 149 150 \\\n", + "0 2/7/65 10/1/00 A ... NaN AB R NaN NaN NaN NaN \n", + "1 9/16/76 9/1/02 I ... NaN NaN NaN NaN NaN AP D \n", + "2 8/11/50 10/1/72 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "3 5/6/69 10/1/00 A ... NaN AP R NaN NaN NaN NaN \n", + "4 11/22/83 3/1/02 A ... NaN AP D NaN NaN NaN NaN \n", + "5 12/16/49 10/1/94 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "6 12/11/79 12/21/99 A ... NaN AP R NaN NaN NaN NaN \n", + "7 3/19/50 1/1/01 A ... R AP R NaN NaN AP R \n", + "8 5/22/51 3/15/91 A ... R AP R NaN NaN AP R \n", + "9 3/6/68 5/22/96 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "10 2/12/47 8/29/96 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "11 5/29/71 1/31/92 A ... R AP R AP R NaN NaN \n", + "12 6/19/76 5/16/00 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "13 3/10/58 7/5/02 A ... NaN AP D NaN NaN AP D \n", + "14 4/16/29 9/4/62 A ... NaN AP D NaN NaN NaN NaN \n", + "15 3/2/87 6/16/05 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "16 3/2/83 3/18/04 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "17 1/31/80 4/21/98 A ... R AP R AP R AP R \n", + "18 9/29/73 9/4/97 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "19 12/13/74 7/3/02 A ... NaN AP D AP D AP D \n", + "20 11/1/66 10/9/84 A ... NaN AP NF NaN NaN NaN NaN \n", + "21 3/2/45 8/28/68 A ... D AP D AP D AP D \n", + "22 1/13/50 8/28/76 A ... NaN AP D NaN NaN AP D \n", + "23 1/16/52 3/29/76 A ... D AP D AP D AP D \n", + "24 3/15/41 2/27/64 A ... R AP R AP R AP R \n", + "25 11/18/25 2/13/47 A ... D AP D NaN NaN NaN NaN \n", + "26 8/2/19 9/29/47 A ... NaN AB R NaN NaN NaN NaN \n", + "27 4/19/27 9/11/48 A ... R AP R AP R AP R \n", + "28 9/8/27 9/11/52 I ... NaN NaN NaN NaN NaN AP R \n", + "29 6/10/28 9/12/52 A ... D AP D NaN NaN AP D \n", + "... ... ... .. ... ... ... ... ... ... ... ... \n", + "123413 2/22/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123414 11/10/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123415 9/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123416 12/4/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123417 4/2/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123418 5/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123419 12/29/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123420 10/10/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123421 4/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123422 4/3/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123423 2/11/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123424 8/5/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123425 10/26/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123426 1/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123427 4/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123428 9/18/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123429 9/19/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123430 1/22/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123431 7/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123432 9/30/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123433 2/19/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123434 9/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123435 12/31/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123436 11/21/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123437 4/11/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123438 4/1/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123439 10/10/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123440 11/24/97 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123441 7/1/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "123442 4/16/98 10/11/16 A ... NaN NaN NaN NaN NaN NaN NaN \n", + "\n", + " 151 152 153 \n", + "0 NaN CENTRE NaN \n", + "1 NaN CENTRE NaN \n", + "2 NaN CENTRE NaN \n", + "3 NaN CENTRE NaN \n", + "4 5707687675 CENTRE NaN \n", + "5 NaN CENTRE NaN \n", + "6 NaN CENTRE NaN \n", + "7 NaN CENTRE NaN \n", + "8 NaN CENTRE NaN \n", + "9 NaN CENTRE NaN \n", + "10 8145065538 CENTRE NaN \n", + "11 NaN CENTRE NaN \n", + "12 6105098485 CENTRE NaN \n", + "13 8147691906 CENTRE NaN \n", + "14 NaN CENTRE NaN \n", + "15 NaN CENTRE NaN \n", + "16 NaN CENTRE NaN \n", + "17 8143550831 CENTRE NaN \n", + "18 NaN CENTRE NaN \n", + "19 NaN CENTRE NaN \n", + "20 6108446630 CENTRE NaN \n", + "21 3530656 CENTRE NaN \n", + "22 3559388 CENTRE NaN \n", + "23 3559067 CENTRE NaN \n", + "24 NaN CENTRE NaN \n", + "25 3553298 CENTRE NaN \n", + "26 NaN CENTRE NaN \n", + "27 NaN CENTRE NaN \n", + "28 3553569 CENTRE NaN \n", + "29 NaN CENTRE NaN \n", + "... ... ... .. \n", + "123413 NaN CENTRE NaN \n", + "123414 NaN CENTRE NaN \n", + "123415 NaN CENTRE NaN \n", + "123416 NaN CENTRE NaN \n", + "123417 NaN CENTRE NaN \n", + "123418 NaN CENTRE NaN \n", + "123419 5709005611 CENTRE NaN \n", + "123420 NaN CENTRE NaN \n", + "123421 NaN CENTRE NaN \n", + "123422 2036045055 CENTRE NaN \n", + "123423 2034614023 CENTRE NaN \n", + "123424 NaN CENTRE NaN \n", + "123425 5709034112 CENTRE NaN \n", + "123426 NaN CENTRE NaN \n", + "123427 5704179068 CENTRE NaN \n", + "123428 5709055297 CENTRE NaN \n", + "123429 9546629236 CENTRE NaN \n", + "123430 6306312989 CENTRE NaN \n", + "123431 5704368864 CENTRE NaN \n", + "123432 NaN CENTRE NaN \n", + "123433 NaN CENTRE NaN \n", + "123434 9732242161 CENTRE NaN \n", + "123435 7247775506 CENTRE NaN \n", + "123436 6309359977 CENTRE NaN \n", + "123437 NaN CENTRE NaN \n", + "123438 NaN CENTRE NaN \n", + "123439 6315594571 CENTRE NaN \n", + "123440 NaN CENTRE NaN \n", + "123441 NaN CENTRE NaN \n", + "123442 NaN CENTRE NaN \n", + "\n", + "[123443 rows x 153 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Import df_voters\n", + "df_voters = pd.read_table('data/CENTRE_FVE_20170123.csv', sep=',', low_memory=False)\n", + "df_voters" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['R', 'D', 'NF', 'LN', 'I', 'NON', 'AT', 'GR', 'NO', 'OTH', 'S',\n", + " 'TP', 'AE', 'NOP', 'NST', 'SEC', 'UPP', 'GW', 'INDE', 'C', 'CT',\n", + " 'DNV', 'AI', 'PR', 'INDd', 'IND', 'ID', 'WH', 'GP', 'PL', 'MW',\n", + " 'AM', 'UNA', nan, 'LI', 'IAPP', 'THPY', 'IR', 'UNK', 'NTS', 'DS',\n", + " 'SAME', 'IT', 'ICO', 'BM', 'M', 'NS', 'JD', 'LT', 'BH', 'AH', 'MZ',\n", + " 'PG', 'PP', 'NL', 'UND', 'N', 'FD', 'IDK', 'RF', 'AYE', 'AD',\n", + " 'PPOA', 'MA', 'MM', 'OLAP', 'CNT', 'AF', 'CON', 'GT', 'FR', 'AC',\n", + " 'DTP', 'CH', 'SOD', 'IK', 'PZ', 'PIR', 'H', 'FE', 'COL', 'BP', 'CB',\n", + " 'AL', 'CM', 'OP', 'IA', 'L', 'TPP', 'ACO', 'COI', 'MAJA', 'KEG'], dtype=object)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# View the unique values in column 12\n", + "df_voters['12'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NUMBER
PARTY
D51162
R47668
NF17608
NON2814
I2006
LN805
OTH368
GR264
INDE183
NO175
NOP137
IND31
C24
CT20
S11
LI10
IR10
ID9
UNK7
NTS6
RF5
UND5
M5
UNA5
AD4
GP4
AM4
WH4
NS3
MW3
......
AH1
AF1
TPP1
ACO1
OLAP1
FE1
DTP1
MM1
MAJA1
MA1
OP1
LT1
PG1
PIR1
L1
KEG1
N1
UPP1
PL1
IK1
PPOA1
ICO1
IA1
H1
GW1
GT1
NST1
SAME1
FR1
PZ1
\n", + "

92 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " NUMBER\n", + "PARTY \n", + "D 51162\n", + "R 47668\n", + "NF 17608\n", + "NON 2814\n", + "I 2006\n", + "LN 805\n", + "OTH 368\n", + "GR 264\n", + "INDE 183\n", + "NO 175\n", + "NOP 137\n", + "IND 31\n", + "C 24\n", + "CT 20\n", + "S 11\n", + "LI 10\n", + "IR 10\n", + "ID 9\n", + "UNK 7\n", + "NTS 6\n", + "RF 5\n", + "UND 5\n", + "M 5\n", + "UNA 5\n", + "AD 4\n", + "GP 4\n", + "AM 4\n", + "WH 4\n", + "NS 3\n", + "MW 3\n", + "... ...\n", + "AH 1\n", + "AF 1\n", + "TPP 1\n", + "ACO 1\n", + "OLAP 1\n", + "FE 1\n", + "DTP 1\n", + "MM 1\n", + "MAJA 1\n", + "MA 1\n", + "OP 1\n", + "LT 1\n", + "PG 1\n", + "PIR 1\n", + "L 1\n", + "KEG 1\n", + "N 1\n", + "UPP 1\n", + "PL 1\n", + "IK 1\n", + "PPOA 1\n", + "ICO 1\n", + "IA 1\n", + "H 1\n", + "GW 1\n", + "GT 1\n", + "NST 1\n", + "SAME 1\n", + "FR 1\n", + "PZ 1\n", + "\n", + "[92 rows x 1 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Your code here\n", + "grouped = df_voters.groupby('12') # Group by party registrations\n", + "summed = grouped['12'].count() # Get counts of each group\n", + "summed.sort_values(inplace=True, ascending=False)\n", + "df_summed = summed.to_frame()\n", + "df_summed.columns = ['NUMBER']\n", + "df_summed.index.names = ['PARTY']\n", + "df_summed" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NUMBER
PARTY
NF17608
NON2814
I2006
LN805
OTH368
GR264
INDE183
NO175
NOP137
IND31
C24
CT20
S11
LI10
IR10
ID9
UNK7
NTS6
RF5
UND5
M5
UNA5
AD4
GP4
AM4
WH4
NS3
MW3
TP3
BM3
......
AH1
AF1
TPP1
ACO1
OLAP1
FE1
DTP1
MM1
MAJA1
MA1
OP1
LT1
PG1
PIR1
L1
KEG1
N1
UPP1
PL1
IK1
PPOA1
ICO1
IA1
H1
GW1
GT1
NST1
SAME1
FR1
PZ1
\n", + "

90 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " NUMBER\n", + "PARTY \n", + "NF 17608\n", + "NON 2814\n", + "I 2006\n", + "LN 805\n", + "OTH 368\n", + "GR 264\n", + "INDE 183\n", + "NO 175\n", + "NOP 137\n", + "IND 31\n", + "C 24\n", + "CT 20\n", + "S 11\n", + "LI 10\n", + "IR 10\n", + "ID 9\n", + "UNK 7\n", + "NTS 6\n", + "RF 5\n", + "UND 5\n", + "M 5\n", + "UNA 5\n", + "AD 4\n", + "GP 4\n", + "AM 4\n", + "WH 4\n", + "NS 3\n", + "MW 3\n", + "TP 3\n", + "BM 3\n", + "... ...\n", + "AH 1\n", + "AF 1\n", + "TPP 1\n", + "ACO 1\n", + "OLAP 1\n", + "FE 1\n", + "DTP 1\n", + "MM 1\n", + "MAJA 1\n", + "MA 1\n", + "OP 1\n", + "LT 1\n", + "PG 1\n", + "PIR 1\n", + "L 1\n", + "KEG 1\n", + "N 1\n", + "UPP 1\n", + "PL 1\n", + "IK 1\n", + "PPOA 1\n", + "ICO 1\n", + "IA 1\n", + "H 1\n", + "GW 1\n", + "GT 1\n", + "NST 1\n", + "SAME 1\n", + "FR 1\n", + "PZ 1\n", + "\n", + "[90 rows x 1 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_summed[(df_summed.index != 'D') & (df_summed.index != 'R')]" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
voters
Democrat51162
Republican47668
Other24609
\n", + "
" + ], + "text/plain": [ + " voters\n", + "Democrat 51162\n", + "Republican 47668\n", + "Other 24609" + ] + }, + "execution_count": 102, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parties = ['Democrat', 'Republican', 'Other']\n", + "values = np.array([df_summed[(df_summed.index == 'D')].NUMBER.item(),df_summed[(df_summed.index == 'R')].NUMBER.item(),df_summed[(df_summed.index != 'D') & (df_summed.index != 'R')].NUMBER.sum()])\n", + "df_parties = pd.DataFrame(values,index=parties,columns=['voters'])\n", + "df_parties" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAFECAYAAADvOaOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xu8VXWd//HXm0uixkWQCLkEJeYFBOGIlqOZllqWlxLF\nMs3xUmmlzUSK04xO/cyyJmfMIk1nxFuCdNEabUSEslLxgBiBmoSYB0QQb2BiQJ/fH+t7cHM4nLM5\nrH3W2fu8n4/Hfuy1vnt91/osNvDZ3/X9rvVVRGBmZpaHLkUHYGZmtcNJxczMcuOkYmZmuXFSMTOz\n3DipmJlZbpxUzMwsN04qZgWTdIikpyStk3SCpAGSfiNpraT/kHSJpOvTtsMkhaRuaf0eSWe08bhD\n0zG75nk+1rnJ96lYLZK0DBgAbAJeA+4BPh8R69qwr8OBWyJicJ4xlux/FnBXRPxXWv9X4ADg49Hk\nH6ikYcDTQPeI2Lidx1kGnB0R9+UQtlmz3FKxWvbRiHgrMBaoA766vTtobBFU2DuARU3WFzdNKGbV\nwEnFal5ELCdrqYwEkHSmpMfT5aWlkj7TuK2kwyU1SLpI0krgx6nuHulS0TpJe0j6q6R+JfXGSlot\nqXvT40saL+lBSS9Lek7SNZLekj77M/BO4Bdp3z8GzgC+ktY/IOkySbc0d26S5kg6Oy2/S9L9ktZI\nekHSrZL6pM9uBoaWHOcrzVxK20PSXZJelLRE0jklx7lM0nRJN6U/t0WS6nbga7Ea5aRiNU/SEODD\nwKOpaBXwEaAXcCZwlaSxJVXeDvQlazGcDnwIWBERb02vFcAc4OSSOp8Cbo+IDc2EsAn4ErA78B7g\nSOA8gIh4F/AXUqsqIk4FbgWuTOvbc6lKwBXAHsA+wBDgsnScTzU5zpXN1L8daEj1TwK+IemIks+P\nS9v0Ae4CrtmO2KyTcFKxWvZzSS8DvwV+DXwDICL+NyL+HJlfA/cCh5bU+ztwaUS8ERGvb2PfU4HT\nAFJH96nAzc1tGBHzIuKhiNgYEcuAa4H37fjpbXWcJRExM8W9GvhuucdJifcQ4KKIWB8RC4DryZJq\no99GxN0RsYnsXEfnfApWA9rjerFZUU5o7pe+pA8BlwJ7kf2w2gVYWLLJ6ohY38q+7wR+KGk48G7g\nlYiY29yGkvYi+w++Lh2rGzBvO8+lVZIGAP9FliB7kp3bS2VW3wN4MSLWlpQ9QxZzo5Uly38Fekjq\ntr0DBqy2uaVinYqknYCfAN8BBkREH+BusktHjZp2kG/VYZ6SznSy1sqn2EYrJZkCPAGMiIhewCVN\njpeXb5DFOiod5zRaPq9SK4C+knqWlA0FlucepdU0JxXrbN4C7ASsBjamVstRrdR5HugnqXeT8puA\nT5P1NbSUVHoCrwLrJO0NfK4NcZejJ7AOeEXSIGBSk8+fJxsUsJWIeBb4PXCFpB6S9gfOApodIGC2\nLU4q1qmkyztfJGtlvAR8gqzTuaU6T5CNAluaRnDtkcp/R9b/Mj8inmlhF19Ox1kL/AiYtqPnsQ3/\nTjZ8+hXgf4GfNvn8CuCr6Ry+3Ez9U4FhZK2Wn5H1K/meFtsuvvnRbAdIuh+4LSKuLzoWs47AScWs\njSQdCMwEhjTp4DbrtHz5y6wNJE0F7gMudEIxe5NbKmZmlhu3VMzMLDdOKmZmlptOd0f97rvvHsOG\nDSs6DDOzqjJv3rwXIqJ/a9t1uqQybNgw6uvriw7DzKyqSGrpXqzNfPnLzMxy46RiZma5cVIxM7Pc\ndLo+FTOz5mzYsIGGhgbWr29t1oPa1qNHDwYPHkz37ltNYloWJxUzM6ChoYGePXsybNgwpErMTNDx\nRQRr1qyhoaGB4cOHt2kfvvxlZgasX7+efv36ddqEAiCJfv367VBrzUnFzCzpzAml0Y7+GTipmJlV\nmWXLlnHbbbcVHUaznFQqTKrtl1mt6sj/VtqSVDZu3JhvENtQ0aQiaZmkhZIWSKpPZX0lzZT0VHrf\nrWT7yZKWSHpS0tEl5ePSfpZIulqpfSZpJ0nTUvnDkoZV8nzMzCrl4osv5vvf//7m9csuu4xvf/vb\nTJo0iZEjRzJq1CimTZu2edsHHniAMWPGcNVVV7Fp0yYmTZrEgQceyP7778+1114LwJw5czj00EM5\n7rjj2HfffXnttdc49thjGT16NCNHjty8v1xFRMVewDJg9yZlVwIXp+WLgW+l5X2Bx8jmDx8O/Bno\nmj6bCxwMCLgH+FAqPw/4YVqeCExrLaZx48ZFe4LafpnVisWLF2+x3t7/VubPnx+HHXbY5vV99tkn\nbrzxxvjABz4QGzdujJUrV8aQIUNixYoVMXv27Dj22GM3b3vttdfG17/+9YiIWL9+fYwbNy6WLl0a\ns2fPjl122SWWLl0aEREzZsyIs88+e3O9l19+uaw/i+zPg/oo4//9Ii5/HQ9MTctTgRNKym+PiDci\n4mlgCTBe0kCgV0Q8lE7spiZ1Gvc1AzhS7mkzsyp0wAEHsGrVKlasWMFjjz3GbrvtxoIFCzj11FPp\n2rUrAwYM4H3vex+PPPLIVnXvvfdebrrpJsaMGcNBBx3EmjVreOqppwAYP3785uHBo0aNYubMmVx0\n0UU88MAD9O7dO/fzqHRSCeA+SfMknZvKBkTEc2l5JTAgLQ8Cni2p25DKBqXlpuVb1ImIjcArQL+8\nT8LMrD1MmDCBGTNmMG3aNE455ZSy60UE3/ve91iwYAELFizg6aef5qijjgJg11133bzdXnvtxfz5\n8xk1ahRf/epX+drXvpb7OVQ6qfxDRIwBPgScL+mw0g9Ty6PiU09KOldSvaT61atXV/pwZmZtcsop\np3D77bczY8YMJkyYwKGHHsq0adPYtGkTq1ev5je/+Q3jx4+nZ8+erF375izWRx99NFOmTGHDhg0A\n/OlPf+K1117bav8rVqxgl1124bTTTmPSpEnMnz8/93Oo6B31EbE8va+S9DNgPPC8pIER8Vy6tLUq\nbb4cGFJSfXAqW56Wm5aX1mmQ1A3oDaxpJo7rgOsA6urqPH+ymXVI++23H2vXrmXQoEEMHDiQE088\nkQcffJDRo0cjiSuvvJK3v/3t9OvXj65duzJ69Gg+/elPc8EFF7Bs2TLGjh1LRNC/f39+/vOfb7X/\nhQsXMmnSJLp06UL37t2ZMmVK7udQsTnqJe0KdImItWl5JvA14EhgTUR8U9LFQN+I+Iqk/YDbyBLP\nHsAsYEREbJI0F/gi8DBwN/C9iLhb0vnAqIj4rKSJwMci4uSW4qqrq4v2nE+l1nt4KvTXx6zdPf74\n4+yzzz5Fh9EhNPdnIWleRNS1VreSLZUBwM9Sv3k34LaI+JWkR4Dpks4CngFOBoiIRZKmA4uBjcD5\nEbEp7es84EZgZ7LRX/ek8huAmyUtAV4kGwFmZmYFqVhSiYilwOhmyteQtVaaq3M5cHkz5fXAyGbK\n1wMTdjhYMzPLhe+oNzOz3DipmJkllepjriY7+mfgpGJmRjY51Zo1azp1YonI5lPp0aNHm/fhSbrM\nzIDBgwfT0NBAZ7+XrXHmx7ZyUjFrSS2PCe/Ev8ib07179zbPdmhv8uUvMzPLjZOKmZnlxknFzMxy\n46RiZma5cVIxM7PcOKmYmVlunFTMzCw3TipmZpYbJxUzM8uNk4qZmeXGScXMzHLjpGJmZrlxUjEz\ns9w4qZiZWW6cVMzMLDdOKmZmlhsnFTMzy42TipmZ5cZJxczMcuOkYmZmuXFSMTOz3DipmJlZbpxU\nzMwsN04qZmaWGycVMzPLjZOKmZnlxknFzMxyU/GkIqmrpEcl/TKt95U0U9JT6X23km0nS1oi6UlJ\nR5eUj5O0MH12tSSl8p0kTUvlD0saVunzMTOzbWuPlsoFwOMl6xcDsyJiBDArrSNpX2AisB9wDPAD\nSV1TnSnAOcCI9DomlZ8FvBQRewJXAd+q7KmYmVlLKppUJA0GjgWuLyk+HpialqcCJ5SU3x4Rb0TE\n08ASYLykgUCviHgoIgK4qUmdxn3NAI5sbMWYmVn7q3RL5T+BrwB/LykbEBHPpeWVwIC0PAh4tmS7\nhlQ2KC03Ld+iTkRsBF4B+jUNQtK5kuol1a9evXqHTsjMzLatYklF0keAVRExb1vbpJZHVCqGkuNc\nFxF1EVHXv3//Sh/OzKzT6lbBfR8CHCfpw0APoJekW4DnJQ2MiOfSpa1VafvlwJCS+oNT2fK03LS8\ntE6DpG5Ab2BNpU7IzMxaVrGWSkRMjojBETGMrAP+/og4DbgLOCNtdgZwZ1q+C5iYRnQNJ+uQn5su\nlb0q6eDUX3J6kzqN+zopHaPiLR8zM2teJVsq2/JNYLqks4BngJMBImKRpOnAYmAjcH5EbEp1zgNu\nBHYG7kkvgBuAmyUtAV4kS15mZlYQdbYf9nV1dVFfX99ux6v1sWg1/9enlr/Amv/yLE+S5kVEXWvb\n+Y56MzPLjZOKmZnlxknFzMxy46RiZma5cVIxM7PctJpUJF0pqZek7pJmSVot6bT2CM7MzKpLOS2V\noyLiVeAjwDJgT2BSJYMyM7PqVE5S6Z7ejwXuiIhXKhiPmZlVsXLuqL9L0hPA68DnJPUH1lc2LDMz\nq0YttlQkdQF+AbwXqIuIDcBfyeYxMTMz20KLSSUi/g58PyJebHwOV0S8FhEr2yU6MzOrKuX0qcyS\n9HHPqGhmZq0pJ6l8BrgD+JukVyWtlfRqheMyM7Mq1GpHfUT0bI9AzMys+pVz86MknSbpX9P6EEnj\nKx+amZlVm3Iuf/0AeA/wibS+Dvh+xSIyM7OqVc59KgdFxFhJjwJExEuS3lLhuMzMrAqV01LZIKkr\nEADp5se/VzQqMzOrSuUklauBnwFvk3Q58FvgiopGZWZmVamc0V+3SpoHHAkIOCEiHq94ZGZmVnVa\nTSqSbo6ITwFPNFNmZma2WTmXv/YrXUn9K+MqE46ZmVWzbSYVSZMlrQX2L7mTfi2wCriz3SI0M7Oq\nsc2kEhFXpLvpvx0RvSKiZ3r1i4jJ7RijmZlViXI66idLOg44LBXNiYhfVjYsMzOrRuU8puUK4AJg\ncXpdIOkblQ7MzMyqTzl31B8LjElzqyBpKvAocEklAzMzs+pTzugvgD4ly70rEYiZmVW/cloqVwCP\nSppNdvPjYcDFFY3KzMyqUjkd9T+WNAc4MBVd5OmEzcysOdtMKpIWA7cBP46IPwN3tVtUZmZWlVrq\nUzkV2BW4V9JcSV+StEe5O5bUI9V7TNIiSf+eyvtKminpqfS+W0mdyZKWSHpS0tEl5eMkLUyfXS1J\nqXwnSdNS+cOShm3n+ZuZWY5auvnxsYiYHBHvAr4IDAUekjRb0jll7PsN4IiIGA2MAY6RdDBZf8ys\niBgBzErrSNoXmEj2WJhjgB+kR8IATAHOAUak1zGp/CzgpYjYE7gK+Fb5p25mZnkra/RXRDwUEV8C\nTicbCXZNGXUiItal1e7pFcDxwNRUPhU4IS0fD9weEW9ExNPAEmC8pIFArxRDADc1qdO4rxnAkY2t\nGDMza3/l3Px4oKTvSnoGuAy4FijrMpikrpIWkD0vbGZEPAwMiIjn0iYrgQFpeRDwbEn1hlQ2KC03\nLd+iTkRsBF4B+pUTm5mZ5a+ljvpvAKcALwK3A4dERMO2tm9ORGwCxkjqA/xM0sgmn4ek2P6wt4+k\nc4FzAYYOHVrpw5mZdVotDSleDxwTEU/t6EEi4uV0n8sxwPOSBkbEc+nS1qq02XJgSEm1walseVpu\nWl5ap0FSN7IbM9c0c/zrgOsA6urqKp7EzMw6q5Y66r+2IwlFUv/UQkHSzsAHySb6ugs4I212Bm8+\nRv8uYGIa0TWcrEN+brpU9qqkg1N/yelN6jTu6yTg/tTvYmZmBSjnjvq2GghMTSO4ugDTI+KXkh4E\npks6C3gGOBkgIhZJmk720MqNwPnp8hnAecCNwM7APekFcANws6QlZJfpJlbwfMzMrBXqbD/s6+rq\nor6+vt2OV+tj0Wr+r08tf4E1/+VZniTNi4i61rZrqaN+bEsVI2J+WwIzM7Pa1dLlr/9I7z2AOuAx\nsgdK7g/UA++pbGhmZlZtWuqof39EvB94DhgbEXURMQ44gDdHX5mZmW1Wzh31746IhY0rEfFHYJ/K\nhWRmZtWqnNFff5B0PXBLWv8k8IfKhWRmZtWqnKRyJvA5snnqAX5D9oBHMzOzLZQzSdd6ST8E7o6I\nJ9shJjMzq1LlPFDyOGAB8Ku0PkaSJ+wyM7OtlNNRfykwHngZICIWAMMrGZSZmVWncpLKhoh4pUmZ\nb8U1M7OtlNNRv0jSJ4CukkaQzQL5+8qGZWZm1aiclsoXyKb4fQO4jWwirAsrGZSZmVWnFlsq6QnD\nX4uILwP/0j4hmZlZtWqxpZIePf8P7RSLmZlVuXL6VB5NQ4jvAF5rLIyIn1YsKjMzq0rlJJUeZFP0\nHlFSFoCTipmZbaGcO+rPbI9AzMys+rWaVCTtRfasrwERMVLS/sBxEfH/Kh6dmVkbzZlTw7N2Aocf\n3jFvFyxnSPGPgMnABoCI+AOeC97MzJpRTlLZJSLmNinbWIlgzMysupWTVF6Q9C7So1kknUQ2G6SZ\nmdkWyhn9dT5wHbC3pOXA02QTdZmZmW2hnKQSEfEBSbsCXSJirSQ/pdjMzLZSzuWvnwBExGsRsTaV\nzahcSGZmVq222VKRtDfZgyR7S/pYyUe9yG6INDMz20JLl7/eDXwE6AN8tKR8LXBOJYMyM7PqtM2k\nEhF3AndKek9EPNiOMZmZWZUqp0/lREm9JHWXNEvSakmnVTwyMzOrOuUklaMi4lWyS2HLgD2BSZUM\nyszMqlM5SaV7ej8WuKOZ+erNzMyA8u5T+YWkJ4DXgc9J6g+sr2xYZmZWjVptqUTExcB7gbqI2EA2\nUdfxlQ7MzMyqzzaTiqQj0vvHgMOB49PyMWRJpkWShkiaLWmxpEWSLkjlfSXNlPRUet+tpM5kSUsk\nPSnp6JLycZIWps+ulqRUvpOkaan8YUnD2vSnYGZmuWippfK+9P7RZl4fKWPfG4F/joh9gYOB8yXt\nC1wMzIqIEcCstE76bCLZDZfHAD+Q1DXtawrZvTEj0uuYVH4W8FJE7AlcBXyrjLjMzKxCWrpP5dL0\n3qaZHyPiOdLTjNPzwh4HBpFdOjs8bTYVmANclMpvj4g3gKclLQHGS1oG9IqIhwAk3QScANyT6lyW\n9jUDuEaSIqJjzl5jZlbjypn58Z+aKX4FmBcRC8o5SLosdQDwMNkMko2Pzl8JDEjLg4CHSqo1pLIN\nablpeWOdZwEiYqOkV4B+wAtNjn8ucC7A0KFDywnZzMzaoJwhxXXAZ8n+Ax8EfIbs8tOPJH2ltcqS\n3kr2UMoL0/0um6UWRcVbFRFxXUTURURd//79K304M7NOq5ykMhgYGxH/HBH/DIwD3gYcBny6pYqS\nupMllFsj4qep+HlJA9PnA4FVqXw5MKTJcZen1+BmyreoI6kb0BtYU8Y5mZlZBZSTVN4GvFGyvoHs\nEtbrTcq3kEZo3QA8HhHfLfnoLuCMtHwGcGdJ+cQ0oms4WYf83HSp7FVJB6d9nt6kTuO+TgLud3+K\nmVlxyrn58VbgYUmN/5F/FLgtTdq1uIV6hwCfAhZKaux7uQT4JjBd0lnAM8DJABGxSNL0tM+NwPkR\nsSnVOw+4EdiZrIP+nlR+A3Bz6tR/kWz0mJmZFUTl/LCXVEeWJAB+FxH1FY2qgurq6qK+vv3Cz+6o\nqV013y6s5S+wxr+8OXNq+LsDDj+8fb8/SfMioq617cq5/AXZpFyvRsR/Ac94OmEzM2tOq0lF0qVk\n95FMTkXdgVsqGZSZmVWnsuZTAY4je+YXEbEC6FnJoMzMrDqVk1T+Vno/SeqgNzMz20o5SWW6pGuB\nPpLOAe4Drq9sWGZmVo1aHVIcEd+R9EHgVeDdwL9FxMyKR2ZmZlWnnPtUSElkJoCkLpI+GRG3VjQy\nMzOrOi3Np9IrzW9yjaSjlPk8sJR0w6KZmVmplloqNwMvAQ8CZ5PdDS/ghHKfTmxmZp1LS0nlnREx\nCkDS9WRzowyNCM9Pb2ZmzWpp9NeGxoX0DK4GJxQzM2tJSy2V0ZIa5z8RsHNaF9lUKL0qHp2ZmVWV\nlqYT7rqtz8zMzJpT7gMlzczMWuWkYmZmuXFSMTOz3DipmJlZbpxUzMwsN04qZmaWGycVMzPLjZOK\nmZnlxknFzMxy46RiZma5cVIxM7PcOKmYmVlunFTMzCw3TipmZpYbJxUzM8uNk4qZmeXGScXMzHLj\npGJmZrmpWFKR9N+SVkn6Y0lZX0kzJT2V3ncr+WyypCWSnpR0dEn5OEkL02dXS1Iq30nStFT+sKRh\nlToXMzMrTyVbKjcCxzQpuxiYFREjgFlpHUn7AhOB/VKdH0jqmupMAc4BRqRX4z7PAl6KiD2Bq4Bv\nVexMzMysLBVLKhHxG+DFJsXHA1PT8lTghJLy2yPijYh4GlgCjJc0EOgVEQ9FRAA3NanTuK8ZwJGN\nrRgzMytGe/epDIiI59LySmBAWh4EPFuyXUMqG5SWm5ZvUSciNgKvAP0qE7aZmZWjsI761PKI9jiW\npHMl1UuqX716dXsc0sysU2rvpPJ8uqRFel+VypcDQ0q2G5zKlqflpuVb1JHUDegNrGnuoBFxXUTU\nRURd//79czoVMzNrqr2Tyl3AGWn5DODOkvKJaUTXcLIO+bnpUtmrkg5O/SWnN6nTuK+TgPtT68fM\nzArSrVI7lvRj4HBgd0kNwKXAN4Hpks4CngFOBoiIRZKmA4uBjcD5EbEp7eo8spFkOwP3pBfADcDN\nkpaQDQiYWKlzMTOz8lQsqUTEqdv46MhtbH85cHkz5fXAyGbK1wMTdiRGMzPLl++oNzOz3DipmJlZ\nbpxUzMwsN04qZmaWGycVMzPLjZOKmZnlxknFzMxy46RiZma5cVIxM7PcOKmYmVlunFTMzCw3Tipm\nZpYbJxUzM8uNk4qZmeXGScXMzHLjpGJmZrlxUjEzs9w4qZiZWW6cVMzMLDdOKmZmlhsnFTMzy42T\nipmZ5cZJxczMcuOkYmZmuXFSMTOz3DipmJlZbpxUzMwsN04qZmaWGycVMzPLjZOKmZnlxknFzMxy\n46RiZma5qfqkIukYSU9KWiLp4qLjMTPrzKo6qUjqCnwf+BCwL3CqpH2LjcrMrPOq6qQCjAeWRMTS\niPgbcDtwfMExmZl1Wt2KDmAHDQKeLVlvAA5qupGkc4Fz0+o6SU+2Q2xF2R14ob0OJrXXkTqFdv3u\n/OXlrn2/P9r9+3tHORtVe1IpS0RcB1xXdBztQVJ9RNQVHYdtP3931c3fX6baL38tB4aUrA9OZWZm\nVoBqTyqPACMkDZf0FmAicFfBMZmZdVpVffkrIjZK+jzwf0BX4L8jYlHBYRWtU1zmq1H+7qqbvz9A\nEVF0DGZmViOq/fKXmZl1IE4qZmaWGycVMzPLjZOKmVkbSOoi6b1Fx9HRuKO+BkiaFRFHtlZmHY+k\nvYBJZHcrbx6NGRFHFBaUlU3SoxFxQNFxdCRVPaS4s5PUA9gF2F3Sbrz53IZeZI+wsY7vDuCHwI+A\nTQXHYttvlqSPAz8N/0IH3FKpapIuAC4E9iB7kkBjUnkV+FFEXFNUbFYeSfMiYlzRcVjbSFoL7Er2\ng+B1sn+DERG9Cg2sQE4qNUDSFyLie0XHYdtP0mXAKuBnwBuN5RHxYlExme0IJ5UaIWkk2ZwyPRrL\nIuKm4iKyckh6upniiIh3tnswtt0kCfgkMDwivi5pCDAwIuYWHFphnFRqgKRLgcPJksrdZJOW/TYi\nTioyLrNaJ2kK8HfgiIjYJ/Vt3hsRBxYcWmHcUV8bTgJGA49GxJmSBgC3FByTlcmtzKp2UESMlfQo\nQES8lB5u22k5qdSG1yPi75I2SupFdo1+SGuVrHjbamUCTirVYUOa1jwAJPUna7l0Wr75sTbUS+pD\nNix1HjAfeLDYkKxMJwFHAisj4kyyFmfvYkOy7XA12SCLt0m6nOwHwTeKDalY7lOpcqmjcHBEPJvW\nhwG9IuIPRcZl5ZE0NyLGS5oHvB9YCzweEXsXHJqVSdLeZD8MBMyKiMcLDqlQvvxV5SIiJN0NjErr\ny4qNyLZT01bmOtzKrDZPkd0b1g1A0tCI+EuxIRXHLZUaIGkqcE1EPFJ0LNZ2bmVWH0lfAC4Fnie7\nAbLx5sf9Cw2sQE4qNUDSE8CewDPAa/gvdtWQdCJwf0S8ktb7AIdHxM+LjczKIWkJ2QiwNUXH0lE4\nqdQASe9orjwinmnvWGz7SFoQEWOalPkhhVVC0mzggxGxsehYOgr3qdSGgcCiiFgLkIYV70PWcrGO\nrbkRmP532cFJ+qe0uBSYI+l/2fIxO98tJLAOwEOKa8MUsg7eRutSmXV89ZK+K+ld6fVdsg5769h6\nptdfgJnAW0rK3lpgXIXzL6LaoNLHbqcbIf3dVocvAP8KTEvrM4HziwvHyhER/w4gaUJE3FH6maQJ\nxUTVMbhPpQZI+ikwhzdbJ+cB74+IEwoLyqwTkDQ/Isa2VtaZ+Ndsbfgs2Z29X03r9wHnFheOtUbS\nf0bEhZJ+QXrER6mIOK6AsKxMkj4EfBgYJOnqko96AZ26095JpQZExCpgYtFx2Ha5Ob1/p9AorK1W\nAPXABOBPqWwj2f0qXyoqqI7Al79qgKTBwPeAQ1LRA8AFEdFQXFRmtUtSd+By4GxgWSoeCvwPcElE\nbCgotMI5qdQASTOB23jz1+9pwCcj4oPFRWUtkbSQZi574RtXq4Kkq8hGef1Tk6H83yF7avgFRcZX\nJCeVGrCNG+i2KrOOY1s3rDbyjasdm6SngL2iyX+g6TH4T0TEiGIiK57vU6kNaySdJqlrep0G+LER\nHVhEPNP4IrtpbjSwP/CGE0pViKYJJRVuovkWaKfhpFIb/hE4GVgJPEc2R8eZhUZkZZF0NjAX+BjZ\n9/aQpH8sNiorw2JJpzctTD/oniggng7Dl7/MCiTpSeC9jQ8klNQP+H1EvLvYyKwlkgYBPwVe580n\nINQBOwMnRsTyomIrmocU1wBJw8nuzB5GyXfqex2qwhqyibkarcWXLju8lDQOknQEsF8qvjsiZhUY\nVofglkrYvhAeAAAE1ElEQVQNkPQYcAOwkJL5sSPi14UFZS0qeSDhGLIJ1u4kuxZ/PPCHiPh0QaGZ\n7RC3VGrD+oi4uvXNrAPpmd7/nF6N7iwgFrPcuKVSAyR9AhgB3MuWj9+eX1hQZtYpuaVSG0YBnwKO\n4M3LX5HWrQNLkzw1NzTV351VJSeV2jABeGdE/K3oQGy7fblkuQfwcTr5Awmtujmp1IY/An2AVUUH\nYtsnIppOyPU7SXMLCcYsB04qtaEP8ISkR9iyT8VDijs4SX1LVrsA44DeBYVjtsOcVGrDpUUHYG02\nj6xPRWSXvZ4Gzio0IrMd4NFfNSI9oHBERNwnaRega+PTU83M2otbKjVA0jlkMz32Bd4FDAJ+CBxZ\nZFzWOkk9yKZ//geyFssDwA8jYn2hgZm1kVsqNUDSAmA88HBEHJDKFkbEqGIjs9ZImk72aJZbUtEn\ngD4RMaG4qMzazi2V2vBGRPxNEgCSutHJH79dRUZGxL4l67MlLS4sGrMd5Eff14ZfS7oE2FnSB4E7\ngF8UHJOVZ76kgxtXJB1ENve5WVXy5a8aIKkL2Yiho8hGEf0fcH1zkwhZxyLpceDdwF9S0VDgSbKR\nYJ5W2KqOk0qNkNQfICJWFx2Llc/TClut8eWvKqbMZZJeIPt1+6Sk1ZL+rejYrDwpaQwBjkjLrwFd\nSqYaNqsqTirV7UvAIcCBEdE3IvoCBwGHSPpSsaFZOSRdClwETE5Fb+HNkWBmVceXv6qYpEeBD0bE\nC03K+wP3Ng4vto4rDQc/AJhfMhz8D+5LsWrllkp16940ocDmfpXuBcRj2+9vaUBFAEjateB4zHaI\nk0p1a+lR934MfnWYLulaoE96MsJ9wPUFx2TWZr78VcUkbSLr2N3qI6BHRLi1UgXSvUWbh4NHxMyC\nQzJrMycVsw4k3XN0akTcWnQsZm3hy19mBZDUS9JkSddIOioND/88sBQ4uej4zNrKLRWzAki6E3gJ\neJDsadJvI7v8dUFELCgyNrMd4aRiVoDSp0hL6go8Bwz1I++t2vnyl1kxNjQuRMQmoMEJxWqBWypm\nBWgyck/AzsBf03JERK+iYjPbEU4qZmaWG1/+MjOz3DipmJlZbpxUzCpE0iZJCyT9UdIdknbZzvoX\nbm8ds6I5qZhVzusRMSYiRpI9i+2z5VZMw4wvBJxUrKo4qZi1jweAPQEk/VzSPEmLJJ3buIGkdZL+\nQ9JjwL8AewCzJc2W9I+S/rNk23MkXdXeJ2HWGo/+MqsQSesi4q2SugE/AX4VEVMk9Y2IFyXtDDwC\nvC8i1kgK4JSImJ7qLwPqIuIFSW8FHgP2jogNkn4PfCYiFhZzdmbN61Z0AGY1bOc0CRdkLZUb0vIX\nJZ2YlocAI4A1wCay5LOViFgn6X7gI5IeJ5tLxwnFOhwnFbPKeT0ixpQWSDoc+ADwnoj4q6Q5QI/0\n8fp0d/22XA9cAjwB/E/+4ZrtOCcVs/bVG3gpJZS9gYNb2HYt0BN4ASAiHpY0BBgLeLph65DcUW/W\nvn4FdEuXsL4JPNTCttcBv5I0u6RsOvC7iHipgjGatZk76s2qiKRfAldFxKyiYzFrjlsqZlVAUh9J\nfyLrp3FCsQ7LLRUzM8uNWypmZpYbJxUzM8uNk4qZmeXGScXMzHLjpGJmZrlxUjEzs9z8fx3fmRLr\nIdCAAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_parties.plot.bar(color='BRY')\n", + "plt.ylabel('Registered Voters')\n", + "plt.xlabel('Party')\n", + "plt.title('Party affiliation')\n", + "plt.show()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
12345678910...144145146147148149150151152153
60899001060962-14NaNMISKAJENNIFERSELLERNaNF8/5/611/4/02A...DAPDAPDNaNNaNNaNCENTRENaN
60900001076841-14NaNDUNNLORETTAMNaNU11/4/171/1/82I...NaNNaNNaNNaNNaNABDNaNCENTRENaN
60901001109561-14NaNBEECHAMJANAMICHELLENaNF4/14/721/1/92A...NaNNaNNaNNaNNaNNaNNaN8142312689CENTRENaN
60902001304938-14NaNWELESKOJOHNPNaNM9/11/4212/18/63A...RAPRNaNNaNNaNNaNNaNCENTRENaN
60903001350294-14NaNWELESKOMAUREENANaNF10/16/499/7/76A...RAPRNaNNaNNaNNaNNaNCENTRENaN
\n", + "

5 rows × 153 columns

\n", + "
" + ], + "text/plain": [ + " 1 2 3 4 5 6 7 8 \\\n", + "60899 001060962-14 NaN MISKA JENNIFER SELLER NaN F 8/5/61 \n", + "60900 001076841-14 NaN DUNN LORETTA M NaN U 11/4/17 \n", + "60901 001109561-14 NaN BEECHAM JANA MICHELLE NaN F 4/14/72 \n", + "60902 001304938-14 NaN WELESKO JOHN P NaN M 9/11/42 \n", + "60903 001350294-14 NaN WELESKO MAUREEN A NaN F 10/16/49 \n", + "\n", + " 9 10 ... 144 145 146 147 148 149 150 151 152 \\\n", + "60899 1/4/02 A ... D AP D AP D NaN NaN NaN CENTRE \n", + "60900 1/1/82 I ... NaN NaN NaN NaN NaN AB D NaN CENTRE \n", + "60901 1/1/92 A ... NaN NaN NaN NaN NaN NaN NaN 8142312689 CENTRE \n", + "60902 12/18/63 A ... R AP R NaN NaN NaN NaN NaN CENTRE \n", + "60903 9/7/76 A ... R AP R NaN NaN NaN NaN NaN CENTRE \n", + "\n", + " 153 \n", + "60899 NaN \n", + "60900 NaN \n", + "60901 NaN \n", + "60902 NaN \n", + "60903 NaN \n", + "\n", + "[5 rows x 153 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_prec42 = df_voters[df_voters['27'] == 42]\n", + "df_prec42.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NUMBER
PARTY
R978
D824
NF231
I48
LN14
OTH4
NOP4
NO4
NON3
WH1
UNK1
INDE1
IND1
GR1
C1
\n", + "
" + ], + "text/plain": [ + " NUMBER\n", + "PARTY \n", + "R 978\n", + "D 824\n", + "NF 231\n", + "I 48\n", + "LN 14\n", + "OTH 4\n", + "NOP 4\n", + "NO 4\n", + "NON 3\n", + "WH 1\n", + "UNK 1\n", + "INDE 1\n", + "IND 1\n", + "GR 1\n", + "C 1" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "grouped42 = df_prec42.groupby('12') # Group by party registrations\n", + "summed42 = grouped42['12'].count() # Get counts of each group\n", + "summed42.sort_values(inplace=True, ascending=False)\n", + "df_summed42 = summed42.to_frame()\n", + "df_summed42.columns = ['NUMBER']\n", + "df_summed42.index.names = ['PARTY']\n", + "df_summed42" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
N
Democrat824
Republican978
Other314
\n", + "
" + ], + "text/plain": [ + " N\n", + "Democrat 824\n", + "Republican 978\n", + "Other 314" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parties = ['Democrat', 'Republican', 'Other']\n", + "values = np.array([df_summed42[(df_summed42.index == 'D')].NUMBER.item(),df_summed42[(df_summed42.index == 'R')].NUMBER.item(),df_summed42[(df_summed42.index != 'D') & (df_summed42.index != 'R')].NUMBER.sum()])\n", + "df_parties42 = pd.DataFrame(values,index=parties,columns=list('N'))\n", + "df_parties42 " + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
0CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNREGISTERED VOTERS - TOTALNaNNaNNaN10.0507.0NaNNaNNaN
1CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNBALLOTS CAST - TOTALNaNNaNNaN11.0391.0NaNNaNNaN
2CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHNaNVOTER TURNOUT - TOTALNaNNaNNaN12.0NaN77.12NaNNaN
3CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1DEMOCRATIC17.046.040.35NaNNaN
4CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANSTRAIGHT PARTYNaNVOTE FOR NOT MORE THAN 1REPUBLICAN18.066.057.89NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election ElecDate \\\n", + "0 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "1 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "2 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "3 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "4 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION NOVEMBER 8 2016 \n", + "\n", + " PrecNo PrecName Party Contest Descr \\\n", + "0 1.0 01 BELLEFONTE NORTH NaN REGISTERED VOTERS - TOTAL NaN \n", + "1 1.0 01 BELLEFONTE NORTH NaN BALLOTS CAST - TOTAL NaN \n", + "2 1.0 01 BELLEFONTE NORTH NaN VOTER TURNOUT - TOTAL NaN \n", + "3 1.0 01 BELLEFONTE NORTH DEMOCRATIC STRAIGHT PARTY NaN \n", + "4 1.0 01 BELLEFONTE NORTH REPUBLICAN STRAIGHT PARTY NaN \n", + "\n", + " VoteFor Candidate Posn Count PctCnt Total PctTot \n", + "0 NaN NaN 10.0 507.0 NaN NaN NaN \n", + "1 NaN NaN 11.0 391.0 NaN NaN NaN \n", + "2 NaN NaN 12.0 NaN 77.12 NaN NaN \n", + "3 VOTE FOR NOT MORE THAN 1 DEMOCRATIC 17.0 46.0 40.35 NaN NaN \n", + "4 VOTE FOR NOT MORE THAN 1 REPUBLICAN 18.0 66.0 57.89 NaN NaN " + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_results = pd.read_table('data/centrecounty_precinct_results_nov2016.txt', sep=',')\n", + "df_results.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_res_prec42 = df_results[df_results['PrecNo'] == 42]" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
1584CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201642.042 COLLEGE SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT3488.0802.049.54NaNNaN
1585CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201642.042 COLLEGE SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT3489.0736.045.46NaNNaN
1586CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201642.042 COLLEGE SOUTHCONSTITUTION PARTYPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DARRELL L CASTLE, PRESIDENT3490.06.00.37NaNNaN
1587CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201642.042 COLLEGE SOUTHGREENPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1JILL STEIN, PRESIDENT3491.016.00.99NaNNaN
1588CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201642.042 COLLEGE SOUTHLIBERTARIANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1GARY JOHNSON, PRESIDENT3492.034.02.10NaNNaN
\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "1584 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1585 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1586 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1587 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1588 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party \\\n", + "1584 NOVEMBER 8 2016 42.0 42 COLLEGE SOUTH DEMOCRATIC \n", + "1585 NOVEMBER 8 2016 42.0 42 COLLEGE SOUTH REPUBLICAN \n", + "1586 NOVEMBER 8 2016 42.0 42 COLLEGE SOUTH CONSTITUTION PARTY \n", + "1587 NOVEMBER 8 2016 42.0 42 COLLEGE SOUTH GREEN \n", + "1588 NOVEMBER 8 2016 42.0 42 COLLEGE SOUTH LIBERTARIAN \n", + "\n", + " Contest Descr VoteFor \\\n", + "1584 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1585 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1586 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1587 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1588 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "\n", + " Candidate Posn Count PctCnt Total PctTot \n", + "1584 HILLARY CLINTON, PRESIDENT 3488.0 802.0 49.54 NaN NaN \n", + "1585 DONALD J TRUMP, PRESIDENT 3489.0 736.0 45.46 NaN NaN \n", + "1586 DARRELL L CASTLE, PRESIDENT 3490.0 6.0 0.37 NaN NaN \n", + "1587 JILL STEIN, PRESIDENT 3491.0 16.0 0.99 NaN NaN \n", + "1588 GARY JOHNSON, PRESIDENT 3492.0 34.0 2.10 NaN NaN " + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_respres_p42 = df_res_prec42.loc [df_res_prec42['Contest'] == 'PRESIDENTIAL ELECTORS']\n", + "df_respres_p42.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Candidate\n", + "DARRELL L CASTLE, PRESIDENT 6.0\n", + "DONALD J TRUMP, PRESIDENT 736.0\n", + "GARY JOHNSON, PRESIDENT 34.0\n", + "HILLARY CLINTON, PRESIDENT 802.0\n", + "JILL STEIN, PRESIDENT 16.0\n", + "WRITE-IN 25.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_respres_p42.groupby('Candidate').Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Candidate\n", + "DARRELL L CASTLE, PRESIDENT 6.0\n", + "DONALD J TRUMP, PRESIDENT 736.0\n", + "GARY JOHNSON, PRESIDENT 34.0\n", + "HILLARY CLINTON, PRESIDENT 802.0\n", + "JILL STEIN, PRESIDENT 16.0\n", + "WRITE-IN 25.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "grouped_res42 = df_respres_p42.groupby('Candidate')\n", + "summed_res42 = grouped_res42['Count'].sum()\n", + "summed_res42" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VOTES
CANDIDATE
HILLARY CLINTON, PRESIDENT802.0
DONALD J TRUMP, PRESIDENT736.0
GARY JOHNSON, PRESIDENT34.0
WRITE-IN25.0
JILL STEIN, PRESIDENT16.0
DARRELL L CASTLE, PRESIDENT6.0
\n", + "
" + ], + "text/plain": [ + " VOTES\n", + "CANDIDATE \n", + "HILLARY CLINTON, PRESIDENT 802.0\n", + "DONALD J TRUMP, PRESIDENT 736.0\n", + "GARY JOHNSON, PRESIDENT 34.0\n", + "WRITE-IN 25.0\n", + "JILL STEIN, PRESIDENT 16.0\n", + "DARRELL L CASTLE, PRESIDENT 6.0" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "grouped_res42 = df_respres_p42.groupby('Candidate') # Group by party registrations\n", + "summed_res42 = grouped_res42['Count'].sum() # Get counts of each group\n", + "summed_res42.sort_values(inplace=True, ascending=False)\n", + "df_summed_res42 = summed_res42.to_frame()\n", + "df_summed_res42.columns = ['VOTES']\n", + "df_summed_res42.index.names = ['CANDIDATE']\n", + "df_summed_res42" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
V
Democrat802.0
Republican736.0
Other81.0
\n", + "
" + ], + "text/plain": [ + " V\n", + "Democrat 802.0\n", + "Republican 736.0\n", + "Other 81.0" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parties = ['Democrat','Republican','Other']\n", + "values_res = np.array([df_summed_res42[(df_summed_res42.index == 'HILLARY CLINTON, PRESIDENT')].VOTES.item(),df_summed_res42[(df_summed_res42.index == 'DONALD J TRUMP, PRESIDENT')].VOTES.item(),df_summed_res42[(df_summed_res42.index != 'HILLARY CLINTON, PRESIDENT') & (df_summed_res42.index != 'DONALD J TRUMP, PRESIDENT')].VOTES.sum()])\n", + "df_results42 = pd.DataFrame(values_res,index=parties,columns=list('V'))\n", + "df_results42 " + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
VN
Democrat802.0824
Republican736.0978
Other81.0314
\n", + "
" + ], + "text/plain": [ + " V N\n", + "Democrat 802.0 824\n", + "Republican 736.0 978\n", + "Other 81.0 314" + ] + }, + "execution_count": 139, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_prec42_diff = pd.concat([df_results42, df_parties42], axis=1)\n", + "df_prec42_diff" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_prec42_diff.plot.bar(color = 'BR')\n", + "plt.title('Precinct 42 Registered voters and results')\n", + "plt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
XYOBJECTIDNAMEPrecinctGlobalIDMDJShapeSTAreShapeSTLen
0-77.97239141.1293401BURNSIDE40{A309C3DE-8AD8-46A5-B8EA-B8F7E1ADB972}49-3-032.530029e+09280069.560289
1-77.64141441.0685052LIBERTY60{57577111-D7B7-4048-9517-EF2ED6059928}49-3-026.878831e+08131265.443714
2-77.68809041.0103103HOWARD TWP58{C9B8B5CF-6699-485A-97D2-74FB9B2D6FFE}49-3-025.275320e+08111072.612891
3-77.64234840.9859814MARION61{FA3740D2-624B-4464-B6CD-16F6E219ADEA}49-3-026.135493e+08131038.017743
4-77.94989241.0275685SNOW SHOE14{908F092A-BCFF-4EA5-99D7-B9248A2EA56A}49-3-031.644442e+0719920.287608
\n", + "
" + ], + "text/plain": [ + " X Y OBJECTID NAME Precinct \\\n", + "0 -77.972391 41.129340 1 BURNSIDE 40 \n", + "1 -77.641414 41.068505 2 LIBERTY 60 \n", + "2 -77.688090 41.010310 3 HOWARD TWP 58 \n", + "3 -77.642348 40.985981 4 MARION 61 \n", + "4 -77.949892 41.027568 5 SNOW SHOE 14 \n", + "\n", + " GlobalID MDJ ShapeSTAre \\\n", + "0 {A309C3DE-8AD8-46A5-B8EA-B8F7E1ADB972} 49-3-03 2.530029e+09 \n", + "1 {57577111-D7B7-4048-9517-EF2ED6059928} 49-3-02 6.878831e+08 \n", + "2 {C9B8B5CF-6699-485A-97D2-74FB9B2D6FFE} 49-3-02 5.275320e+08 \n", + "3 {FA3740D2-624B-4464-B6CD-16F6E219ADEA} 49-3-02 6.135493e+08 \n", + "4 {908F092A-BCFF-4EA5-99D7-B9248A2EA56A} 49-3-03 1.644442e+07 \n", + "\n", + " ShapeSTLen \n", + "0 280069.560289 \n", + "1 131265.443714 \n", + "2 111072.612891 \n", + "3 131038.017743 \n", + "4 19920.287608 " + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_precinct_locations = pd.read_table('data/center_county_precinct_centroids.csv', sep=',', low_memory=False)\n", + "df_precinct_locations.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nSTiLpQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(df_precinct_locations['X'],df_precinct_locations['Y'], s=25)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_rprescont = df_results[df_results['Contest'] == 'PRESIDENTIAL ELECTORS']" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "PrecNo Candidate \n", + "1.0 DARRELL L CASTLE, PRESIDENT 2.0\n", + " DONALD J TRUMP, PRESIDENT 174.0\n", + " GARY JOHNSON, PRESIDENT 22.0\n", + " HILLARY CLINTON, PRESIDENT 188.0\n", + " JILL STEIN, PRESIDENT 3.0\n", + " WRITE-IN 2.0\n", + "2.0 DARRELL L CASTLE, PRESIDENT 9.0\n", + " DONALD J TRUMP, PRESIDENT 385.0\n", + " GARY JOHNSON, PRESIDENT 10.0\n", + " HILLARY CLINTON, PRESIDENT 259.0\n", + " JILL STEIN, PRESIDENT 7.0\n", + " WRITE-IN 9.0\n", + "3.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 193.0\n", + " GARY JOHNSON, PRESIDENT 17.0\n", + " HILLARY CLINTON, PRESIDENT 230.0\n", + " JILL STEIN, PRESIDENT 4.0\n", + " WRITE-IN 7.0\n", + "4.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 375.0\n", + " GARY JOHNSON, PRESIDENT 35.0\n", + " HILLARY CLINTON, PRESIDENT 283.0\n", + " JILL STEIN, PRESIDENT 10.0\n", + " WRITE-IN 8.0\n", + "5.0 DARRELL L CASTLE, PRESIDENT 7.0\n", + " DONALD J TRUMP, PRESIDENT 398.0\n", + " GARY JOHNSON, PRESIDENT 48.0\n", + " HILLARY CLINTON, PRESIDENT 443.0\n", + " JILL STEIN, PRESIDENT 13.0\n", + " WRITE-IN 13.0\n", + " ... \n", + "87.0 DARRELL L CASTLE, PRESIDENT 6.0\n", + " DONALD J TRUMP, PRESIDENT 509.0\n", + " GARY JOHNSON, PRESIDENT 44.0\n", + " HILLARY CLINTON, PRESIDENT 343.0\n", + " JILL STEIN, PRESIDENT 5.0\n", + " WRITE-IN 10.0\n", + "88.0 DARRELL L CASTLE, PRESIDENT 9.0\n", + " DONALD J TRUMP, PRESIDENT 292.0\n", + " GARY JOHNSON, PRESIDENT 19.0\n", + " HILLARY CLINTON, PRESIDENT 642.0\n", + " JILL STEIN, PRESIDENT 10.0\n", + " WRITE-IN 24.0\n", + "89.0 DARRELL L CASTLE, PRESIDENT 3.0\n", + " DONALD J TRUMP, PRESIDENT 391.0\n", + " GARY JOHNSON, PRESIDENT 39.0\n", + " HILLARY CLINTON, PRESIDENT 628.0\n", + " JILL STEIN, PRESIDENT 6.0\n", + " WRITE-IN 22.0\n", + "90.0 DARRELL L CASTLE, PRESIDENT 0.0\n", + " DONALD J TRUMP, PRESIDENT 536.0\n", + " GARY JOHNSON, PRESIDENT 37.0\n", + " HILLARY CLINTON, PRESIDENT 394.0\n", + " JILL STEIN, PRESIDENT 13.0\n", + " WRITE-IN 19.0\n", + "91.0 DARRELL L CASTLE, PRESIDENT 1.0\n", + " DONALD J TRUMP, PRESIDENT 281.0\n", + " GARY JOHNSON, PRESIDENT 16.0\n", + " HILLARY CLINTON, PRESIDENT 396.0\n", + " JILL STEIN, PRESIDENT 6.0\n", + " WRITE-IN 13.0\n", + "Name: Count, dtype: float64" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_rprescont.groupby(['PrecNo','Candidate']).Count.sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
8CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT26.0188.048.08NaNNaN
47CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT111.0259.038.14NaNNaN
86CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT196.0230.050.33NaNNaN
125CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT281.0283.039.47NaNNaN
164CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT366.0443.048.05NaNNaN
203CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT451.0230.032.53NaNNaN
242CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BORODEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT536.0122.032.36NaNNaN
281CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20168.008 MILESBURGDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT621.0143.027.39NaNNaN
320CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20169.009 MILLHEIMDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT706.0169.040.14NaNNaN
359CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201610.010 PHILIPSBURG 1ST WARDDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT791.0159.035.65NaNNaN
397CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201611.011 PHILIPSBURG 2ND WARDDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT875.0143.037.14NaNNaN
435CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201612.012 PHILIPSBURG 3RD WARDDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT959.0124.034.54NaNNaN
473CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201613.013 PORT MATILDADEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1043.070.025.27NaNNaN
512CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201614.014 SNOW SHOE BORODEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1128.083.025.23NaNNaN
551CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201615.015 RUSH NORTH CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1213.057.029.23NaNNaN
589CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201616.016 SC NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1297.0495.077.95NaNNaN
627CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201617.017 SC NORTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1381.0399.074.58NaNNaN
665CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201618.018 SC NORTHWESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1465.0928.068.24NaNNaN
703CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201619.019 SC SOUTH 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1549.0888.069.21NaNNaN
741CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201620.020 SC SOUTH 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1633.0739.068.87NaNNaN
779CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201621.021 SC SOUTHEASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1717.0611.071.05NaNNaN
817CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201622.022 SC SOUTH CENTRAL 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1801.0322.063.76NaNNaN
855CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201623.023 SC SOUTH CENTRAL 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1885.0490.070.81NaNNaN
893CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201624.024 SC EAST 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT1969.0867.052.77NaNNaN
931CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201625.025 SC EAST 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2053.0977.067.33NaNNaN
969CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201626.026 SC EAST 3DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2137.01188.062.63NaNNaN
1007CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201627.027 SC EAST 4DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2221.01195.062.76NaNNaN
1045CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201628.028 SC EAST CENTRAL 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2305.0706.067.69NaNNaN
1083CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201629.029 SC EAST CENTRAL 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2389.0641.062.84NaNNaN
1121CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201630.030 SC EAST CENTRAL 3DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT2473.0325.058.56NaNNaN
...................................................
2364CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201662.062 MILES EASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5192.097.027.25NaNNaN
2403CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201663.063 MILES WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5277.038.023.75NaNNaN
2442CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201664.064 PATTON NORTH 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5362.01102.060.32NaNNaN
2480CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201665.065 PATTON NORTH 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5446.0873.047.01NaNNaN
2519CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201666.066 PATTON SOUTH 1DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5531.0511.064.28NaNNaN
2558CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201667.067 PATTON SOUTH 2DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5616.0904.063.93NaNNaN
2596CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201668.068 PATTON SOUTH 3DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5700.01015.062.73NaNNaN
2635CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201669.069 PENNDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5785.0130.026.21NaNNaN
2674CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201670.070 POTTER NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5870.0228.028.79NaNNaN
2713CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201671.071 POTTER SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT5955.0406.033.55NaNNaN
2752CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201672.072 RUSH NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6040.0242.024.87NaNNaN
2790CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201673.073 RUSH SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6124.047.023.50NaNNaN
2828CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201674.074 RUSH EASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6208.032.035.16NaNNaN
2866CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201675.075 RUSH WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6292.089.023.92NaNNaN
2904CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201676.076 SNOW SHOE EASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6376.0146.025.89NaNNaN
2943CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201677.077 SNOW SHOE WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6461.066.023.57NaNNaN
2982CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201678.078 SPRING NORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6546.0349.036.93NaNNaN
3021CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201679.079 SPRING SOUTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6631.0229.030.95NaNNaN
3060CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201680.080 SPRING WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6716.0130.029.35NaNNaN
3099CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201681.081 TAYLORDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6801.076.017.31NaNNaN
3138CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201682.082 UNIONDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6886.0126.017.03NaNNaN
3177CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201683.083 WALKER EASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT6971.0224.026.29NaNNaN
3216CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201684.084 WALKER WESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7056.0514.030.83NaNNaN
3255CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201685.085 WORTHDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7141.097.023.43NaNNaN
3294CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201686.086 SPRING EASTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7226.0250.027.47NaNNaN
3333CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7311.0343.037.40NaNNaN
3372CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3DEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7396.0642.064.46NaNNaN
3411CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7481.0628.057.67NaNNaN
3450CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7566.0394.039.44NaNNaN
3489CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALDEMOCRATICPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1HILLARY CLINTON, PRESIDENT7651.0396.055.54NaNNaN
\n", + "

91 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "8 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "47 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "86 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "125 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "164 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "203 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "242 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "281 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "320 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "359 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "397 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "435 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "473 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "512 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "551 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "589 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "627 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "665 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "703 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "741 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "779 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "817 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "855 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "893 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "931 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "969 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1007 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1045 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1083 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1121 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "... ... ... ... \n", + "2364 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2403 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2442 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2480 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2519 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2558 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2596 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2635 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2674 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2713 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2752 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2790 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2828 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2866 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2904 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2943 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2982 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3021 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3060 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3099 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3138 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3177 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3216 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3255 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3294 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3333 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3372 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3411 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3450 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3489 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party \\\n", + "8 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH DEMOCRATIC \n", + "47 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST DEMOCRATIC \n", + "86 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH DEMOCRATIC \n", + "125 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST DEMOCRATIC \n", + "164 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST DEMOCRATIC \n", + "203 NOVEMBER 8 2016 6.0 06 CENTRE HALL DEMOCRATIC \n", + "242 NOVEMBER 8 2016 7.0 07 HOWARD BORO DEMOCRATIC \n", + "281 NOVEMBER 8 2016 8.0 08 MILESBURG DEMOCRATIC \n", + "320 NOVEMBER 8 2016 9.0 09 MILLHEIM DEMOCRATIC \n", + "359 NOVEMBER 8 2016 10.0 10 PHILIPSBURG 1ST WARD DEMOCRATIC \n", + "397 NOVEMBER 8 2016 11.0 11 PHILIPSBURG 2ND WARD DEMOCRATIC \n", + "435 NOVEMBER 8 2016 12.0 12 PHILIPSBURG 3RD WARD DEMOCRATIC \n", + "473 NOVEMBER 8 2016 13.0 13 PORT MATILDA DEMOCRATIC \n", + "512 NOVEMBER 8 2016 14.0 14 SNOW SHOE BORO DEMOCRATIC \n", + "551 NOVEMBER 8 2016 15.0 15 RUSH NORTH CENTRAL DEMOCRATIC \n", + "589 NOVEMBER 8 2016 16.0 16 SC NORTH DEMOCRATIC \n", + "627 NOVEMBER 8 2016 17.0 17 SC NORTHEAST DEMOCRATIC \n", + "665 NOVEMBER 8 2016 18.0 18 SC NORTHWEST DEMOCRATIC \n", + "703 NOVEMBER 8 2016 19.0 19 SC SOUTH 1 DEMOCRATIC \n", + "741 NOVEMBER 8 2016 20.0 20 SC SOUTH 2 DEMOCRATIC \n", + "779 NOVEMBER 8 2016 21.0 21 SC SOUTHEAST DEMOCRATIC \n", + "817 NOVEMBER 8 2016 22.0 22 SC SOUTH CENTRAL 1 DEMOCRATIC \n", + "855 NOVEMBER 8 2016 23.0 23 SC SOUTH CENTRAL 2 DEMOCRATIC \n", + "893 NOVEMBER 8 2016 24.0 24 SC EAST 1 DEMOCRATIC \n", + "931 NOVEMBER 8 2016 25.0 25 SC EAST 2 DEMOCRATIC \n", + "969 NOVEMBER 8 2016 26.0 26 SC EAST 3 DEMOCRATIC \n", + "1007 NOVEMBER 8 2016 27.0 27 SC EAST 4 DEMOCRATIC \n", + "1045 NOVEMBER 8 2016 28.0 28 SC EAST CENTRAL 1 DEMOCRATIC \n", + "1083 NOVEMBER 8 2016 29.0 29 SC EAST CENTRAL 2 DEMOCRATIC \n", + "1121 NOVEMBER 8 2016 30.0 30 SC EAST CENTRAL 3 DEMOCRATIC \n", + "... ... ... ... ... \n", + "2364 NOVEMBER 8 2016 62.0 62 MILES EAST DEMOCRATIC \n", + "2403 NOVEMBER 8 2016 63.0 63 MILES WEST DEMOCRATIC \n", + "2442 NOVEMBER 8 2016 64.0 64 PATTON NORTH 1 DEMOCRATIC \n", + "2480 NOVEMBER 8 2016 65.0 65 PATTON NORTH 2 DEMOCRATIC \n", + "2519 NOVEMBER 8 2016 66.0 66 PATTON SOUTH 1 DEMOCRATIC \n", + "2558 NOVEMBER 8 2016 67.0 67 PATTON SOUTH 2 DEMOCRATIC \n", + "2596 NOVEMBER 8 2016 68.0 68 PATTON SOUTH 3 DEMOCRATIC \n", + "2635 NOVEMBER 8 2016 69.0 69 PENN DEMOCRATIC \n", + "2674 NOVEMBER 8 2016 70.0 70 POTTER NORTH DEMOCRATIC \n", + "2713 NOVEMBER 8 2016 71.0 71 POTTER SOUTH DEMOCRATIC \n", + "2752 NOVEMBER 8 2016 72.0 72 RUSH NORTH DEMOCRATIC \n", + "2790 NOVEMBER 8 2016 73.0 73 RUSH SOUTH DEMOCRATIC \n", + "2828 NOVEMBER 8 2016 74.0 74 RUSH EAST DEMOCRATIC \n", + "2866 NOVEMBER 8 2016 75.0 75 RUSH WEST DEMOCRATIC \n", + "2904 NOVEMBER 8 2016 76.0 76 SNOW SHOE EAST DEMOCRATIC \n", + "2943 NOVEMBER 8 2016 77.0 77 SNOW SHOE WEST DEMOCRATIC \n", + "2982 NOVEMBER 8 2016 78.0 78 SPRING NORTH DEMOCRATIC \n", + "3021 NOVEMBER 8 2016 79.0 79 SPRING SOUTH DEMOCRATIC \n", + "3060 NOVEMBER 8 2016 80.0 80 SPRING WEST DEMOCRATIC \n", + "3099 NOVEMBER 8 2016 81.0 81 TAYLOR DEMOCRATIC \n", + "3138 NOVEMBER 8 2016 82.0 82 UNION DEMOCRATIC \n", + "3177 NOVEMBER 8 2016 83.0 83 WALKER EAST DEMOCRATIC \n", + "3216 NOVEMBER 8 2016 84.0 84 WALKER WEST DEMOCRATIC \n", + "3255 NOVEMBER 8 2016 85.0 85 WORTH DEMOCRATIC \n", + "3294 NOVEMBER 8 2016 86.0 86 SPRING EAST DEMOCRATIC \n", + "3333 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST DEMOCRATIC \n", + "3372 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 DEMOCRATIC \n", + "3411 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL DEMOCRATIC \n", + "3450 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL DEMOCRATIC \n", + "3489 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL DEMOCRATIC \n", + "\n", + " Contest Descr VoteFor \\\n", + "8 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "47 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "86 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "125 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "164 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "203 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "242 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "281 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "320 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "359 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "397 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "435 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "473 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "512 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "551 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "589 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "627 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "665 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "703 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "741 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "779 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "817 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "855 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "893 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "931 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "969 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1007 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1045 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1083 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1121 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "... ... ... ... \n", + "2364 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2403 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2442 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2480 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2519 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2558 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2596 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2635 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2674 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2713 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2752 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2790 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2828 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2866 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2904 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2943 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2982 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3021 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3060 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3099 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3138 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3177 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3216 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3255 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3294 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3333 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3372 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3411 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3450 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3489 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "\n", + " Candidate Posn Count PctCnt Total PctTot \n", + "8 HILLARY CLINTON, PRESIDENT 26.0 188.0 48.08 NaN NaN \n", + "47 HILLARY CLINTON, PRESIDENT 111.0 259.0 38.14 NaN NaN \n", + "86 HILLARY CLINTON, PRESIDENT 196.0 230.0 50.33 NaN NaN \n", + "125 HILLARY CLINTON, PRESIDENT 281.0 283.0 39.47 NaN NaN \n", + "164 HILLARY CLINTON, PRESIDENT 366.0 443.0 48.05 NaN NaN \n", + "203 HILLARY CLINTON, PRESIDENT 451.0 230.0 32.53 NaN NaN \n", + "242 HILLARY CLINTON, PRESIDENT 536.0 122.0 32.36 NaN NaN \n", + "281 HILLARY CLINTON, PRESIDENT 621.0 143.0 27.39 NaN NaN \n", + "320 HILLARY CLINTON, PRESIDENT 706.0 169.0 40.14 NaN NaN \n", + "359 HILLARY CLINTON, PRESIDENT 791.0 159.0 35.65 NaN NaN \n", + "397 HILLARY CLINTON, PRESIDENT 875.0 143.0 37.14 NaN NaN \n", + "435 HILLARY CLINTON, PRESIDENT 959.0 124.0 34.54 NaN NaN \n", + "473 HILLARY CLINTON, PRESIDENT 1043.0 70.0 25.27 NaN NaN \n", + "512 HILLARY CLINTON, PRESIDENT 1128.0 83.0 25.23 NaN NaN \n", + "551 HILLARY CLINTON, PRESIDENT 1213.0 57.0 29.23 NaN NaN \n", + "589 HILLARY CLINTON, PRESIDENT 1297.0 495.0 77.95 NaN NaN \n", + "627 HILLARY CLINTON, PRESIDENT 1381.0 399.0 74.58 NaN NaN \n", + "665 HILLARY CLINTON, PRESIDENT 1465.0 928.0 68.24 NaN NaN \n", + "703 HILLARY CLINTON, PRESIDENT 1549.0 888.0 69.21 NaN NaN \n", + "741 HILLARY CLINTON, PRESIDENT 1633.0 739.0 68.87 NaN NaN \n", + "779 HILLARY CLINTON, PRESIDENT 1717.0 611.0 71.05 NaN NaN \n", + "817 HILLARY CLINTON, PRESIDENT 1801.0 322.0 63.76 NaN NaN \n", + "855 HILLARY CLINTON, PRESIDENT 1885.0 490.0 70.81 NaN NaN \n", + "893 HILLARY CLINTON, PRESIDENT 1969.0 867.0 52.77 NaN NaN \n", + "931 HILLARY CLINTON, PRESIDENT 2053.0 977.0 67.33 NaN NaN \n", + "969 HILLARY CLINTON, PRESIDENT 2137.0 1188.0 62.63 NaN NaN \n", + "1007 HILLARY CLINTON, PRESIDENT 2221.0 1195.0 62.76 NaN NaN \n", + "1045 HILLARY CLINTON, PRESIDENT 2305.0 706.0 67.69 NaN NaN \n", + "1083 HILLARY CLINTON, PRESIDENT 2389.0 641.0 62.84 NaN NaN \n", + "1121 HILLARY CLINTON, PRESIDENT 2473.0 325.0 58.56 NaN NaN \n", + "... ... ... ... ... ... ... \n", + "2364 HILLARY CLINTON, PRESIDENT 5192.0 97.0 27.25 NaN NaN \n", + "2403 HILLARY CLINTON, PRESIDENT 5277.0 38.0 23.75 NaN NaN \n", + "2442 HILLARY CLINTON, PRESIDENT 5362.0 1102.0 60.32 NaN NaN \n", + "2480 HILLARY CLINTON, PRESIDENT 5446.0 873.0 47.01 NaN NaN \n", + "2519 HILLARY CLINTON, PRESIDENT 5531.0 511.0 64.28 NaN NaN \n", + "2558 HILLARY CLINTON, PRESIDENT 5616.0 904.0 63.93 NaN NaN \n", + "2596 HILLARY CLINTON, PRESIDENT 5700.0 1015.0 62.73 NaN NaN \n", + "2635 HILLARY CLINTON, PRESIDENT 5785.0 130.0 26.21 NaN NaN \n", + "2674 HILLARY CLINTON, PRESIDENT 5870.0 228.0 28.79 NaN NaN \n", + "2713 HILLARY CLINTON, PRESIDENT 5955.0 406.0 33.55 NaN NaN \n", + "2752 HILLARY CLINTON, PRESIDENT 6040.0 242.0 24.87 NaN NaN \n", + "2790 HILLARY CLINTON, PRESIDENT 6124.0 47.0 23.50 NaN NaN \n", + "2828 HILLARY CLINTON, PRESIDENT 6208.0 32.0 35.16 NaN NaN \n", + "2866 HILLARY CLINTON, PRESIDENT 6292.0 89.0 23.92 NaN NaN \n", + "2904 HILLARY CLINTON, PRESIDENT 6376.0 146.0 25.89 NaN NaN \n", + "2943 HILLARY CLINTON, PRESIDENT 6461.0 66.0 23.57 NaN NaN \n", + "2982 HILLARY CLINTON, PRESIDENT 6546.0 349.0 36.93 NaN NaN \n", + "3021 HILLARY CLINTON, PRESIDENT 6631.0 229.0 30.95 NaN NaN \n", + "3060 HILLARY CLINTON, PRESIDENT 6716.0 130.0 29.35 NaN NaN \n", + "3099 HILLARY CLINTON, PRESIDENT 6801.0 76.0 17.31 NaN NaN \n", + "3138 HILLARY CLINTON, PRESIDENT 6886.0 126.0 17.03 NaN NaN \n", + "3177 HILLARY CLINTON, PRESIDENT 6971.0 224.0 26.29 NaN NaN \n", + "3216 HILLARY CLINTON, PRESIDENT 7056.0 514.0 30.83 NaN NaN \n", + "3255 HILLARY CLINTON, PRESIDENT 7141.0 97.0 23.43 NaN NaN \n", + "3294 HILLARY CLINTON, PRESIDENT 7226.0 250.0 27.47 NaN NaN \n", + "3333 HILLARY CLINTON, PRESIDENT 7311.0 343.0 37.40 NaN NaN \n", + "3372 HILLARY CLINTON, PRESIDENT 7396.0 642.0 64.46 NaN NaN \n", + "3411 HILLARY CLINTON, PRESIDENT 7481.0 628.0 57.67 NaN NaN \n", + "3450 HILLARY CLINTON, PRESIDENT 7566.0 394.0 39.44 NaN NaN \n", + "3489 HILLARY CLINTON, PRESIDENT 7651.0 396.0 55.54 NaN NaN \n", + "\n", + "[91 rows x 16 columns]" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_rhillary = df_results[(df_results['Contest'] == 'PRESIDENTIAL ELECTORS') & (df_results['Candidate'] == 'HILLARY CLINTON, PRESIDENT')]\n", + "df_rhillary" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PrecNoPctCnt
81.048.08
472.038.14
863.050.33
1254.039.47
1645.048.05
2036.032.53
2427.032.36
2818.027.39
3209.040.14
35910.035.65
39711.037.14
43512.034.54
47313.025.27
51214.025.23
55115.029.23
58916.077.95
62717.074.58
66518.068.24
70319.069.21
74120.068.87
77921.071.05
81722.063.76
85523.070.81
89324.052.77
93125.067.33
96926.062.63
100727.062.76
104528.067.69
108329.062.84
112130.058.56
.........
236462.027.25
240363.023.75
244264.060.32
248065.047.01
251966.064.28
255867.063.93
259668.062.73
263569.026.21
267470.028.79
271371.033.55
275272.024.87
279073.023.50
282874.035.16
286675.023.92
290476.025.89
294377.023.57
298278.036.93
302179.030.95
306080.029.35
309981.017.31
313882.017.03
317783.026.29
321684.030.83
325585.023.43
329486.027.47
333387.037.40
337288.064.46
341189.057.67
345090.039.44
348991.055.54
\n", + "

91 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " PrecNo PctCnt\n", + "8 1.0 48.08\n", + "47 2.0 38.14\n", + "86 3.0 50.33\n", + "125 4.0 39.47\n", + "164 5.0 48.05\n", + "203 6.0 32.53\n", + "242 7.0 32.36\n", + "281 8.0 27.39\n", + "320 9.0 40.14\n", + "359 10.0 35.65\n", + "397 11.0 37.14\n", + "435 12.0 34.54\n", + "473 13.0 25.27\n", + "512 14.0 25.23\n", + "551 15.0 29.23\n", + "589 16.0 77.95\n", + "627 17.0 74.58\n", + "665 18.0 68.24\n", + "703 19.0 69.21\n", + "741 20.0 68.87\n", + "779 21.0 71.05\n", + "817 22.0 63.76\n", + "855 23.0 70.81\n", + "893 24.0 52.77\n", + "931 25.0 67.33\n", + "969 26.0 62.63\n", + "1007 27.0 62.76\n", + "1045 28.0 67.69\n", + "1083 29.0 62.84\n", + "1121 30.0 58.56\n", + "... ... ...\n", + "2364 62.0 27.25\n", + "2403 63.0 23.75\n", + "2442 64.0 60.32\n", + "2480 65.0 47.01\n", + "2519 66.0 64.28\n", + "2558 67.0 63.93\n", + "2596 68.0 62.73\n", + "2635 69.0 26.21\n", + "2674 70.0 28.79\n", + "2713 71.0 33.55\n", + "2752 72.0 24.87\n", + "2790 73.0 23.50\n", + "2828 74.0 35.16\n", + "2866 75.0 23.92\n", + "2904 76.0 25.89\n", + "2943 77.0 23.57\n", + "2982 78.0 36.93\n", + "3021 79.0 30.95\n", + "3060 80.0 29.35\n", + "3099 81.0 17.31\n", + "3138 82.0 17.03\n", + "3177 83.0 26.29\n", + "3216 84.0 30.83\n", + "3255 85.0 23.43\n", + "3294 86.0 27.47\n", + "3333 87.0 37.40\n", + "3372 88.0 64.46\n", + "3411 89.0 57.67\n", + "3450 90.0 39.44\n", + "3489 91.0 55.54\n", + "\n", + "[91 rows x 2 columns]" + ] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_plothillary = df_rhillary[['PrecNo','PctCnt']]\n", + "df_plothillary" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "df_hillary = df_precinct_locations.merge(df_plothillary, left_on ='Precinct', right_on ='PrecNo')" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(df_hillary['X'],df_hillary['Y'], s=df_hillary['PctCnt']**1.3, color = ['B'])\n", + "plt.ylabel('Lat')\n", + "plt.xlabel('Lon')\n", + "plt.title('Precincts by percentage of votes for Hillary')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
CountyElecYearElectionElecDatePrecNoPrecNamePartyContestDescrVoteForCandidatePosnCountPctCntTotalPctTot
9CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20161.001 BELLEFONTE NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT27.0174.044.50NaNNaN
48CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20162.002 BELLEFONTE NORTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT112.0385.056.70NaNNaN
87CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20163.003 BELLEFONTE SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT197.0193.042.23NaNNaN
126CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20164.004 BELLEFONTE SOUTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT282.0375.052.30NaNNaN
165CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20165.005 BELLEFONTE WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT367.0398.043.17NaNNaN
204CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20166.006 CENTRE HALLREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT452.0443.062.66NaNNaN
243CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20167.007 HOWARD BOROREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT537.0228.060.48NaNNaN
282CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20168.008 MILESBURGREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT622.0352.067.43NaNNaN
321CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 20169.009 MILLHEIMREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT707.0233.055.34NaNNaN
360CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201610.010 PHILIPSBURG 1ST WARDREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT792.0265.059.42NaNNaN
398CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201611.011 PHILIPSBURG 2ND WARDREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT876.0231.060.00NaNNaN
436CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201612.012 PHILIPSBURG 3RD WARDREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT960.0212.059.05NaNNaN
474CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201613.013 PORT MATILDAREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1044.0195.070.40NaNNaN
513CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201614.014 SNOW SHOE BOROREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1129.0236.071.73NaNNaN
552CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201615.015 RUSH NORTH CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1214.0123.063.08NaNNaN
590CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201616.016 SC NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1298.0102.016.06NaNNaN
628CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201617.017 SC NORTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1382.0105.019.63NaNNaN
666CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201618.018 SC NORTHWESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1466.0336.024.71NaNNaN
704CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201619.019 SC SOUTH 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1550.0284.022.14NaNNaN
742CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201620.020 SC SOUTH 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1634.0280.026.10NaNNaN
780CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201621.021 SC SOUTHEASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1718.0188.021.86NaNNaN
818CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201622.022 SC SOUTH CENTRAL 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1802.0122.024.16NaNNaN
856CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201623.023 SC SOUTH CENTRAL 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1886.0157.022.69NaNNaN
894CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201624.024 SC EAST 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT1970.0670.040.78NaNNaN
932CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201625.025 SC EAST 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2054.0387.026.67NaNNaN
970CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201626.026 SC EAST 3REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2138.0600.031.63NaNNaN
1008CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201627.027 SC EAST 4REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2222.0580.030.46NaNNaN
1046CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201628.028 SC EAST CENTRAL 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2306.0261.025.02NaNNaN
1084CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201629.029 SC EAST CENTRAL 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2390.0314.030.78NaNNaN
1122CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201630.030 SC EAST CENTRAL 3REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT2474.0196.035.32NaNNaN
...................................................
2365CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201662.062 MILES EASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5193.0241.067.70NaNNaN
2404CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201663.063 MILES WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5278.0108.067.50NaNNaN
2443CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201664.064 PATTON NORTH 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5363.0613.033.55NaNNaN
2481CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201665.065 PATTON NORTH 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5447.0826.044.48NaNNaN
2520CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201666.066 PATTON SOUTH 1REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5532.0227.028.55NaNNaN
2559CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201667.067 PATTON SOUTH 2REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5617.0378.026.73NaNNaN
2597CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201668.068 PATTON SOUTH 3REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5701.0485.029.98NaNNaN
2636CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201669.069 PENNREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5786.0335.067.54NaNNaN
2675CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201670.070 POTTER NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5871.0516.065.15NaNNaN
2714CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201671.071 POTTER SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT5956.0727.060.08NaNNaN
2753CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201672.072 RUSH NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6041.0685.070.40NaNNaN
2791CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201673.073 RUSH SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6125.0137.068.50NaNNaN
2829CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201674.074 RUSH EASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6209.058.063.74NaNNaN
2867CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201675.075 RUSH WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6293.0275.073.92NaNNaN
2905CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201676.076 SNOW SHOE EASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6377.0397.070.39NaNNaN
2944CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201677.077 SNOW SHOE WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6462.0207.073.93NaNNaN
2983CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201678.078 SPRING NORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6547.0539.057.04NaNNaN
3022CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201679.079 SPRING SOUTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6632.0440.059.46NaNNaN
3061CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201680.080 SPRING WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6717.0286.064.56NaNNaN
3100CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201681.081 TAYLORREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6802.0347.079.04NaNNaN
3139CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201682.082 UNIONREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6887.0587.079.32NaNNaN
3178CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201683.083 WALKER EASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT6972.0592.069.48NaNNaN
3217CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201684.084 WALKER WESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7057.01083.064.97NaNNaN
3256CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201685.085 WORTHREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7142.0304.073.43NaNNaN
3295CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201686.086 SPRING EASTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7227.0596.065.49NaNNaN
3334CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201687.087 SPRING SOUTHWESTREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7312.0509.055.51NaNNaN
3373CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201688.088 FERGUSON NORTH 3REPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7397.0292.029.32NaNNaN
3412CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201689.089 FERGUSON WEST CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7482.0391.035.90NaNNaN
3451CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201690.090 HALFMOON EAST CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7567.0536.053.65NaNNaN
3490CENTRE COUNTY, PENNSYLVANIA2016.0GENERAL ELECTIONNOVEMBER 8 201691.091 FERGUSON NORTH CENTRALREPUBLICANPRESIDENTIAL ELECTORSNaNVOTE FOR NOT MORE THAN 1DONALD J TRUMP, PRESIDENT7652.0281.039.41NaNNaN
\n", + "

91 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " County ElecYear Election \\\n", + "9 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "48 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "87 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "126 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "165 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "204 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "243 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "282 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "321 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "360 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "398 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "436 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "474 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "513 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "552 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "590 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "628 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "666 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "704 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "742 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "780 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "818 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "856 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "894 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "932 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "970 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1008 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1046 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1084 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "1122 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "... ... ... ... \n", + "2365 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2404 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2443 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2481 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2520 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2559 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2597 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2636 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2675 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2714 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2753 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2791 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2829 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2867 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2905 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2944 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "2983 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3022 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3061 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3100 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3139 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3178 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3217 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3256 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3295 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3334 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3373 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3412 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3451 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "3490 CENTRE COUNTY, PENNSYLVANIA 2016.0 GENERAL ELECTION \n", + "\n", + " ElecDate PrecNo PrecName Party \\\n", + "9 NOVEMBER 8 2016 1.0 01 BELLEFONTE NORTH REPUBLICAN \n", + "48 NOVEMBER 8 2016 2.0 02 BELLEFONTE NORTHEAST REPUBLICAN \n", + "87 NOVEMBER 8 2016 3.0 03 BELLEFONTE SOUTH REPUBLICAN \n", + "126 NOVEMBER 8 2016 4.0 04 BELLEFONTE SOUTHEAST REPUBLICAN \n", + "165 NOVEMBER 8 2016 5.0 05 BELLEFONTE WEST REPUBLICAN \n", + "204 NOVEMBER 8 2016 6.0 06 CENTRE HALL REPUBLICAN \n", + "243 NOVEMBER 8 2016 7.0 07 HOWARD BORO REPUBLICAN \n", + "282 NOVEMBER 8 2016 8.0 08 MILESBURG REPUBLICAN \n", + "321 NOVEMBER 8 2016 9.0 09 MILLHEIM REPUBLICAN \n", + "360 NOVEMBER 8 2016 10.0 10 PHILIPSBURG 1ST WARD REPUBLICAN \n", + "398 NOVEMBER 8 2016 11.0 11 PHILIPSBURG 2ND WARD REPUBLICAN \n", + "436 NOVEMBER 8 2016 12.0 12 PHILIPSBURG 3RD WARD REPUBLICAN \n", + "474 NOVEMBER 8 2016 13.0 13 PORT MATILDA REPUBLICAN \n", + "513 NOVEMBER 8 2016 14.0 14 SNOW SHOE BORO REPUBLICAN \n", + "552 NOVEMBER 8 2016 15.0 15 RUSH NORTH CENTRAL REPUBLICAN \n", + "590 NOVEMBER 8 2016 16.0 16 SC NORTH REPUBLICAN \n", + "628 NOVEMBER 8 2016 17.0 17 SC NORTHEAST REPUBLICAN \n", + "666 NOVEMBER 8 2016 18.0 18 SC NORTHWEST REPUBLICAN \n", + "704 NOVEMBER 8 2016 19.0 19 SC SOUTH 1 REPUBLICAN \n", + "742 NOVEMBER 8 2016 20.0 20 SC SOUTH 2 REPUBLICAN \n", + "780 NOVEMBER 8 2016 21.0 21 SC SOUTHEAST REPUBLICAN \n", + "818 NOVEMBER 8 2016 22.0 22 SC SOUTH CENTRAL 1 REPUBLICAN \n", + "856 NOVEMBER 8 2016 23.0 23 SC SOUTH CENTRAL 2 REPUBLICAN \n", + "894 NOVEMBER 8 2016 24.0 24 SC EAST 1 REPUBLICAN \n", + "932 NOVEMBER 8 2016 25.0 25 SC EAST 2 REPUBLICAN \n", + "970 NOVEMBER 8 2016 26.0 26 SC EAST 3 REPUBLICAN \n", + "1008 NOVEMBER 8 2016 27.0 27 SC EAST 4 REPUBLICAN \n", + "1046 NOVEMBER 8 2016 28.0 28 SC EAST CENTRAL 1 REPUBLICAN \n", + "1084 NOVEMBER 8 2016 29.0 29 SC EAST CENTRAL 2 REPUBLICAN \n", + "1122 NOVEMBER 8 2016 30.0 30 SC EAST CENTRAL 3 REPUBLICAN \n", + "... ... ... ... ... \n", + "2365 NOVEMBER 8 2016 62.0 62 MILES EAST REPUBLICAN \n", + "2404 NOVEMBER 8 2016 63.0 63 MILES WEST REPUBLICAN \n", + "2443 NOVEMBER 8 2016 64.0 64 PATTON NORTH 1 REPUBLICAN \n", + "2481 NOVEMBER 8 2016 65.0 65 PATTON NORTH 2 REPUBLICAN \n", + "2520 NOVEMBER 8 2016 66.0 66 PATTON SOUTH 1 REPUBLICAN \n", + "2559 NOVEMBER 8 2016 67.0 67 PATTON SOUTH 2 REPUBLICAN \n", + "2597 NOVEMBER 8 2016 68.0 68 PATTON SOUTH 3 REPUBLICAN \n", + "2636 NOVEMBER 8 2016 69.0 69 PENN REPUBLICAN \n", + "2675 NOVEMBER 8 2016 70.0 70 POTTER NORTH REPUBLICAN \n", + "2714 NOVEMBER 8 2016 71.0 71 POTTER SOUTH REPUBLICAN \n", + "2753 NOVEMBER 8 2016 72.0 72 RUSH NORTH REPUBLICAN \n", + "2791 NOVEMBER 8 2016 73.0 73 RUSH SOUTH REPUBLICAN \n", + "2829 NOVEMBER 8 2016 74.0 74 RUSH EAST REPUBLICAN \n", + "2867 NOVEMBER 8 2016 75.0 75 RUSH WEST REPUBLICAN \n", + "2905 NOVEMBER 8 2016 76.0 76 SNOW SHOE EAST REPUBLICAN \n", + "2944 NOVEMBER 8 2016 77.0 77 SNOW SHOE WEST REPUBLICAN \n", + "2983 NOVEMBER 8 2016 78.0 78 SPRING NORTH REPUBLICAN \n", + "3022 NOVEMBER 8 2016 79.0 79 SPRING SOUTH REPUBLICAN \n", + "3061 NOVEMBER 8 2016 80.0 80 SPRING WEST REPUBLICAN \n", + "3100 NOVEMBER 8 2016 81.0 81 TAYLOR REPUBLICAN \n", + "3139 NOVEMBER 8 2016 82.0 82 UNION REPUBLICAN \n", + "3178 NOVEMBER 8 2016 83.0 83 WALKER EAST REPUBLICAN \n", + "3217 NOVEMBER 8 2016 84.0 84 WALKER WEST REPUBLICAN \n", + "3256 NOVEMBER 8 2016 85.0 85 WORTH REPUBLICAN \n", + "3295 NOVEMBER 8 2016 86.0 86 SPRING EAST REPUBLICAN \n", + "3334 NOVEMBER 8 2016 87.0 87 SPRING SOUTHWEST REPUBLICAN \n", + "3373 NOVEMBER 8 2016 88.0 88 FERGUSON NORTH 3 REPUBLICAN \n", + "3412 NOVEMBER 8 2016 89.0 89 FERGUSON WEST CENTRAL REPUBLICAN \n", + "3451 NOVEMBER 8 2016 90.0 90 HALFMOON EAST CENTRAL REPUBLICAN \n", + "3490 NOVEMBER 8 2016 91.0 91 FERGUSON NORTH CENTRAL REPUBLICAN \n", + "\n", + " Contest Descr VoteFor \\\n", + "9 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "48 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "87 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "126 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "165 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "204 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "243 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "282 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "321 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "360 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "398 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "436 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "474 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "513 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "552 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "590 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "628 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "666 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "704 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "742 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "780 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "818 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "856 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "894 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "932 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "970 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1008 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1046 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1084 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "1122 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "... ... ... ... \n", + "2365 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2404 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2443 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2481 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2520 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2559 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2597 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2636 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2675 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2714 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2753 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2791 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2829 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2867 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2905 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2944 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "2983 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3022 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3061 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3100 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3139 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3178 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3217 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3256 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3295 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3334 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3373 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3412 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3451 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "3490 PRESIDENTIAL ELECTORS NaN VOTE FOR NOT MORE THAN 1 \n", + "\n", + " Candidate Posn Count PctCnt Total PctTot \n", + "9 DONALD J TRUMP, PRESIDENT 27.0 174.0 44.50 NaN NaN \n", + "48 DONALD J TRUMP, PRESIDENT 112.0 385.0 56.70 NaN NaN \n", + "87 DONALD J TRUMP, PRESIDENT 197.0 193.0 42.23 NaN NaN \n", + "126 DONALD J TRUMP, PRESIDENT 282.0 375.0 52.30 NaN NaN \n", + "165 DONALD J TRUMP, PRESIDENT 367.0 398.0 43.17 NaN NaN \n", + "204 DONALD J TRUMP, PRESIDENT 452.0 443.0 62.66 NaN NaN \n", + "243 DONALD J TRUMP, PRESIDENT 537.0 228.0 60.48 NaN NaN \n", + "282 DONALD J TRUMP, PRESIDENT 622.0 352.0 67.43 NaN NaN \n", + "321 DONALD J TRUMP, PRESIDENT 707.0 233.0 55.34 NaN NaN \n", + "360 DONALD J TRUMP, PRESIDENT 792.0 265.0 59.42 NaN NaN \n", + "398 DONALD J TRUMP, PRESIDENT 876.0 231.0 60.00 NaN NaN \n", + "436 DONALD J TRUMP, PRESIDENT 960.0 212.0 59.05 NaN NaN \n", + "474 DONALD J TRUMP, PRESIDENT 1044.0 195.0 70.40 NaN NaN \n", + "513 DONALD J TRUMP, PRESIDENT 1129.0 236.0 71.73 NaN NaN \n", + "552 DONALD J TRUMP, PRESIDENT 1214.0 123.0 63.08 NaN NaN \n", + "590 DONALD J TRUMP, PRESIDENT 1298.0 102.0 16.06 NaN NaN \n", + "628 DONALD J TRUMP, PRESIDENT 1382.0 105.0 19.63 NaN NaN \n", + "666 DONALD J TRUMP, PRESIDENT 1466.0 336.0 24.71 NaN NaN \n", + "704 DONALD J TRUMP, PRESIDENT 1550.0 284.0 22.14 NaN NaN \n", + "742 DONALD J TRUMP, PRESIDENT 1634.0 280.0 26.10 NaN NaN \n", + "780 DONALD J TRUMP, PRESIDENT 1718.0 188.0 21.86 NaN NaN \n", + "818 DONALD J TRUMP, PRESIDENT 1802.0 122.0 24.16 NaN NaN \n", + "856 DONALD J TRUMP, PRESIDENT 1886.0 157.0 22.69 NaN NaN \n", + "894 DONALD J TRUMP, PRESIDENT 1970.0 670.0 40.78 NaN NaN \n", + "932 DONALD J TRUMP, PRESIDENT 2054.0 387.0 26.67 NaN NaN \n", + "970 DONALD J TRUMP, PRESIDENT 2138.0 600.0 31.63 NaN NaN \n", + "1008 DONALD J TRUMP, PRESIDENT 2222.0 580.0 30.46 NaN NaN \n", + "1046 DONALD J TRUMP, PRESIDENT 2306.0 261.0 25.02 NaN NaN \n", + "1084 DONALD J TRUMP, PRESIDENT 2390.0 314.0 30.78 NaN NaN \n", + "1122 DONALD J TRUMP, PRESIDENT 2474.0 196.0 35.32 NaN NaN \n", + "... ... ... ... ... ... ... \n", + "2365 DONALD J TRUMP, PRESIDENT 5193.0 241.0 67.70 NaN NaN \n", + "2404 DONALD J TRUMP, PRESIDENT 5278.0 108.0 67.50 NaN NaN \n", + "2443 DONALD J TRUMP, PRESIDENT 5363.0 613.0 33.55 NaN NaN \n", + "2481 DONALD J TRUMP, PRESIDENT 5447.0 826.0 44.48 NaN NaN \n", + "2520 DONALD J TRUMP, PRESIDENT 5532.0 227.0 28.55 NaN NaN \n", + "2559 DONALD J TRUMP, PRESIDENT 5617.0 378.0 26.73 NaN NaN \n", + "2597 DONALD J TRUMP, PRESIDENT 5701.0 485.0 29.98 NaN NaN \n", + "2636 DONALD J TRUMP, PRESIDENT 5786.0 335.0 67.54 NaN NaN \n", + "2675 DONALD J TRUMP, PRESIDENT 5871.0 516.0 65.15 NaN NaN \n", + "2714 DONALD J TRUMP, PRESIDENT 5956.0 727.0 60.08 NaN NaN \n", + "2753 DONALD J TRUMP, PRESIDENT 6041.0 685.0 70.40 NaN NaN \n", + "2791 DONALD J TRUMP, PRESIDENT 6125.0 137.0 68.50 NaN NaN \n", + "2829 DONALD J TRUMP, PRESIDENT 6209.0 58.0 63.74 NaN NaN \n", + "2867 DONALD J TRUMP, PRESIDENT 6293.0 275.0 73.92 NaN NaN \n", + "2905 DONALD J TRUMP, PRESIDENT 6377.0 397.0 70.39 NaN NaN \n", + "2944 DONALD J TRUMP, PRESIDENT 6462.0 207.0 73.93 NaN NaN \n", + "2983 DONALD J TRUMP, PRESIDENT 6547.0 539.0 57.04 NaN NaN \n", + "3022 DONALD J TRUMP, PRESIDENT 6632.0 440.0 59.46 NaN NaN \n", + "3061 DONALD J TRUMP, PRESIDENT 6717.0 286.0 64.56 NaN NaN \n", + "3100 DONALD J TRUMP, PRESIDENT 6802.0 347.0 79.04 NaN NaN \n", + "3139 DONALD J TRUMP, PRESIDENT 6887.0 587.0 79.32 NaN NaN \n", + "3178 DONALD J TRUMP, PRESIDENT 6972.0 592.0 69.48 NaN NaN \n", + "3217 DONALD J TRUMP, PRESIDENT 7057.0 1083.0 64.97 NaN NaN \n", + "3256 DONALD J TRUMP, PRESIDENT 7142.0 304.0 73.43 NaN NaN \n", + "3295 DONALD J TRUMP, PRESIDENT 7227.0 596.0 65.49 NaN NaN \n", + "3334 DONALD J TRUMP, PRESIDENT 7312.0 509.0 55.51 NaN NaN \n", + "3373 DONALD J TRUMP, PRESIDENT 7397.0 292.0 29.32 NaN NaN \n", + "3412 DONALD J TRUMP, PRESIDENT 7482.0 391.0 35.90 NaN NaN \n", + "3451 DONALD J TRUMP, PRESIDENT 7567.0 536.0 53.65 NaN NaN \n", + "3490 DONALD J TRUMP, PRESIDENT 7652.0 281.0 39.41 NaN NaN \n", + "\n", + "[91 rows x 16 columns]" + ] + }, + "execution_count": 125, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_rtrump = df_results[(df_results['Contest'] == 'PRESIDENTIAL ELECTORS') & (df_results['Candidate'] == 'DONALD J TRUMP, PRESIDENT')]\n", + "df_rtrump" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PrecNoPctCnt
91.044.50
482.056.70
873.042.23
1264.052.30
1655.043.17
2046.062.66
2437.060.48
2828.067.43
3219.055.34
36010.059.42
39811.060.00
43612.059.05
47413.070.40
51314.071.73
55215.063.08
59016.016.06
62817.019.63
66618.024.71
70419.022.14
74220.026.10
78021.021.86
81822.024.16
85623.022.69
89424.040.78
93225.026.67
97026.031.63
100827.030.46
104628.025.02
108429.030.78
112230.035.32
.........
236562.067.70
240463.067.50
244364.033.55
248165.044.48
252066.028.55
255967.026.73
259768.029.98
263669.067.54
267570.065.15
271471.060.08
275372.070.40
279173.068.50
282974.063.74
286775.073.92
290576.070.39
294477.073.93
298378.057.04
302279.059.46
306180.064.56
310081.079.04
313982.079.32
317883.069.48
321784.064.97
325685.073.43
329586.065.49
333487.055.51
337388.029.32
341289.035.90
345190.053.65
349091.039.41
\n", + "

91 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " PrecNo PctCnt\n", + "9 1.0 44.50\n", + "48 2.0 56.70\n", + "87 3.0 42.23\n", + "126 4.0 52.30\n", + "165 5.0 43.17\n", + "204 6.0 62.66\n", + "243 7.0 60.48\n", + "282 8.0 67.43\n", + "321 9.0 55.34\n", + "360 10.0 59.42\n", + "398 11.0 60.00\n", + "436 12.0 59.05\n", + "474 13.0 70.40\n", + "513 14.0 71.73\n", + "552 15.0 63.08\n", + "590 16.0 16.06\n", + "628 17.0 19.63\n", + "666 18.0 24.71\n", + "704 19.0 22.14\n", + "742 20.0 26.10\n", + "780 21.0 21.86\n", + "818 22.0 24.16\n", + "856 23.0 22.69\n", + "894 24.0 40.78\n", + "932 25.0 26.67\n", + "970 26.0 31.63\n", + "1008 27.0 30.46\n", + "1046 28.0 25.02\n", + "1084 29.0 30.78\n", + "1122 30.0 35.32\n", + "... ... ...\n", + "2365 62.0 67.70\n", + "2404 63.0 67.50\n", + "2443 64.0 33.55\n", + "2481 65.0 44.48\n", + "2520 66.0 28.55\n", + "2559 67.0 26.73\n", + "2597 68.0 29.98\n", + "2636 69.0 67.54\n", + "2675 70.0 65.15\n", + "2714 71.0 60.08\n", + "2753 72.0 70.40\n", + "2791 73.0 68.50\n", + "2829 74.0 63.74\n", + "2867 75.0 73.92\n", + "2905 76.0 70.39\n", + "2944 77.0 73.93\n", + "2983 78.0 57.04\n", + "3022 79.0 59.46\n", + "3061 80.0 64.56\n", + "3100 81.0 79.04\n", + "3139 82.0 79.32\n", + "3178 83.0 69.48\n", + "3217 84.0 64.97\n", + "3256 85.0 73.43\n", + "3295 86.0 65.49\n", + "3334 87.0 55.51\n", + "3373 88.0 29.32\n", + "3412 89.0 35.90\n", + "3451 90.0 53.65\n", + "3490 91.0 39.41\n", + "\n", + "[91 rows x 2 columns]" + ] + }, + "execution_count": 126, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_plottrump = df_rtrump[['PrecNo','PctCnt']]\n", + "df_plottrump" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "df_trump = df_precinct_locations.merge(df_plottrump, left_on ='Precinct', right_on ='PrecNo')" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nZ0leSY8eqZM1QlYWcMghyTnW4MFyrO++k2q4sQgGgUceqf3e0qWiKLZvr32X//ffcic/cKAouUDA\nO9mt9E0nMl+DSlFcRn0YDZGiIhnMFiyQHhi77ioK4pxzmnbWbVmZJNN9/LEoz4gPJRiUa/TJJ7XN\nUcuXy2xn+/b4jmSfT8rHzJyZeHZnl/feAy66yLwPY9o0LSWuuIYVH4YqDCU9qKqSBLV168Ss1r27\n9Fi3kyC2fDkwcaKUDy8oEL/JwIE772voUCkJkyibPi9PIrrOO8+6LGaorJSS4lu3Jl63Wzc5L02c\nU1xCFYbScNi2TcxEEyaILyEclsEwHJYy6uPGiT/B7bv7deskoMBsJd+ePWuH47rNjBlSbSCeOQ0Q\nxTVnjjc+IKXJolFSSsNg+XIxEd1/vyiOwkLJNSgqEv/MX39JV7rjjqt/ILXD559bU0JLl3pbk2vg\nQDGltWwpkWXRBIPSY+Orr1RZKClFnd5Kati2DejXD1i7tn6TUCgkjuzTTpMaS26ZYgoLrZWOz8kB\nduyQAd0rBg6UyLKpUyWUessWMVWNHCl1nNQMpaQYVRhKanjsMbljN1ONt6xMcjdmz5awWDfYdVfJ\noDdrkqqokG28JjNTTFMnneT9sRTFImqSUpJPVZU0GCorM79NKCQhxW4xeLC1GUbPnsmp+qsoaYwq\nDCX5zJkTv/x4PJglCbC42B0ZWraUcuhm/Bh5eeJ8V5QmjioMJfmsW2dvu+xsdx3PTzwhZqbMzPjr\n+P3SL+X00907rqI0UFRhKMnHbogss/3KvbFo2xaYO1fqR+Xl1XYq5+RI0t7w4VKx1m4LWkVpRKjT\nW0k+3bvbaz3rRVmMTp2k5/m338qM4/ffRVn07y/tdzt3dvd4itKAUYWhJJ9evYD27WVwNktWloSX\nutU/Ixoi4IgjZFEUJS46z1aSDxFw001iBjJLdjZw7bXeyaQoSkJUYSipYeRIKaBnps9HIADcfHPy\ne3soilILVRhKasjMlB4ZAwfu7HCOkJ0tCuWmm4Dbbku+jIqi1EIVhpI6fD5RGp99JpVjc3JkNuH3\ny+OoUcDPPwP//KeWxVCUNECd3kpqIZKaUv36SYHBzZvFwd2ypbshtIqiOMbzGQYRZRLRz0T0ifG6\nORFNJ6JlxuNOBXqIaC8imh+1FBLRdV7LqqQYvx/o2FHyI1RZKErakQyT1LUAFke9vgnADGbeE8AM\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(df_trump['X'],df_trump['Y'], s=df_trump['PctCnt']**1.3, color = ['R'])\n", + "plt.ylabel('Lat')\n", + "plt.xlabel('Lon')\n", + "plt.title('Precincts by percentage of votes for Trump')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}