{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "a3964b3c-2c13-4d44-852f-b5709b6a658b"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Food Safety Analysis\n",
"\n",
"Written by Joseph E. Goznalez\n",
"\n",
"jegonzal@cs.berkeley.edu"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "fe6d7f26-f09e-4a27-8512-f7bb59e41175"
},
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"This analysis is inspired by Jonathan Dinu's excellent post:\n",
"https://github.com/hopelessoptimism/happy-healthy-hungry/blob/master/h3.ipynb"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "977eea0f-b0dc-4ba5-a3b2-2772d1013f4c"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Motivation"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "fb2afa98-2aeb-4167-a8ed-aec102fbc003"
},
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"Have you ever seen one of these signs?\n",
"\n",
"\n",
"\n",
"* Have you ever wondered what it means? \n",
"\n",
"* Is this a safe place to eat?\n",
"\n",
"* What does a score of 90 mean?\n",
"\n",
"In this lecture we will explore food safety ratings for San Francisco to get a better picture of what these ratings mean. \n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "1821de5f-51b4-4dbc-8383-3b1fde1ed042"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Thinking about Questions\n",
"\n",
"Before we start, let's spend a few minutes thinking about the questions that we want to answer."
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "01898a99-984d-430e-a0fd-81f01c2c63ac"
},
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"1. What is a good restaurant score for food safety inspections?\n",
"\n",
"1. What are common issues with restaurants that could be better addressed? \n",
"\n",
"1. Are there regions of the city sub-par?\n",
"\n",
"1. Is the situation getting worse or better?\n",
"\n",
"What are some other questions that we might want to answer?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "8efba58b-eb19-4208-9e24-7ae533666cf7"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Where can we get data?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "77813bae-db5d-4e43-8283-632fa58ba34a"
},
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"Description of inspection data for SF:\n",
"\n",
"https://www.sfdph.org/dph/EH/Food/Score/\n",
"\n",
"#### Data Links from Yelp LIVES program:\n",
"1. Yelp LIVES site: https://www.yelp.com/healthscores\n",
"1. Data description: https://www.yelp.com/healthscores#businesses\n",
"1. Downloading data from various locations: https://www.yelp.com/healthscores/feeds\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "1e5ed851-ba49-4607-bc33-5e1e2ee187b0"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Getting the data\n",
"\n",
"I downloaded several feeds and stored them in the local data folder.\n",
"Lets first see what files we downloaded `data/san_francisco`"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "94872fa3-8d42-42cc-96f8-f6763d2b20b4"
},
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"total 9904\r\n",
"-rwxr-xr-x 1 jegonzal staff 645K Jan 1 20:50 \u001b[31mbusinesses.csv\u001b[m\u001b[m*\r\n",
"-rwxr-xr-x 1 jegonzal staff 493K Jan 1 20:50 \u001b[31minspections.csv\u001b[m\u001b[m*\r\n",
"-rwxr-xr-x 1 jegonzal staff 120B Jan 1 20:50 \u001b[31mlegend.csv\u001b[m\u001b[m*\r\n",
"-rwxr-xr-x 1 jegonzal staff 3.7M Jan 1 20:50 \u001b[31mviolations.csv\u001b[m\u001b[m*\r\n"
]
}
],
"source": [
"ls -lh data/san_francisco/"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "bc1db0b7-42c4-4887-aa7c-98a5b36f6b77"
},
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"There is data for other cities as well but we will focus on San Francisco for today."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Questions\n",
"\n",
"1. How big is the data?\n",
"2. File types? "
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "933953a8-7f1a-4afc-a484-28d5400f55d5"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Looking at the data"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "8ab1aa8c-aab5-426b-ae0e-6c2540051d1f"
},
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"Data scientists will often use many tools to better understand the data. "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"The first set of tools we might use are command line utilities:\n",
"* **`head -n 5`**: read the first 5 lines of a file\n",
"* **`wc`**: Compute the number of lines (records) in a file. "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"We can use these command line utilities from within the python notebook. This is done by prefixing each command with the \"bang\" operator `!`"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "53586e3b-6724-4f06-b777-0d2cd2eece35"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Using `Head`"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"Using head gives us a better picture of the contents of the `businesses.csv` file:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "e11909d7-4dbc-47f6-abe1-2d4284efceff"
},
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\"business_id\",\"name\",\"address\",\"city\",\"state\",\"postal_code\",\"latitude\",\"longitude\",\"phone_number\"\r",
"\r\n",
"10,\"TIRAMISU KITCHEN\",\"033 BELDEN PL\",\"San Francisco\",\"CA\",\"94104\",\"37.791116\",\"-122.403816\",\"+14154217044\"\r",
"\r\n",
"19,\"NRGIZE LIFESTYLE CAFE\",\"1200 VAN NESS AVE, 3RD FLOOR\",\"San Francisco\",\"CA\",\"94109\",\"37.786848\",\"-122.421547\",\"+14157763262\"\r",
"\r\n",
"24,\"OMNI S.F. HOTEL - 2ND FLOOR PANTRY\",\"500 CALIFORNIA ST, 2ND FLOOR\",\"San Francisco\",\"CA\",\"94104\",\"37.792888\",\"-122.403135\",\"+14156779494\"\r",
"\r\n",
"31,\"NORMAN'S ICE CREAM AND FREEZES\",\"2801 LEAVENWORTH ST \",\"San Francisco\",\"CA\",\"94133\",\"37.807155\",\"-122.419004\",\"\"\r",
"\r\n",
"45,\"CHARLIE'S DELI CAFE\",\"3202 FOLSOM ST \",\"San Francisco\",\"CA\",\"94110\",\"37.747114\",\"-122.413641\",\"+14156415051\"\r",
"\r\n",
"48,\"ART'S CAFE\",\"747 IRVING ST \",\"San Francisco\",\"CA\",\"94122\",\"37.764013\",\"-122.465749\",\"+14156657440\"\r",
"\r\n",
"50,\"SUSHI ZONE\",\"1815 MARKET ST. \",\"San Francisco\",\"CA\",\"94103\",\"37.771437\",\"-122.423892\",\"+14156211114\"\r",
"\r\n",
"54,\"RHODA GOLDMAN PLAZA\",\"2180 POST ST \",\"San Francisco\",\"CA\",\"94115\",\"37.784626\",\"-122.437734\",\"+14153455060\"\r",
"\r\n",
"56,\"CAFE X + O\",\"1799 CHURCH ST \",\"San Francisco\",\"CA\",\"94131\",\"37.742325\",\"-122.426476\",\"+14158263535\"\r",
"\r\n"
]
}
],
"source": [
"! head data/san_francisco/businesses.csv"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "c884e9b9-2166-4b21-ba04-25979572b610"
},
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\"business_id\",\"score\",\"date\",\"type\"\r",
"\r\n",
"10,\"82\",\"20160503\",\"routine\"\r",
"\r\n",
"10,\"94\",\"20140729\",\"routine\"\r",
"\r\n"
]
}
],
"source": [
"!head -n 3 ./data/san_francisco/inspections.csv"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "a4f6a86d-e844-46d6-b8d3-13539b1ed808"
},
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\"business_id\",\"date\",\"description\"\r",
"\r\n",
"10,\"20160503\",\"High risk food holding temperature [ date violation corrected: 5/3/2016 ]\"\r",
"\r\n",
"10,\"20160503\",\"High risk food holding temperature [ date violation corrected: 5/3/2016 ]\"\r",
"\r\n"
]
}
],
"source": [
"!head -n 3 ./data/san_francisco/violations.csv"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Use `cat` to read the entire file"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "bb4e9428-2b38-4c40-aaa5-9cdd746496dc"
},
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\"Minimum_Score\",\"Maximum_Score\",\"Description\"\r",
"\r\n",
"0,70,\"Poor\"\r",
"\r\n",
"71,85,\"Needs Improvement\"\r",
"\r\n",
"86,90,\"Adequate\"\r",
"\r\n",
"91,100,\"Good\"\r",
"\r\n"
]
}
],
"source": [
"!cat ./data/san_francisco/legend.csv"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The legend indicates what ranges of scores mean. For example, this suggests that **poor** quality restaurants will have scores at or below 70. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# What is Jupyter\n",
"\n",
"Environment for describing analysis and doing analysis"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "85266baa-f792-45a3-8f3c-39b4d6cd9f64"
},
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"# Use `man` to learn\n",
"\n",
"To learn more about these commands try:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "98551695-b643-42c0-a773-5c6392653537"
},
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"man cat"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true,
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"# man cat"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "a6c3877c-441d-4d26-9c3b-f2e82f5c9a44"
},
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"press `esc` to clear the pane."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## What have we learned so far?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "b42e4949-42d6-4a10-ac94-929b6e695054"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"1. The first line of the file defines the header of the table.\n",
"1. These files consist of comma separated values (CSV).\n",
"1. All the fields appear to be quoted (this will be helpful in parsing the file).\n",
"1. The `business_id` field seems to appear in multiple files and is probably unique in businesses?\n",
"1. We can get a sense for the kind of information in each file (though we should definitely read the [documentation](https://www.yelp.com/healthscores#businesses)) "
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true,
"nbpresent": {
"id": "0a51a357-4a2e-4641-b25e-48549d8c7701"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# How big is the data?\n",
"\n",
"We already looked at the raw file size:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "cdbb3f6d-0aed-4101-9cd8-239bc8fc2465"
},
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"total 9904\r\n",
"-rwxr-xr-x 1 jegonzal staff 645K Jan 1 20:50 \u001b[31mbusinesses.csv\u001b[m\u001b[m\r\n",
"-rwxr-xr-x 1 jegonzal staff 493K Jan 1 20:50 \u001b[31minspections.csv\u001b[m\u001b[m\r\n",
"-rwxr-xr-x 1 jegonzal staff 120B Jan 1 20:50 \u001b[31mlegend.csv\u001b[m\u001b[m\r\n",
"-rwxr-xr-x 1 jegonzal staff 3.7M Jan 1 20:50 \u001b[31mviolations.csv\u001b[m\u001b[m\r\n"
]
}
],
"source": [
"!ls -Rlh data/san_francisco/"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "d9ff549b-2479-41a4-addc-983fc4c5dc11"
},
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"1. Why might we want to know the size of the data? \n",
"1. Why don't we just load it into python?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"\n",
"\n",
"This dataset is fairly small but in general the data we study may be large (e.g., too big to easily manipulate in memory). "
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "6682f2af-937a-44d6-820a-e161f996a953"
},
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"# How Many Record?\n",
"\n",
"1. How many records or observations do we have? \n",
"1. Can we answer this question just from the size of the file?\n",
"\n",
"---\n",
"\n",
"In the following we write a small **bash** script to calculate the number of lines each file. "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "ce7038de-dccc-42cd-a24d-6813af97745f"
},
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 6316 44398 660035 data/san_francisco/businesses.csv\n",
" 15431 15431 505325 data/san_francisco/inspections.csv\n",
" 5 6 120 data/san_francisco/legend.csv\n",
" 40937 432008 3891639 data/san_francisco/violations.csv\n"
]
}
],
"source": [
"%%bash\n",
"# We can use ipython Magic commands to \n",
"# evaluate the entire cell in bash\n",
"for f in $(ls -R data/san_francisco/*); do\n",
" wc $f\n",
"done;"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "f4c271a4-ac98-47b7-82d2-f6ea15d4efe3"
},
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"The `wc` command prints the number of _lines_, _words_, and _characters_ respectively in the file. \n",
"\n",
"To learn more about this command run: "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true,
"nbpresent": {
"id": "c4a112c8-3c0a-41e8-9423-681aa8c90e5c"
},
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"man wc"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "ded29875-e606-43ac-828d-b4c60455fb24"
},
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"Press `esc` to close the popup pane."
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "73b69254-dedc-44f8-9867-66dbda2063f3"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Counting Lines in Python (Skip in Class)\n",
"\n",
"In DS100 we will be using Python to do a lot of our analysis. \n",
"\n",
"How could we write a similar program in Python?\n",
"\n",
"```bash\n",
"for f in $(ls -R data/san_francisco/*); do\n",
" wc $f\n",
"done;\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "b1f626c5-d7de-4630-96be-f06ff7733b05"
},
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Lines in businesses.csv : 6316\n",
"Lines in inspections.csv : 15431\n",
"Lines in legend.csv : 5\n",
"Lines in violations.csv : 40937\n"
]
}
],
"source": [
"import os\n",
"for fname in os.listdir(\"data/san_francisco\"):\n",
" with open(os.path.join(\"data/san_francisco\", fname), \"rb\") as f:\n",
" lines = sum(1 for line in f)\n",
" print(\"Lines in\", fname, \":\", lines)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "40d12bcc-10d8-4526-b090-95226dc22fb7"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"The above Python program demonstrates a few big ideas:\n",
"\n",
"1. programmatically traversing the file systems with `os.listdir`\n",
"1. using a `with` expression to open (and then automatically close) a file.\n",
"1. using a generator (the expression `sum(1 for line in f)`) to count the number of lines without first loading the entire file in memory. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "74f4ea21-7372-4928-bd83-4331ba179612"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# A quick note on file size"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "af3dc2ed-9a7e-4b3f-a71a-c54c53ae1b94"
}
},
"source": [
"When we load data into a program it will often increase in size. Therefore we need to be careful when loading entire files:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "7f4b08c8-4e0f-42b8-a1de-4e2cd84a8ef9"
}
},
"outputs": [],
"source": [
"import sys\n",
"\n",
"with open(\"data/san_francisco/violations.csv\", \"r\") as f:\n",
" lines = f.readlines()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Size of list container: 0.342696 MBytes\n"
]
}
],
"source": [
"print(\"Size of list container:\", \n",
" sys.getsizeof(lines) / (10. ** 6) , \n",
" \"MBytes\")"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sum of lines objects: 5.856615 MBytes\n"
]
}
],
"source": [
"print(\"Sum of lines objects:\", \n",
" sum(sys.getsizeof(l) for l in lines) / (10. ** 6), \n",
" \"MBytes\")"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-rwxr-xr-x 1 jegonzal staff 3.7M Jan 1 20:50 \u001b[31mdata/san_francisco/violations.csv\u001b[m\u001b[m\r\n"
]
}
],
"source": [
"!ls -Rlh data/san_francisco/violations.csv"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "3c23646e-2b87-45ac-a8de-a2eee1b1272f"
}
},
"source": [
"First note that the file takes a little more space in memory than it did on disk. Why?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "a1796ed9-0f5e-4ce7-b438-a7017738aa39"
}
},
"source": [
"This is because the data structures to store the contents of the file may contain extra fields (e.g., length and points) that add additional overhead."
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "712f2810-e9ca-4459-9c28-5098bd6a17ef"
}
},
"source": [
"Data scientists need to think about computational issues:\n",
"\n",
"1. Can we fit the data in memory?\n",
"1. How long will this analysis take to run?\n",
"\n",
"This is why knowing the size of the file can be important before loading it."
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "96241800-4aed-4633-98ad-37bed76166f3"
}
},
"source": [
"### Iterating (Skip in Class)\n",
"What if I wanted to know the number of unique businesses in the `violations.csv` file without loading the entire file into memory at once?"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "58e21003-d505-4ba4-93f7-f6da52df2163"
}
},
"outputs": [],
"source": [
"business_ids = set()\n",
"with open(\"data/san_francisco/violations.csv\", \"r\") as f:\n",
" next(f)\n",
" for line in f:\n",
" business_ids.add(int(line.split(\",\")[0]))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "c8ec959b-c40a-4300-9bc3-fad6196b436b"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"There are 5259 unique business ids.\n"
]
}
],
"source": [
"print(\"There are\", len(business_ids), \"unique business ids.\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "23af97fe-f0dd-4989-857e-0dc09e53bba4"
}
},
"source": [
"Interesting there are fewer businesses in the `violations.csv` file than there are lines in the `businesses.csv` file. Perhaps there are no violations for some businesses? Let's check to see how many unique `business_id`s are in the `businesses.csv` file. \n",
"\n",
"To do this we will practice using bash commands instead."
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "7d61c19a-7207-4d86-ae65-9ce56392b4a5"
}
},
"source": [
"# A little more with bash commands"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "134fd255-7116-4254-8c0b-c2bf72b3d252"
}
},
"source": [
"Could we have computed the number of unique businesses using just Bash commands?\n",
"\n",
"1. **`tail`** returns the end of the file. \n",
"```bash\n",
"tail -n +2\n",
"``` \n",
"skips the first line of the file.\n",
"1. **`cat`** reads the entire file\n",
"1. **`cut`** extracts a field from row. \n",
"```bash\n",
"cut -f 1 -d \",\"\n",
"```\n",
"extracts the first field from a line delimited by commas. \n",
"1. **`sort`** sorts the input\n",
"1. **`uniq`** returns the unique entries form a _sorted_ input\n",
"1. **`wc`** as earlier counts the entries in the output.\n",
"\n",
"We can compose multiple operations using `|` (pipe)."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "972a503d-b322-4a8c-a371-7507c289dad3"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10,\"TIRAMISU KITCHEN\",\"033 BELDEN PL\",\"San Francisco\",\"CA\",\"94104\",\"37.791116\",\"-122.403816\",\"+14154217044\"\r\n",
"19,\"NRGIZE LIFESTYLE CAFE\",\"1200 VAN NESS AVE, 3RD FLOOR\",\"San Francisco\",\"CA\",\"94109\",\"37.786848\",\"-122.421547\",\"+14157763262\"\r\n",
"24,\"OMNI S.F. HOTEL - 2ND FLOOR PANTRY\",\"500 CALIFORNIA ST, 2ND FLOOR\",\"San Francisco\",\"CA\",\"94104\",\"37.792888\",\"-122.403135\",\"+14156779494\"\r\n",
"31,\"NORMAN'S ICE CREAM AND FREEZES\",\"2801 LEAVENWORTH ST \",\"San Francisco\",\"CA\",\"94133\",\"37.807155\",\"-122.419004\",\"\"\r\n",
"45,\"CHARLIE'S DELI CAFE\",\"3202 FOLSOM ST \",\"San Francisco\",\"CA\",\"94110\",\"37.747114\",\"-122.413641\",\"+14156415051\"\r\n"
]
}
],
"source": [
"%%bash\n",
"tail -n +2 data/san_francisco/businesses.csv | head -n 5"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "e2bad5a3-368e-4673-baa7-70ddaf9427ec"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\n",
"19\n",
"24\n",
"31\n",
"45\n",
"48\n",
"50\n",
"54\n",
"56\n",
"58\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"cut: stdin: Illegal byte sequence\n"
]
}
],
"source": [
"%%bash\n",
"tail -n +2 data/san_francisco/businesses.csv \\\n",
" | cut -f 1 -d \",\" \\\n",
" | head -n 10"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "22fb917a-4d72-4f4f-857e-ac3ce042828a"
}
},
"source": [
"The above error occurs because the file is encoded in a non UTF-8 string format. In general this is often the older ISO format ISO-8859-1. We can use `iconv` to clean up the file."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true,
"nbpresent": {
"id": "625a3800-65e2-489c-b6ee-2f02d7b73b74"
}
},
"outputs": [],
"source": [
"man iconv"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "a884c434-693d-4fc9-abb8-b39b98f39b1b"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\r\n",
"19\r\n",
"24\r\n",
"31\r\n",
"45\r\n",
"48\r\n",
"50\r\n",
"54\r\n",
"56\r\n",
"58\r\n"
]
}
],
"source": [
"!tail -n +2 data/san_francisco/businesses.csv \\\n",
" | iconv -t UTF-8 -f ISO-8859-1 \\\n",
" | cut -f 1 -d \",\" \\\n",
" | head -n 10"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Adding `sort`:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "a7eeafb0-45e6-4b6f-b53e-f4d5b6df6477"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\n",
"1000\n",
"10011\n",
"1002\n",
"1003\n",
"10030\n",
"1005\n",
"1008\n",
"10083\n",
"10099\n"
]
}
],
"source": [
"%%bash\n",
"tail -n +2 data/san_francisco/businesses.csv \\\n",
" | iconv -t UTF-8 -f ISO-8859-1 \\\n",
" | cut -f 1 -d \",\" \\\n",
" | sort \\\n",
" | head -n 10"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Adding `uniq`:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "ec66ce3c-0f62-4f47-9365-05571c55efcd"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 6315 6315 35738\n"
]
}
],
"source": [
"%%bash\n",
"tail -n +2 data/san_francisco/businesses.csv \\\n",
" | iconv -t UTF-8 -f ISO-8859-1 \\\n",
" | cut -f 1 -d \",\" \\\n",
" | sort \\\n",
" | uniq \\\n",
" | wc"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"man uniq"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "67245468-b5bd-4ca9-b99c-ad393aa1440e"
}
},
"source": [
"There is one less unique `business_id` than there are lines in the file. Why is that?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "40804d9d-2035-4dea-9cff-d7ec48e4f3e4"
}
},
"source": [
"In DS-100 we will largely focus on analysis within Python. However, as a data scientist you may want to learn more about using these Bash shell commands (common to all POSIX shells). Others worth learning are:\n",
"\n",
"1. **`cd`**, **`ls`**, **`pwd`**, **`mkdir`**, and **`rm`** are file and folder traversal and manipulation commands.\n",
"1. **`grep`** regular expression pattern matching\n",
"1. **`tr`** change individual characters\n",
"1. **`tee`** used to split an output down two paths\n",
"1. **`awk`** a string processing framework with it's own built in language for string transformations.\n",
"1. **`zip`**, **`gzip`**, **`bzip2`**, and **`tar`** are compression and archiving commands\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "2cde4557-9e00-4fee-b8f4-560518152234"
}
},
"source": [
"# The _Pandas_ DataFrame Library"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "09dc4c24-7463-4943-9ac4-19d1269f95dd"
}
},
"source": [
"In this class we will frequently operate on data stored in table form. A common data structure for tabular data in analysis tools is a DataFrame.\n",
"\n",
"Conceptually DataFrames behave like tables (in a Spreadsheet) with rows corresponding to data records and columns corresponding to fields. DataFrames are also like Matrices in that we can index a row or column of data. However, unlike Matrices DataFrames can store data of different types in each column."
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "283408f3-0e5d-4f69-afd2-cd236411a401"
}
},
"source": [
"Many of you may already be familiar with DataFrames from Data8. In Data8 you used a DataFrame library called _DataScience_ created here at Berkeley. The Berkeley _DataScience_ library contains a simple DataFrame data structure with a few basic operations. In contrast many of the DataFrame APIs in use today (e.g., Pandas, Spark, and R) have fairly extensive APIs with numerous short-cuts and optimizations. "
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "0e29c865-63f4-4db1-be19-373dfbb2325b"
}
},
"source": [
"\n",
"One of the most commonly used DataFrame APIs today is the Python Pandas Library. This library was heavily inspired by the DataFrame concepts in the R programming language. \n",
"\n",
"In DS100 we will the Pandas DataFrame library for many of the assignments. We encourage students to read a little about Pandas [here](http://proquest.safaribooksonline.com/9781449323592)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "0dcfaf7a-6aae-4230-ad42-6ca0e2f8ac62"
}
},
"source": [
"# Loading the DataFrame"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "5058e086-1444-49cc-a09b-a3f531a8808b"
}
},
"source": [
"One of the useful features of Pandas is its ability to load fairly messy \"CSV\" files:"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "16ef11fd-12ab-42f3-b7b4-95721e09a33b"
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"\n",
"# note the need to provide encoding information for this text file\n",
"bus = pd.read_csv(\"data/san_francisco/businesses.csv\", \n",
" encoding='ISO-8859-1')\n",
"\n",
"ins = pd.read_csv(\"data/san_francisco/inspections.csv\")\n",
"\n",
"vio = pd.read_csv(\"data/san_francisco/violations.csv\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "9ea6c4c4-dd80-485e-9586-dd2648a5f0a4"
}
},
"source": [
"If you look at the `pd.read_csv` command you will see that it has a very large number of arguments:"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "0cd36ccc-620f-4b51-aeb2-1ecb848afad4"
}
},
"outputs": [],
"source": [
"pd.read_csv?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "470a0204-e3e1-424a-90cb-744b4ce50bf4"
}
},
"source": [
"To get a sense as to how the data was processed lets look at the records in each of the DataFrame"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "ca7562d7-2d42-43e1-9ae4-edcaf47f5629"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Records: 6315\n"
]
},
{
"data": {
"text/html": [
"
\n",
"
\n",
" \n",
" \n",
" | \n",
" business_id | \n",
" name | \n",
" address | \n",
" city | \n",
" state | \n",
" postal_code | \n",
" latitude | \n",
" longitude | \n",
" phone_number | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 10 | \n",
" TIRAMISU KITCHEN | \n",
" 033 BELDEN PL | \n",
" San Francisco | \n",
" CA | \n",
" 94104 | \n",
" 37.791116 | \n",
" -122.403816 | \n",
" +14154217044 | \n",
"
\n",
" \n",
" 1 | \n",
" 19 | \n",
" NRGIZE LIFESTYLE CAFE | \n",
" 1200 VAN NESS AVE, 3RD FLOOR | \n",
" San Francisco | \n",
" CA | \n",
" 94109 | \n",
" 37.786848 | \n",
" -122.421547 | \n",
" +14157763262 | \n",
"
\n",
" \n",
" 2 | \n",
" 24 | \n",
" OMNI S.F. HOTEL - 2ND FLOOR PANTRY | \n",
" 500 CALIFORNIA ST, 2ND FLOOR | \n",
" San Francisco | \n",
" CA | \n",
" 94104 | \n",
" 37.792888 | \n",
" -122.403135 | \n",
" +14156779494 | \n",
"
\n",
" \n",
" 3 | \n",
" 31 | \n",
" NORMAN'S ICE CREAM AND FREEZES | \n",
" 2801 LEAVENWORTH ST | \n",
" San Francisco | \n",
" CA | \n",
" 94133 | \n",
" 37.807155 | \n",
" -122.419004 | \n",
" NaN | \n",
"
\n",
" \n",
" 4 | \n",
" 45 | \n",
" CHARLIE'S DELI CAFE | \n",
" 3202 FOLSOM ST | \n",
" San Francisco | \n",
" CA | \n",
" 94110 | \n",
" 37.747114 | \n",
" -122.413641 | \n",
" +14156415051 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" business_id name \\\n",
"0 10 TIRAMISU KITCHEN \n",
"1 19 NRGIZE LIFESTYLE CAFE \n",
"2 24 OMNI S.F. HOTEL - 2ND FLOOR PANTRY \n",
"3 31 NORMAN'S ICE CREAM AND FREEZES \n",
"4 45 CHARLIE'S DELI CAFE \n",
"\n",
" address city state postal_code latitude \\\n",
"0 033 BELDEN PL San Francisco CA 94104 37.791116 \n",
"1 1200 VAN NESS AVE, 3RD FLOOR San Francisco CA 94109 37.786848 \n",
"2 500 CALIFORNIA ST, 2ND FLOOR San Francisco CA 94104 37.792888 \n",
"3 2801 LEAVENWORTH ST San Francisco CA 94133 37.807155 \n",
"4 3202 FOLSOM ST San Francisco CA 94110 37.747114 \n",
"\n",
" longitude phone_number \n",
"0 -122.403816 +14154217044 \n",
"1 -122.421547 +14157763262 \n",
"2 -122.403135 +14156779494 \n",
"3 -122.419004 NaN \n",
"4 -122.413641 +14156415051 "
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print('Records:', len(bus))\n",
"bus.head()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "a0e4004f-87c7-42fd-9a83-65d610a595d6"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Records: 15430\n"
]
},
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" business_id | \n",
" score | \n",
" date | \n",
" type | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 10 | \n",
" 82 | \n",
" 20160503 | \n",
" routine | \n",
"
\n",
" \n",
" 1 | \n",
" 10 | \n",
" 94 | \n",
" 20140729 | \n",
" routine | \n",
"
\n",
" \n",
" 2 | \n",
" 10 | \n",
" 92 | \n",
" 20140114 | \n",
" routine | \n",
"
\n",
" \n",
" 3 | \n",
" 19 | \n",
" 94 | \n",
" 20160513 | \n",
" routine | \n",
"
\n",
" \n",
" 4 | \n",
" 19 | \n",
" 94 | \n",
" 20141110 | \n",
" routine | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" business_id score date type\n",
"0 10 82 20160503 routine\n",
"1 10 94 20140729 routine\n",
"2 10 92 20140114 routine\n",
"3 19 94 20160513 routine\n",
"4 19 94 20141110 routine"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print('Records:', len(ins))\n",
"ins.head()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "6b683859-aeb4-458f-841a-c8f4b89e6c9b"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Records: 40936\n"
]
},
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" business_id | \n",
" date | \n",
" description | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 10 | \n",
" 20160503 | \n",
" High risk food holding temperature [ date vi... | \n",
"
\n",
" \n",
" 1 | \n",
" 10 | \n",
" 20160503 | \n",
" High risk food holding temperature [ date vi... | \n",
"
\n",
" \n",
" 2 | \n",
" 10 | \n",
" 20160503 | \n",
" High risk vermin infestation | \n",
"
\n",
" \n",
" 3 | \n",
" 10 | \n",
" 20160503 | \n",
" Unapproved or unmaintained equipment or utensils | \n",
"
\n",
" \n",
" 4 | \n",
" 10 | \n",
" 20160503 | \n",
" No thermometers or uncalibrated thermometers | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" business_id date description\n",
"0 10 20160503 High risk food holding temperature [ date vi...\n",
"1 10 20160503 High risk food holding temperature [ date vi...\n",
"2 10 20160503 High risk vermin infestation\n",
"3 10 20160503 Unapproved or unmaintained equipment or utensils\n",
"4 10 20160503 No thermometers or uncalibrated thermometers "
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print('Records:', len(vio))\n",
"vio.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "5007be14-aa41-48ea-b61b-9034991dbd69"
}
},
"source": [
"Now that we have successfully loaded the data let's start to examine what we have."
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "6b1fe5c0-56cf-425e-a8c4-d93394cef1ee"
}
},
"source": [
"# Questions about data organization?\n",
"\n",
"1. How is the data organized?\n",
" * What are the relationships between the tables (e.g., common attributes, keys)?\n",
"1. Are there common data issues (e.g., missing values (NaN), date parsing)?\n",
"1. How far does the data go back?\n",
"1. others..."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Bus(business_id, name, address, city, state, postal_code, latitude, longitude, phone_number)\n",
"Ins(business_id, score, date, type)\n",
"Vio(business_id, date, description)\n"
]
}
],
"source": [
"print(\"Bus(\" + \", \".join(bus.columns) + \")\")\n",
"print(\"Ins(\" + \", \".join(ins.columns) + \")\")\n",
"print(\"Vio(\" + \", \".join(vio.columns) + \")\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "9d82ab28-2297-4717-9403-c1afe3c18240"
}
},
"source": [
"### The `business_id` field is shared across tables\n",
"\n",
"The `business_id` field connects records across each of the DataFrames. Later in the class we will discuss this form of _foreign key_ relationship between tables. For now, we will construct a modified version of these tables that are _indexed_ by the `business_id`. This will both speedup future operations and also provide an implicit _join key_."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "ebe6ee17-9eec-4084-b00d-45c882d5b840"
}
},
"outputs": [],
"source": [
"bus.set_index('business_id', inplace=True)\n",
"ins.set_index('business_id', inplace=True)\n",
"vio.set_index('business_id', inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" date | \n",
" description | \n",
"
\n",
" \n",
" business_id | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 10 | \n",
" 20160503 | \n",
" High risk food holding temperature [ date vi... | \n",
"
\n",
" \n",
" 10 | \n",
" 20160503 | \n",
" High risk food holding temperature [ date vi... | \n",
"
\n",
" \n",
" 10 | \n",
" 20160503 | \n",
" High risk vermin infestation | \n",
"
\n",
" \n",
" 10 | \n",
" 20160503 | \n",
" Unapproved or unmaintained equipment or utensils | \n",
"
\n",
" \n",
" 10 | \n",
" 20160503 | \n",
" No thermometers or uncalibrated thermometers | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date description\n",
"business_id \n",
"10 20160503 High risk food holding temperature [ date vi...\n",
"10 20160503 High risk food holding temperature [ date vi...\n",
"10 20160503 High risk vermin infestation\n",
"10 20160503 Unapproved or unmaintained equipment or utensils\n",
"10 20160503 No thermometers or uncalibrated thermometers "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vio.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "bf84f57f-0c0f-417b-ac89-166d1a2f9f81"
}
},
"source": [
"### Date Parsing"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "d13f206d-27c3-4076-a125-37f27ff2b8ba"
}
},
"source": [
"Both the `inspections` and `violations` tables have dates."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"business_id\n",
"10 20160503\n",
"10 20160503\n",
"10 20160503\n",
"10 20160503\n",
"10 20160503\n",
"10 20140729\n",
"10 20140729\n",
"10 20140114\n",
"10 20140114\n",
"10 20140114\n",
"Name: date, dtype: int64"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vio['date'].head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice the \"type\" of information stored in that column is an integer not a date. We need to clean that up a bit."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "847b6b4b-21fb-4c4a-bc1a-7bf4edc853cf"
}
},
"outputs": [],
"source": [
"ins['date'] = pd.to_datetime(ins['date'], format=\"%Y%m%d\")\n",
"vio['date'] = pd.to_datetime(vio['date'], format=\"%Y%m%d\")"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"business_id\n",
"10 2016-05-03\n",
"10 2016-05-03\n",
"10 2016-05-03\n",
"10 2016-05-03\n",
"10 2016-05-03\n",
"10 2014-07-29\n",
"10 2014-07-29\n",
"10 2014-01-14\n",
"10 2014-01-14\n",
"10 2014-01-14\n",
"Name: date, dtype: datetime64[ns]"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vio['date'].head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "ce8590f1-da22-409c-9289-87baaa1c539d"
}
},
"source": [
"### How far back do the inspections and violation reports go:"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "01168c84-7c4a-428a-aad0-d773230f98fa"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Oldest inspection: 2013-12-26 00:00:00\n",
"Oldest violation: 2013-12-26 00:00:00\n"
]
}
],
"source": [
"print(\"Oldest inspection:\", ins['date'].min())\n",
"print(\"Oldest violation:\", vio['date'].min())"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "44142321-8bc2-452b-b5d1-eb267846b428"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Most recent inspection: 2016-12-23 00:00:00\n",
"Most recent violation: 2016-12-23 00:00:00\n"
]
}
],
"source": [
"print(\"Most recent inspection:\", ins['date'].max())\n",
"print(\"Most recent violation:\", vio['date'].max())"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "db3a204b-b1b5-45c4-a2b1-6dd574ba3776"
}
},
"source": [
"# Digging into the `Inspection` Data"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "b56fb80a-0ca0-4fa0-b73e-cc527cf4203d"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" score | \n",
" date | \n",
" type | \n",
"
\n",
" \n",
" business_id | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 10 | \n",
" 82 | \n",
" 2016-05-03 | \n",
" routine | \n",
"
\n",
" \n",
" 10 | \n",
" 94 | \n",
" 2014-07-29 | \n",
" routine | \n",
"
\n",
" \n",
" 10 | \n",
" 92 | \n",
" 2014-01-14 | \n",
" routine | \n",
"
\n",
" \n",
" 19 | \n",
" 94 | \n",
" 2016-05-13 | \n",
" routine | \n",
"
\n",
" \n",
" 19 | \n",
" 94 | \n",
" 2014-11-10 | \n",
" routine | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" score date type\n",
"business_id \n",
"10 82 2016-05-03 routine\n",
"10 94 2014-07-29 routine\n",
"10 92 2014-01-14 routine\n",
"19 94 2016-05-13 routine\n",
"19 94 2014-11-10 routine"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ins.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "4a6d2638-260e-4711-80bb-5f5b3dc9d1b7"
}
},
"source": [
"It seems like there are possibly many `routine` inspections. Let's look at the distribution of inspection types. To do this we are going to select the `type` column and use the `value_counts()` function to count the occurrences:"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "ccc6a81d-482b-429d-9c6b-31d1d130e334"
}
},
"outputs": [
{
"data": {
"text/plain": [
"routine 15429\n",
"complaint 1\n",
"Name: type, dtype: int64"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ins['type'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "2c1f7cf3-b08a-42e3-a3bd-071b183b94a9"
}
},
"source": [
"Strange! There is only one complaint in the entire database.\n",
"\n",
"# Investigating the Complaint (Skip in Class)\n",
"\n",
"Let's look a little bit further at this complaint:"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "496ea408-2a79-4f22-9e81-ec0091be5632"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" score | \n",
" date | \n",
" type | \n",
"
\n",
" \n",
" business_id | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 87440 | \n",
" 100 | \n",
" 2016-08-01 | \n",
" complaint | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" score date type\n",
"business_id \n",
"87440 100 2016-08-01 complaint"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ins[ins['type'] == 'complaint']"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "baa1b74f-e07f-4742-8f3b-0b3a44515add"
}
},
"source": [
"A score of 100?! That is odd. What was the restaurant? "
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "09ece033-2544-449a-b1e2-8d019e28f070"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" score | \n",
" date | \n",
" type | \n",
" name | \n",
" address | \n",
" city | \n",
" state | \n",
" postal_code | \n",
" latitude | \n",
" longitude | \n",
" phone_number | \n",
"
\n",
" \n",
" business_id | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 87440 | \n",
" 100 | \n",
" 2016-08-01 | \n",
" complaint | \n",
" EL AJI PERUVIAN RESTAURANT | \n",
" 3015 MISSION ST | \n",
" San Francisco | \n",
" CA | \n",
" 94110 | \n",
" NaN | \n",
" NaN | \n",
" +14156587349 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" score date type name \\\n",
"business_id \n",
"87440 100 2016-08-01 complaint EL AJI PERUVIAN RESTAURANT \n",
"\n",
" address city state postal_code latitude \\\n",
"business_id \n",
"87440 3015 MISSION ST San Francisco CA 94110 NaN \n",
"\n",
" longitude phone_number \n",
"business_id \n",
"87440 NaN +14156587349 "
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ins[ins['type'] == 'complaint'].join(bus)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "46221431-b74d-4dbc-88ea-48dda3bd6e1f"
}
},
"source": [
"This probably deserves further investigation ... "
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "198283f0-04ba-48a5-9d91-2b193edc695e"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" date | \n",
" description | \n",
"
\n",
" \n",
" business_id | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 87440 | \n",
" 2016-08-01 | \n",
" Low risk vermin infestation | \n",
"
\n",
" \n",
" 87440 | \n",
" 2016-08-01 | \n",
" Inadequate dressing rooms or improper storage ... | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date description\n",
"business_id \n",
"87440 2016-08-01 Low risk vermin infestation\n",
"87440 2016-08-01 Inadequate dressing rooms or improper storage ..."
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vio.loc[87440]"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "42c276ee-0119-4810-88b3-bf3df6c8cd52"
}
},
"outputs": [
{
"data": {
"text/plain": [
"'Inadequate dressing rooms or improper storage of personal items'"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vio.loc[87440].iloc[1,1]"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "ddb7a777-6d02-4a98-8294-77dba4d05aad"
}
},
"source": [
"And it still got a score of 100? This record is probably an anomaly but it does cause us to question the meaning of these scores."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "2fb72dec-50ba-44f4-bc38-00cecadb262e"
}
},
"source": [
"# How frequently are these restaurants inspected?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "677c3776-e3cc-4e05-832d-38e16e303cb1"
}
},
"source": [
"Group the inspections by the index (the `business_id`)\n",
""
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "4a714c90-522a-4ef1-9f29-c80a3ad9b33f"
}
},
"outputs": [],
"source": [
"ins_grouped_by_bid = ins.groupby(ins.index)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"bus['first_inspect'] = ins_grouped_by_bid['date'].min()\n",
"bus['last_inspect'] = ins_grouped_by_bid['date'].max()\n",
"bus['num_inspect'] = ins_grouped_by_bid['date'].count()"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"bus['days_bt_ins'] = (bus['last_inspect'] - bus['first_inspect']).dt.days / (bus['num_inspect'] - 1)\n",
"bus['years_bt_ins'] = bus['days_bt_ins'] / 365.0"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" years_bt_ins | \n",
" days_bt_ins | \n",
" first_inspect | \n",
" last_inspect | \n",
" num_inspect | \n",
"
\n",
" \n",
" business_id | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 10 | \n",
" 1.150685 | \n",
" 420.0 | \n",
" 2014-01-14 | \n",
" 2016-05-03 | \n",
" 3.0 | \n",
"
\n",
" \n",
" 19 | \n",
" 1.121918 | \n",
" 409.5 | \n",
" 2014-02-14 | \n",
" 2016-05-13 | \n",
" 3.0 | \n",
"
\n",
" \n",
" 24 | \n",
" 0.772603 | \n",
" 282.0 | \n",
" 2014-06-12 | \n",
" 2016-10-05 | \n",
" 4.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" years_bt_ins days_bt_ins first_inspect last_inspect num_inspect\n",
"business_id \n",
"10 1.150685 420.0 2014-01-14 2016-05-03 3.0\n",
"19 1.121918 409.5 2014-02-14 2016-05-13 3.0\n",
"24 0.772603 282.0 2014-06-12 2016-10-05 4.0"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bus[['years_bt_ins', 'days_bt_ins', 'first_inspect', 'last_inspect', 'num_inspect']].head(3)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": true,
"nbpresent": {
"id": "093970b6-ae39-47b3-b6da-26a6ebf90c19"
}
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "8c846c6a-d994-464c-8e7c-ce5a59d81b92"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqoAAAHcCAYAAAAeFogrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3X9QVPe9//EXP+4CRrYoIuQyMomYhB8SIIip9ZJULvXe\nTK7XpJhMMo2NaSx3ImKmNDbivX7TVI2p5qei3MQYp8WYr1F7E3Mz8c61nTFNTJQIChF1CsQBIuXX\naEC7uBH2+0e/bkPQsAd2lw/L8zHjZDjns7vvw3s/mxe753w2yOVyuQQAAAAYJnikCwAAAACuhqAK\nAAAAIxFUAQAAYCSCKgAAAIxEUAUAAICRCKoAAAAwEkEVAAAARiKoAgAAwEgEVQAAABjJclBtbGzU\no48+qszMTOXm5mrbtm3ufWvWrFFSUpKSk5Pd/33jjTfc+w8dOqR58+YpIyNDixYtUlNTk3eOAgAA\nAAEn1Mpgl8ulgoICpaen65133tGZM2dUXFysuLg43X333WpoaNATTzyhe++9132b8ePHS5JaWlpU\nWFioxx9/XDk5OSotLVVhYaH27dvn3SMCAABAQLD0jmpHR4dSUlL01FNPKSEhQXfccYdmzZqlo0eP\nSpLq6+uVkpKi6Oho97+wsDBJ0u7du5WWlqZFixYpMTFR69at0xdffKGKigrvHxUAAABGPUtBNSYm\nRi+88ILGjRsnSTp69KgqKip0++2368KFC2ptbdUNN9xw1dseP35c2dnZ7p/Dw8OVkpKiqqqqoVcP\nAACAgGXpo/+vy83NVUtLi77//e9r7ty5qq6uVlBQkMrKyvTBBx8oKipKjzzyiO655x5JUltbmyZP\nntzvPiZNmqTW1tbhHQEAAAAC0pCD6qZNm9TR0aGnnnpKa9eu1fTp0xUcHKzExEQtXLhQR44c0apV\nqzR+/Hjl5eWpp6dHNput333YbDY5nc5hHwQAAAACz5CDampqqiSppKREy5cv15NPPqnc3FzZ7XZJ\n0s0336wzZ87ozTffVF5ensLCwgaEUqfT6R7vCZfLpaCgoKGWDGAQFRUV+umqckVGJww6truzUVtX\nL+x3Sg8AAN5kKah2dnaqqqpKeXl57m3Tpk3TV199pYsXLyoqKqrf+KlTp+rw4cOSpNjYWLW3t/fb\n39HRoeTkZI8fPygoSF1dDvX29lkpGz4WEhIsuz2C3hjKSn+6uhyKjE5QVNxNHt13V5dD585d9EaZ\nYxJzx1z0xmz0x1xXeuMtloJqc3OzioqKdPDgQff5pjU1NZo4caJ++9vfqqqqStu3b3ePP3nypG68\n8UZJUnp6uiorK937HA6HamtrVVRUZKng3t4+Xb7Mk9JE9MZsnvTH6gs+PfcOfo/mojdmoz+Bz9JV\n/2lpaZo+fbpWrlyp+vp6HTx4UM8995wee+wxzZkzRxUVFdq+fbuampq0c+dO7du3T4sXL5Yk5efn\nq7KyUlu3blVdXZ1KSkqUkJCgmTNn+uTAAAAAMLpZCqrBwcHasmWLxo0bpwceeECrVq3Sj3/8Yz30\n0ENKS0vTxo0b9fbbb2vevHl644039Pzzz+vWW2+VJMXHx2vTpk3au3ev7rvvPnV3d6u0tNQnBwUA\nAIDRz/LFVDExMdq4ceNV9+Xm5io3N/eat83JydH+/futPiQAAADGIEvvqAIAAAD+QlAFAACAkQiq\nAAAAMBJBFQAAAEYiqAIAAMBIBFUAAAAYiaAKAAAAIxFUAQAAYCSCKgAAAIxEUAUAAICRCKoAAAAw\nUuhIFwBgdOrrvazTp09Zuk1qappsNpuPKgIABBqCKoAhuXi+RdveO6vITy54NL67s1Hri6XMzCwf\nVwYACBQEVQBDFhmdoKi4m0a6DABAgOIcVQAAABiJoAoAAAAjEVQBAABgJIIqAAAAjERQBQAAgJEI\nqgAAADASQRUAAABGIqgCAADASARVAAAAGImgCgAAACMRVAEAAGAkgioAAACMRFAFAACAkQiqAAAA\nMFLoSBcABCKn06kTJ2os3SY1NU02m81HFQEAMPoQVAEfOHGiRr944XeKjE7waHx3Z6PWF0uZmVk+\nrgwAgNGDoAr4SGR0gqLibhrpMgAAGLU4RxUAAABGIqgCAADASARVAAAAGImgCgAAACMRVAEAAGAk\ngioAAACMRFAFAACAkQiqAAAAMBJBFQAAAEYiqAIAAMBIBFUAAAAYKXSkCwDgO06nU9XVJ2S3R6ir\ny6He3r5vHX/69Ck/VQYAwOAIqkAAO3GiRr944XeKjE7waHxrQ4Vip2b7uCoAADxDUAUCXGR0gqLi\nbvJobHdnk4+rAQDAc5yjCgAAACMRVAEAAGAkgioAAACMRFAFAACAkSxfTNXY2Kinn35alZWVmjBh\ngn70ox/p0UcflSQ1Nzdr1apVOnbsmOLj41VSUqLZs2e7b3vo0CGtW7dOTU1NysjI0OrVqzVlyhTv\nHQ3gQ06nUydO1Hg0lmWeAAAYPktB1eVyqaCgQOnp6XrnnXd05swZFRcXKy4uTnfffbeWLFmi5ORk\n7d27VwcOHNDSpUv1/vvvKy4uTi0tLSosLNTjjz+unJwclZaWqrCwUPv27fPVsQFeZWWpJ5Z5AgBg\n+CwF1Y6ODqWkpOipp57SuHHjlJCQoFmzZuno0aOKjo5Wc3Ozdu/erbCwMBUUFOjjjz/Wnj17tHTp\nUr311ltKS0vTokWLJEnr1q3T7NmzVVFRoexs/oeO0cHTpZ5Y5gkAgOGzdI5qTEyMXnjhBY0bN06S\ndPToUX366aeaOXOmjh8/rtTUVIWFhbnHZ2Vl6dixY5Kk6urqfoE0PDxcKSkpqqqq8sZxAAAAIMAM\n+WKq3NxcPfTQQ8rIyNDcuXPV3t6uyZMn9xsTHR2t1tZWSVJbW9uA/ZMmTXLvBwAAAL5uyN9MtWnT\nJnV0dOiXv/ylnnnmGTkcDtlstn5jbDabnE6nJKmnp+db93sqJISFCkxzpSeB3htfH19ISLBCQ737\nGKb1xBfHOJqNlbkzGtEbs9Efc3m7J0MOqqmpqZKkFStW6IknntCCBQvU1dXVb4zT6VR4eLgkKSws\nbEAodTqdstvtlh7Xbo8YasnwsUDvja+Pz26P0IQJ13n9Pk3ii2MMBKb1CX9Db8xGfwKfpaDa2dmp\nqqoq5eXlubdNmzZNX331lWJiYlRfX99vfEdHh2JiYiRJsbGxam9vH7A/OTnZUsFdXQ719vZZug18\nKyQkWHZ7RMD3pqvL4bP77uu9rCNHKj1+jOnT0wZ8QnE1vqx5KLq6HDp37uJIl2GMsTJ3RiN6Yzb6\nY64rvfEWS0G1ublZRUVFOnjwoPt805qaGkVHRysrK0vbtm2T0+l0/w/06NGjmjFjhiQpPT1dlZWV\n7vtyOByqra1VUVGRpYJ7e/t0+TJPShMFem98+WJ48XyLtr57VpGHugcd293ZqPXFfcrMzBp0rGkv\n4IH+HBkqfi/mojdmoz+Bz1JQTUtL0/Tp07Vy5UqVlJSoublZzz33nB577DFlZ2fr+uuv14oVK7Rk\nyRL94Q9/UE1NjZ599llJUn5+vl5//XVt3bpVc+bMUWlpqRISEjRz5kyfHBgw2ni69BUAAGOFpTNe\ng4ODtWXLFo0bN04PPPCAVq1apR//+Md66KGHFBwcrLKyMrW3tys/P1/vvvuuNm/erLi4OElSfHy8\nNm3apL179+q+++5Td3e3SktLfXJQAAAAGP0sX0wVExOjjRs3XnXflClTVF5efs3b5uTkaP/+/VYf\nEgAAAGMQ6zoAAADASARVAAAAGImgCgAAACMRVAEAAGAkgioAAACMRFAFAACAkQiqAAAAMBJBFQAA\nAEYiqAIAAMBIBFUAAAAYiaAKAAAAIxFUAQAAYCSCKgAAAIxEUAUAAICRCKoAAAAwEkEVAAAARiKo\nAgAAwEgEVQAAABiJoAoAAAAjEVQBAABgJIIqAAAAjERQBQAAgJEIqgAAADASQRUAAABGIqgCAADA\nSARVAAAAGImgCgAAACMRVAEAAGAkgioAAACMRFAFAACAkQiqAAAAMBJBFQAAAEYiqAIAAMBIBFUA\nAAAYiaAKAAAAIxFUAQAAYCSCKgAAAIxEUAUAAICRCKoAAAAwEkEVAAAARiKoAgAAwEgEVQAAABiJ\noAoAAAAjEVQBAABgJIIqAAAAjERQBQAAgJEIqgAAADASQRUAAABGIqgCAADASKFWBre2tmrt2rU6\nfPiwwsPDddddd6m4uFg2m01r1qzRjh07FBQUJJfLpaCgIP3Hf/yHfvSjH0mSDh06pHXr1qmpqUkZ\nGRlavXq1pkyZ4pODAgJZX+9lnT59yqOxno4DAMBEloLqsmXLFBUVpZ07d+r8+fNauXKlQkJCtHz5\ncjU0NOiJJ57Qvffe6x4/fvx4SVJLS4sKCwv1+OOPKycnR6WlpSosLNS+ffu8ezTAGHDxfIu2vXdW\nkZ9cGHRsa0OFYqdm+6EqAAC8z+Og2tDQoOrqan300UeaOHGipL8G1/Xr12v58uWqr6/X4sWLFR0d\nPeC2u3fvVlpamhYtWiRJWrdunWbPnq2KigplZ/M/UcCqyOgERcXdNOi47s4mP1QDAIBveHyOakxM\njF577TV3SJUkl8ul7u5uXbhwQa2trbrhhhuuetvjx4/3C6Th4eFKSUlRVVXV0CsHAABAQPM4qEZG\nRmr27Nnun10ul3bs2KHvfe97amhoUFBQkMrKynTnnXdq/vz5evvtt91j29raNHny5H73N2nSJLW2\ntnrhEAAAABCILJ2j+nXr16/XqVOntGfPHn322WcKDg5WYmKiFi5cqCNHjmjVqlUaP3688vLy1NPT\nI5vN1u/2NptNTqfT8uOGhLBQgWmu9CTQexPox+cPISHBCg3l93jFWJk7oxG9MRv9MZe3ezKkoLph\nwwaVl5frpZde0rRp0zRt2jTl5ubKbrdLkm6++WadOXNGb775pvLy8hQWFjYglDqdTvd4K+z2iKGU\nDD8woTdOp1PHjx/3eHx6evqAP6KuxYTjG836ei+ruflzj3+PVnoz2vHcMhe9MRv9CXyWg+rq1au1\na9cubdiwQXl5ee7t3wydU6dO1eHDhyVJsbGxam9v77e/o6NDycnJlgvu6nKot7fP8u3gOyEhwbLb\nI4zoTWXlUf18wx5FRicMOra7s1HPL3fottuyPLrvri7HcMsb0y6eb9GLb55VZHT7oGOt9ma0Mmnu\noD96Yzb6Y64rvfEWS0G1tLRUu3bt0osvvqgf/OAH7u0bN25UVVWVtm/f7t528uRJ3XjjjZL++s5I\nZWWle5/D4VBtba2KioosF9zb26fLl3lSmsiE3vT29nl8RfyV8Z7WzIvh8PmqN6PdWDrW0YbemI3+\nBD6PTySor69XWVmZCgoKlJmZqY6ODve/OXPmqKKiQtu3b1dTU5N27typffv2afHixZKk/Px8VVZW\nauvWraqrq1NJSYkSEhI0c+ZMnx0YAAAARjeP31H9/e9/r76+PpWVlamsrEyS3N9AdfLkSW3cuFEv\nv/yyXn75ZcXHx+v555/XrbfeKkmKj4/Xpk2btHbtWm3ZskW33XabSktLfXNEAAAACAgeB9WCggIV\nFBRcc39ubq5yc3OvuT8nJ0f79++3Vh0AAADGLNZ1AAAAgJEIqgAAADASQRUAAABGIqgCAADASARV\nAAAAGImgCgAAACMRVAEAAGAkgioAAACMRFAFAACAkQiqAAAAMBJBFQAAAEYiqAIAAMBIBFUAAAAY\niaAKAAAAIxFUAQAAYCSCKgAAAIwUOtIFAMA39fVe1unTpyzdJjU1TTabzUcVAQBGAkEVgHEunm/R\ntvfOKvKTCx6N7+5s1PpiKTMzy8eVAQD8iaAKwEiR0QmKirtppMsAAIwgzlEFAACAkQiqAAAAMBJB\nFQAAAEYiqAIAAMBIBFUAAAAYiaAKAAAAIxFUAQAAYCSCKgAAAIxEUAUAAICRCKoAAAAwEkEVAAAA\nRiKoAgAAwEgEVQAAABiJoAoAAAAjEVQBAABgJIIqAAAAjERQBQAAgJEIqgAAADASQRUAAABGIqgC\nAADASARVAAAAGImgCgAAACMRVAEAAGCk0JEuABgpfb2Xdfr0KY/HWxkLAACGj6CKMevi+RZte++s\nIj+54NH41oYKxU7N9nFVAADgCoIqxrTI6ARFxd3k0djuziYfVwMAAL6Oc1QBAABgJIIqAAAAjERQ\nBQAAgJEIqgAAADCSpYupWltbtXbtWh0+fFjh4eG66667VFxcLJvNpubmZq1atUrHjh1TfHy8SkpK\nNHv2bPdtDx06pHXr1qmpqUkZGRlavXq1pkyZ4vUDQmBxOp06caLG4/EsIQUAQOCwFFSXLVumqKgo\n7dy5U+fPn9fKlSsVEhKi5cuXa8mSJUpOTtbevXt14MABLV26VO+//77i4uLU0tKiwsJCPf7448rJ\nyVFpaakKCwu1b98+Xx0XAsSJEzX6xQu/U2R0gkfjWUIKAIDA4XFQbWhoUHV1tT766CNNnDhR0l+D\n6/r165WTk6Pm5mbt3r1bYWFhKigo0Mcff6w9e/Zo6dKleuutt5SWlqZFixZJktatW6fZs2eroqJC\n2dmECnw7lpACAGBs8jioxsTE6LXXXnOH1Cu6u7t1/PhxpaamKiwszL09KytLx44dkyRVV1f3C6Th\n4eFKSUlRVVUVQTUAOJ1OVVTUqqvLod7ePo9uk5qaJpvN5uPKAADAaOZxUI2MjOx3zqnL5dKOHTs0\na9Ystbe3a/Lkyf3GR0dHq7W1VZLU1tY2YP+kSZPc+zG6ffZZjX6+YY/HH893dzZqfbGUmZnl48oA\nAMBoNuRvplq/fr1OnjypPXv2aPv27QPeHbPZbHI6nZKknp6eb91vRUgICxWYJjg4yNLH89Jf+xga\nOngv6Tc85elzyiRXnt88z81Db8xGf8zl7Z4MKahu2LBB5eXleumllzRt2jSFhYXpyy+/7DfG6XQq\nPDxckhQWFjYglDqdTtntdsuPbbdHDKVk+ND48eGWb2O3R2jChOs8Ggd4wtPnlIl4npuL3piN/gQ+\ny0F19erV2rVrlzZs2KC8vDxJUmxsrOrq6vqN6+joUExMjHt/e3v7gP3JycmWC7ZyHiT848KFHsu3\n6epy6Ny5ix6NAzzh6XPKJCEhwbLbI3hdMxC9MRv9MdeV3niLpaBaWlqqXbt26cUXX9QPfvAD9/b0\n9HRt3bpVTqfT/RH/0aNHNWPGDPf+yspK93iHw6Ha2loVFRVZLri3t0+XL/OkNElfn8vybTztIy9A\n8NRofm0YzbUHOnpjNvoT+Dw+kaC+vl5lZWUqKChQZmamOjo63P9mzpyp66+/XitWrFBdXZ1effVV\n1dTUaMGCBZKk/Px8VVZWauvWraqrq1NJSYkSEhI0c+ZMnx0YAAAARjePg+rvf/979fX1qaysTDk5\nOcrJydE//MM/KCcnR8HBwdq8ebPa29uVn5+vd999V5s3b1ZcXJwkKT4+Xps2bdLevXt13333qbu7\nW6WlpT47KAAAAIx+Hn/0X1BQoIKCgmvuT0hIUHl5+TX35+TkaP/+/daqAwAAwJjFug4AAAAwEkEV\nAAAARiKoAgAAwEgEVQAAABiJoAoAAAAjEVQBAABgJIIqAAAAjERQBQAAgJEIqgAAADASQRUAAABG\nIqgCAADASARVAAAAGImgCgAAACMRVAEAAGAkgioAAACMRFAFAACAkQiqAAAAMBJBFQAAAEYiqAIA\nAMBIBFUAAAAYiaAKAAAAIxFUAQAAYCSCKgAAAIxEUAUAAICRCKoAAAAwEkEVAAAARiKoAgAAwEgE\nVQAAABiJoAoAAAAjEVQBAABgJIIqAAAAjERQBQAAgJEIqgAAADASQRUAAABGIqgCAADASARVAAAA\nGImgCgAAACMRVAEAAGAkgioAAACMRFAFAACAkQiqAAAAMBJBFQAAAEYiqAIAAMBIBFUAAAAYiaAK\nAAAAIxFUAQAAYCSCKgAAAIxEUAUAAICRCKoAAAAw0pCDqtPp1Lx581RRUeHetmbNGiUlJSk5Odn9\n3zfeeMO9/9ChQ5o3b54yMjK0aNEiNTU1Da96AAAABKwhBVWn06ni4mLV1dX1297Q0KAnnnhCH374\noT766CN9+OGHWrBggSSppaVFhYWFys/P1969ezVhwgQVFhYO/wgAAAAQkCwH1fr6et1///1qbm6+\n6r6UlBRFR0e7/4WFhUmSdu/erbS0NC1atEiJiYlat26dvvjii37vyAIAAABXWA6qR44c0axZs7Rr\n1y65XC739gsXLqi1tVU33HDDVW93/PhxZWdnu38ODw9XSkqKqqqqrFcNAACAgBdq9QYPPvjgVbc3\nNDQoKChIZWVl+uCDDxQVFaVHHnlE99xzjySpra1NkydP7nebSZMmqbW1dQhlAwAAINBZDqrX0tDQ\noODgYCUmJmrhwoU6cuSIVq1apfHjxysvL089PT2y2Wz9bmOz2eR0Oi09TkgICxWYJjg4yPJtQkKC\nFRo6eC/pNzzl6XPKJFee3zzPzUNvzEZ/zOXtnngtqN5zzz3Kzc2V3W6XJN188806c+aM3nzzTeXl\n5SksLGxAKHU6ne7xnrLbI7xVMrxk/Phwy7ex2yM0YcJ1Ho0DPOHpc8pEPM/NRW/MRn8Cn9eCqqQB\noXPq1Kk6fPiwJCk2Nlbt7e399nd0dCg5OdnSY3R1OdTb2ze8QuFVFy70WL5NV5dD585d9Ggc4AlP\nn1MmCQkJlt0eweuageiN2eiPua70xlu8FlQ3btyoqqoqbd++3b3t5MmTuvHGGyVJ6enpqqysdO9z\nOByqra1VUVGRpcfp7e3T5cs8KU3S1+cafNA3eNpHXoDgqdH82jCaaw909MZs9CfweS2ozpkzR6++\n+qq2b9+uvLw8/fGPf9S+fftUXl4uScrPz9frr7+urVu3as6cOSotLVVCQoJmzpzprRIAjFF9vZd1\n+vQpj8enpqYNOGceAGCeYQXVoKC/XUSTlpamjRs36uWXX9bLL7+s+Ph4Pf/887r11lslSfHx8dq0\naZPWrl2rLVu26LbbblNpaenwqgcASRfPt2jbe2cV+cmFQcd2dzZqfbGUmZnlh8oAAMMxrKB68uTJ\nfj/n5uYqNzf3muNzcnK0f//+4TwkAFxVZHSCouJuGukyAABexLoOAAAAMBJBFQAAAEYiqAIAAMBI\nBFUAAAAYiaAKAAAAI3n1m6kAT1hZ89LK2pgAACCwEFThd1bWvGxtqFDs1Gw/VAUAAExDUMWI8HTN\ny+7OJj9UAwAATMQ5qgAAADASQRUAAABGIqgCAADASARVAAAAGImgCgAAACMRVAEAAGAkgioAAACM\nRFAFAACAkQiqAAAAMBJBFQAAAEYiqAIAAMBIBFUAAAAYiaAKAAAAIxFUAQAAYCSCKgAAAIxEUAUA\nAICRCKoAAAAwEkEVAAAARiKoAgAAwEgEVQAAABiJoAoAAAAjEVQBAABgJIIqAAAAjERQBQAAgJEI\nqgAAADASQRUAAABGIqgCAADASARVAAAAGImgCgAAACMRVAEAAGAkgioAAACMRFAFAACAkQiqAAAA\nMBJBFQAAAEYiqAIAAMBIBFUAAAAYiaAKAAAAIxFUAQAAYCSCKgAAAIxEUAUAAICRhhxUnU6n5s2b\np4qKCve25uZmPfLII8rMzNS//Mu/6KOPPup3m0OHDmnevHnKyMjQokWL1NTUNPTKAQAAENCGFFSd\nTqeKi4tVV1fXb3thYaEmT56svXv36l//9V+1dOlS/fnPf5YktbS0qLCwUPn5+dq7d68mTJigwsLC\n4R8BAAAAApLloFpfX6/7779fzc3N/bZ//PHHampq0q9+9StNnTpVBQUFysjI0J49eyRJb731ltLS\n0rRo0SIlJiZq3bp1+uKLL/q9IwsAAABcYTmoHjlyRLNmzdKuXbvkcrnc26urq5WamqqwsDD3tqys\nLB07dsy9Pzs7270vPDxcKSkpqqqqGk79AAAACFChVm/w4IMPXnV7e3u7Jk+e3G9bdHS0WltbJUlt\nbW0D9k+aNMm9HwAAAPg6y0H1WhwOh2w2W79tNptNTqdTktTT0/Ot+z0VEsJCBaYJDg4a6RIAS0JC\nghUaOvKvJVdez3hdMw+9MRv9MZe3e+K1oBoWFqYvv/yy3zan06nw8HD3/m+GUqfTKbvdbulx7PaI\n4RUKrxs/PnykSwAssdsjNGHCdSNdhhuva+aiN2ajP4HPa0E1NjZ2wCoAHR0diomJce9vb28fsD85\nOdnS43R1OdTb2ze8YuFVFy70jHQJgCVdXQ6dO3dxpMtQSEiw7PYIXtcMRG/MRn/MdaU33uK1oJqe\nnq6tW7fK6XS6P+I/evSoZsyY4d5fWVnpHu9wOFRbW6uioiJLj9Pb26fLl3lSmqSvzzX4IMAgpr2O\nmFYP/obemI3+BD6vnUgwc+ZMXX/99VqxYoXq6ur06quvqqamRgsWLJAk5efnq7KyUlu3blVdXZ1K\nSkqUkJCgmTNneqsEAAAABJBhBdWgoL9dRBMcHKwtW7aovb1d+fn5evfdd7V582bFxcVJkuLj47Vp\n0ybt3btX9913n7q7u1VaWjq86gEAABCwhvXR/8mTJ/v9PGXKFJWXl19zfE5Ojvbv3z+chwQAAMAY\nwboOAAAAMBJBFQAAAEYiqAIAAMBIBFUAAAAYiaAKAAAAIxFUAQAAYCSCKgAAAIxEUAUAAICRCKoA\nAAAwEkEVAAAARiKoAgAAwEgEVQAAABiJoAoAAAAjEVQBAABgJIIqAAAAjERQBQAAgJEIqgAAADAS\nQRUAAABGIqgCAADASARVAAAAGCl0pAuAmZxOp06cqPFo7J/+dNrH1QAAgLGIoIqrOnGiRr944XeK\njE4YdGxrQ4Vip2b7oSoAADCWEFRxTZHRCYqKu2nQcd2dTX6oBgAAjDWcowoAAAAj8Y4qgDGlr/ey\nTp8+Zek2qalpstlsPqoIAHAtBFUAY8rF8y3a9t5ZRX5ywaPx3Z2NWl8sZWZm+bgyAMA3EVQBjDme\nnn8NABhZnKMKAAAAIxFUAQAAYCSCKgAAAIxEUAUAAICRCKoAAAAwEkEVAAAARiKoAgAAwEgEVQAA\nABiJoAq5sCmmAAAP2ElEQVQAAAAjEVQBAABgJIIqAAAAjERQBQAAgJEIqgAAADASQRUAAABGIqgC\nAADASARVAAAAGImgCgAAACMRVAEAAGAkgioAAACMRFAFAACAkUJHugD4h9Pp1IkTNR6PP336lA+r\nAQAAGBxBdYw4caJGv3jhd4qMTvBofGtDhWKnZvu4KgAAgGvzalA9cOCAli5dqqCgILlcLgUFBWnu\n3Ll6+eWX1dzcrFWrVunYsWOKj49XSUmJZs+e7c2HxyAioxMUFXeTR2O7O5t8XA0AAMC382pQraur\nU25urtasWSOXyyVJCgsLkyQtWbJEycnJ2rt3rzvQvv/++4qLi/NmCQAAAAgQXg2q9fX1uummmzRx\n4sR+2z/++GM1Nzdr9+7dCgsLU0FBgT7++GPt2bNHS5cu9WYJAAAACBBeD6pX+zi/urpaqamp7ndX\nJSkrK0vHjh3z5sMDgNf19V62dHFhamqabDabDysCgLHDq0H1888/1x//+EeVlZWpr69P//zP/6xl\ny5apvb1dkydP7jc2Ojpara2t3nx4APC6i+dbtO29s4r85MKgY7s7G7W+WMrMzPJDZQAQ+LwWVM+e\nPauenh6FhYW5L55au3atenp65HA4BrzDYLPZ5HQ6LT9OSAhLvw4Fvzdg6KxciBgSEqzQUM/m25V5\nyfw0D70xG/0xl7d74rWg+vd///c6fPiw7Ha7JCkpKUl9fX1avny5fvjDH6qrq6vfeKfTqfDwcMuP\nY7dHeKXesYbfG+AfdnuEJky4zvJtYCZ6Yzb6E/i8+tH/lZB6RWJioi5duqRJkyapvr6+376Ojg7F\nxMRYfoyuLod6e/uGVedY1NXlGOkSgDGhq8uhc+cuejQ2JCRYdnsEr2sGojdmoz/mutIbb/FaUP3w\nww/185//XB988IH7oqna2lpNmDBBM2bM0Ouvvy6n0+k+BeDo0aOaMWOG5cfp7e3T5cs8Ka1iIgP+\nMZTXKF7XzEVvzEZ/Ap/XgmpmZqYiIiL07//+7yosLFRjY6M2bNign/70p8rOztb111+vFStWaMmS\nJfrDH/6gmpoaPfvss956eAAArsnq10iHhAQrJ+e7PqwIgCe8FlSvu+46bdu2Tc8884wWLFig6667\nTg888IB+8pOfSJLKysq0cuVK5efnKyEhQZs3b2axfwCAX1j9GunuzkZttUdo2rQUH1cG4Nt49RzV\nxMREbdu27ar7pkyZovLycm8+HAAYxeqaq7xr519WVm8AYAavBlUAGMusrLkq8a4dAAyGoAoAXsS7\ndgDgPayUCwAAACMRVAEAAGAkgioAAACMRFAFAACAkQiqAAAAMBJX/QMA8A19vZdVW1vr8XfJp6am\nub8iHID3EFQBAPiGi+db9OKbZxUZ3T7o2O7ORq0vljIzs/xQ2bez+lWxBGyYjqAKAMBVjMY1ca18\nVaxJARu4FoLqKGblL2crX+sIABi9RmPABq6FoDqKWfnLubWhQrFTs/1QFQAAgHcQVEc5T/9y7u5s\n8kM1AKww5YIdq+c1+rIWAPg6gioAjBBTLtix8umMr2sBgK8jqALACDLlfEJT6hgLV62PhWMEvIWg\nCgAwxli4an0sHCPgLQRVAIBRTHl315fGwjEC3kBQBQBgGPp6L1taApDlAgHPEVQBABiGi+dbtO29\ns4r85IJH460sF0gIxlhHUAUAYJisfJRvZblAX4ZgYDQgqALAKGD1nTUp8K8Wt/I7Gc3vNPoqBAOj\nAUEVAEYBq++sjYWrxa38TninERidCKoAMEpwpfhAfDsfENiCR7oAAAAA4GoIqgAAADASQRUAAABG\n4hxVAIAlVlcgCPTVBwD4DkEVAGCJlavtx8LqA6MVS55hNCCoAgAsYwWC0Y8lzzAaEFQBIACNlcXw\nMTz8wQHTEVQBIACxGD6AQEBQBYAAxWL4AEY7lqcCAACAkQiqAAAAMBIf/QMAfMbqEkhc2AXg6wiq\nAACfsboEEhd2Afg6gioAwKesLIHEhV0Avo5zVAEAAGAkgioAAACMRFAFAACAkQiqAAAAMBIXUwEA\ngEFZWWrsq6++kiT93d/9ncf3n5qaJpvNNqTaELgIqgAAYFBWlhprbajQuO/EKjI6waP7/rL9c/10\n3indckuSR+PT09MlXefRWIxuBFUAAOART5ca6+5sUmT0FEvLkm17r9ajENzd2ajnlwcrNvYOj+4b\no9uoCqq58xcrfNx35HK5Bh2bEBOhNf9nhR+qAgAAw2VlvV2MHaMqqPZ+J00hMTd4NLbnLxW+LQYA\nAAA+NaqCqq84nU6dOFHj0VhfniBupQ6J78QGAACBjaAq6cSJGv3ihd95dNK3L08QP3361F/P0fHw\nvvlObAAAEMgIqv+fCSeIXwmefCc2AADeYfXTSpbJMotfg6rT6dQvf/lL/e///q/Cw8P1k5/8RI88\n8og/SxgRVkIwAAC4tr7eyzp16qTs9gh1dTnU29v3reOtfFrZ3dmo9cVSZmaWt8rFMPk1qP76179W\nbW2tysvL1dzcrCeffFLx8fGaO3euP8sAAACj1MXzLdr67ln930PdHo23+mklzOK3oOpwOLRnzx5t\n27ZNSUlJSkpK0uLFi7Vjxw6vB9W+3q/U0XZWVVVHPRrPRUkAAIweVpaysvJppZVv37rCVxdMW7nv\nQOa3oHrq1Cn19vYqIyPDvS0rK0uvvPKK1x+rq/2Mui+O1+rffOrReC5KAgAAVr59S7J2qoCVC7et\n3ncg81tQbW9vV1RUlEJD//aQ0dHRunTpks6dO6cJEyZ49fF89dcWAAAIXL784gG+1MA6v370/823\nr6/87HQ6vf543Z2NHo/9y5d/ljT4t11ZHct9c98jfd+m1MF9c98jfd+m1MF9B9Z9d3c26k9/ilRI\nSPCgY//0p9OWskl3Z6NCQmYqNHTw+zaJJ78LK/wWVMPCwgYE0is/R0REeHQfB3/7uNfrAgAA8LV/\n/Mc7VFg40lWMPn6L6bGxsTp//rz6+v62jERHR4fCw8Nlt9v9VQYAAABGCb8F1eTkZIWGhurYsWPu\nbZ9++qmmT5/urxIAAAAwivgtqIaHh2v+/Pl66qmnVFNTowMHDmj79u16+OGH/VUCAAAARpEgl8vl\n+VnDw9TT06Onn35a//M//6PIyEgtXrxYCxcu9NfDAwAAYBTxa1AFAAAAPDW61jwAAADAmEFQBQAA\ngJEIqgAAADASQRUAAABGIqgCAADASEYFVafTqZUrVyo7O1s5OTnavn37NcfW1tbq/vvvV0ZGhu67\n7z6dOHHCj5WOPVZ689hjjykpKUnJycnu/x48eNCP1Y5dTqdT8+bNU0VFxTXHMHdGhie9Ye74V2tr\nq5YtW6bbb79dd955p5599tkBX/V9BfPGv6z0hnnjf42NjXr00UeVmZmp3Nxcbdu27Zpjhzt3Qodb\nrDf9+te/Vm1trcrLy9Xc3Kwnn3xS8fHxmjt3br9xDodDBQUFmj9/vp599lm9+eab+rd/+zcdOHBA\n4eHhI1R9YPO0N5LU0NCg559/Xt/97nfd2/iaXN9zOp0qLi5WXV3dNccwd0aGJ72RmDv+tmzZMkVF\nRWnnzp06f/68Vq5cqZCQEC1fvrzfOOaN/3naG4l5428ul0sFBQVKT0/XO++8ozNnzqi4uFhxcXG6\n++67+431ytxxGeIvf/mL69Zbb3VVVFS4t23ZssW1cOHCAWN3797tysvL67dt7ty5rv/6r//yeZ1j\nkZXeXLp0yZWSkuI6c+aMP0sc8+rq6lzz5893zZ8/35WUlOQ6cuTIVccxd/zP094wd/yrvr7elZSU\n5Ors7HRv++///m/XHXfcMWAs88a/rPSGeeN/bW1trp/97GeuixcvurctXbrU9fTTTw8Y6425Y8xH\n/6dOnVJvb68yMjLc27KyslRdXT1gbHV1tbKysvptu+2221RVVeXzOsciK735/PPPFRQUpClTpviz\nxDHvyJEjmjVrlnbt2iXXt3yHB3PH/zztDXPHv2JiYvTaa69p4sSJ7m0ul0vd3d0DxjJv/MtKb5g3\n/hcTE6MXXnhB48aNkyQdPXpUFRUVuv322weM9cbcMeaj//b2dkVFRSk09G8lRUdH69KlSzp37pwm\nTJjg3t7W1qabb7653+2jo6MH/VgNQ2OlN/X19Ro/fryWL1+uw4cP6/rrr1dRUZHuuOOOkSh9zHjw\nwQc9Gsfc8T9Pe8Pc8a/IyEjNnj3b/bPL5dKOHTv0ve99b8BY5o1/WekN82Zk5ebmqqWlRd///vev\neiqgN+aOMe+oOhwO2Wy2ftuu/PzNE6h7enquOvZaJ1pjeKz0pqGhQZcuXVJOTo62bdumO++8U489\n9hgXHhiCuWMu5s7IWr9+vU6dOqWf/exnA/Yxb0bWt/WGeTOyNm3apP/8z//UyZMntXbt2gH7vTF3\njHlHNSwsbEDhV36OiIjwaCwntfuGld4sXbpUDz/8sCIjIyVJt9xyiz777DPt2rVLv/rVr/xTMK6J\nuWMu5s7I2bBhg8rLy/XSSy8pMTFxwH7mzcgZrDfMm5GVmpoqSSopKdHy5cu1YsWKfp++emPuGPOO\namxsrM6fP6++vj73to6ODoWHhw+4ei82Nlbt7e39tnV0dCgmJsYvtY41Vnojyf2CcUViYqLa2tp8\nXicGx9wxG3PH/1avXq3f/OY32rBhg/Ly8q46hnkzMjzpjcS88bfOzk4dOHCg37Zp06bpq6++0oUL\nF/pt98bcMSaoJicnKzQ0VMeOHXNv+/TTTzV9+vQBY9PT0weciFtZWdnvYh94j5XelJSUaOXKlf22\nnTp1SjfeeKPP68TgmDvmYu74X2lpqXbt2qUXX3xRd9111zXHMW/8z9PeMG/8r7m5WUVFRf3+GKip\nqdHEiRMVFRXVb6w35o4xQTU8PFzz58/XU089pZqaGh04cEDbt2/Xww8/LOmvCfzSpUuSpH/6p39S\nd3e3nnnmGdXX12vNmjVyOBzf+mTG0FnpTW5urt599129/fbbamxsVGlpqSorK7Vw4cKRPIQxjblj\nLubOyKmvr1dZWZkKCgqUmZmpjo4O9z+JeTOSrPSGeeN/aWlpmj59ulauXKn6+nodPHhQzz33nB57\n7DFJPpg7Q1lDy1ccDodrxYoVrszMTNcdd9zh+u1vf+ved8stt/Rbd6u6utp17733utLT013333+/\n6+TJkyNR8phhpTe7d+92zZ0713Xrrbe6fvjDH7o+/fTTkSh5zPrmWp3MHXMM1hvmjv+88sorrqSk\npH7/brnlFldSUpLL5WLejCSrvWHe+F9bW5urqKjINWPGDFdOTo7rlVdece/z9twJcrm+ZWE/AAAA\nYIQY89E/AAAA8HUEVQAAABiJoAoAAAAjEVQBAABgJIIqAAAAjERQBQAAgJEIqgAAADASQRUAAABG\nIqgCAADASARVAAAAGImgCgAAACP9P+LiSe6VIn27AAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bus['years_bt_ins'].hist(bins=50)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "7ed85632-6d02-430a-bebc-d657eba72ec7"
}
},
"source": [
"What patterns do we see?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "cdf2bce5-1714-4e43-a4d8-8eda87cb5075"
}
},
"source": [
"1. Two modes at 1.0 and 2.0. Why?\n",
"\n",
"Inspections are required annually. Why longer than 1 year?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "68c5537b-5cd0-4904-ab81-371df0c45407"
}
},
"source": [
"# Understanding Scores"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "a4d7d8c4-d054-4d2d-b5d9-26e307530cd7"
}
},
"source": [
"Our original goal was to understand scores. Let's see what we can find. Since restaurants can have multiple inspections let's look at the most recent."
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "da721456-1ede-45c2-ac15-6559ad5e6b16"
}
},
"outputs": [],
"source": [
"def most_recent(df):\n",
" return df.sort_values('date', ascending=False).iloc[0]\n",
"\n",
"bus['latest_score'] = ins_grouped_by_bid.apply(most_recent)['score']\n",
"bus['mean_score'] = ins_grouped_by_bid['score'].mean()"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "44195b72-3d7f-4b04-9f84-a14f5e0fa3fb"
}
},
"source": [
"Let's look at the spread of scores."
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "1d1b6ba5-0334-45d5-b182-89eed48c50c4"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nduHGX/zFX8SGDRviiSeeiKampnj66afj3/7t3+LGG2+MiIja2trYtGlTLF++PBobG+Ouu+6KM844\nIxew11xzTaxYsSJWr14dW7dujQULFsRVV12Vu+0XAAC8n+P6Cu2AAQNy/3vChAnxyCOPxJIlS2LJ\nkiUxatSoePDBB+O8886LiIhRo0bFo48+GosWLYqlS5fGpEmT4rHHHss9//LLL4+33nor7r333jh0\n6FBMnz49br/99uPZHgAABWBA9vdvJtsPvPPObwvyWxaFZtCggVFefrJ5FwjzLizmXVgKfd6bN2+M\nhU/9PIaeena+t3JC7N/zy3jpn3r/C5buFQEAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0\nAAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIE\nLQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0\nQQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAk\nTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRuU7w0AAPy+TCYT27Y15HsbJ8Tr\nr+/I9xb6BUELAPQp27Y1xJce+lEMqRid76185Fp2bYiRZ9XkexvJE7QAQJ8zpGJ0DD317Hxv4yN3\n8O2mfG+hX3ANLQAASRO0AAAkTdACAJA0QQsAQNIELQAASXOXAwDo4/rzfVmLigZGWdngaGtrj66u\nwxHh3qz0nKAFgD6ukO7LGuHerPScoAWABBTKfVkj3JuVnnMNLQAASRO0AAAkTdACAJA0QQsAQNIE\nLQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0\nQQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAk\nTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAA\nSTvmoM1kMjFz5szYsGFD7lhzc3PMmTMnJk6cGDNmzIi1a9d2e866deti5syZUV1dHbNnz46mpqZu\n608++WRceOGFMXny5Jg/f350dnYe6/YAACgQxxS0mUwmbrvttmhsbOx2vK6uLkaMGBH19fVxxRVX\nxC233BJ79uyJiIjdu3dHXV1d1NbWRn19fZSXl0ddXV3uuc8//3wsXbo0Fi5cGE899VRs2bIlFi9e\nfBynBgBAIehx0O7cuTOuuuqqaG5u7nZ8/fr10dTUFPfdd1+cddZZcdNNN0V1dXWsWrUqIiKeffbZ\nmDBhQsyePTvGjh0b999/f7z11lu5r/CuXLkyrr/++rjooovi3HPPjQULFsSqVat8lRYAgD+ox0H7\nyiuvxLRp0+KZZ56JbDabO75169Y455xzoqSkJHds8uTJ8eqrr+bWa2pqcmulpaUxfvz42Lx5cxw+\nfDgaGhpiypQpufXq6uo4dOhQ7Nix45hODACAwjCop0+4+uqr3/d4a2trjBgxotuxioqKaGlpiYiI\nvXv3HrE+bNiwaGlpiba2tujs7Oy2XlRUFEOHDo09e/ZEVVVVT7cJAECB6HHQfpD29vYoLi7udqy4\nuDgymUxERHR0dHzgekdHR+7jD3r+0SoqcuOGQvDenM27MJh3YTHvI/lnAX9YrwVtSUlJHDhwoNux\nTCYTpaWlufX/G6eZTCbKyspyIft+64MHD+7RPsrKevZ40mbehcW8C4t5/45/FvCH9VrQjhw58oi7\nHuzbty+GDx+eW29tbT1ifdy4cVFeXh4lJSWxb9++GDNmTEREdHV1xf79+3PPP1ptbe3R1XX4OM6E\nFBQVDYyyssHmXSDMu7CY95Ha2trzvQXo03otaKuqqmL58uWRyWRyX3HduHFj7ge9qqqqYtOmTbnH\nt7e3x/bt22PevHkxYMCAmDBhQmzcuDH3g2ObN2+Ok046KSorK3u0j66uw/Huuz4BFgrzLizmXVjM\n+3eEPfxhvXZRztSpU+O0006LO++8MxobG2PZsmXR0NAQs2bNioiI2tra2LRpUyxfvjwaGxvjrrvu\nijPOOCMXsNdcc02sWLEiVq9eHVu3bo0FCxbEVVdd1e2uCQAA8H8dV9AOGDDgdy80cGAsXbo0Wltb\no7a2Nn784x/HY489FqeeempERIwaNSoeffTRqK+vj8997nNx8ODBeOyxx3LPv/zyy+Omm26Ke++9\nN2688caorq6O22+//Xi2BwBAATiuSw5ee+21bh+fccYZsXLlyg98/AUXXBA/+clPPnB97ty5MXfu\n3OPZEgAABcZ9QAAASJqgBQAgaYIWAICkCVoAAJImaAEASJqgBQAgaYIWAICkCVoAAJImaAEASJqg\nBQAgaYIWAICkCVoAAJImaAEASJqgBQAgaYIWAICkCVoAAJImaAEASJqgBQAgaYIWAICkCVoAAJIm\naAEASJqgBQAgaYIWAICkCVoAAJImaAEASJqgBQAgaYIWAICkCVoAAJImaAEASJqgBQAgaYIWAICk\nCVoAAJImaAEASJqgBQAgaYIWAICkCVoAAJImaAEASJqgBQAgaYIWAICkCVoAAJImaAEASJqgBQAg\naYIWAICkCVoAAJImaAEASJqgBQAgaYIWAICkCVoAAJImaAEASJqgBQAgaYIWAICkCVoAAJImaAEA\nSJqgBQAgaYIWAICkCVoAAJImaAEASJqgBQAgaYIWAICkCVoAAJImaAEASNqgfG8AAI5FJpOJbdsa\n8r2NE+L113fkewvQpwlaAJK0bVtDfOmhH8WQitH53spHrmXXhhh5Vk2+twF9lqAFIFlDKkbH0FPP\nzvc2PnIH327K9xagT3MNLQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIE\nLQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0\nQQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAkTdACAJA0QQsAQNIELQAASRO0AAAk\nTdACAJC0Xg3a1atXR2VlZYwbNy7391tvvTUiIpqbm2POnDkxceLEmDFjRqxdu7bbc9etWxczZ86M\n6urqmD17djQ1NfXm1gAA6Kd6NWgbGxvj4osvjrVr18batWtjzZo1sWjRooiIuPnmm2PEiBFRX18f\nV1xxRdxyyy2xZ8+eiIjYvXt31NXVRW1tbdTX10d5eXnU1dX15tYAAOinejVod+7cGWeffXaccsop\nUVFRERUVFfGxj30s1q9fH83NzXHffffFWWedFTfddFNUV1fHqlWrIiLi2WefjQkTJsTs2bNj7Nix\ncf/998dbb70VGzZs6M3tAQDQD/V60I4ZM+aI41u3bo1zzjknSkpKcscmT54cr776am69pqYmt1Za\nWhrjx4+PzZs39+b2AADoh3o1aN9444146aWXYvr06XHppZfGgw8+GIcOHYrW1tYYMWJEt8dWVFRE\n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\nbDbbZ65E7ujoiAULFsTzzz8fQ4YMiRtvvDGuu+66fG8LAIA+rE8FLQAA9FSfueQAAACOhaAFACBp\nghYAgKQJWgAAkiZoAQBIWpJBu3r16qisrIxx48bl/n7rrbdGRERzc3PMmTMnJk6cGDNmzIi1a9fm\nebccj0wmEwsWLIipU6fGJz/5yXj44Ydza2bd/zz33HNHvLcrKytj/PjxERHR1NRk5v3Inj174m//\n9m9j8uTJ8alPfSqeeuqp3Jr3d//03//93zFv3ryoqamJ6dOnx3PPPZdbM/P+I5PJxMyZM2PDhg25\nYx8233Xr1sXMmTOjuro6Zs+eHU1NTT36M5MM2sbGxrj44otj7dq1sXbt2lizZk0sWrQoIiJuvvnm\nGDFiRNTX18cVV1wRt9xyS+zZsyfPO+ZYffWrX43169fH9773vfjGN74Rzz77bDz77LMRYdb90ac/\n/ence3rt2rXx05/+NP7kT/4k9wtW6urqzLwfufXWW+Pkk0+O5557Lu6+++745je/GatXr44I7+/+\n6uabb469e/fGypUr4+67744HHnjAzPuZTCYTt912WzQ2NnY7/oc+f+/evTvq6uqitrY26uvro7y8\nPOrq6nr2B2cTdPvtt2cfeuihI46vW7cuO3HixGxHR0fu2OzZs7OPPvroidwevWT//v3Zc845J7th\nw4bcsWXLlmXvvvvu7Pr16826AHz729/OXnbZZdlMJuP93c8cOHAg+/GPfzz7y1/+MnfsC1/4Qnbh\nwoXe3/1UQ0NDtrKyMtvc3Jw7tmzZsuxf/dVfmXk/0djYmL3yyiuzV155ZbaysjL7yiuvZLPZD++z\nb37zm9nrrrsut9be3p6dNGlS7vlHI8mv0O7cuTPGjBlzxPGtW7fGOeecEyUlJbljkydPjldfffVE\nbo9esnHjxhgyZEhMmTIld2zu3LmxaNGi2LJli1n3cwcOHIjvfve7cfvtt8dJJ53k/d3PlJaWxuDB\ng6O+vj7efffd2LVrV2zatCnGjRvn/d1PNTU1xSmnnBKjRo3KHfv4xz8e//Vf/xU///nPzbwfeOWV\nV2LatGnxzDPPRPb3fm/Xh33+3rp1a9TU1OTWSktLY/z48bF58+aj/rOTDNo33ngjXnrppZg+fXpc\neuml8eCDD8ahQ4eitbU1RowY0e2xFRUV0dLSkqedcjyamppi1KhR8a//+q/xl3/5l3HJJZfE0qVL\nI5vNmnUBePrpp2PkyJFx6aWXRkSYeT9TXFwcX/nKV+Jf/uVfoqqqKi6//PK48MILo7a21qz7qWHD\nhkVbW1s54XaKAAAEsElEQVR0dnbmju3evTvefffdePvtt828H7j66qvjjjvu6BauER/++Xvv3r1H\nrA8bNqxH8x90jHvOm9/85jfR0dERJSUlsWTJkmhubo5FixZFR0dHtLe3R3FxcbfHFxcXRyaTydNu\nOR7/+7//G2+++WY8++yz8cADD0Rra2t85StficGDB5t1AVi1alXcdNNNuY/NvP/ZuXNnXHzxxfH5\nz38+fvGLX8TChQtj2rRpZt1PVVVVxfDhw+O+++6LL3/5y7F379548sknY8CAAdHZ2Wnm/diHvac7\nOjqOe/7JBe3pp58eL7/8cpSVlUVERGVlZRw+fDi++MUvxmc/+9loa2vr9vhMJhOlpaX52CrHqaio\nKH7729/GQw89FKeeempERLz11lvx9NNPxyc/+cnYv39/t8ebdf+xdevWaGlpicsvvzx3rKSkJA4c\nONDtcWaervXr18eqVavixRdfjOLi4hg/fnzs2bMnHn/88Zg2bZr3dz9UXFwcjzzySPzd3/1dTJ48\nOSoqKuLGG2+M+++/PwYOHBjt7e3dHm/m/ceHff4uKSk5Il4zmUyu9Y5Gkpcc/N8THDt2bHR2dsaw\nYcOitbW129q+ffti+PDhJ3J79JIRI0ZESUlJLmYjIsaMGRMtLS0xcuRIs+7H1qxZEzU1NTFkyJDc\nMTPvX7Zt2xZnnnlmt6/KjBs3Lnbv3m3W/di5554bq1evjpdeeileeOGFOPPMM+OUU06J0aNHm3k/\n9mHv6d54zycXtGvWrIlPfOIT3a7B2b59e5SXl8eUKVNi27Zt3Sp/48aNUV1dnY+tcpyqqqqis7Mz\nfvWrX+WO7dy5M0aNGhVVVVVm3Y9t3bo1Jk2a1O1YVVVVbN++3cz7iREjRsSvfvWrePfdd3PHdu3a\nFX/8x3/s/d1PHThwIK655po4cOBAVFRUxMCBA+NnP/tZTJ06Nc477zwz78c+7PN3VVVVbNq0KbfW\n3t4e27dv79H8kwvaiRMnxuDBg2P+/PnxxhtvxAsvvBCLFy+OuXPnRk1NTZx22mlx5513RmNjYyxb\ntiwaGhpi1qxZ+d42x2DMmDFx0UUXxZ133hk7duyIl156KZYvXx7XXHONWfdzv/jFL2Ls2LHdjk2d\nOtXM+5GLL744Bg0aFF/+8pfjzTffjP/8z/+M73znO/E3f/M33t/91B/90R9Fe3t7LF68OJqamuKH\nP/xhPPfcczF37tyYOnVqnH766WbeT33Y5+/a2trYtGlTLF++PBobG+Ouu+6K0aNHx9SpU4/+D+mV\nG4+dYI2NjdkbbrghO2nSpOwFF1yQfeyxx3Jrv/71r7PXXntt9rzzzsvOmDEju379+jzulON18ODB\n7B133JGdNGlS9vzzz88uXbo0t2bW/VdVVVV2zZo1Rxw38/7lvc/lU6ZMyV522WXZ73//+7k1s+6f\n3njjjey1116bra6uzs6YMSP7s5/9LLdm5v3L79+HNpv98Pm++OKL2enTp2erq6uzN9xwQ7f7FR+N\nAdns790oDAAAEpPcJQcAAPD7BC0AAEkTtAAAJE3QAgCQNEELAEDSBC0AAEkTtAAAJE3QAgCQNEEL\nAEDSBC0AAEkTtAAAJO3/ATMQwX4f2Xc2AAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bus['latest_score'].hist(bins=10)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "d099d8d1-e675-49ca-acf6-4d02fb7bc3af"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nf/xDt912m0pLS3Xddddp9+7dkT7qHT8sy9KKFSt08ODBSNvH1ffAgQNasWKFCgsLVVVVpe7u7qiO\naWRgDQQCWr58uZqamtTU1KT9+/frgQcekCStWbNGHo9Hfr9fK1euVE1Njfr6+uZ4xjgTP/7xj9Xc\n3Kwnn3xSDz30kBoaGtTQ0CCJesebL37xi5HXdFNTk/70pz/pggsuiPwBEZ/PR73jzO23364FCxZo\n9+7duvvuu/XII49o3759knh9x6M1a9ZoYGBAu3bt0t13362NGzdS7zhjWZbuuOMOBQKBCe0f9f7d\n29srn88nr9crv9+vtLQ0+Xy+6A4cNtCdd94Z3rx586T2AwcOhIuKisKjo6ORtqqqqvCWLVtiOT3M\noPfeey+cn58fPnjwYKStrq4ufPfdd4ebm5upd5z72c9+Fr722mvDlmXx+o5DQ0ND4c9+9rPhN954\nI9K2du3a8P3338/rOw51dHSElyxZEu7p6Ym01dXVhf/jP/6DeseJQCAQvuGGG8I33HBDeMmSJeG/\n/vWv4XD44/PZI488Er755psjfaFQKHzZZZdFtp8KI6+wHj58WBdeeOGk9vb2duXn58vpdEbaiouL\ndejQoVhODzOopaVFqampKikpibTdeuuteuCBB/TKK69Q7zg2NDSkxx9/XHfeeac+8YlP8PqOQ8nJ\nyUpJSZHf79fY2JjefPNNtba2Kjc3l9d3HOru7tZ5552n7OzsSNtnP/tZvfrqq3r55Zepdxz461//\nqmXLlumZZ55R+F/+7tTHvX+3t7ertLQ00pecnKy8vDy1tbVN+dhGBta33npLL774oq677jpdc801\n+ulPf6oPPvhAwWBQHo9nwli3263+/v45minOVHd3t7Kzs/Wb3/xGX/jCF3T11Vdr+/btCofD1DvO\nPf3008rMzNQ111wjSdQ7DjkcDt1zzz369a9/rYKCAl1//fW68sor5fV6qXccSk9P1/DwsI4fPx5p\n6+3t1djYmI4ePUq948BXvvIVfe9735sQTKWPf/8eGBiY1J+enh5V/ZOmOedZ8/e//12jo6NyOp16\n9NFH1dPTowceeECjo6MKhUJyOBwTxjscDlmWNUezxZn65z//qbffflsNDQ3auHGjgsGg7rnnHqWk\npFDvONfY2Kjq6urIY+odnw4fPqzly5frG9/4hl5//XXdf//9WrZsGfWOQwUFBcrIyND69ev1gx/8\nQAMDA3rqqad01lln6fjx49Q7jn3c63l0dPSM629cYD3//PP10ksvyeVySZKWLFmiEydO6K677tKX\nvvQlDQ8PTxhvWZaSk5PnYqqYAYmJiXr//fe1efNmZWVlSZKOHDmip59+WldccYXee++9CeOpd3xo\nb29Xf3+/rr/++kib0+nU0NDQhHHUe35rbm5WY2OjXnjhBTkcDuXl5amvr087duzQsmXLeH3HGYfD\noccee0zf+c53VFxcLLfbrW9+85vasGGDEhISFAqFJoyn3vHj496/nU7npHBqWVYk602FkUsCTj2B\nxYsX6/jx40pPT1cwGJzQNzg4qIyMjFhODzPI4/HI6XRGwqokXXjhherv71dmZib1jlP79+9XaWmp\nUlNTI23UO/50dnbq05/+9IQrK7m5uert7aXeceqSSy7Rvn379OKLL+r555/Xpz/9aZ133nnKycmh\n3nHs417PM/F6Ny6w7t+/X5/73OcmrIHp6upSWlqaSkpK1NnZOSGlt7S0qLCwcC6mihlQUFCg48eP\n65133om0HT58WNnZ2SooKKDecaq9vV2XXXbZhLaCggJ1dXVR7zji8Xj0zjvvaGxsLNL25ptv6lOf\n+hSv7zg0NDSkG2+8UUNDQ3K73UpISNCf//xnlZWV6dJLL6Xecezj3r8LCgrU2toa6QuFQurq6oqq\n/sYF1qKiIqWkpOj73/++3nrrLT3//PPatGmTbr31VpWWlmrhwoWqra1VIBBQXV2dOjo6VFlZOdfT\nxjRdeOGF+vznP6/a2lq99tprevHFF1VfX68bb7yResex119/XYsXL57QVlZWRr3jzPLly5WUlKQf\n/OAHevvtt/XHP/5RO3fu1Ne+9jVe33HonHPOUSgU0qZNm9Td3a1nn31Wu3fv1q233qqysjKdf/75\n1DtOfdz7t9frVWtrq+rr6xUIBLRu3Trl5OSorKxs6geZkRtzzbBAIBC+5ZZbwpdddlm4vLw8vG3b\ntkjfu+++G77pppvCl156abiioiLc3Nw8hzPFTBgZGQl/73vfC1922WXhyy+/PLx9+/ZIH/WOTwUF\nBeH9+/dPaqfe8efk+3lJSUn42muvDf/yl7+M9FHv+PPWW2+Fb7rppnBhYWG4oqIi/Oc//znSR73j\ny7/ehzUc/vj6vvDCC+HrrrsuXFhYGL7lllsm3K93Ks4Kh//lRloAAACAYYxbEgAAAAD8KwIrAAAA\njEZgBQAAgNEIrAAAADAagRUAAABGI7ACAADAaARWAAAAGI3ACgAAAKMRWAEAAGA0AisAAACMRmAF\nAACA0f5/Pw5thZxnQWkAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bus['latest_score'].hist(bins=200)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "f4c19d28-6d01-4733-a08e-d31df8c7d285"
}
},
"source": [
"The scores seem to be pretty heavily skewed towards 100. Is that good news? There also appears to be a weird clustering around 90. Why?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "8d553346-08d9-44c4-9c14-f26ef17ca8e4"
}
},
"source": [
"### Score inflation?"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "c6d7e0c9-035d-4ec5-aa7c-d900bf8f3959"
}
},
"outputs": [
{
"data": {
"text/plain": [
"count 5730.000000\n",
"mean 90.359860\n",
"std 8.061857\n",
"min 52.000000\n",
"25% 86.000000\n",
"50% 92.000000\n",
"75% 96.000000\n",
"max 100.000000\n",
"Name: latest_score, dtype: float64"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bus['latest_score'].describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What fraction of the restaurants are **poor** (below 70) by the cities standard?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Less than 2.17% of the restaurants have a score of 70 or less.\n"
]
}
],
"source": [
"threshold = 70\n",
"\n",
"fraction = (bus['latest_score'] <= threshold).mean() # <- Why the mean?\n",
"\n",
"print(\"Less than\", str(round(fraction * 100, 2)) + \n",
" \"% of the restaurants have a score of\", threshold, \"or less.\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "e9c33ff1-6a7f-4744-a5a2-b85ef0cc4da3"
}
},
"source": [
"Would you feel comfortable eating at a restaurant that got a score of 90?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "d6a9afe7-53c6-4623-b22c-0e657b226e74"
}
},
"source": [
"# What is the Geographic Distribution of Scores?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "3d4b523f-8da0-4e52-ace7-0fbe6c6f72a5"
}
},
"source": [
"What data could we use to answer this question?"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Bus(name, address, city, state, postal_code, latitude, longitude, phone_number, first_inspect, last_inspect, num_inspect, days_bt_ins, years_bt_ins, latest_score, mean_score)\n",
"\n",
"Ins(score, date, type)\n",
"\n",
"Vio(date, description)\n"
]
}
],
"source": [
"print(\"Bus(\" + \", \".join(bus.columns) + \")\\n\")\n",
"print(\"Ins(\" + \", \".join(ins.columns) + \")\\n\")\n",
"print(\"Vio(\" + \", \".join(vio.columns) + \")\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* City?\n",
"* Postal Code\n",
"* Latitude & Longitude"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Postal Codes (ZIP codes)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "04cc4a1d-b793-414e-8ab6-40275e834ec1"
}
},
"source": [
"### What is our coverage over postal codes?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "d5456c8f-a0c3-413f-bc45-b0861ea190e4"
}
},
"source": [
"What fraction of businesses don't have a postal code?"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "1a2490f9-086d-4a6a-a119-54acafe876fc"
}
},
"outputs": [
{
"data": {
"text/plain": [
"0.041013460015835314"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bus['postal_code'].isnull().mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Is that acceptable?\n",
"\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "158cd87d-acdf-4f5a-8393-17aa8d90cbd2"
}
},
"source": [
"Let's look at how the businesses are spread over the postal codes."
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "8a25f9b4-dd3e-4294-8894-b766eb129653"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqEAAAIUCAYAAAAqpfWYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3XtcVWXe//83hziMI6kIaiaV5i2IBIiYhuZkVo9KbO7B\nzjWjHbBEc3LM1O4sM9PEMEfN0rGDejt3Jk09rEYz7TCpM7eCJoN2F9YkmAfwBGPAVrh+f/Rzf91u\nQfYCL0Bfz8eDR+21rmt/rrX2Wpu364SfMcYIAAAAsMi/sQcAAACACw8hFAAAANYRQgEAAGAdIRQA\nAADWEUIBAABgHSEUAAAA1hFCAQAAYB0hFAAAANYRQgEAAGCdTyHU5XJpypQp6t27t/r166fZs2e7\n5xUVFWn48OFKTEzU4MGDtWHDBo++GzduVGpqqhISEjRs2DAVFhY2zBIAAACg2fEphD7//PPatGmT\nXn/9dc2aNUsrVqzQihUrJEkjR45UZGSksrOzNWTIEI0aNUr79u2TJO3du1cZGRlKS0tTdna2Wrdu\nrYyMjIZfGgAAADQLfnX92/FHjx5VSkqK3nzzTfXq1UuStGjRIv3rX/9SamqqRo4cqU2bNik4OFiS\nNHz4cCUlJWnUqFGaM2eOcnJytGTJEklSRUWFUlJS9Oqrryo5OfkcLRoAAACaqsC6NszJyVHLli3d\nAVSSHn74YUnSa6+9ptjYWHcAlaSkpCRt27ZNkrR9+3aPsBkSEqLu3btr69athFAAAIALUJ1PxxcW\nFqpjx4567733dPPNN2vQoEF65ZVXZIxRcXGxIiMjPdqHh4dr//79kqQDBw54zW/btq17PgAAAC4s\ndT4S+tNPP+lf//qXVqxYoRkzZqi4uFiTJ09WaGioysvLFRQU5NE+KChILpdL0s+n32ubDwAAgAtL\nnUNoQECAjh07pqysLLVv316StGfPHi1fvlz9+vXTkSNHPNq7XC6FhIRIkoKDg70Cp8vlUlhYmE+D\nNcbIz8/Ppz4AAABoeuocQiMjIxUcHOwOoJJ0xRVXaP/+/WrXrp2+/fZbj/YlJSWKiIiQJLVr107F\nxcVe82NiYnwa7KFDx+Tv7x1CAwL8FRYWqtLSclVVVdfpvZz0oVbzqtXUx0ctalGLWufb+KhFLUlq\n3bpFnd6nziE0Pj5elZWV+uGHH3TZZZdJknbt2qWOHTsqPj5er732mlwul/u0e05Ojvsmpvj4eOXm\n5rrfq7y8XDt27NDo0aPrWl6SVF1tVF1d8838VVXVOnGi7iveaR9qNa9aTX181KIWtah1vo2PWtSq\nizrfmHTFFVdowIABmjBhgr7++mv97W9/06JFi3TPPfcoOTlZHTp00IQJE1RQUKCFCxcqLy9PQ4cO\nlSSlpaUpNzdXixYtUkFBgSZOnKioqCj17t3b8cABAADQfPn0sPpZs2bpsssu07333quJEyfq/vvv\n17333it/f38tWLBAxcXFSktL06pVqzR//nz3qfuOHTtq7ty5ys7O1u23366ysjLNmzfvnCwQAAAA\nmr46n46XpF/+8peaMWOGZsyY4TWvU6dOWrp0aY19+/fvr9WrV/s+QgAAAJx3fDoSCgAAADQEQigA\nAACsI4QCAADAOkIoAAAArPPpxqSmwuVyKT8/z/369IemxsbGef2ZUAAAADQdzTKE5ufnaXzWu2oZ\nHuU1r+zgbs0cKyUmJjXCyAAAAFAXzTKESlLL8Ci1at+1sYcBAAAAB7gmFAAAANYRQgEAAGAdIRQA\nAADWEUIBAABgHSEUAAAA1hFCAQAAYB0hFAAAANYRQgEAAGAdIRQAAADWEUIBAABgHSEUAAAA1hFC\nAQAAYB0hFAAAANYRQgEAAGAdIRQAAADWEUIBAABgXWBjD8Aml8ul/Pw8SVJAgL/CwkJVWlquqqpq\nSVJsbJyCgoIac4gAAAAXhAsqhObn52l81rtqGR7lNa/s4G7NHCslJiY1wsgAAAAuLBdUCJWkluFR\natW+a2MPAwAA4ILGNaEAAACwjhAKAAAA6wihAAAAsI4QCgAAAOsIoQAAALCOEAoAAADrCKEAAACw\njhAKAAAA6wihAAAAsI4QCgAAAOsIoQAAALCOEAoAAADrCKEAAACwjhAKAAAA6wihAAAAsI4QCgAA\nAOsIoQAAALCOEAoAAADrCKEAAACwjhAKAAAA6wihAAAAsI4QCgAAAOsIoQAAALCOEAoAAADrCKEA\nAACwjhAKAAAA6wihAAAAsI4QCgAAAOsIoQAAALCOEAoAAADrCKEAAACwjhAKAAAA6wihAAAAsM7n\nEPrJJ58oOjpaMTEx7v+OGTNGklRUVKThw4crMTFRgwcP1oYNGzz6bty4UampqUpISNCwYcNUWFjY\nMEsBAACAZsXnEFpQUKCBAwdqw4YN2rBhg7788ktNmzZNkjRy5EhFRkYqOztbQ4YM0ahRo7Rv3z5J\n0t69e5WRkaG0tDRlZ2erdevWysjIaNilAQAAQLPgcwjdtWuXunbtqjZt2ig8PFzh4eH65S9/qU2b\nNqmoqEjPPfecOnfurPT0dCUkJGjlypWSpBUrViguLk7Dhg1Tly5dNH36dO3Zs0ebN29u8IUCAABA\n0+YohF5xxRVe07dv367Y2FgFBwe7pyUlJWnbtm3u+cnJye55ISEh6t69u7Zu3epk3AAAAGjGfA6h\n33//vf72t7/ppptu0g033KCXXnpJx48fV3FxsSIjIz3ahoeHa//+/ZKkAwcOeM1v27atez4AAAAu\nHIG+NP7xxx9VUVGh4OBgzZkzR0VFRZo2bZoqKipUXl6uoKAgj/ZBQUFyuVySpIqKilrn14W/v5/8\n/f0UEFB7dg4I8FdgoHcbp/3O9B5ne6/69qFW4/ShFrWoRa2mXKupj49a1PKFTyH0kksu0T/+8Q+F\nhYVJkqKjo1VdXa0nnnhCv/nNb1RaWurR3uVyKSQkRJIUHBzsFThdLpf7veqiTZsW8vPzU1hYaK3t\nwsJC1bp1izNOd9Kvpra+ctKHWo3Th1rUoha1mnKtpj4+alGrLnwKoT8X9AyNXbp0UWVlpdq2batd\nu3Z5zCspKVFERIQkqV27diouLvaaHxMTU+fahw4dk7+/n0pLy2ttV1parsOHj51xupN+pwoI8FdY\nWKhKS8tVVVV99kE77EOt83981KIWtah1vo2PWtSSVOcDej6F0C+//FJ/+MMf9MUXX7hvQNqxY4da\nt26tXr166fXXX5fL5XKfds/JyVGvXr0kSfHx8crNzXW/V3l5uXbs2KHRo0fXuX51tVF1tTnrSqqq\nqtaJE95tnParb9v69KFW4/ShFrWoRa2mXKupj49a1KoLn07mJyYmKjQ0VE899ZS+//57ff7558rM\nzNTDDz+s5ORkdejQQRMmTFBBQYEWLlyovLw8DR06VJKUlpam3NxcLVq0SAUFBZo4caKioqLUu3dv\nx4MHAABA8+RTCG3RooUWL16sw4cPa+jQoXr66ad111136YEHHpC/v78WLFig4uJipaWladWqVZo/\nf77at28vSerYsaPmzp2r7Oxs3X777SorK9O8efPOyUIBAACgafP5mtAuXbpo8eLFZ5zXqVMnLV26\ntMa+/fv31+rVq30tCQAAgPNM/e6tBwAAABwghAIAAMA6QigAAACsI4QCAADAOkIoAAAArCOEAgAA\n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\nPnzYSi2bmvo2D7sOHz6s/fv3q7S01FF/p9vT/v37tXDhQt1888268847HdU+cOCAo341aazvUPZJ\n59thfbffuvr3v/+tQ4cOyeVyndM6p7L5O8iXWudkPzHNyCeffGKGDx9uEhMTTXR0tPunZ8+eZtiw\nYWb9+vVn7PfBBx+YKVOmmNWrV5vq6mozdepUExcXZ6Kjo80111xjli5d6tG+srLSzJw501x77bUm\nMTHRZGRkmIKCAo82xcXFJjo62mNaTEyMmTFjhnG5XD4tl6/jO2nt2rXmzjvvNLGxsR7ro2/fvmbM\nmDHmn//8p0/jqInT9fHpp5+aF154wbz33nvGGGM++ugjk5qaapKSksxtt91msrOzvWqNHTvWlJWV\nuV+7XC4zY8YMk5CQYKKjo01KSop588036zz25ORkU1hYeMZ5jz32mFetadOmmfj4eBMdHW369Olj\nFi9e7NVv7dq1ZurUqe7xr1q1ytxyyy0mISHBDB482KxYscKrT48ePUxmZqY5fvx4ncfucrlMVlaW\nue6660xycrJ57LHHzHfffefRpqSkxMTGxnr1dbpNnUliYqLZvXt3ndufjdPtyen4Vq5caZ5++mn3\n6yVLlphbb73V9OzZ06Smppo///nPdR57bbWc7v9OOdkO16xZY+6//373Nn7yJyEhwdx3331m7dq1\nZ6xV3+2pvLzcvP/++2b48OGme/fuJiYmxqSnp5tPP/20xj67du0yjz76qLnhhhvMwIEDzcCBA811\n111nUlJSTExMTN1XVC0a8jv0bNthQ+6T58Lbb79tJk2aZIwxprq62rzxxhvmpptuMvHx8eaWW24x\ny5YtO2M/m9uhr/2cftesW7fO3Hvvve7P5+RPSkqKGTt2rNm5c6fX2JzUcvo7yBjf13t9a52rrBHY\nMFH23Hvrrbc0Z84cPfDAA3r44YcVHh6uoKAguVwulZSUaMuWLRo3bpzGjh2re++9191v8eLFWrBg\ngfr27atnnnlG7733nnbu3KnMzExdeeWVysvL06xZs/TTTz8pPT1dkpSVlaVPP/1U48ePlzFGy5Yt\nU1pammbNmqVBgwa539uc9semqqurtX79eq1fv17jxo3TDTfccNblcjI+SfrLX/6iGTNm6KGHHtLI\nkSO1d+9evfnmm7rrrrt0+eWX67PPPtO9996rOXPmaMCAAZJ8O/V11VVXuf/fyfpYtmyZZs2apWuu\nuUarVq1STk6OPvzwQw0fPlzdu3fXrl279OKLL6q8vNzj8/roo480adIk/fKXv5QkzZs3Tx9++KGm\nTZumLl26aOfOnZo1a5YqKio0YsQISdLTTz9d43L89NNPeumll9zvN3XqVPe8jz/+WJMnT3bP++Mf\n/6iPP/5YM2fOVJcuXbRjxw5lZmaqoqJCI0eOlPTzdvjyyy+rf//+Wr16tbZs2aI1a9bo4YcfVkxM\njL777ju99NJLqqio8PiTtMePH9eaNWu0bt06PfHEExo4cOBZP4OsrCx98sknGjNmjIwxWr58uX7z\nm98oKytL1113nXudnzhxwqOfk21q4sSJNY7D5XIpMzNTLVq0kCRNnz5dkrR58+azLsNJycnJHsvl\n6/bkZHyS9PLLL+vPf/6zhg8fLkl67bXX9Prrr2vEiBG64oorVFBQoJdffllHjx51b09OaznZ/52u\nQyfb4RtvvKF58+bpoYce0qhRo874HTphwgSNGTPGY9t1+h11cvn+8pe/aM2aNfrpp5/UtWtXGWO0\nZMkS9erVq9blffrpp1VVVaUHH3xQL7zwgsaPH689e/Zo+fLlmjZtWr3XoZPvUKfbhpN1eP/998vP\nz69Oy7VkyZJ6rY/Zs2drxYoVeuCBByRJCxYs0NKlS/XII4/oiiuu0K5duzR//nyVlpbq0Ucfdfe3\nuR066efku+a9997TCy+8oAceeEAPPvigfvzxRy1ZskR33323oqKi9Nlnn+muu+7SvHnz1K9fP3c/\nJ7Wc/A5yut6d1nKyn/jEcXy1rH///ubjjz+utc2aNWvMgAEDPKZdd9115vPPPzfGGLNlyxYTHR1t\nPvvsM482n332menfv7/79bXXXmu2bNnifl1dXW1mzJhhYmNjzUcffWSMOfO/nqKjo83evXvNq6++\nanr16mVuvfVW8z//8z+mtLS0xjE7GZ8xxtx4441e7f71r3+Zfv36maqqKmOMMStWrDCDBw/26HPy\nXzDdunWr8ef05XKyPq6//nr3v0oLCgpMt27dvI58rl271tx4440e07p162ZKSkrcrwcNGuT1r9tP\nP/3UXHvtte7XDzzwgOnWrZsZOnSoGTdunMdPbGysGTlypPu1r7VOX/cDBw40n3zyiTHm5yM13bp1\nM3/5y188+qxbt85ruaKjo82PP/5o5s2bZ3r27GmGDBli3nnnHY9/mZ5uwIABZvPmze7X1dXV5vnn\nnzexsbHufeFM26GTberhhx823bp1M7fffruZMGGCx09sbKwZPXq0+/VJgwcPtrY9ORmfMcakpKSY\njRs3ul8PGjTIrFmzxmtdpKSk1LuWk/3f6Tp0sh3269evxiNMJ61du9Zj3zLG2fY0Z84cc/3115vu\n3bubu+66yyxatMj88MMPxhhjunfvbr799ttax2GMMXFxcWbHjh3GGGPuuusu9+e4YsUKc88997jb\nOV2HTr5DnW4bTtbh+++/bxISEkxqaqqZO3durT+ncrI+UlJSzKZNm9yvT/3+PumLL77w2E+Msbsd\nOunn5LvmxhtvNOvWrfN43++++87079/fvV38+c9/NqmpqR5tnNRy8jvIGGfr3WktJ/uJL5rNkdDy\n8nJ16tSp1jYdO3bU0aNHPaYdPnxYl19+uSQpKSlJHTp0UNu2bT3aXHrppR7XN1RUVKhVq1bu135+\nfnryySfl7++vJ554QoGBgUpMTPSqb4zRRRddpBEjRuiuu+7S8uXLtXDhQk2dOlXJycnq2bOnunTp\noosvvlgpKSmOxydJhw4dUrt27TymRUZG6uDBgzp8+LDCw8PVp08fvfDCC+7577//vsaMGaP9+/dr\n2bJlCgoKqm111mt9HD58WP/xH/8hSbr88ssVEBCg6OhojzZdu3bVwYMHPab5+fl5/Ovf39/f63O/\n/PLLPa4PXbx4sd5//31lZWXp2muv1SOPPKKLLrpIkvTJJ59owoQJZ9x2zlTr0ksv9WgTFRXlcd3x\nkSNH1LVrV/e8gIAA93Ke1LlzZx06dMhjmjFGQUFBysjI0D333KP//u//1vz58zVlyhRdffXV6tmz\np6688kqFhYWpT58+kn7e5lu3bu0x3qeeekqBgYF6/PHHNWfOHMXHx3stl5NtauHChfrwww+VmZmp\nvn37KiMjw719rF69Wk888YTXOszOztbYsWNVVFSkt99+W8HBwV5jORMn25OT8UlSZWWlLr74Yvfr\ngIAAtW/f3qNN+/bt9dNPP9W7lpP93+k6dLIdVlRUeG3fp2vXrp3XtddOtqdXXnlFl112maZNm6br\nr79eLVu2rNNynSowMNDdr3Pnztq5c6f69u2ra665Ri+++KK7ndN16OQ71Om24WQdDhkyRJGRkUpP\nT1efPn3OeuS4PuvD5XK5j5BJ0kUXXaSIiAiPNhEREV6/h2xuh076OfmuOXTokDp27OgxrUOHDiop\nKXFvFykpKR7boNNaTn4HSc7Wu9NaTvYTXzSbG5MGDRqkSZMmaevWraqurvaav337dk2aNMnrFFjP\nnj01f/589y+Z9evXKzY21j3/wIEDmj59uvr27euedvXVV2vmzJleQeKJJ57QnXfeqccff1zLly/3\nGsOpH/DFF1+sRx99VOvWrdPy5cuVnJys/Px8zZo1SxkZGfUanyT17dtXzz77rPbs2SPp51+2zz//\nvC655BKFh4fr6NGjeu2119SjRw93n5CQEM2ZM0dVVVV69dVXFRQUVOPPqZysj6SkJM2fP1/ff/+9\nZs+eraCgIL3xxhvui7urqqr02muveZz2l37+Rf7ss89q7ty5WrVqlXr06KFly5a557tcLi1YsMAr\nfN1222167733VFRUpNTUVP3jH//w+nxOZ4zRf/3Xf2n27Nl677331KNHD4/TWpWVlZo/f74SEhLc\n05KTkzVnzhwVFBTopZdeUlBQkBYvXuxerhMnTujVV1/1Wq5Tt43WrVtr1KhRWr9+vZYsWaL4+Hjl\n5uZq2rRpevjhhz1qzZo1y+sfVk8++aTS0tL0+9//Xm+//bbXcjndpm699Va9//77Ki4uVmpqqjZu\n3Fjr+gsKClJWVpakn09715XT/cvX8UnSLbfconHjxmnbtm2SpPT0dGVmZrpvbCksLNTUqVM9Tpc5\nreVk/3e6Dp1shzfccIMmTJigLVu2eF3CUV1drdzcXE2aNEk33XSTxzwn29Nbb72lq6++2j39/vvv\n15IlS9zfV3WRmJioxYsXq6KiQj169ND69etljNE///lPj2DldB06+Q6VnG0bTvfJPn36KD09XbNn\nz67zcjlZH7feeqvGjRunLVu2SJJGjBihF198Ufv27ZMk/fDDD5oyZYrX71eb26GTfk6+a66++mpN\nmTLFvewul0svvPCCOnTooPDwcP373//WokWLPD4/p7Wc/A5yut6d1nK6n9SZo+OnjaCiosJMnjzZ\nxMXFmR49epgBAwaYG264wQwYMMDExcWZuLg489RTT5ljx4559Pvhhx/MTTfdZB5//HGv91y7dq2J\njo42Q4cONQcOHHBP37dvn7njjjtMdHS0+fLLL736zZ0713Tv3t3r9M7ph7vrwsn4jDHm4MGD5s47\n73Rf1N6jRw9z3XXXmby8PGOMMXfffbf59a9/bb7//nuv9/3666/NW2+9VecxOlkfe/bsMUOHDjXd\nunUz8fHx5p133jEzZswwffv2Nffcc49JSUkxKSkpXqfl/vrXv5q5c+eaxx9/3KSmprovDD9y5Igx\nxpg+ffqY/v37m2+++abG8X755Zdm0KBBZvz48SY+Pr7GmwXWrl1rFixYYMaNG2f+8z//033z09Gj\nR40xxvTu3dsMGDDA4+LyvXv3mjvuuMN069bNJCQkmHfffddkZmaaq6++2tx5552mT58+pl+/fl4X\npDvZNvbt22fS0tJqXO+zZ882MTExXtuh023qVBs3bjQ33nijGTt2bK3r0JifL7dYvny5T8vlZP9y\nMr7KykozadIk0717d5OSkmLuvPNOk5SU5L6hMTo62jz00EO1XhZR11pOPuOTfF2HTrbDyspK89xz\nz5mrrrrKxMbGmpSUFPeNPrGxsSY+Pt5MnjzZlJeXe9Sqz/Z0/Phx8+mnn5onnnjCvb6jo6NNVlbW\nWdfVt99+awYNGmQWL15sjh07Zm6++WbTq1cv0717dzNv3jyv9r6uw/p8h55U122jIfZJX/myPior\nK83TTz9tYmNjTZ8+fUxaWpp7Pzl548qIESO89hOb26GTfk6+a4qLi83QoUNNTEyM6d+/v4mPjzcD\nBgwwX331lTHGmHvuuccMHjzY7Nq1y+O9nNRy8jvI6Xp3Wqsh9pPa+Blz2t01TdyxY8e0c+dOHThw\nQBUVFQoODla7du0UExPjviD8dMYYlZSUeJ1eOHjwoIqKihQXFyd/f++Dwt99950iIiLOeCpp165d\nWrdundfNQrfeemudT3PXd3ySlJeXp6KiIrVt21bx8fHu2kePHvU4DdkQfF0f0s+H8kNDQxUaGipJ\n+tvf/qYdO3YoMjJS119/vcLCwmqtWV1drT179rhPcX3++edKSkryOHV0JhUVFZozZ47++te/avny\n5brkkkvqtIw//viju+2XX36pxMTEM25XpaWlCgkJca/vTZs2KT8/X5GRkRo4cKDX+N555x3ddttt\nPm8bkvTtt9+qXbt2Z1xX33zzjdatW+dxs4BUv23qJJfLpblz5+qjjz7SsmXL1KFDB5/HXhsn25PT\n8R06dEg5OTkqLCzUTz/9pICAAEVERCghIUFXXnnlWcdal1pO9//68HU7lH6+zGPnzp0qKSlReXm5\nx3doSEjIGes0xPZUWVmp9evX66OPPtIXX3yhqqoq/epXv9K8efO82v7www+65JJLFBgYqIqKCoWG\nhuqzzz5TYWGh4uLivI7W1Ed9v0Pruh02xDo8144cOaLc3FyP/SQyMlLx8fG64oorauzndDv8+uuv\n3Y/7qct26LSfk++ar776SoWFhQoPD1fPnj3dR98PHTqkNm3a1Di++n6v1fV3kORsvTutda6yRrML\noU5VVlbq66+/1r59++RyuRQaGqqIiAhFR0fXeM2Mkz716XeqzZs36/Dhw+rSpYu6dOlyTmvV1e7d\nu1VWVqZu3bopMNDzcuLjx49r27ZtHnefNhc2tw2bnHxetvqcSV22+cZc73XdJxtifdS11qmMMfrq\nq6+0f/9+de7c2X3N2Nk4qXVSTk6O4uLiagzeJ8PkyWu0pZ9/UYaHh2vHjh364IMP9Kc//cljGaZN\nm6bly5frzTffVO/evd3zRo4cqU8//VS/+93v9OSTT3rdOe5026jt8zpx4oS2bt3a5L7X0tPT9fzz\nzysyMrLGNk62Q2OMx3otLi7W3r171bFjR4WHh9d5fCUlJdq7d68uvfRSj+vaT3UuPq+alsvG98aW\nLVuUmJiogIAAn/s25PjOtk867XOu1uF5H0IrKyuVmZmplStX6vjx42rVqpX7sQ5HjhzRRRddpDvu\nuEPjxo1zfwBO+jjt99NPP2nGjBnKzc3V1VdfrZEjR+qhhx7S//3f/6lVq1Y6cuSIBg0apOnTp3v8\nC8XpGJ3Yv3+/Ro0apby8PElSmzZt9Ic//EFpaWnuNiUlJerfv7927txZr1o22dw2bHLyednqI519\nmz98+LBuuOEGj23e5nqvaXzffPONLr744hr3SSfrw+n+37dvX3344YfuIzLFxcUaMWKEvv76a3e/\na6+9VpmZme4jMk7W+9n07NlT77//vtfNOE7D5FtvvaXXXntN06ZNcz+G7FTr16/XxIkTNWbMGN1z\nzz2SnG8bTf177b333qtx3jPPPKMxY8a4P/9f//rX7nlOlqu0tFRTpkzRN998o1WrVqmsrEzjx4/X\nZ599JmOM/P39NWjQIL3wwgseR9cqKiqUlZWlTZs2KTY2VpMnT9b06dOVnZ2t6upq+fn56dZbb9XU\nqVPdZ8Nsfl42vzeio6MVHx+vF1980X0T2tmci/HVtE867XOu12GzCaGvvvpqnds+8sgj7v9/6qmn\n9NVXX2nKlClKSEjw+FdKVVWVtm7d6p538hmSTvo47Td58mRt375daWlp+uCDD3Tw4EF16NBBL7/8\nssLDw/Xjjz9q7Nix6ty5s8fdZ05qOV2Ho0aN0okTJzR16lT3M/7eeOMN/fa3v9WTTz4p6eedv1+/\nfvr666/rVctJv+awbdhcLiefl60+krNt3uZ6d7pPOlkfTmtFR0drw4YN7qNTY8eO1YEDB/THP/5R\nbdq00f79+zV27Fh16tRJM2bMqFetgQMH1vi8yh9//FHt2rVzfx7r1q2T5CxMSj/fIDNq1CjdfPPN\nNX5O77zzjpYsWaJVq1ZJcr5tOPm8znTpQE1GjRrl/n8n/a699loVFxerbdu2HkeSJWnv3r2KjIxU\nQECA/Pz83Ovd6XKNGTNGe/fu1fjx49WrVy9NmDBB3377raZNm+Z+nu6UKVN02WWXKTMz011r8uTJ\nysnJ0d13362PP/5YpaWlqqys1LRp09zPg548ebKuuuoqPfPMM5Lsfl42f09GR0fr1ltv1ccff6w7\n77xTI0aM8Lr04nRO14WTfdJJn/qMsc4cXUnaCCZMmGC6detmfvWrX5m77767xp9Tnx9njDE9e/Z0\nX0Bbk6+++sokJyfXq4/Tfr1793Y/C6+wsNB069bNfQH0SXl5eSYpKanetZyuw+TkZK+LldeuXWt6\n9Ohhnn/+eWOM9/PPnNZy0q85bBs2l8vJ52WrjzHOtnmb693pPulkfTitdfpNUP379zc5OTkebf75\nz3969HNaa9GiRSYhIcHcc8895t1333X/ZGdnm7i4OLNo0SL3tJNuueUW97MRa3KmZwvGx8eboqKi\nWvvt3r3bxMfHu1873TacfF5PPfWU6datm7nuuuvMfffdV+PP/fff7/G+TvqVlZWZp59+2tx4441m\nw4YNHu+XkJBQ401QTparZ8+eHjeJ9uvXz+Tm5nq8x86dO01iYqLHtGuuuca97o8cOWKio6M9nstr\njDHbt2/3eL6ozc/L5u/J6OhoU1JSYnJycsy9995rYmNjzeOPP24+++wzU1lZecbaTteFk33SSZ/6\njLGums1zQqdPn67LLrtMb775prKysrye9VeTFi1aeD2L8nQHDhzw+Jemkz716XfSpZdeql//+tde\np8IqKyu9Lrh2UsvpOgwNDfX627KDBg3S7Nmz9fvf/16BgYF68MEHPeY7reWkX3PYNmwul5PPy1af\n09V1m7e53p2MT6r/+vj/2rvzoKjO7G/gXySCCxk1qAwKkWiNoCCgGEfcMSougFgjogkgEeKQKM6k\n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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"zipcounts = bus['postal_code'].value_counts()\n",
"zipcounts.name = 'counts'\n",
"zipcounts.plot('bar')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### What do we observe from above?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "7d708053-3a0c-49c6-8a78-58a1dabe3a20"
}
},
"source": [
"#### Observations?\n",
"\n",
"1. 94110 seems to have the most inspections.\n",
"1. Messy Data! `CA` is not a zipcode.\n",
"1. Some postal codes are in extended form."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Visualizing the counts of businesses in each postal code"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Compute the number of occurrences for each postal code:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will use the Folium mapping package. To install it make sure you are in the correct conda environment (e.g., `ds100`) and then use `pip` (not conda which is still a few versions behind):\n",
"\n",
"```bash\n",
"pip install folium\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'0.2.1'"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import folium\n",
"folium.__version__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We need version `0.2.0` or greater."
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "e42e9973-0784-4987-a00e-0034963bfa4f"
}
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import folium\n",
"SF_COORDINATES = (37.76, -122.45)\n",
"sf_map = folium.Map(location=SF_COORDINATES, zoom_start=12)\n",
"\n",
"# choropleth : Greek for choro=area + pleth=multitued\n",
"sf_map.choropleth(geo_path = \"condensed_zipcodes.json\", \n",
" data = zipcounts,\n",
" key_on = 'properties.zipcode',\n",
" threshold_scale = [100, 300, 400, 450, 500, 575],\n",
" fill_color='YlGn', fill_opacity=0.7, line_opacity=0.5)\n",
"\n",
"sf_map"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Get ZIP Code Labels and Areas"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This requires the python area package. In your DS100 conda environment run:\n",
"```pip\n",
"pip install area\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" hectares | \n",
" coords | \n",
"
\n",
" \n",
" zipcode | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 94108 | \n",
" 69.880951 | \n",
" [-122.4079474, 37.7914164] | \n",
"
\n",
" \n",
" 94104 | \n",
" 20.714150 | \n",
" [-122.402450875, 37.79189525] | \n",
"
\n",
" \n",
" 94122 | \n",
" 612.142955 | \n",
" [-122.477982706, 37.7598352941] | \n",
"
\n",
" \n",
" 94130 | \n",
" 231.528932 | \n",
" [-122.367345109, 37.8173646353] | \n",
"
\n",
" \n",
" 94158 | \n",
" 270.461338 | \n",
" [-122.38815998, 37.7694004322] | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" hectares coords\n",
"zipcode \n",
"94108 69.880951 [-122.4079474, 37.7914164]\n",
"94104 20.714150 [-122.402450875, 37.79189525]\n",
"94122 612.142955 [-122.477982706, 37.7598352941]\n",
"94130 231.528932 [-122.367345109, 37.8173646353]\n",
"94158 270.461338 [-122.38815998, 37.7694004322]"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load my geo graphic data\n",
"import json\n",
"import numpy as np\n",
"import area\n",
"\n",
"with open(\"condensed_zipcodes.json\", \"r\") as f:\n",
" geojson = json.load(f)\n",
"\n",
"def extract_info(x):\n",
" postal_code = x['properties']['zipcode']\n",
" coords = x['geometry']['coordinates'][0]\n",
" if len(coords) == 1:\n",
" coords = coords[0]\n",
" hectares = area.area(x['geometry']) / (10000.0)\n",
" return (postal_code, hectares, np.mean(coords, axis=0))\n",
"\n",
"# Construct a dataframe with the number of hectares in each zipcode\n",
"postal_codes = pd.DataFrame(\n",
" [extract_info(g) for g in geojson['features']],\n",
" columns=['zipcode', 'hectares', 'coords']).set_index('zipcode')\n",
"\n",
"postal_codes.head()"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"for zipcode, row in postal_codes.iterrows():\n",
" text = '%s
' % zipcode\n",
" sf_map.add_child(folium.Marker(row['coords'][::-1], icon=folium.DivIcon(html=text)))\n",
"sf_map"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How does this relate to the regions in SF? \n",
"\n",
"---\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Would we expect small zipcodes regions to have as many restaurants as big regions?\n",
"\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Normalizing by ZIP code by area"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"tmp = pd.DataFrame(zipcounts).join(postal_codes)\n",
"density = (tmp['counts'] / tmp['hectares']).dropna()"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nBQVq165dlVleHSOVycjI0JYtW2qUYcvL4yMY23V7/fXX9dBDDwU+fvnll3XJJZcoMzNTl112mV59\n9dWIzeNp6Sq9AAAfv0lEQVTl46yXvDjWJOm9997T9ddfrw4dOqhr16664IIL1LlzZ6Wnp2vgwIFa\nsmRJyPOE+7G/No4RSZo/f74eeOABSYcK1gsvvKDf/e536tChg/r27au///3vVWZ4eax5leX1Y3+4\n9398jROq4cUXX9T06dM1aNAg3XLLLUpOTlZCQoJ8Pp927typVatWafjw4Ro2bJiuu+66SnNmz56t\nWbNmqUuXLnr44Yf15ptvav369crOztaZZ56pnJwcTZkyRfv379ett94adKapU6fqww8/1MiRI2WM\n0Zw5c3TllVdqypQpysrKCixX1R/48fv9+uCDD/TBBx9o+PDh6t27t93G8Xjd3njjDU2cOFGDBw/W\nHXfcoa1bt+qFF17QgAEDdNppp2nZsmW67rrrNH36dPXs2TPoTOvWrQt5/nPOOafSr3m1refMmaMp\nU6aoa9euevvtt7V69WotWrRIN910k84++2zl5eVp0qRJKi4uDno/eueddzR69Ggdf/zxkqQZM2Zo\n0aJFevTRR9W6dWutX79eU6ZMUUlJiYYMGRJ0pgcffLDSr+3fv1+PP/544PuMGzeu0mXfe+89PfTQ\nQ4Fln3zySb333nuaPHmyWrdura+++krZ2dkqKSnRHXfcUWnOiy++qCeeeELdu3fXu+++q1WrVmnx\n4sW65ZZb1LZtW3377bd6/PHHVVJSEvTPlx44cECLFy/W0qVLNWLECPXq1Svodghm6tSpWrJkie69\n914ZYzR37lz913/9l6ZOnaoLL7xQ0qF9X1Vh9eoYuf/++yv9WvkPhvr160uSJkyYUOmyK1euDDrv\n4Tp27Fjp17w6PiTv1u2JJ57QK6+8optuukmS9Mwzz+hvf/ubhgwZotNPP10bN27UE088oT179gQ9\nRryax6vHWcm7/ebVsfb8889rxowZGjx4sO66665f/fk4atQo3XvvvUFzvHzsd+0YmTZtmubPn69B\ngwZJkmbNmqWXX35Zt912m04//XTl5eVp5syZKioq0u23315pjpfHmldZXj32e7n/gzK1oHv37ua9\n994LuszixYtNz549gy5z4YUXmuXLlxtjjFm1apVJSUkxy5Ytq7DMsmXLTPfu3aucqUePHmbVqlWB\nj/1+v5k4caJJTU0177zzjjHGmB07dpiUlJSgOSkpKWbr1q3m6aefNueee67p27evefXVV01RUVGV\nM4Rj3fr06XPE7b777jtz/vnnm7KyMmOMMfPnzzeXXHJJlTP16dPHpKSkmJSUFNOmTZtK/6tqG3m1\nrX/729+a999/3xhjzMaNG02bNm3M66+/XmGZ999/3/Tp0ydoTps2bczOnTsDH2dlZQVyy3344Yem\nR48eQXOMMWbQoEGmTZs25qqrrjLDhw+v8F9qaqq54447Ah/XdKZQ9n+vXr3MkiVLjDHG5OXlmTZt\n2pg33nijwjJLly6tchulpKSYH3/80cyYMcNkZGSYyy67zCxYsMDs3bs36O1+Tc+ePc3KlSsDH/v9\nfjN+/HiTmpoaeFwIZf97dYzccsstpk2bNuYPf/iDGTVqVIX/UlNTzd133x34OJhLLrnEqePDy3Xr\n1q2b+eSTTwIfZ2VlmcWLF1dYZtmyZaZbt24Rmcerx1ljvNtvXh1r559//hHH+i+9//77VT4eefnY\n79ox0q1bN/Ppp58GPj78Z0G5jz76qMr7o5fHmldZXj32e7n/g6mVZyKLi4t1yimnBF2mZcuW2rNn\nT9BlCgsLddppp0mSMjMz1aJFC5144okVljn55JNDeg9ASUmJGjZsGPg4JiZG9913n2JjYzVixAjF\nx8crPT29yhxjjI455hgNGTJEAwYM0Ny5c/Xss89q3Lhx6tixozIyMtS6dWudcMIJ6tatW9jXbdeu\nXWrWrFmFzzVt2lQFBQUqLCxUcnKyzjvvPD322GNVrttbb72le++9V9u2bdOcOXOUkJBQ5W1+jVfb\nurCwUL/5zW8kSaeddpri4uKUkpJSYZmzzjpLBQUFQXNiYmIUExMT+Dg2NvaI++dpp50W0vsjZ8+e\nrbfeektTp05Vjx49dNttt+mYY46RdOilhVGjRlV5369sppNPPrnCMq1ataryfcS7d+/WWWedFVg+\nLi4usM3KnXHGGdq1a1fQHGOMEhISdOedd+raa6/V3//+d82cOVNjx45V586dlZGRoTPPPFNJSUk6\n77zzgmYVFxerUaNGFdb1gQceUHx8vIYOHarp06crLS0taIbk3THy7LPPatGiRcrOzlaXLl105513\nBu7b7777rkaMGBHSPnv99dc1bNgw5efna968eTr22GOrvM2v8er48HLdSktLdcIJJwQ+jouLU/Pm\nzSss07x5c+3fvz8i83j1OCt5t9+8OtZKSkqOONZ/qVmzZlU+Hnn52O/aMeLz+QLP1EnSMcccoyZN\nmlRYpkmTJlUe+14ea15lefXY7+X+D6ZW3hOZlZWl0aNHa+3atfL7/Ud8fd26dRo9enSVL1FkZGRo\n5syZgQeuDz74QKmpqYGvb9++XRMmTFCXLl2qnKlz586aPHnyEQf4iBEj1L9/fw0dOlRz586tMufw\nnX/CCSfo9ttv19KlSzV37lx17NhRubm5mjJliu68886IrFuXLl00ZswY/fDDD5IO/TAYP368Tjrp\nJCUnJ2vPnj165plnQnr/Wb169TR9+nSVlZXp6aefVkJCQqX/BePVts7MzNTMmTO1adMmTZs2TQkJ\nCXr++efl8/kkHXoz8TPPPBP0pXXp0A+kMWPG6KmnntLbb7+tdu3aVXgvnc/n06xZs0IqNpLUr18/\nvfnmm8rPz9ell16qf//73yHd7pcz/eUvf9G0adP05ptvql27dnrppZcCXy8tLdXMmTPVoUOHoDkd\nO3bU9OnTtXHjRj3++ONKSEjQ7NmzA9vo4MGDevrpp6vcRoffrxs1aqS77rpLH3zwgV566SWlpaVp\nzZo1evTRR3XLLbdUuW4dO3bUlClTjvgl8b777tOVV16pP/3pT5o3b16VOV4e/3379tVbb72lHTt2\n6NJLL9Unn3xS5W1+KSEhQVOnTpV06OXf6vLq+CjnxbpdfPHFGj58uD7//HNJ0q233qrs7Gxt375d\nkrRlyxaNGzeuwst24ZzHq8dZybv95tWx1rt3b40aNUqrVq064i0dfr9fa9as0ejRo3XRRRcFzfHy\nsV9y6xjp27evhg8frlWrVkmShgwZokmTJumnn36SJH3//fcaO3ZslR3Cy2PNqyyvHvu93v/BBo64\nkpIS89BDD5n27dubdu3amZ49e5revXubnj17mvbt25v27dubBx54wOzbty9ozvfff28uuugiM3To\n0CO+9v7775uUlBRz1VVXme3bt1c5008//WSuvvpqk5KSYlasWHHE15966ilz9tlnWz8VXV1erVtB\nQYHp37+/SUlJMV27djXt2rUzF154ocnJyTHGGHPNNdeYyy+/3GzatCnk2TZs2GBefPFFq/U5nFfb\n+ocffjBXXXWVadOmjUlLSzMLFiwwEydONF26dDHXXnut6datm+nWrZv55ptvgub885//NE899ZQZ\nOnSoufTSS0379u1NSkqK2b17tzHGmPPOO890797dfP3119brumLFCpOVlWVGjhxp0tLSzObNm0O6\n3fvvv29mzZplhg8fbq644grToUMHk5KSYvbs2WOMMaZTp06mZ8+eZuPGjUFztm7daq6++mrTpk0b\n06FDB7Nw4UKTnZ1tOnfubPr372/OO+88c/7551eZ49X92phD+//KK6+sdP9PmzbNtG3btsr97+Xx\nf7hPPvnE9OnTxwwbNsxqn5XbuHGjmTt3rtVtDufV8fFrqrtupaWlZvTo0ebss8823bp1M/379zeZ\nmZkmJSXFZGRkmJSUFDN48GDrtzdUdx4v74/larrfvDrWSktLzSOPPGLOOecck5qaarp162YuvPBC\n061bN5OammrS0tLMQw89ZIqLi4PmhOOxv1xtHyOlpaXmwQcfNKmpqea8884zV155ZeD+mJaWZlJS\nUsyQIUOqvD96eax5leXVY3849//hYowJ4R2jYbJv3z6tX79e27dvV0lJiY499lg1a9ZMbdu2DbxJ\ntyrGGO3cufOIp7ILCgqUn5+v9u3bKzY29Cdcv/32WzVp0kQNGjQ44mt5eXlaunRplSey9O3bt9ov\n9R7Oy3XLyclRfn6+TjzxRKWlpQXm27NnT4WXqSKpptu63K5du5SYmKjExERJ0scff6yvvvpKTZs2\n1W9/+1slJSVZzeX3+/XDDz8EXp5Zvny5MjMzK7x8YqOkpETTp0/XP//5T82dO1cnnXRStXJ+/PHH\nwG1XrFih9PT0kI+ToqIi1atXL7DfP/30U+Xm5qpp06bq1atXleu2YMEC9evXz5P7dblvvvlGzZo1\n+9X98/XXX2vp0qVB3xQveX/8l/P5fHrqqaf0zjvvaM6cOWrRooV1Rk15dXz8Uk3WbdeuXVq9erW2\nbNmi/fv3Ky4uTk2aNFGHDh105plnWs9S3Xm8fJz1Wk2PtXLFxcVav369du7cqeLi4go/H+vVqxfy\nPOF67HfhGNm9e7fWrFlT4f7YtGlTpaWl6fTTTw85x8tjLRzHbU0e+8P9s79WS6RXSktLtWHDBv30\n00/y+XxKTExUkyZNlJKSYv2eC6+yvJzpcCtXrlRhYaFat26t1q1b1/o8NbF582bt3btXbdq0UXx8\nxbfnHjhwQJ9//nnQM/SOBq7fH13g1f3ItZxfqu6xL7m//6u7buF8DKnJ9i5njNEXX3yhbdu26Ywz\nzgi8ZzKS8wTbRgcPHtTatWsj/jjr1X4zxlR4a8OOHTu0detWtWzZUsnJySHP48XxsWrVKqWnpysu\nLi7k72tr9erVat++vdUvT+E+9ut0iSwtLVV2drZee+01HThwQA0bNgxcCmH37t065phjdPXVV2v4\n8OFVbnSvsrzK2b9/vyZOnKg1a9aoc+fOuuOOOzR48GD95z//UcOGDbV7925lZWVpwoQJQX8j8XIb\neWXbtm266667lJOTI0lq3Lix/vznP+vKK68MLLNz5051795d69evj8hMrnHt/ugir+5HruVUdewX\nFhaqd+/eVR77knv7v7J1+/rrr3XCCSeE/Ljm5WOIV4+1Xbp00aJFi9S4cWNJhwrNkCFDtGHDhkBO\njx49lJ2d/avPUoU6T6j738XHWa9mKioq0tixY/X111/r7bff1t69ezVy5EgtW7ZMxhjFxsYqKytL\njz32WNBnfr08PlJSUpSWlqZJkyYFTvjzWkZGht56662QT4aLxLFfK2dnP/300yEve9ttt1X6tUce\neURffPGFZs+erQ4dOlT4DaCsrExr167V2LFjNW7cuKDX5PMyy6uciRMnat26derfv7/+8Y9/qH//\n/mrRooU+/vhjJScn68cff9SwYcP06KOPBj27ystt5NV+GzdunJKTk/Xxxx/LGKOXXnpJDz30kDZu\n3Kj77rsvsFxVv994NY9XOV5muXZ/dHEbeXU/ci3Hq2Nfcm//V7ZuH330kdW6ebWtg81ku70LCwsr\nfL8JEybouOOO04oVK9S4cWNt27YtkDNx4sSwz+PlNpoxY0aVy5S76667wj7Tgw8+qK1bt+rhhx+W\nJD366KPavn273njjjcB1S8eOHauxY8cqOzu70hwvfz5Kh64Gcemll6p///4aMmTIEW+zCUWvXr0q\nPLt6uOLiYg0cODAw59KlSyvN8XrdKlMrz0Tef//9euONN9SiRYug76OIiYkJetX5zMxMvfjii0HP\nLlq3bp0GDx6szz77LOhMXmV5ldO5c2e98MILatu2rfLz85WVlaX58+dXOLPvyy+/1I033hg4Qy2c\n80je7bdOnTrplVdeqfCSzJIlSzR06FANGDBADzzwQEi/jXo1j1c5Xma5dn90cRt5dT9yLcerY19y\nb/97tW5ebWsvZ0pJSdG//vWvwMuoPXr00BNPPKGMjIzAMrm5ubrhhhuC5ri4jf7yl7/otdde00kn\nnaSWLVtWulxMTEyFM4nDNVNmZqbmzZsXeB9u9+7d9eSTT1a4hM6GDRt07bXXas2aNUFzvPr52LZt\nW61YsULff/+9pk6dqs8//1x9+vRRv3791KVLl5Cf7Xvuuec0c+ZMnX322brqqqsCnzf/dxWRe+65\nJ3Afu+KKKyKybsHUyjOREyZM0KmnnqoXXnhBU6dOPeJ6Y6GqX79+ldcA3L59e+A6fZHI8nKmcief\nfLIuv/zyI166KC0trfIN1l7O49V+S0xMPOJvgGZlZWnatGn605/+pPj4eN18880Rm8erHC+zXLs/\nuriNvLofuZZzuJoc+5Kb+79cTdYtHNu6pjP98vp+zZo1O+KkLr/fb/XSoSvbaPz48Tr11FP13HPP\nadKkSdU+OdCrmZKSkvTdd98FSuTJJ598xCXDdu3apeOOOy5ojpc/H8ufj8vIyNCcOXO0evVqLViw\nQMOHD9fBgwfVrl27wLVLhw4dWmnO4MGDddFFF2nMmDF67bXX9MgjjwRK97hx43TRRReF9HJ2OLrI\nr4kbM2bMmBolVNO5556rzz//XMuXL1ffvn2rlRETE6PHHntMPp9PxhgdOHBA+/fvV0FBgTZu3Ki3\n335b2dnZuvnmm5WZmRmRLK9yvv/+e82bN0+/+c1v1KJFC2VlZQXea7Nv3z4tWbJE48aN08UXXxz0\nYrpebiPJm/22fft2zZ49W02aNFHTpk0Db+4944wzdOqpp+rxxx/XV199pfz8/KAvjXg1j5c5XmW5\ndn/0ar28zPLqfuRajlfHvuTe/vdq3bx8DPFqphkzZmjhwoVaunSpVq9eLZ/Ppw8++ED9+vVTXFyc\nPvvsM40bN06dOnXSb3/72zq1jaRDz2zl5OTogw8+0CWXXFLl8uGc6ZhjjtGYMWPk9/vVsGFDnXPO\nOZowYYKOP/54+Xw+ffTRRxo/frz++Mc/6txzz600x8vjY+bMmRo0aFCguJ500knKysrSzTffrI4d\nO+q4447T9u3btXnzZl166aVBs0444YTA/WbkyJHas2ePMjMz9dxzz+maa64J6axqr3/2V6pGFwiq\noaKiIvPll1/WKOPdd9811113nTnnnHMCfy6pTZs25pxzzjHXXXedWbRoUcSzvMjZv3+/eeCBB8wj\njzxyxNcWL15sOnToYCZOnGhKS0sjtl7larrfSktLTXZ29hF/Sq3cJ598Yi644IKQr4Pnxf3Iyxyv\nsly6P5ZzaRt5dT9yLcfLY98Yt/a/V+vm5WOIVzPt2bPHrF692syfP99MmDDBDB482PTq1cuUlJQY\nY4zp2LGjuf3226v804wubqNye/fuNevXrw95+XDOtGjRInPFFVdUuE+X/9e9e3cze/bskGby6vgI\nx7VLjTl0vcfhw4ebrKws065dO6trcnr9s//X1Omzsw/n9/tVVFSkkpISJSQkqFGjRpW+OTVSWV7O\ndLgDBw4oNjbW+lIC4ZqnJswvLtFQrqysTF9++WXIfyUmmrl+f3SBV/cj13J+qbrHvuT+/q/uuoXz\nMaQm2/uXfv7552pfa7am87j4OOvVTD///LPy8/O1b98+xcfHq0mTJtV6ub2mx8cPP/ygFi1aVOu6\ntKFYsWKFFi1apBEjRgSemQ5VOI/9qCmRAAAgfFauXKm1a9dq27Zt8vl8qlevXuBi8506dQop4+DB\ng8rLy1ObNm0kHTrj+IMPPghc3/HCCy8M+WLqlc2Tnp4e8rUvg81z8skn64ILLgh5Hi/WbePGjTrj\njDMqlNFt27bprbfeClxv9Iorrqjy/Z5er1tlKJEAAKBSW7Zs0Z133qkffvhBZ599tk488cTANQd3\n7typr776Sq1atdKMGTOCnr29YcMG3XHHHYqPj9d7772nvLw83XjjjfL7/WrZsqW2bNmievXq6bnn\nngt6QfVQ5jnllFM0c+bMiMzjZVb5Wd7lZ2CvW7dON954o04++WSdccYZ+s9//qO9e/fqxRdfDJrj\n5boFUyslcuDAgSE/lRrscgFe5bg4k2s5Ls7kWo6LM7mW4+JM0Zrj4kyu5bg4k2s5knTjjTeqUaNG\nmjBhwq8+c1VcXKz7779fe/fu1ezZsyvNGTBggH7zm99o9OjRqlevnm644Qa1aNFC48aN0zHHHCOf\nz6dHHnlEmzZtCnqpKNfm8TLrl5eKGjhwoFq3bq3yc6CNMRo7dqzy8vL08ssvR2TdgqmVS/z84Q9/\n0MMPP6xTTjlFffr0qfUcF2dyLcfFmVzLcXEm13JcnClac1ycybUcF2dyLUeSPv/8c73++uuVvvSZ\nmJiou+66S3/4wx+C5mzYsEGTJ08O5GzcuFGjRo0KXGYmISFBt9xyiy677LI6NY+XWb8s/ps2bdLo\n0aMrfP2GG27Q5ZdfHrF1C6rGp+ZU06effmrat29vVq5c6USOizO5luPiTK7luDiTazkuzhStOS7O\n5FqOizO5lnPJJZeY559/Pugyzz77rLnooouCLtOvXz8zc+bMwMf33HOPmTNnToVlXnnlFfO73/2u\nTs3jZVabNm3MqlWrAmffDxkyxCxdurTCMkuXLjUXXnhhROapSq1dJ/Lkk09WWVmZFixYUOHvZtZW\njoszuZbj4kyu5bg4k2s5Ls4UrTkuzuRajoszuZZz2mmn6aGHHtInn3yi/Px8fffdd/rmm2+0bt06\nLVu2TE8//bT+53/+J3BR+sqcccYZGjNmjD799FPt379fZ5xxhqZPn65NmzZp06ZNmjt3rl544QWN\nGzdOp59+ep2Zx8us9957Ty+99JJmzZqlhQsXqqioSO+++64GDBighIQEzZgxQ48//riuv/76oNd3\n9HLdguHEGgAAENTWrVu1YMECffHFF9q+fbtKSkp07LHHqlmzZkpLS9OVV14Z9CSWcvn5+ZozZ44+\n++wzbdmyRfv371dcXFzgLO8bbrihwp94rCvzSIdO+JkzZ45WrlxZoyy/36/8/Hxt3LhReXl5+vbb\nb/Xoo48qNjZW119/vXr16qUbb7wxoutWGUokAAAArIXnqpg1cOutt2r79u3O5HiZFa05XmZFa46X\nWdGa42UWOZHLitYcL7OiNcfLrGjIWb58uUaMGKHbbrtNL730kkpLSyt8fc+ePbr++usjOlM4c6Ra\nOjv7zTffrPRr//73v/WPf/wjcEX2YGcgeZXj4kyu5bg4k2s5Ls7kWo6LM0VrjoszuZbj4kyu5VSV\n9b//+796++23A5ekqe5MdTlHkhYsWKDx48erX79+SkxM1JNPPqlXX31VzzzzjE455RRJh/7i0MqV\nK4PmVLXfamPdgqmVl7N79OihHTt26MQTTwycbl5u69atatq0qeLi4hQTE6OlS5eGPcfFmVzLcXEm\n13JcnMm1HBdnitYcF2dyLcfFmVzLcXEm13Ik6fe//73uvvtuXXzxxZKkgoIC3X333dq8eXPgwuA7\nd+5U9+7dtX79+jq1bkHV6Nzuatq7d6958MEHTZ8+fcy//vWvCl/r0KFDyH9g3KscF2dyLcfFmVzL\ncXEm13JcnClac1ycybUcF2dyLcfFmVzLKV/++++/r/C5kpISc/3115tu3bqZTZs2mR07dpiUlJSI\nzOTlugVTa9eJNMaYlStXmt///vdm+PDhpqCgwBhTvZXzKsfFmVzLcXEm13JcnMm1HBdnitYcF2dy\nLcfFmVzLcXEml3L69+9vpk2bdsTn9+3bZ/r372/OP/98s2zZsipLpJczeZlTmVo9sebcc8/Vm2++\nqVNOOUWXXXaZ5s+fH/KfaQpHjoszuZbj4kyu5bg4k2s5Ls4UrTkuzuRajoszuZbj4kwu5YwaNUpz\n585V3759tW7dusDnjzvuuMDfp7799tsjOpOXOZXypIrWwMGDB01hYaFZs2aNueKKK0xKSkq1GrJX\nOS7O5FqOizO5luPiTK7luDhTtOa4OJNrOS7O5FqOizO5lLNjxw7zyiuvmO+//94UFhaa7du3m/37\n9xtjjPH7/WbevHnm5ptvjuhMXub8mlq7TuSSJUv03HPP6csvv1RZWVl5oZUk9e7dW7fddptSU1Mj\nluPiTK7luDiTazkuzuRajoszRWuOizO5luPiTK7luDiTazmVZUlSo0aN1KlTJw0ePFjt2rWrk+tW\nKU+qqKWFCxeaTp06mWeffdYsX77cvPrqq+Z3v/udeeGFF8yyZcvMmDFjTFpamlm2bFlEclycybUc\nF2dyLcfFmVzLcXGmaM1xcSbXclycybUcF2dyLcfFmbxct2BqpUT26dPniMG/++47c/7555uysjJj\njDHz5883l1xySURyXJzJtRwXZ3Itx8WZXMtxcaZozXFxJtdyXJzJtRwXZ3Itpzzrww8/dGYmL9ct\nmFo5sWbXrl1q1qxZhc81bdpUBQUFKiwslCSdd955ys/Pj0iOizO5luPiTK7luDiTazkuzhStOS7O\n5FqOizO5luPiTK7llGc1b97cmZm8XLdgaqVEdunSRWPGjNEPP/wgSSotLdX48eN10kknKTk5WXv2\n7NEzzzxT5XsHvMpxcSbXclycybUcF2dyLcfFmaI1x8WZXMtxcSbXclycybUcF2fyct2CqtHzmNVU\nUFBg+vfvb1JSUkzXrl1Nu3btzIUXXmhycnKMMcZcc8015vLLLzebNm2KSI6LM7mW4+JMruW4OJNr\nOS7OFK05Ls7kWo6LM7mW4+JMruW4OJOX6xZMrZ2dLUlffvmltmzZohNPPFFpaWlKSEiQdOiPlJ9w\nwgkRz3FxJtdyXJzJtRwXZ3Itx8WZojXHxZlcy3FxJtdyXJzJtRwXZ/Jy3X5NrZZIAAAA1E21+hdr\nAAAAUDdRIgEAAGCNEgkAAABrlEgAAABYo0QCAADAGiUSAAAA1iiRAAAAsPb/AA5QpP3edC/LAAAA\nAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"density.plot(kind='bar')"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/jegonzal/anaconda3/envs/ds100/lib/python3.5/site-packages/ipykernel/__main__.py:9: FutureWarning: 'threshold_scale' default behavior has changed. Now you get a linear scale between the 'min' and the 'max' of your data. To get former behavior, use folium.utilities.split_six.\n"
]
},
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import folium\n",
"SF_COORDINATES = (37.77, -122.45)\n",
"sf_map = folium.Map(location=SF_COORDINATES, zoom_start=12)\n",
"\n",
"#choropleth : Greek for choro=area + pleth=multitued\n",
"sf_map.choropleth(geo_path = \"condensed_zipcodes.json\", \n",
" data = density,\n",
" key_on = 'properties.zipcode',\n",
" fill_color='YlGn', fill_opacity=0.7, line_opacity=0.5)\n",
"\n",
"sf_map"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "40823a08-ac03-4e85-be8b-6411cae0bd96"
}
},
"source": [
"How does this relate to the regions in SF? \n",
"\n",
"---\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "39231f82-bd9f-44a7-87a3-5a510a5c0b18"
}
},
"source": [
"## More Fine Grained Picture"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "8f12a8ea-ea61-4e7d-9132-6336e28c4027"
}
},
"source": [
"We also have geo-coordinates attached to some of the restaurants. How many are missing?\n",
"\n",
"How many of the entries are missing the latitude or longitude fields? "
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "7a748577-5ae2-43f3-9180-8f1d8245a22a"
}
},
"outputs": [
{
"data": {
"text/plain": [
"0.43008709422011082"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(bus['latitude'].isnull() | bus['longitude'].isnull()).mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We having missing values for 43% of the businesses. Is that a problem?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "24bb3bf9-2f3f-4d70-8325-822ee4c4b41c"
}
},
"source": [
"Nearly half are missing the latitude or longitude information! Let's look at the locations of those that do have a location."
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "b11525a0-a1b4-449d-a2f1-3190a0774ad4"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"There are 3550 businesses with locations.\n"
]
}
],
"source": [
"bus_locations = bus[['name', 'latitude', 'longitude', 'latest_score', 'mean_score']].dropna()\n",
"\n",
"print(\"There are\", len(bus_locations), \"businesses with locations.\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "7f3c46a1-4ad0-4a0f-b773-326a2934d884"
}
},
"source": [
"The following generates a HeatMap of locations where we have collected restaurant data with geo-location information."
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "88b48c9b-776c-48c9-a146-d48c2cf35101"
}
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import folium\n",
"import folium.plugins # The Folium Javascript Map Library\n",
"\n",
"locs = bus_locations[['latitude', 'longitude']].as_matrix()\n",
"\n",
"SF_COORDINATES = (37.76, -122.45)\n",
"sf_map = folium.Map(location=SF_COORDINATES, zoom_start=12)\n",
"sf_map.add_children(folium.plugins.HeatMap(locs, radius = 10))\n",
"sf_map"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "cbc062a8-a223-40ca-ab66-4fe0a304d447"
}
},
"source": [
"# Scores broken down by ZIP code"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "da8f1fea-5531-4b43-b179-4dcfaf3dd59a"
}
},
"source": [
"### Focus on foodie ZIP codes"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "63eeb7cd-65da-4edd-af7b-8bbf6b206d40"
}
},
"source": [
"Lets define a foodie ZIP codes as one that has at least 200 restaurants."
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"collapsed": true,
"nbpresent": {
"id": "47b74af6-79c8-4124-a797-5a06ae840fd5"
}
},
"outputs": [],
"source": [
"# foodie_zips = zipcounts[zipcounts > 200].index\n",
"foodie_zips = density[density > 0.5].index"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"foodie_bus = bus[bus['postal_code'].isin(foodie_zips)]"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "aa79203c-4a48-480a-8332-938d6aaf4afa"
}
},
"outputs": [
{
"data": {
"image/png": "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\n+aC6G7dx40b98ssvioyMVPXq1X1dzg2xLEvjx49X+/btVaZMGV+Xc0NWrVqlPXv2qFSpUqpfv74q\nV67s65KuaPz48WrVqpXRNf4ZK1eu1I8//qhKlSqpadOmCgw0+/f4AwcOaNWqVTp06JAuXryoQoUK\nqUSJErrtttsUGxur0NBQX5d4TRkZGdqyZYsOHDiglJQUBQYGKjQ0VNWrV1fNmjVVsGBBX5fo9yZN\nmqRHHnlEpUuX9nUp123NmjXas2ePSpYsqXr16ikiIsLXJd0QJ7xeS+bk8LsbK6SkpOi5557T999/\nL8uyFBAQoLi4OL311lsqXry4e7tt27bpscce0+7du31Y7ZV99tlnmjVrltLT09WhQwc98MAD6t69\nuzZu3OjO9eijj+qNN97wdanXLTMzUzVr1tQnn3yi2267zdflXNXtt9+uWbNmqWbNmpKk1NRUPfXU\nU9q0aZOynloFChTQE088oYEDB/qy1CuKiopSsWLF9NZbb6lZs2a+LueGzZgxQ7Nnz1ZycrIeeugh\nDRo0SM8++6y+/vpr9za1atXSrFmzVLhwYR9WemVvv/22Zs6cKZfLJUkKCQlR8eLFdfLkSblcLoWF\nhalfv35q166djyu9sunTp2vSpEk6d+6ccnp5KV68uHr37q0uXbr4oDpI9jnHxsbGavr06YqOjpYk\nXbhwQX//+9+1YcMGj/Nrly5d1L9/f1+WelVOeb02PYffXaEdO3asdu7cqXfeeUfVqlXT8uXLNXXq\nVD3xxBOaPn26LX5bXbJkifr3768GDRqoaNGiev3117V8+XLt3btXQ4YMUXR0tFavXq1Ro0apSpUq\n6tatm69LziYuLk4BAQFXXG9Zlv7+978rODhYAQEBWr58eT5Wl3sXLlxwNx/Srw3J7t27NWzYMDVu\n3FiXLl3S0qVL9c4776hMmTLq3r27D6u9spo1a6pv375q0qSJXn75Zdtd8ZgzZ47efvtt3X///Spe\nvLgWLFigpKQk7dixQ5MnT1aDBg20adMmDRgwQBMmTNCLL77o65KzmTNnjhYuXKgJEybojjvuUFJS\nkl599VW1b99eDz/8sHbt2qUZM2bof//3fxUaGqr777/f1yVnM2PGDA0bNkxPPvmk7rvvPlWqVMl9\nRTklJUVJSUn68ssv9fbbbyswMFCdOnXyccU52759+3VtX7t27Tyq5Mbdd999V11vWZaeeeYZ99Xy\nL7/8Mj/Kui7nzp1TZmam++thw4Zp586dGjJkiBo1aqS0tDQtXbpUo0aNUunSpdW1a1cfVpszXz9V\nnQAAGCZJREFUJ7xeSzbJYfmZe++915o7d67Hsq1bt1oNGjSwHnroIev8+fPuZVFRUb4o8ZoeeOAB\na+jQoe6vJ0+ebEVFRVmzZ8/22G7MmDFW8+bN87u8XHnmmWesyMhIq3HjxtbAgQM9Pl566SUrMjLS\neuqpp9zLTBUZGWlt27bN/XVsbKw1ffr0bNuNHTvW2MciK8Py5cutJk2aWNHR0daAAQOsvXv3+rq0\nXGvRooU1duxY99fffvutFRkZme05MXv2bGMfhxYtWljz5s3zWPbDDz9YsbGxVnp6unvZa6+9ZrVp\n0ya/y8uVe++91xo5cuQ1txs5cqTVrFmzfKjoxtStW9eKioq65kdkZKSxrxNPPfWU+xzbr18/j48X\nX3zRioyMtHr27OleZqKczq/Tpk3Ltt3o0aONfV474fXasuyRw+8a2piYGOv777/Ptnzjxo1W7dq1\nrSeffNLKyMgwuqGtXbu2tWbNGvfXJ0+etCIjI60NGzZ4bPf9999btWrVyu/ycm3RokVWbGys9cIL\nL1hnzpxxL8/IyLAiIyOtnTt3+rC63PnjCTcmJibb42BZvz4WtWvXzs/Scu33GS5dumRNnjzZuvvu\nu62oqCirVatW1oQJE6w1a9ZYJ06csNLS0nxcbc5iYmI8nhPnz5/P8Tmxbt06Y58TtWrVsr777juP\nZVk59u/f7162du1aKyYmJr/Ly5U6depYq1atuuZ2K1euNPZxsCzLOnjwoNW8eXPrjjvusJYtW2Z9\n++23V/0w1SeffGLVr1/f6t+/v3X27Fn3crucY51wfnXK67Udcpj97og8EBERobVr12ZbXq9ePQ0Z\nMkRr167VSy+9pMuXL/ugutwpX768du7c6f46PDxc77zzjsqVK+ex3e7du3XTTTfld3m59uCDD2rJ\nkiU6f/68WrVq5R5WcLWhCCY6dOiQMjIyJP06pvbHH3/Mts3WrVuNfiyyhISEqFevXvrmm280bNgw\nValSRVOmTFHXrl11zz33qE6dOr4uMUcVK1bUihUr3F9n/XvHjh0e223btk1ly5bN19pyq3z58tmG\n1qxdu1YBAQEez+0tW7YYm6F69epaunTpNbdbtGiRqlSpkvcF3aCIiAhNmzZNLpdL27dv1z333HPV\nD1M9/PDDWrx4sU6dOqWWLVvqm2++kWSvc+yRI0fcww5iYmKUkJCQbZtt27apfPny+V1arjjl9doO\nOfxuDO3jjz+u+Ph4paamqmXLlqpbt6573f3336+ff/5Zw4cP17Zt23xY5dW1a9dO//73v5WcnKyu\nXbsqPDxcLVu2dK8/ffq0Pv74Y02YMEFPP/20Dyu9trJly2rKlCn66KOP9NJLL6lx48Z6+eWXfV1W\nrgUFBalfv34KCgpStWrVFBQUpBEjRig2NlbVq1fXsWPH9MEHH2jatGl65plnfF1urgUHB6t169Zq\n3bq1Ll++rH379mnfvn06efKkr0vLUefOnfX6669r165dCg0N1erVq9WmTRuNGzdOYWFhqlu3rjZt\n2qSJEycaOc5Oktq3b6/hw4fr8uXLatKkiY4ePaoxY8bo3nvvVWhoqPbu3aspU6bo888/16BBg3xd\nbo6ee+459e7dW0lJSWrWrJmqVKniHkObmpqqpKQkLVu2TJs3b9bo0aN9XO3V3XzzzerXr5/eeust\nde7c2Rbvr8hJhQoVNG3aNM2bN08vvviimjVrppdeesnXZeVKQECAXnjhBQUHB7tnIxo+fLjq16+v\n6tWr6/jx4/roo480ZcoUY1/rnPJ6bYscPrku7EMul8uaPHmy1aBBAys+Pj7HbebNm2fVrl3b2CEH\nLpfLGjlypBUTE5PjOMeFCxdakZGR1iuvvGJlZGT4oMIbc/jwYatLly7WXXfdZUVFRRn/5zDLsqy0\ntDRrx44d1vz586033njDevzxx63bb7/dWr9+vWVZljV//nwrMjLSGjRokMc4SJP88c96djV//nyr\nffv2Vps2bayFCxda6enpVvfu3d3jHCMjI62+ffsa+5xwuVzWv/71L+u2226zIiMjrcjISKtDhw7W\nqVOnLMuyrKVLl1qtWrWyPvzwQx9XenUbN260OnfubEVHR7t/9lk//xo1algdO3a0Vq9e7esycyUz\nM9PaunWrx5AoOzt48KD1xBNPuIcUmX6OvXjxorV161Zr3rx51uuvv261a9fOiomJsdatW2dZ1v+f\nXwcMGGDscCinvF7bIYffTduVxbIspaSkqFixYjmuP3nypFauXKm2bdvmc2W5d+nSJRUsWDDbvJqn\nT59WWlqaKlSo4KPK/pzZs2fryy+/1Jtvvmn0nyWvxvptCpNffvlFmZmZRj8W69evV3R0tIoWLerr\n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\nL178p3IsXrxYDz74oOrUqaNmzZpp1qxZ7nVnz57V4MGD1bhxY9WpU0ePP/641q9f7/H/P/zwQzVv\n3lwxMTF6+umnlZyc7LE+JSVFr732mu666y7Vr19fTz75pHbu3PmnagaAP4uGFgB+M3LkSD300ENa\nvHixGjdurD59+mjr1q2SpGXLlql3796Ki4vTokWL9Oabb+qzzz7Tiy++KOnXW0L27dtXjz76qL74\n4guNHz9eGzdu1LBhwyRJq1evlmVZeuWVV/TKK6/o+PHj6tGjh+rUqaNFixZp0aJFqlOnjl599VWd\nPn36hur/7LPPNHDgQLVp00ZLlizR888/rxEjRmjRokVyuVzq2rWrNm/erBEjRmjBggW69dZb1a1b\nN3dD+umnn+rNN99Ut27d9J///Ee333675s6d67GPHj166OjRo5oyZYo++ugj1alTRx06dNCePXtu\n9McOAH9aAV8XAACmePjhh/X4449Lkl588UWtX79e77//vmJiYjR16lQ1b95cTz31lCSpcuXKcrlc\n6tOnjxISEpSRkaGMjAxVqFBB5cuXV/ny5TVp0iRdvnxZklS6dGlJUmhoqEJDQ3XmzBk9++yz6tat\nm3v/PXr00MKFC3XgwAGVKlXquuufNWuWWrZsqSeffFKSVKlSJaWmpiokJESrV6/W7t279emnn6p6\n9eqSpMGDB2vHjh2aNm2aRo0apdmzZ6tly5Z67LHHJEk9e/bU1q1b3c3qmjVrtH37dq1du1ZhYWGS\npOeff16bN2/WzJkzNWTIkOuuGQC8gYYWAH5zxx13eHxdt25dfffdd5Kkffv2qVWrVh7rY2NjZVmW\n9u3bpxYtWqhly5Z66qmnVKZMGd19991q3LixmjVrluO+IiIi1KZNG82aNUv79u1TUlKS9u7dq4CA\nALlcrhuqf+/evdlqfPTRRyVJ7777rooVK+ZuZrPUr1/fnTGn/1+3bl13Q7tr1y65XC41atTIY5us\nZh4AfIWGFgB+U6CA5ykxMzNTQUFBkiTLsrJtn9V4BgcHS5JGjBihPn366Ntvv9X333+v/v37q169\nepoxY0a2/7t//3517NhRNWvW1F//+lc1b95cpUqV0iOPPHLD9WfVkZOc6s/KkJU7p2b69z8Tl8ul\nYsWKacGCBdm+T8GCBW+kZADwCsbQAsBvduzY4fH1li1bFB0dLUmKjIzMNofshg0bFBAQoGrVqmn7\n9u0aMmSIqlSpos6dO2vSpEl66623tG7duhzHxH7wwQcqXbq0pk2bpu7du+tvf/ubfvnlFwUEBFyx\n+byW6tWrZ8swZMgQPffcc4qMjNS5c+e0f/9+j/WbN2/WX/7yF0lSjRo1tHnz5iv+TG699ValpKQo\nPT1dERER7o/Jkydr+fLlN1QzAHgDDS0A/GbmzJn69NNPlZiYqLffflt79+51j0ft0aOHli1bpokT\nJyoxMVHffPON4uPj1aRJE1WrVk1FixbVnDlzNGLECB08eFD79u3TZ599pipVqrjHwxYpUkQJCQlK\nTk5WhQoV9PPPP+vbb7/V0aNH9dVXX2nw4MGSpPT09Buqv1evXlq6dKlmz56tQ4cOacmSJfrwww/V\ntGlTNWzYUDVq1NCLL76oDRs2KCEhQYMHD9a+ffvUpUsX9/9ftmyZpk2bpqSkJL3//vv66quv3N//\nnnvuUVRUlJ5//nmtW7dOBw8e1JAhQ7Ro0SJ3UwwAvhBg3eilAABwkKioKPXo0UNr167Vjz/+qKio\nKPXv31/169d3b/P5559r0qRJ7jdttW7dWn379nX/uX3lypUaN26cEhISFBQUpDvvvFMDBgxQRESE\nJGncuHGaNm2a7rrrLo0ePVr//Oc/9fXXXysjI0OVK1dWly5dNHbsWLVt21ZPP/20Bg0apCNHjnhM\nvXUtCxcu1NSpU3X48GHddNNN6tatm9q1ayfp15kYhg0bphUrVig9PV01a9bUP/7xD9WrV88j49ix\nY3XkyBHFxMQoJiZGn376qb7++mtJUnJysoYNG6b//ve/unjxoqpXr66+fftmG1cLAPmJhhYA9GtD\nO3ToUD300EO+LgUAcJ14UxgAGC49PV3nzp276jZFihRRkSJF8qkiADALDS0A6Nd3+Jvqiy++0IAB\nA65aY8+ePfXCCy/kY1UAYA6GHAAAAMDWmOUAAAAAtkZDCwAAAFujoQUAAICt0dACAADA1mhoAQAA\nYGs0tAAAALA1GloAAADYGg0tAAAAbI2GFgAAALb2f9PbeNKk+XJqAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"foodie_bus.boxplot(by='postal_code', column='latest_score')\n",
"_ = plt.xticks(rotation='vertical')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### What are the safest places to eat?\n",
"#### What is the least safe place to eat?\n",
"\n",
"\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Another kind of visualization (Skip)"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "8a0fce35-c8e4-49ed-bb6b-0c0ccd46c374"
}
},
"outputs": [
{
"data": {
"image/png": "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\nSUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.violinplot(x=\"postal_code\", y=\"latest_score\", \n",
" data=foodie_bus)\n",
"_ = plt.grid(b=True, which='major', color='w', linewidth=1.0)\n",
"_ = plt.xticks(rotation='vertical')"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "18da7e8d-6ab6-41c4-a03d-352172398d9a"
}
},
"source": [
"Why do the scores go above 100?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\ntqq4xzOb/w21nG+JqDZYWVmbXJb9lpVEVDGmZz+QGKI47vHMpPQgyxsoEdUGnv2ASE2llxxw+UHV\ncY9nJqbLDzjVEpH5caglUlPpdzbl8oOq4x7PbPjmC0QqUnm50N3LDe5ejkBElonLD2oGh1oioocE\nj9QSqcn0RamcaquKezwzUfloDxGpiUMtkZpKD7WllyJQ5XCPZyal19RywCVSk3qn9Lr77AdcfkCk\nAr5QrGZwqCUiekjwSC2RmkzPjy2vQ3Xc49UC3kCJqDbcfWSWQy2RGrimtmZwj2c2XHNARLWLyw+I\nVFX67AccaquKQy0RUSkqv8U1lx8QqYmDbM3gHo+I6CHRsGFD48cajRVsbe0k1hBRRXFNbc2wkR3w\naOAtlEgVKh8xcXVtivHjJ+LsWR3atg3g8gMiJam7D5KNQ62ZmD6Dqe7TmUSklo4dQxAe/g/k5NxC\ncTFPDUREjw4uPyAiIiIi5XGorRV8KoFIFQqvPiAieqRxqDUbTTkfE5EqVD4TAhGpivudquJQS0RE\nRETK41BrJjY2/3sNXocOHSWWEFFl8OAsEdU27ndqBs9+YCZ2dnYYN+5tnD79B3r27CM7h4iIiCwU\nlzrVDA61ZtSpU2f06vV/eWodIkXxgYaIasf/9jVWVtzvVBWXHxARERFJZPoLNIfaquJQS0RUDh6p\nJaLaUHpfw91O1XGoJSIqB4daIqoNpZccWFlxNKsq/uSIiMrFoZaIakPpI7Xc71QVh1oiolLc3Job\nP7a3t5dYQkSPCgcHB+PH3O9UHc9+QERUSkTECCQlfYvmzVvC3b2V7BwiegT07v0i9PoC2Ns7okOH\nTrJzlMWhloioFB+ftujcuQNPxUdEtebJJ9sgNjaW+51q4vIDIiIiIlIeh1oiIiIiUh6HWiIiIiJS\nHodaIiIiIlIeh1oiIiIiUh6HWiIiIiJSHodaIiIiIlIeh1oiIiIiUh6HWiIiIiJSHodaIiIiIlIe\nh1oiIiIiUh6HWiIiIiJSHodaIiIiIlIeh1oiIiIiUh6HWiIiIiJSHodaIiIiIlIeh1oiIiIiUh6H\nWiIiIiJSHodaIiIiIlIeh1oiIiIiUh6HWiIiIiJSHodaIiIiIlIeh1oiIiIiUh6HWiIiIiJSHoda\nIiIiIlIeh1oiIiIiUp7FD7XJycnQarXw8vIy/nf8+PEAgMzMTLz++uvw9/dHr169sG/fPsm1RERE\n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\n5f0/L9Eb8RCGTSEAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.violinplot(x=\"postal_code\", y=\"latest_score\", \n",
" data=foodie_bus,\n",
" cut= 0)\n",
"_ = plt.grid(b=True, which='major', color='w', linewidth=1.0)\n",
"_ = plt.xticks(rotation='vertical')"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "2e1c73c5-ccee-4acf-864b-6711b1b8952d"
}
},
"outputs": [],
"source": [
"score_quantiles = bus[bus['postal_code'].isin(foodie_zips)][['postal_code', 'latest_score']].dropna()\\\n",
" .groupby('postal_code')['latest_score'].quantile([0.1, 0.25, .5, 0.75, 0.9])"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "592f7374-0e4c-4ea5-9c98-c4145175a032"
}
},
"source": [
"# Visualizing the Scores by Zipcode"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "e4ae7a96-56cd-4797-a380-ff32f63f9471"
}
},
"source": [
"First we need to get the boundaries of the zip codes for our foody_zips"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "805458fe-d6c8-49b8-a79c-1c4ef18cded6"
}
},
"outputs": [],
"source": [
"foodie_geojson = geojson.copy()\n",
"foodie_geojson['features'] = [f for f in geojson['features'] if f['properties']['zipcode'] in foodie_zips]"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "65be23bf-9338-42b6-a973-6d3d17ca09ff"
}
},
"source": [
"## Median scores by zipcode"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "f5040d41-b337-4f91-b527-39d1bdad9c9b"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/jegonzal/anaconda3/envs/ds100/lib/python3.5/site-packages/ipykernel/__main__.py:7: FutureWarning: 'threshold_scale' default behavior has changed. Now you get a linear scale between the 'min' and the 'max' of your data. To get former behavior, use folium.utilities.split_six.\n"
]
},
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import folium\n",
"SF_COORDINATES = (37.76, -122.45)\n",
"sf_map = folium.Map(location=SF_COORDINATES, zoom_start=12)\n",
"sf_map.choropleth(geo_str = json.dumps(foodie_geojson), \n",
" data = score_quantiles[:, 0.50],\n",
" key_on = 'properties.zipcode',\n",
" fill_color='BuPu', fill_opacity=0.7, line_opacity=0.5)\n",
"sf_map"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "af5c48ab-663e-4c8f-92f2-920920d3309b"
}
},
"source": [
"## Lower 10% Quantile"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "dd15a594-f6b0-4d68-be7e-35936b294319"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/jegonzal/anaconda3/envs/ds100/lib/python3.5/site-packages/ipykernel/__main__.py:7: FutureWarning: 'threshold_scale' default behavior has changed. Now you get a linear scale between the 'min' and the 'max' of your data. To get former behavior, use folium.utilities.split_six.\n"
]
},
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import folium\n",
"SF_COORDINATES = (37.76, -122.45)\n",
"sf_map = folium.Map(location=SF_COORDINATES, zoom_start=12)\n",
"sf_map.choropleth(geo_str = json.dumps(foodie_geojson), \n",
" data = score_quantiles[:, 0.1],\n",
" key_on = 'properties.zipcode',\n",
" fill_color='BuPu', fill_opacity=0.7, line_opacity=0.5)\n",
"sf_map"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "ba457d36-8106-49c5-8201-32251ef66aff"
}
},
"source": [
"## ZIP Code with most spread (Interquartile Range)"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "acb13661-2d89-445b-a7b7-7a4233e87611"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/jegonzal/anaconda3/envs/ds100/lib/python3.5/site-packages/ipykernel/__main__.py:7: FutureWarning: 'threshold_scale' default behavior has changed. Now you get a linear scale between the 'min' and the 'max' of your data. To get former behavior, use folium.utilities.split_six.\n"
]
},
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import folium\n",
"SF_COORDINATES = (37.76, -122.45)\n",
"sf_map = folium.Map(location=SF_COORDINATES, zoom_start=12)\n",
"sf_map.choropleth(geo_str = json.dumps(foodie_geojson), \n",
" data = score_quantiles[:, 0.75] - score_quantiles[:, 0.25],\n",
" key_on = 'properties.zipcode',\n",
" fill_color='BuPu', fill_opacity=0.7, line_opacity=0.5)\n",
"sf_map"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Low Scoring Locations"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"execution_count": 78,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"SF_COORDINATES = (37.76, -122.45)\n",
"sf_map = folium.Map(location=SF_COORDINATES, zoom_start=12)\n",
"\n",
"cluster = folium.MarkerCluster()\n",
"\n",
"for _, row in bus_locations[bus_locations['latest_score'] < 70.0].iterrows():\n",
" cluster.add_child(folium.Marker(location=[row['latitude'], row['longitude']], \n",
" popup=(row['name'] +\": \" + str(row['latest_score']))))\n",
"sf_map.add_child(cluster)\n",
"sf_map\n",
"\n",
"sf_map"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "caf329ee-6d01-4ab1-973b-b76b76053af9"
}
},
"source": [
"# What kinds of violations are correlated with low scores?"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "36bf1e4c-5dfc-45e6-8186-6f83171dffed"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" date | \n",
" description | \n",
"
\n",
" \n",
" business_id | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 10 | \n",
" 2016-05-03 | \n",
" High risk food holding temperature [ date vi... | \n",
"
\n",
" \n",
" 10 | \n",
" 2016-05-03 | \n",
" High risk food holding temperature [ date vi... | \n",
"
\n",
" \n",
" 10 | \n",
" 2016-05-03 | \n",
" High risk vermin infestation | \n",
"
\n",
" \n",
" 10 | \n",
" 2016-05-03 | \n",
" Unapproved or unmaintained equipment or utensils | \n",
"
\n",
" \n",
" 10 | \n",
" 2016-05-03 | \n",
" No thermometers or uncalibrated thermometers | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date description\n",
"business_id \n",
"10 2016-05-03 High risk food holding temperature [ date vi...\n",
"10 2016-05-03 High risk food holding temperature [ date vi...\n",
"10 2016-05-03 High risk vermin infestation\n",
"10 2016-05-03 Unapproved or unmaintained equipment or utensils\n",
"10 2016-05-03 No thermometers or uncalibrated thermometers "
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vio.head()"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "e692ec8f-54d6-4e90-a703-96e9bd13fa0f"
}
},
"outputs": [
{
"data": {
"text/plain": [
"Unclean or degraded floors walls or ceilings 986\n",
"Moderate risk food holding temperature 661\n",
"Unapproved or unmaintained equipment or utensils 649\n",
"Inadequate and inaccessible handwashing facilities 557\n",
"Wiping cloths not clean or properly stored or inadequate sanitizer 527\n",
"Improper food storage 492\n",
"Inadequately cleaned or sanitized food contact surfaces 491\n",
"Food safety certificate or food handler card not available 407\n",
"Foods not protected from contamination 381\n",
"Moderate risk vermin infestation 373\n",
"Unclean nonfood contact surfaces 352\n",
"Low risk vermin infestation 314\n",
"Inadequate food safety knowledge or lack of certified food safety manager 294\n",
"Permit license or inspection report not posted 290\n",
"Improper storage of equipment utensils or linens 245\n",
"Improper or defective plumbing 225\n",
"High risk food holding temperature 196\n",
"Inadequate warewashing facilities or equipment 184\n",
"Unclean or unsanitary food contact surfaces 151\n",
"Inadequate ventilation or lighting 148\n",
"No thermometers or uncalibrated thermometers 144\n",
"Improper thawing methods 122\n",
"Unclean hands or improper use of gloves 121\n",
"Improper storage use or identification of toxic substances 114\n",
"Insufficient hot water or running water 107\n",
"Improper cooling methods 105\n",
"High risk vermin infestation 78\n",
"Inadequate dressing rooms or improper storage of personal items 65\n",
"Inadequate procedures or records for time as a public health control 54\n",
"Improper food labeling or menu misrepresentation 53\n",
" ... \n",
"Permit license or inspection report not posted [ date violation corrected: 7/29/2014 ] 1\n",
"Improper storage of equipment utensils or linens [ date violation corrected: 6/26/2014 ] 1\n",
"Improper cooling methods [ date violation corrected: 10/9/2016 ] 1\n",
"Food safety certificate or food handler card not available [ date violation corrected: 8/14/2015 ] 1\n",
"Improper cooling methods [ date violation corrected: 8/14/2015 ] 1\n",
"Non service animal [ date violation corrected: 3/25/2014 ] 1\n",
"High risk vermin infestation [ date violation corrected: 10/25/2014 ] 1\n",
"Unclean unmaintained or improperly constructed toilet facilities [ date violation corrected: 11/10/2016 ] 1\n",
"Improper food labeling or menu misrepresentation [ date violation corrected: 8/18/2016 ] 1\n",
"Improper storage use or identification of toxic substances [ date violation corrected: 11/5/2015 ] 1\n",
"High risk food holding temperature [ date violation corrected: 11/25/2015 ] 1\n",
"Unclean or degraded floors walls or ceilings [ date violation corrected: 9/12/2016 ] 1\n",
"Improper thawing methods [ date violation corrected: 3/14/2014 ] 1\n",
"Employee eating or smoking [ date violation corrected: 8/2/2016 ] 1\n",
"Improper storage use or identification of toxic substances [ date violation corrected: 8/17/2016 ] 1\n",
"Moderate risk vermin infestation [ date violation corrected: 4/17/2015 ] 1\n",
"Improper food storage [ date violation corrected: 7/8/2015 ] 1\n",
"Wiping cloths not clean or properly stored or inadequate sanitizer [ date violation corrected: 11/12/2014 ] 1\n",
"No thermometers or uncalibrated thermometers [ date violation corrected: 6/6/2014 ] 1\n",
"Unapproved food source [ date violation corrected: 3/31/2016 ] 1\n",
"Improper or defective plumbing [ date violation corrected: 7/30/2015 ] 1\n",
"Improper storage of equipment utensils or linens [ date violation corrected: 9/24/2015 ] 1\n",
"Contaminated or adulterated food [ date violation corrected: 6/26/2015 ] 1\n",
"Inadequate warewashing facilities or equipment [ date violation corrected: 9/2/2016 ] 1\n",
"No person in charge of food facility [ date violation corrected: 12/5/2014 ] 1\n",
"Improper thawing methods [ date violation corrected: 12/22/2014 ] 1\n",
"Moderate risk food holding temperature [ date violation corrected: 9/22/2015 ] 1\n",
"No thermometers or uncalibrated thermometers [ date violation corrected: 7/28/2016 ] 1\n",
"Inadequate and inaccessible handwashing facilities [ date violation corrected: 6/16/2015 ] 1\n",
"Inadequate sewage or wastewater disposal [ date violation corrected: 5/5/2016 ] 1\n",
"Name: description, dtype: int64"
]
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"vio['description'].value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "916bfdbb-ea78-460c-9c3e-b7f201ecc0e5"
}
},
"source": [
"## Dirty data! "
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "0eb37a03-6aa9-46c7-82c8-76652ecd1392"
}
},
"source": [
"It looks like the description field has data information! How many descriptions are there?"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "a2509ff6-dfc1-4895-b59b-2b9dedaf9690"
}
},
"outputs": [
{
"data": {
"text/plain": [
"15072"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(vio['description'].value_counts())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can use regular expressions to extract dates and remove the:\n",
"\n",
" > [ date violation corrected: ##/#/#### ]\n",
"\n",
"string"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {
"collapsed": true,
"nbpresent": {
"id": "3beae5b9-4499-4662-9b5f-2c1bdca172c8"
}
},
"outputs": [],
"source": [
"vio['resolved'] = pd.to_datetime(vio['description'].str.extract(\"(\\d+\\/\\d+\\/\\d+)\", expand=False))\n",
"vio['desc'] = vio['description'].str.replace(\"\\[.*\\]\",\"\").str.strip()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's look at all the value counts"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"68"
]
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(vio['desc'].value_counts())"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "cb07caa0-4dd0-4227-9347-e142d971a368"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Unclean or degraded floors walls or ceilings 3559\n",
"Moderate risk food holding temperature 2809\n",
"Inadequate and inaccessible handwashing facilities 2613\n",
"Unapproved or unmaintained equipment or utensils 2450\n",
"Inadequately cleaned or sanitized food contact surfaces 2325\n",
"Wiping cloths not clean or properly stored or inadequate sanitizer 2304\n",
"Improper food storage 2163\n",
"Foods not protected from contamination 1907\n",
"Unclean nonfood contact surfaces 1861\n",
"High risk food holding temperature 1642\n",
"Moderate risk vermin infestation 1532\n",
"Food safety certificate or food handler card not available 1254\n",
"Improper storage of equipment utensils or linens 1136\n",
"Inadequate food safety knowledge or lack of certified food safety manager 1100\n",
"Permit license or inspection report not posted 1035\n",
"Unclean or unsanitary food contact surfaces 1003\n",
"Low risk vermin infestation 911\n",
"Improper cooling methods 789\n",
"Improper or defective plumbing 769\n",
"High risk vermin infestation 742\n",
"Unclean hands or improper use of gloves 737\n",
"Improper thawing methods 647\n",
"Inadequate warewashing facilities or equipment 595\n",
"Inadequate ventilation or lighting 589\n",
"No thermometers or uncalibrated thermometers 544\n",
"Improper storage use or identification of toxic substances 531\n",
"Insufficient hot water or running water 526\n",
"Inadequate dressing rooms or improper storage of personal items 260\n",
"Inadequate procedures or records for time as a public health control 237\n",
"Unclean unmaintained or improperly constructed toilet facilities 227\n",
"No hot water or running water 204\n",
"Contaminated or adulterated food 193\n",
"Employee eating or smoking 161\n",
"Improper food labeling or menu misrepresentation 157\n",
"Other low risk violation 154\n",
"Improper reheating of food 133\n",
"Inadequate or unsanitary refuse containers or area or no garbage service 132\n",
"Worker safety hazards 103\n",
"Noncompliance with HAACP plan or variance 100\n",
"Inadequate sewage or wastewater disposal 96\n",
"Other moderate risk violation 79\n",
"Unauthorized or unsafe use of time as a public health control measure 74\n",
"Unsanitary employee garments hair or nails 68\n",
"Food in poor condition 68\n",
"Noncompliance with shell fish tags or display 55\n",
"No plan review or Building Permit 40\n",
"Sewage or wastewater contamination 39\n",
"Unpermitted food facility 36\n",
"No person in charge of food facility 32\n",
"Inadequate HACCP plan record keeping 29\n",
"Unapproved living quarters in food facility 28\n",
"Unapproved food source 26\n",
"Other high risk violation 25\n",
"Consumer advisory not provided for raw or undercooked foods 19\n",
"Non service animal 19\n",
"Improperly washed fruits and vegetables 12\n",
"Improper cooking time or temperatures 10\n",
"Mobile food facility with unapproved operating conditions 10\n",
"Reservice of previously served foods 9\n",
"Unreported or unrestricted ill employee with communicable disease 6\n",
"Discharge from employee nose mouth or eye 6\n",
"Prohibited food served to sensitive population 4\n",
"Mobile food facility not operating with an approved commissary 3\n",
"Noncompliance with Gulf Coast oyster regulation 3\n",
"Noncompliance with Cottage Food Operation 2\n",
"Improperly displayed mobile food permit or signage 2\n",
"Mobile food facility HCD insignia unavailable 1\n",
"No restroom facility within 200 feet of mobile food facility 1\n"
]
}
],
"source": [
"print(vio['desc'].value_counts().to_string())"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "81d3c26c-cbaf-4e87-ba29-69ec4e79ab1a"
}
},
"source": [
"Restaurants with many violations might be a bad sign:"
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "ff4a3f10-3f42-4bac-8ac6-0de09bbaf139"
}
},
"outputs": [],
"source": [
"bus['num_violations'] = vio.index.value_counts()"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "21bcddfb-5d87-403d-88c8-967822c733a5"
}
},
"source": [
"What are the worst offenders? "
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "50f84218-e827-4b0a-a2e9-9bd2873631d7"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" name | \n",
" num_violations | \n",
" postal_code | \n",
"
\n",
" \n",
" business_id | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 75139 | \n",
" HAKKA RESTAURANT | \n",
" 42.0 | \n",
" 94121 | \n",
"
\n",
" \n",
" 489 | \n",
" DOL-HO RESTAURANT | \n",
" 39.0 | \n",
" 94133 | \n",
"
\n",
" \n",
" 60354 | \n",
" TAQUERIA CASTILLO B | \n",
" 38.0 | \n",
" 94102 | \n",
"
\n",
" \n",
" 3115 | \n",
" YEE'S RESTAURANT | \n",
" 37.0 | \n",
" 94133 | \n",
"
\n",
" \n",
" 70996 | \n",
" HONG KONG LOUNGE | \n",
" 36.0 | \n",
" 94121 | \n",
"
\n",
" \n",
" 1833 | \n",
" ROGUE ALES PUBLIC HOUSE | \n",
" 36.0 | \n",
" 94133 | \n",
"
\n",
" \n",
" 71385 | \n",
" YAMA SUSHI RESTAURANT | \n",
" 34.0 | \n",
" 94132 | \n",
"
\n",
" \n",
" 76547 | \n",
" QUAN PHO INC | \n",
" 34.0 | \n",
" 94112 | \n",
"
\n",
" \n",
" 37882 | \n",
" FIRST CAKE | \n",
" 34.0 | \n",
" 94121 | \n",
"
\n",
" \n",
" 2945 | \n",
" NEW SUN HONG KONG RESTAURANT | \n",
" 34.0 | \n",
" 94133 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" name num_violations postal_code\n",
"business_id \n",
"75139 HAKKA RESTAURANT 42.0 94121\n",
"489 DOL-HO RESTAURANT 39.0 94133\n",
"60354 TAQUERIA CASTILLO B 38.0 94102\n",
"3115 YEE'S RESTAURANT 37.0 94133\n",
"70996 HONG KONG LOUNGE 36.0 94121\n",
"1833 ROGUE ALES PUBLIC HOUSE 36.0 94133\n",
"71385 YAMA SUSHI RESTAURANT 34.0 94132\n",
"76547 QUAN PHO INC 34.0 94112\n",
"37882 FIRST CAKE 34.0 94121\n",
"2945 NEW SUN HONG KONG RESTAURANT 34.0 94133"
]
},
"execution_count": 86,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bus.sort_values('num_violations', ascending=False)[['name', 'num_violations', 'postal_code']].head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Is that fair? \n",
"\n",
"---\n",
"\n",
"#### what about age?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "f01484c2-89cc-41ff-9650-6a5a73e688bc"
}
},
"source": [
"That might not be fair if the restaurant is old. Let's look at at the violations on the latest inspection."
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "f86483a6-dd54-4048-85c2-3aaafba90237"
}
},
"outputs": [],
"source": [
"vio_bus = vio.join(bus['last_inspect'])\n",
"recent_vio = vio_bus[vio_bus['date'] >= vio_bus['last_inspect']]\n",
"bus['num_recent_violations'] = recent_vio.index.value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "0aaa798a-f397-4489-ba92-77b32db9c0f6"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" name | \n",
" num_violations | \n",
" num_recent_violations | \n",
"
\n",
" \n",
" business_id | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 78328 | \n",
" GOLDEN WOK | \n",
" 32.0 | \n",
" 20.0 | \n",
"
\n",
" \n",
" 82134 | \n",
" HARBOR VILLA RESTAURANT | \n",
" 16.0 | \n",
" 16.0 | \n",
"
\n",
" \n",
" 521 | \n",
" CALIFORNIA CRISP | \n",
" 24.0 | \n",
" 15.0 | \n",
"
\n",
" \n",
" 87492 | \n",
" NAN KING ROAD BISTRO | \n",
" 13.0 | \n",
" 13.0 | \n",
"
\n",
" \n",
" 68672 | \n",
" KAMA SUSHI SOMA | \n",
" 27.0 | \n",
" 13.0 | \n",
"
\n",
" \n",
" 66961 | \n",
" MI TIERRA MARKET | \n",
" 19.0 | \n",
" 13.0 | \n",
"
\n",
" \n",
" 1641 | \n",
" MARTHA & BROS. COFFEE CO | \n",
" 19.0 | \n",
" 12.0 | \n",
"
\n",
" \n",
" 35026 | \n",
" MANGOSTEEN | \n",
" 17.0 | \n",
" 12.0 | \n",
"
\n",
" \n",
" 77548 | \n",
" POC-CHUC RESTAURANT | \n",
" 20.0 | \n",
" 12.0 | \n",
"
\n",
" \n",
" 83351 | \n",
" CITY SUPER | \n",
" 20.0 | \n",
" 12.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" name num_violations num_recent_violations\n",
"business_id \n",
"78328 GOLDEN WOK 32.0 20.0\n",
"82134 HARBOR VILLA RESTAURANT 16.0 16.0\n",
"521 CALIFORNIA CRISP 24.0 15.0\n",
"87492 NAN KING ROAD BISTRO 13.0 13.0\n",
"68672 KAMA SUSHI SOMA 27.0 13.0\n",
"66961 MI TIERRA MARKET 19.0 13.0\n",
"1641 MARTHA & BROS. COFFEE CO 19.0 12.0\n",
"35026 MANGOSTEEN 17.0 12.0\n",
"77548 POC-CHUC RESTAURANT 20.0 12.0\n",
"83351 CITY SUPER 20.0 12.0"
]
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bus.sort_values('num_recent_violations', ascending=False)[['name', 'num_violations', 'num_recent_violations']].head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "a176bb09-4e22-43ab-8486-95d2b21c4c2d"
}
},
"source": [
"What about unresolved recent violations?"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "b0988285-b99f-4a54-9f76-842a9f2c8b6a"
}
},
"outputs": [],
"source": [
"bus['num_unresolved_violations'] = recent_vio[recent_vio['resolved'].isnull()].index.value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "cfd856b3-aec2-4f63-a162-d2f13a37aa3b"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" name | \n",
" num_violations | \n",
" num_recent_violations | \n",
" num_unresolved_violations | \n",
"
\n",
" \n",
" business_id | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 3491 | \n",
" BORODUDUR RESTAURANT | \n",
" 16.0 | \n",
" 11.0 | \n",
" 11.0 | \n",
"
\n",
" \n",
" 6654 | \n",
" HIEP-THANH MARKET | \n",
" 27.0 | \n",
" 11.0 | \n",
" 11.0 | \n",
"
\n",
" \n",
" 3875 | \n",
" MARINA SUPER | \n",
" 19.0 | \n",
" 11.0 | \n",
" 11.0 | \n",
"
\n",
" \n",
" 2764 | \n",
" AL-HAMRA | \n",
" 21.0 | \n",
" 10.0 | \n",
" 10.0 | \n",
"
\n",
" \n",
" 35447 | \n",
" SPARKY'S PIZZA & DINER | \n",
" 15.0 | \n",
" 10.0 | \n",
" 10.0 | \n",
"
\n",
" \n",
" 19003 | \n",
" PANCHITAS RESTAURANT | \n",
" 18.0 | \n",
" 10.0 | \n",
" 10.0 | \n",
"
\n",
" \n",
" 2331 | \n",
" JADE CAFE | \n",
" 27.0 | \n",
" 10.0 | \n",
" 10.0 | \n",
"
\n",
" \n",
" 71012 | \n",
" LITTLE PARIS | \n",
" 18.0 | \n",
" 10.0 | \n",
" 10.0 | \n",
"
\n",
" \n",
" 17411 | \n",
" OYE MANAGUA | \n",
" 23.0 | \n",
" 9.0 | \n",
" 9.0 | \n",
"
\n",
" \n",
" 4607 | \n",
" NEW GOLDEN DAISY | \n",
" 22.0 | \n",
" 9.0 | \n",
" 9.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" name num_violations num_recent_violations \\\n",
"business_id \n",
"3491 BORODUDUR RESTAURANT 16.0 11.0 \n",
"6654 HIEP-THANH MARKET 27.0 11.0 \n",
"3875 MARINA SUPER 19.0 11.0 \n",
"2764 AL-HAMRA 21.0 10.0 \n",
"35447 SPARKY'S PIZZA & DINER 15.0 10.0 \n",
"19003 PANCHITAS RESTAURANT 18.0 10.0 \n",
"2331 JADE CAFE 27.0 10.0 \n",
"71012 LITTLE PARIS 18.0 10.0 \n",
"17411 OYE MANAGUA 23.0 9.0 \n",
"4607 NEW GOLDEN DAISY 22.0 9.0 \n",
"\n",
" num_unresolved_violations \n",
"business_id \n",
"3491 11.0 \n",
"6654 11.0 \n",
"3875 11.0 \n",
"2764 10.0 \n",
"35447 10.0 \n",
"19003 10.0 \n",
"2331 10.0 \n",
"71012 10.0 \n",
"17411 9.0 \n",
"4607 9.0 "
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bus.sort_values('num_unresolved_violations', ascending=False)[[\n",
" 'name', 'num_violations', 'num_recent_violations','num_unresolved_violations']].head(10)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "0a1e318c-aa0e-4b00-9def-3904060613ac"
}
},
"source": [
"# Lets Look at these violations on a map"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "a9348589-ebf0-4272-8cdd-9b54feb6c1b6"
}
},
"source": [
"## 75th Quantile Number of Recent Violations"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "a729ed44-d431-4f9d-a60f-573cc41d065f"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/jegonzal/anaconda3/envs/ds100/lib/python3.5/site-packages/ipykernel/__main__.py:8: FutureWarning: 'threshold_scale' default behavior has changed. Now you get a linear scale between the 'min' and the 'max' of your data. To get former behavior, use folium.utilities.split_six.\n"
]
},
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"score_quantiles2 = bus[['postal_code', 'num_recent_violations']].dropna()\\\n",
" .groupby('postal_code')['num_recent_violations'].quantile([0.25, .5, 0.75])\n",
"\n",
"SF_COORDINATES = (37.76, -122.45)\n",
"sf_map = folium.Map(location=SF_COORDINATES, zoom_start=12)\n",
"sf_map.choropleth(geo_str = json.dumps(foodie_geojson), \n",
" data = score_quantiles2[:, 0.75],\n",
" key_on = 'properties.zipcode',\n",
" fill_color='BuPu', fill_opacity=0.7, line_opacity=0.5)\n",
"sf_map"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"SF_COORDINATES = (37.76, -122.45)\n",
"sf_map = folium.Map(location=SF_COORDINATES, zoom_start=12)\n",
"bus_loc = bus[~bus['latitude'].isnull()]\n",
"for bid, row in bus_loc[bus_loc['num_recent_violations'] > 7].iterrows():\n",
" msg = \"[\" + str(bid) + \"] \" + row['name'] +\": \" + str(row['latest_score']) + \"--> \" + \\\n",
" \" -- \".join(recent_vio.loc[bid]['desc'].values)\n",
" sf_map.add_child(folium.Marker(location=[row['latitude'], row['longitude']], \n",
" popup=msg))\n",
"sf_map"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "715e9e0d-aae6-4bc0-95e2-d2e4988965a2"
}
},
"source": [
"# What are the Violations of high-scoring restaurants?"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "4dc8cdeb-b03a-45c7-982f-f5383832c0bf"
}
},
"source": [
"Recall:"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "46d4bc54-25a7-4e6d-a054-82d14d17ea87"
}
},
"outputs": [
{
"data": {
"text/plain": [
"count 5730.000000\n",
"mean 90.359860\n",
"std 8.061857\n",
"min 52.000000\n",
"25% 86.000000\n",
"50% 92.000000\n",
"75% 96.000000\n",
"max 100.000000\n",
"Name: latest_score, dtype: float64"
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bus['latest_score'].dropna().describe()"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpresent": {
"id": "62a2aff4-d0a4-4c8f-8958-5f7648a28ac5"
}
},
"source": [
"Let's look at restaurants that scored above 96"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "d595727d-ac88-441d-b1d0-5b3398f37474"
}
},
"outputs": [
{
"data": {
"text/plain": [
"desc\n",
"Unclean or degraded floors walls or ceilings 186\n",
"Wiping cloths not clean or properly stored or inadequate sanitizer 116\n",
"Unapproved or unmaintained equipment or utensils 106\n",
"Moderate risk food holding temperature 96\n",
"Improper food storage 86\n",
"Inadequate and inaccessible handwashing facilities 78\n",
"Inadequately cleaned or sanitized food contact surfaces 67\n",
"Food safety certificate or food handler card not available 59\n",
"Unclean nonfood contact surfaces 57\n",
"Permit license or inspection report not posted 55\n",
"Improper storage of equipment utensils or linens 52\n",
"Low risk vermin infestation 51\n",
"Improper or defective plumbing 50\n",
"Moderate risk vermin infestation 44\n",
"Inadequate warewashing facilities or equipment 42\n",
"Foods not protected from contamination 36\n",
"Inadequate food safety knowledge or lack of certified food safety manager 27\n",
"Insufficient hot water or running water 24\n",
"No thermometers or uncalibrated thermometers 18\n",
"Improper storage use or identification of toxic substances 16\n",
"Inadequate dressing rooms or improper storage of personal items 14\n",
"Other low risk violation 11\n",
"Noncompliance with HAACP plan or variance 10\n",
"Improper food labeling or menu misrepresentation 10\n",
"Inadequate ventilation or lighting 9\n",
"Unclean unmaintained or improperly constructed toilet facilities 8\n",
"Worker safety hazards 7\n",
"Inadequate procedures or records for time as a public health control 5\n",
"Inadequate HACCP plan record keeping 5\n",
"Unpermitted food facility 5\n",
"Employee eating or smoking 4\n",
"Noncompliance with shell fish tags or display 3\n",
"High risk food holding temperature 3\n",
"Unclean or unsanitary food contact surfaces 3\n",
"Inadequate or unsanitary refuse containers or area or no garbage service 2\n",
"Other moderate risk violation 2\n",
"Inadequate sewage or wastewater disposal 2\n",
"Unapproved living quarters in food facility 2\n",
"Unclean hands or improper use of gloves 2\n",
"No hot water or running water 1\n",
"High risk vermin infestation 1\n",
"Unsanitary employee garments hair or nails 1\n",
"Reservice of previously served foods 1\n",
"Improper cooling methods 1\n",
"Improper thawing methods 1\n",
"Improperly washed fruits and vegetables 1\n",
"Non service animal 1\n",
"No plan review or Building Permit 1\n",
"Contaminated or adulterated food 1\n",
"Name: desc, dtype: int64"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tmp = recent_vio.join(bus['latest_score'])\n",
"tmp[tmp['latest_score'] >= 96.].groupby('desc')['desc'].count().sort_values(ascending=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Violations of Low Scoring Restaurants"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {
"collapsed": false,
"nbpresent": {
"id": "22717bec-6ea2-4b9b-b461-f273cb4a07f7"
}
},
"outputs": [
{
"data": {
"text/plain": [
"desc\n",
"High risk food holding temperature 82\n",
"Foods not protected from contamination 77\n",
"Unclean or degraded floors walls or ceilings 71\n",
"Inadequate and inaccessible handwashing facilities 61\n",
"Unapproved or unmaintained equipment or utensils 59\n",
"High risk vermin infestation 59\n",
"Unclean or unsanitary food contact surfaces 54\n",
"Inadequate food safety knowledge or lack of certified food safety manager 53\n",
"Inadequately cleaned or sanitized food contact surfaces 52\n",
"Unclean hands or improper use of gloves 51\n",
"Improper thawing methods 50\n",
"Moderate risk food holding temperature 41\n",
"Improper cooling methods 40\n",
"Improper food storage 40\n",
"Wiping cloths not clean or properly stored or inadequate sanitizer 39\n",
"Moderate risk vermin infestation 38\n",
"Unclean nonfood contact surfaces 34\n",
"Contaminated or adulterated food 30\n",
"No thermometers or uncalibrated thermometers 26\n",
"Permit license or inspection report not posted 25\n",
"Improper storage use or identification of toxic substances 21\n",
"Improper or defective plumbing 20\n",
"Food safety certificate or food handler card not available 18\n",
"Improper storage of equipment utensils or linens 17\n",
"Low risk vermin infestation 13\n",
"Inadequate ventilation or lighting 13\n",
"Insufficient hot water or running water 11\n",
"Inadequate warewashing facilities or equipment 11\n",
"Inadequate sewage or wastewater disposal 10\n",
"Inadequate or unsanitary refuse containers or area or no garbage service 7\n",
"Employee eating or smoking 7\n",
"Sewage or wastewater contamination 6\n",
"Improper reheating of food 5\n",
"No hot water or running water 5\n",
"Improper food labeling or menu misrepresentation 5\n",
"Inadequate procedures or records for time as a public health control 4\n",
"Noncompliance with HAACP plan or variance 3\n",
"Unclean unmaintained or improperly constructed toilet facilities 3\n",
"No person in charge of food facility 3\n",
"Food in poor condition 3\n",
"Inadequate dressing rooms or improper storage of personal items 2\n",
"Other low risk violation 2\n",
"Unauthorized or unsafe use of time as a public health control measure 2\n",
"Noncompliance with Cottage Food Operation 1\n",
"Noncompliance with shell fish tags or display 1\n",
"Reservice of previously served foods 1\n",
"Mobile food facility with unapproved operating conditions 1\n",
"Noncompliance with Gulf Coast oyster regulation 1\n",
"Consumer advisory not provided for raw or undercooked foods 1\n",
"Name: desc, dtype: int64"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tmp = recent_vio.join(bus['latest_score'])\n",
"tmp[tmp['latest_score'] <= 70.].groupby('desc')['desc'].count().sort_values(ascending=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# If you have the same violations do you have the same score?"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"features = pd.get_dummies(recent_vio['desc']).groupby(recent_vio.index).sum()\n",
"# training_data = bus[['latest_score', 'num_recent_violations']]\\\n",
"# .join(features)\n",
"training_data = bus[['latest_score']].join(features)\n",
"training_data = training_data.dropna()"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" count | \n",
" mean | \n",
" var | \n",
"
\n",
" \n",
" \n",
" \n",
" 1 | \n",
" 47 | \n",
" 98.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 9 | \n",
" 78 | \n",
" 98.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 32 | \n",
" 40 | \n",
" 98.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 90 | \n",
" 41 | \n",
" 96.195122 | \n",
" 0.560976 | \n",
"
\n",
" \n",
" 107 | \n",
" 92 | \n",
" 95.836957 | \n",
" 2.225872 | \n",
"
\n",
" \n",
" 108 | \n",
" 26 | \n",
" 94.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 229 | \n",
" 62 | \n",
" 96.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 268 | \n",
" 26 | \n",
" 92.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 474 | \n",
" 68 | \n",
" 96.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 520 | \n",
" 26 | \n",
" 92.615385 | \n",
" 4.726154 | \n",
"
\n",
" \n",
" 915 | \n",
" 29 | \n",
" 97.068966 | \n",
" 25.137931 | \n",
"
\n",
" \n",
" 1021 | \n",
" 39 | \n",
" 98.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 1583 | \n",
" 30 | \n",
" 93.233333 | \n",
" 1.633333 | \n",
"
\n",
" \n",
" 1908 | \n",
" 34 | \n",
" 95.764706 | \n",
" 0.912656 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" count mean var\n",
"1 47 98.000000 0.000000\n",
"9 78 98.000000 0.000000\n",
"32 40 98.000000 0.000000\n",
"90 41 96.195122 0.560976\n",
"107 92 95.836957 2.225872\n",
"108 26 94.000000 0.000000\n",
"229 62 96.000000 0.000000\n",
"268 26 92.000000 0.000000\n",
"474 68 96.000000 0.000000\n",
"520 26 92.615385 4.726154\n",
"915 29 97.068966 25.137931\n",
"1021 39 98.000000 0.000000\n",
"1583 30 93.233333 1.633333\n",
"1908 34 95.764706 0.912656"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped_by_vio = training_data.groupby(list(features.columns))\n",
"res = pd.DataFrame({\n",
" 'count': grouped_by_vio['latest_score'].count().values,\n",
" 'mean': grouped_by_vio['latest_score'].mean().values,\n",
" 'var': grouped_by_vio['latest_score'].var().values\n",
"})\n",
"res[res['count'] > 25]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Building a Predictive Model"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We could try to build a regressive model to identify how violations might contribute to the final score."
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"X = training_data.drop('latest_score', axis=1).as_matrix()\n",
"Y = training_data['latest_score'].as_matrix()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How much data do we have?"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(4830, 65)\n"
]
}
],
"source": [
"print(X.shape)"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import sklearn\n",
"import sklearn.model_selection\n",
"(Xtr, Xte, Ytr, Yte) = sklearn.model_selection.train_test_split(X,Y, test_size=.1)"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The R^2 value: 0.935394392538\n"
]
}
],
"source": [
"import sklearn.linear_model\n",
"#model = sklearn.linear_model.LinearRegression()\n",
"model = sklearn.linear_model.LassoCV(eps=0.000001, n_alphas=1000, max_iter=50000, fit_intercept=True)\n",
"model.fit(Xtr, Ytr)\n",
"print(\"The R^2 value:\", model.score(Xte, Yte))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Listing the coefficient of the model"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The most negative coefficient determine the the violations that most contributed to a reduction in score."
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" features weights\n",
"33 Mobile food facility with unapproved operating... -7.694119\n",
"9 Improper cooking time or temperatures -7.228079\n",
"52 Unapproved food source -7.044778\n",
"54 Unauthorized or unsafe use of time as a public... -6.696624\n",
"61 Unreported or unrestricted ill employee with c... -6.596896\n",
"58 Unclean or unsanitary food contact surfaces -6.525649\n",
"14 Improper reheating of food -6.512154\n",
"8 High risk vermin infestation -6.486433\n",
"10 Improper cooling methods -6.483540\n",
"36 No hot water or running water -6.358525\n",
"55 Unclean hands or improper use of gloves -6.345138\n",
"7 High risk food holding temperature -6.324212\n",
"1 Contaminated or adulterated food -6.311102\n",
"45 Other high risk violation -5.925851\n",
"50 Sewage or wastewater contamination -5.631901\n",
"49 Reservice of previously served foods -5.384052\n",
"42 Noncompliance with Gulf Coast oyster regulation -4.626733\n",
"26 Inadequate sewage or wastewater disposal -4.332132\n",
"41 Noncompliance with Cottage Food Operation -4.321874\n",
"43 Noncompliance with HAACP plan or variance -4.034720\n",
"17 Improper thawing methods -3.988688\n",
"2 Discharge from employee nose mouth or eye -3.946798\n",
"6 Foods not protected from contamination -3.922273\n",
"21 Inadequate and inaccessible handwashing facili... -3.894855\n",
"32 Mobile food facility HCD insignia unavailable -3.885643\n",
"44 Noncompliance with shell fish tags or display -3.835800\n",
"29 Inadequately cleaned or sanitized food contact... -3.688618\n",
"3 Employee eating or smoking -3.682846\n",
"35 Moderate risk vermin infestation -3.674774\n",
"34 Moderate risk food holding temperature -3.610771\n",
".. ... ...\n",
"47 Other moderate risk violation -2.708247\n",
"19 Improperly washed fruits and vegetables -2.440374\n",
"51 Unapproved living quarters in food facility -2.314820\n",
"16 Improper storage use or identification of toxi... -2.158376\n",
"39 No thermometers or uncalibrated thermometers -2.153206\n",
"37 No person in charge of food facility -2.146354\n",
"46 Other low risk violation -2.129569\n",
"27 Inadequate ventilation or lighting -2.084141\n",
"13 Improper or defective plumbing -2.013531\n",
"15 Improper storage of equipment utensils or linens -2.005444\n",
"22 Inadequate dressing rooms or improper storage ... -1.992388\n",
"28 Inadequate warewashing facilities or equipment -1.909698\n",
"12 Improper food storage -1.885891\n",
"60 Unpermitted food facility -1.879470\n",
"31 Low risk vermin infestation -1.874897\n",
"5 Food safety certificate or food handler card n... -1.849792\n",
"62 Unsanitary employee garments hair or nails -1.848149\n",
"57 Unclean or degraded floors walls or ceilings -1.831330\n",
"56 Unclean nonfood contact surfaces -1.806200\n",
"38 No plan review or Building Permit -1.796837\n",
"48 Permit license or inspection report not posted -1.730579\n",
"63 Wiping cloths not clean or properly stored or ... -1.685951\n",
"64 Worker safety hazards -1.554917\n",
"53 Unapproved or unmaintained equipment or utensils -1.518245\n",
"20 Inadequate HACCP plan record keeping -1.432978\n",
"11 Improper food labeling or menu misrepresentation -1.423454\n",
"59 Unclean unmaintained or improperly constructed... -1.380122\n",
"24 Inadequate or unsanitary refuse containers or ... -0.841134\n",
"40 Non service animal 0.616388\n",
"18 Improperly displayed mobile food permit or sig... 0.801769\n",
"\n",
"[65 rows x 2 columns]\n"
]
}
],
"source": [
"feature_weights = pd.DataFrame({\n",
" 'features': training_data.drop('latest_score', axis=1).columns, \n",
" 'weights': model.coef_})\n",
"print(feature_weights.sort_values('weights'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Done! (Not Really)\n",
"\n",
"There are a lot of questions we left unanswered. The data for other cities is available and we didn't even begin to answer the questions about how food safety is changing. "
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [conda env:ds100]",
"language": "python",
"name": "conda-env-ds100-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
},
"livereveal": {
"height": 768,
"scroll": true,
"start_slideshow_at": "selected",
"theme": "simple",
"transition": "zoom",
"width": 1024
},
"nbpresent": {
"slides": {},
"themes": {
"default": "58be04b1-548d-4938-bcb2-be18cbfa2393",
"theme": {}
}
}
},
"nbformat": 4,
"nbformat_minor": 1
}