Last active
November 10, 2015 03:18
-
-
Save mra1385/e899718a828f577683b8 to your computer and use it in GitHub Desktop.
DC Halloween Crime Bump
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# import modules\n", | |
"import matplotlib.pyplot as plt\n", | |
"import matplotlib.ticker as tkr\n", | |
"import matplotlib.dates as mdates\n", | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"from os import listdir\n", | |
"from bs4 import BeautifulSoup\n", | |
"import requests\n", | |
"import unicodedata\n", | |
"import scipy.stats as st\n", | |
"%matplotlib inline\n", | |
"import seaborn as sns \n", | |
"\n", | |
"# use fivethirtyeight plot style\n", | |
"plt.style.use('fivethirtyeight')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# scrape neighborhood cluster number / name from web \n", | |
"url = 'http://www.neighborhoodinfodc.org/nclusters/nclusters.html'\n", | |
"r = requests.get(url)\n", | |
"data = r.text\n", | |
"soup = BeautifulSoup(data)\n", | |
"samples = soup.find_all(\"li\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# extract list of neighborhood cluster numbers and names\n", | |
"tmp_lst = []\n", | |
"for strong_tag in soup.find_all('li'):\n", | |
" tmp_lst.append(strong_tag.text.strip('Cluster').strip().split(':'))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# convert into dictionary for mapping with dataframe\n", | |
"neighborhoodCluster = dict()\n", | |
"for item in tmp_lst:\n", | |
" neighborhoodCluster[int(item[0])] = item[1]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# load all dc crime stat csv files into list\n", | |
"files = listdir('c:/users/mra/desktop/admin/chart-it/DC violent crime 2015 spike/')\n", | |
"files = [file_name for file_name in files if 'csv' in file_name]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# loading multiple csv files into python list\n", | |
"# the code below will depend on the file path of the DC crime data files on your machines\n", | |
"tmp_lst = []\n", | |
"for file_name in files:\n", | |
" path = 'c:/users/mra/desktop/admin/chart-it/DC violent crime 2015 spike/{}'.format(file_name) \n", | |
" frame = pd.read_csv(path, header = 0, low_memory = False) \n", | |
" tmp_lst.append(frame)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# use concat method to convert python list into pd dataframe\n", | |
"dc_crime = (pd.concat(tmp_lst, ignore_index = True))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# drop unused columns\n", | |
"dc_crime = dc_crime.drop([\"BLOCKXCOORD\", \"BLOCKYCOORD\", \"CENSUS_TRACT\", \"CCN\", \"SHIFT\", \"BLOCKSITEADDRESS\", \"REPORTDATETIME\", \"ANC\", \"DISTRICT\", \"PSA\", \"LASTMODIFIEDDATE\", \"BUSINESSIMPROVEMENTDISTRICT\", \"BLOCK_GROUP\", \"VOTING_PRECINCT\", \"END_DATE\"], 1) " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# convert neighborhood cluster into integer datatype\n", | |
"dc_crime['NEIGHBORHOODCLUSTER'] = dc_crime['NEIGHBORHOODCLUSTER'].dropna().astype('int')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create dataframe of neighborhood clusters to map to crime database\n", | |
"clusters = pd.DataFrame.from_dict(neighborhoodCluster, orient='index')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"clusters.reset_index(inplace=True)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# rename columns for clarity\n", | |
"clusters.columns = ['NEIGHBORHOODCLUSTER', 'NEIGHBORHOOD']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# merge dc crime incidents dataframe with dataframe of neighborhood cluster mappings \n", | |
"dc_crime = dc_crime.merge(clusters)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# convert 'Start Date' column data into datetime data type\n", | |
"dc_crime['START_DATE'] = pd.to_datetime(dc_crime['START_DATE'], infer_datetime_format = True)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# set start date as dataframe index\n", | |
"dc_crime = dc_crime.set_index(\"START_DATE\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# filter df to exclude erroneous incidents marked as before 2011 and also to exclude 2015 as halloween has not occured yet\n", | |
"dc_crime = dc_crime[(dc_crime.index.year > 2010) & (dc_crime.index.year < 2015)]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create dataframe of weekly crime incidents during fall season grouped by neighborhood \n", | |
"all_crime_hood = dc_crime[(dc_crime.index.month >= 1) & (dc_crime.index.month <= 12)].groupby(['NEIGHBORHOOD', pd.TimeGrouper('W')])['OFFENSE'].agg('count').mean(level=0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>NEIGHBORHOODCLUSTER</th>\n", | |
" <th>NEIGHBORHOOD</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1</td>\n", | |
" <td>Kalorama Heights, Adams Morgan, Lanier Heigh</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2</td>\n", | |
" <td>Columbia Heights, Mt. Pleasant, Pleasant Pla...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>3</td>\n", | |
" <td>Howard University, Le Droit Park, Cardozo/Shaw</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>4</td>\n", | |
" <td>Georgetown, Burleith/Hillanda</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>5</td>\n", | |
" <td>West End, Foggy Bottom, GWU</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>6</td>\n", | |
" <td>Dupont Circle, Connecticut Avenue/K S</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>7</td>\n", | |
" <td>Shaw, Logan Circ</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>8</td>\n", | |
" <td>Downtown, Chinatown, Penn Quarters, Mount Ve...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>9</td>\n", | |
" <td>Southwest Employment Area, Southwest/Waterfr...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>10</td>\n", | |
" <td>Hawthorne, Barnaby Woods, Chevy Cha</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>11</td>\n", | |
" <td>Friendship Heights, American University Park...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>12</td>\n", | |
" <td>North Cleveland Park, Forest Hills, Van N</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>13</td>\n", | |
" <td>Spring Valley, Palisades, Wesley Heights, Fo...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td>14</td>\n", | |
" <td>Cathedral Heights, McLean Gardens, Glover Park</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>14</th>\n", | |
" <td>15</td>\n", | |
" <td>Cleveland Park, Woodley Park, Massachusetts ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td>16</td>\n", | |
" <td>Colonial Village, Shepherd Park, North Porta...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16</th>\n", | |
" <td>17</td>\n", | |
" <td>Takoma, Brightwood, Manor Park</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>17</th>\n", | |
" <td>18</td>\n", | |
" <td>Brightwood Park, Crestwood, Petworth</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18</th>\n", | |
" <td>19</td>\n", | |
" <td>Lamond Riggs, Queens Chapel, Fort Totten, Pl...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td>20</td>\n", | |
" <td>North Michigan Park, Michigan Park, Universi...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td>21</td>\n", | |
" <td>Edgewood, Bloomingdale, Truxton Circle, Ecki...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>21</th>\n", | |
" <td>22</td>\n", | |
" <td>Brookland, Brentwood, Langdon</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>22</th>\n", | |
" <td>23</td>\n", | |
" <td>Ivy City, Arboretum, Trinidad, Carver Langston</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23</th>\n", | |
" <td>24</td>\n", | |
" <td>Woodridge, Fort Lincoln, Gateway</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24</th>\n", | |
" <td>25</td>\n", | |
" <td>NoMa, Union Station, Stanton Park, Kingman Park</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25</th>\n", | |
" <td>26</td>\n", | |
" <td>Capitol Hill, Lincoln Park</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>26</th>\n", | |
" <td>27</td>\n", | |
" <td>Near Southeast, Navy Yard</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>27</th>\n", | |
" <td>28</td>\n", | |
" <td>Historic Anacostia</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>28</th>\n", | |
" <td>29</td>\n", | |
" <td>Eastland Gardens, Kenilworth</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>29</th>\n", | |
" <td>30</td>\n", | |
" <td>Mayfair, Hillbrook, Mahaning Heigh</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>30</th>\n", | |
" <td>31</td>\n", | |
" <td>Deanwood, Burrville, Grant Park, Lincoln Hei...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>31</th>\n", | |
" <td>32</td>\n", | |
" <td>River Terrace, Benning, Greenway, Fort Dupon</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>32</th>\n", | |
" <td>33</td>\n", | |
" <td>Capitol View, Marshall Heights, Benning Heigh</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>33</th>\n", | |
" <td>34</td>\n", | |
" <td>Twining, Fairlawn, Randle Highlands, Penn Br...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>34</th>\n", | |
" <td>35</td>\n", | |
" <td>Fairfax Village, Naylor Gardens, Hillcrest, ...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>35</th>\n", | |
" <td>36</td>\n", | |
" <td>Woodland/Fort Stanton, Garfield Heights, Kno...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>36</th>\n", | |
" <td>37</td>\n", | |
" <td>Sheridan, Barry Farm, Buena Vista</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>37</th>\n", | |
" <td>38</td>\n", | |
" <td>Douglass, Shipley Terrac</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>38</th>\n", | |
" <td>39</td>\n", | |
" <td>Congress Heights, Bellevue, Washington Highland</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" NEIGHBORHOODCLUSTER NEIGHBORHOOD\n", | |
"0 1 Kalorama Heights, Adams Morgan, Lanier Heigh\n", | |
"1 2 Columbia Heights, Mt. Pleasant, Pleasant Pla...\n", | |
"2 3 Howard University, Le Droit Park, Cardozo/Shaw\n", | |
"3 4 Georgetown, Burleith/Hillanda\n", | |
"4 5 West End, Foggy Bottom, GWU\n", | |
"5 6 Dupont Circle, Connecticut Avenue/K S\n", | |
"6 7 Shaw, Logan Circ\n", | |
"7 8 Downtown, Chinatown, Penn Quarters, Mount Ve...\n", | |
"8 9 Southwest Employment Area, Southwest/Waterfr...\n", | |
"9 10 Hawthorne, Barnaby Woods, Chevy Cha\n", | |
"10 11 Friendship Heights, American University Park...\n", | |
"11 12 North Cleveland Park, Forest Hills, Van N\n", | |
"12 13 Spring Valley, Palisades, Wesley Heights, Fo...\n", | |
"13 14 Cathedral Heights, McLean Gardens, Glover Park\n", | |
"14 15 Cleveland Park, Woodley Park, Massachusetts ...\n", | |
"15 16 Colonial Village, Shepherd Park, North Porta...\n", | |
"16 17 Takoma, Brightwood, Manor Park\n", | |
"17 18 Brightwood Park, Crestwood, Petworth\n", | |
"18 19 Lamond Riggs, Queens Chapel, Fort Totten, Pl...\n", | |
"19 20 North Michigan Park, Michigan Park, Universi...\n", | |
"20 21 Edgewood, Bloomingdale, Truxton Circle, Ecki...\n", | |
"21 22 Brookland, Brentwood, Langdon\n", | |
"22 23 Ivy City, Arboretum, Trinidad, Carver Langston\n", | |
"23 24 Woodridge, Fort Lincoln, Gateway\n", | |
"24 25 NoMa, Union Station, Stanton Park, Kingman Park\n", | |
"25 26 Capitol Hill, Lincoln Park\n", | |
"26 27 Near Southeast, Navy Yard\n", | |
"27 28 Historic Anacostia\n", | |
"28 29 Eastland Gardens, Kenilworth\n", | |
"29 30 Mayfair, Hillbrook, Mahaning Heigh\n", | |
"30 31 Deanwood, Burrville, Grant Park, Lincoln Hei...\n", | |
"31 32 River Terrace, Benning, Greenway, Fort Dupon\n", | |
"32 33 Capitol View, Marshall Heights, Benning Heigh\n", | |
"33 34 Twining, Fairlawn, Randle Highlands, Penn Br...\n", | |
"34 35 Fairfax Village, Naylor Gardens, Hillcrest, ...\n", | |
"35 36 Woodland/Fort Stanton, Garfield Heights, Kno...\n", | |
"36 37 Sheridan, Barry Farm, Buena Vista\n", | |
"37 38 Douglass, Shipley Terrac\n", | |
"38 39 Congress Heights, Bellevue, Washington Highland" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"clusters" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create dataframe of weekly crime incidents during Halloween Week grouped by neighborhood\n", | |
"halloween_crime_hood = dc_crime[(dc_crime.index.month == 10) & (dc_crime.index.day > 24)].groupby(['NEIGHBORHOOD', pd.TimeGrouper('M')])['OFFENSE'].agg('count').mean(level=0)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# exclude smallest neighborhoods\n", | |
"all_crime_hood = all_crime_hood[all_crime_hood > all_crime_hood.quantile(0.2)]\n", | |
"halloween_crime_hood = halloween_crime_hood[halloween_crime_hood > halloween_crime_hood.quantile(0.2)]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"halloween_crime_hood = halloween_crime_hood.reindex(all_crime_hood.index)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# calculate percent increae in crime\n", | |
"pct_spike = ((halloween_crime_hood / all_crime_hood ) - 1).sort_values(ascending=False).iloc[0:5]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# calculate absolute increae in crime\n", | |
"abs_spike = (halloween_crime_hood - all_crime_hood).sort_values(ascending=False).iloc[0:5]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"NEIGHBORHOOD\n", | |
" Howard University, Le Droit Park, Cardozo/Shaw 0.403259\n", | |
" Capitol View, Marshall Heights, Benning Heigh 0.390047\n", | |
" Brightwood Park, Crestwood, Petworth 0.293634\n", | |
" Mayfair, Hillbrook, Mahaning Heigh 0.283892\n", | |
" Edgewood, Bloomingdale, Truxton Circle, Eckington 0.276077\n", | |
"Name: OFFENSE, dtype: float64" | |
] | |
}, | |
"execution_count": 24, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pct_spike.sort_values(ascending=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 102, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.text.Text at 0x149fb588>" | |
] | |
}, | |
"execution_count": 102, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nS381/8r4kUG0XvDzU92MvyoK8I+PlzzzVDdBRETktKMHb0VERERESoyCfBERERGREqMgX0RERESk\nxCjIFxEREREpMQryRURERERKjIJ8EREREZESoyBfRERERKTEKMgXERERESkxCvJFREREREqMvvFW\nRKSEzHM+e6qbICInwPaDp7oFcroz6uvr/VPdCBEROTHKyspOdRNEROQEqa+vP+Z1la4jIiIiIlJi\nFOSLiIiIiJQYBfkiIiIiIiVGQb6IiIiISIlRkC8iIiIiUmIU5IuIiIiIlBgF+SIiIiIiJUZfhiUi\nUkLm/kJfhiVyOth+EO554MFT3QwpYQryRURKyLW2ggaR08G8Sl2Qy8mldB0RERERkRKjIF9ERERE\npMQoyBcRERERKTEK8kVERERESoyCfBERERGREqMgX0RERESkxCjIFxEREREpMQryRURERERKjIJ8\nEREREZESoyBfRERERKTEKMiXLqxDz5OeU056Tjmphed2mZdYdl1xXmj3r09Iffa+P5JaeC7puVXE\n1n6wz+UTy28gPaccq37NMdXXvn3xVe/uOr3uRdJzykksfwcARmYH6TnlJBdN73G90K5fkZ5TTnTT\npwGIbbgn6Je9vz+mdh2P4607tXBycb9aNUuK00M7HylOb++XvkRe+zrpOeWEt373mNryl15H5I3v\nkJ5TTuS1B4+rnCNJzyknPXfIUbVXRESkOwX50iujdS9G667gFzeL1bC289wTUkds8+cxWvfgps/F\nS03qc3mnYiZO1Q34ofLjrLmX9huF6VYCp+oGnMrL+1ivr9/fSsdad8d6dt3yHj8X++Wkt6VvXnIC\nTtUNeIkzT1odHfo4Tvpw7G09lceRiIiUAvtUN0D+QtlJcJqxDy0jP+JWrIY14OWK008UI1sDGLTM\negYMq8/lsxM+f8LqPhI/MojMhY++JXWden7wj53EPrSM7PjgV6t2+Qnf3ydCftjN5IfdfKqb0S+n\nU1tFRKS0aCRfeuQOuAAAqzCaax9aBoBTNq3rgk4TsfV3kXr2DNJzB5NcdBGh3Y8BENv4iSBVYftP\ni4uHtz0UpDu8+hXSc8rBawN80k8PClKAfJfoy58ltWAC6bmDSS2cQnjrQ8X1u6frpOeUk1w8k9jG\nT5KeP5LIli+dkO3vnq7TX2ZmG4ll15KeW0Vi2bWYza91KS++8mbiq28jPX9ksV+smiUklr2d9Nyh\n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\ntWsZOHAgQUFBrF69ugQjKz0tWrQgPj6etLQ097I9e/bw8MMPc+rUKZKTk93LDx48SERExC0fs7C+\neLP99OzZs3z00Ue88cYbPPzww4SFhVGnTh3efPNNGjRowKefflrgvrfaL+40jUZDUFAQGs3tT13L\ny/8bkuQLIYS4ZRqNBoPBAKh/IBcuXEj//v2Jiopi9OjRxMfHu7dt27Yt8+fPp1evXrzwwgsA7Nq1\ni0ceeYROnToxZMgQtmzZ4t5+3759PPbYY0RGRjJkyBBWrVrlXjdx4kRmzZrFm2++SefOnenfv797\nhPazzz7jl19+YfXq1QwcOLDIOvz888+MGDGCBQsW0KtXL6Kiopg9e7bHH/zly5czcOBAOnfuzLPP\nPsvp06fdcbz99tsMGzaMnj17cvLkSdLS0nj77beJioqiT58+TJs2DYvF4i5ry5YtDB8+nMjISKKi\nohg/fjzp6ekApKWl8cYbb9C9e3e6du3Kq6++ypUrV9z7bty4kcGDB9OpUyceeeQRtm/fXmC9ck/L\nGDlyJAsXLmTUqFFERkYyaNAgtm3bVuC+cXFxHD16lIiICDp27MjKlSvd67Zv305kZCSZmZnuZQcP\nHqRjx46kpaXdVD/473//y4MPPkjHjh3p2bMn06dPx+FwuPf5+uuv6devH127dmXWrFk888wzHiPy\nhR0vt4YNG2IwGDh8+DAAqampREdH07t3b0JDQ92j+ampqZw+fdo9kn/x4kXGjRtH586dGTBgAHPn\nzsVut7vLLayv5paSksLgwYN58803PfqXzWYjKiqK3377zb3M6XTSr1+/fN9Er1mzhoCAAHr37p1n\n3euvv85LL70EqNfC2LFjeeaZZ+jevTvbt2/P0y8WL17M888/T2RkJE888QRnz55lypQpdOnShfvv\nv5+//vrLXfbJkyd55pln3H1o6dKl+dYzP/feey8rVqzgySefJDIykocffth9HkB94zJmzBi6du1K\n//79+de//gXkna6TkJDAmDFj6Ny5M8OHD89zrguL8bPPPmP8+PHMnDmTqKgoevXq5Z5y+PPPP7Nw\n4UL2799Pu3btAPUN4COPPEJkZCQDBgwos9MTrydJvhBCiBuSOymx2+1s2LCBXbt20alTJwC+/fZb\nVq1axcSJE/nyyy+pVq0azz77LFlZWe79Nm/ezOeff85LL71EbGwsL774Ip07d+brr7/mvvvu4403\n3uDcuXPuP+R9+vRh2bJlPPnkk7z33nsebwK+//57wsPD+eabb4iKimL69OmkpqYyfPhwunfvTlRU\nlDtRKMrhw4eJjY3l888/55VXXmHFihXs2LEDgB9//JF58+bx3HPP8fXXX1O5cmXGjRvn3nfNmjWM\nGDGCDz74gNq1a/POO++QkpLC559/zvvvv8/p06eZNGkSoCYyr7/+OoMGDWLFihVMmzaN3bt38/33\n3wMwf/58Lly4wPz58/niiy9ITEzk/fffByA6OpqJEyfy+OOP88033zBw4EBeeeWVIudg51i0aBG9\nevVi2bJl1K9fn6lTpxY4crlmzRoqVqxIw4YN6dSpE8ePH3cfp02bNphMJo9zsW7dOtq1a4fZbL7h\nfrBv3z5mzJjBs88+y/fff89rr73Gzz//7E5uV69ezeeff86YMWNYuHAh58+f588//3RPdVm+fHm+\nx8v9JiSHTqejcePGHDx4EFCTuJo1axIYGEhERIQ7yT948CBms5m6devicrl45ZVX8Pf3Z/HixUya\nNImtW7cyd+5cgGL1VQCr1crYsWOpWrUqb7/9tsdUHb1eT9euXT2S/H379pGRkcHdd9+dpx7Hjx8n\nPDw833NXvXp1qlev7n69detWunXrxvz582nWrFme7b/88ksGDhzI4sWLuXr1Ko8++ijBwcEsWrSI\n6tWrM2vWLAAyMzMZPXo0TZs25ZtvvmHcuHEsW7aMb7/9Nt848rNgwQIeffRRli5diq+vL++99567\nbUaNGoXBYGDhwoW8+eabfPXVV6xZsyZPGa+99ho2m40vv/ySxx9/nGXLlrnbsjgxbty4EZ1Ox1df\nfcXw4cP55JNPiI2NpUePHjz88MM0atSIX375BYfDwauvvkqnTp1YsWIFL7/8MgsWLGDnzp3Frm9p\nkSRfCCHEDXnvvffo0qULXbp0ITIykkmTJjF06FD3PP2vvvqKF154gYiICMLCwhg3bhw6nY7169e7\ny7jvvvuoUaMGtWrV4qeffqJx48Y8+eSTVKtWjcGDB/PEE09gsVj497//TUREBIMHDyY0NJQePXow\nZMgQli1b5i7rrrvuYtiwYYSEhPD0009jtVo5efIk3t7eGAwGDAZDsefxOhwOXn/9dWrUqEHv3r2p\nW7eue5Tx+++/Z8iQIfTo0YPQ0FDGjRtHZGSke8pH/fr16dy5Mw0aNODs2bNs2rSJt99+mzp16hAe\n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\nAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x149e8c88>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# plot percent change in crime incidents\n", | |
"ax = pct_spike.sort_values().plot(kind='barh', fontsize=14, grid=False, figsize=(6,4), color='orange', width=0.8)\n", | |
"\n", | |
"ax.set_ylabel('', fontsize=14, color='black')\n", | |
"ax.set_xlabel('Percent Increase in Average Weekly Crime Incidents', fontsize=14)\n", | |
"plt.xticks(rotation=0, fontsize=14)\n", | |
"plt.yticks(rotation=0, color='orange',weight='bold', fontsize=14)\n", | |
"ax.patch.set_facecolor('black')\n", | |
"\n", | |
"# x formatter function\n", | |
"def func(x, pos): \n", | |
" s = '{:.0f}'.format(x * 100)\n", | |
" return s\n", | |
"\n", | |
"x_format = tkr.FuncFormatter(func) \n", | |
"ax.xaxis.set_major_formatter(x_format)\n", | |
"\n", | |
"ax.text(-0.29, -2.1, \"From: chart-it (MikeRAzar.com/chart-it) | Source: http://data.octo.dc.gov/metadata.aspx?id=3\", fontsize=12) " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create dataframe of crime incidents grouped by neighborhood to measure statistical significance\n", | |
"dc_crime_stats = dc_crime[(dc_crime.index.month >= 1) & (dc_crime.index.month <= 12)].\\\n", | |
"groupby(['NEIGHBORHOOD', pd.TimeGrouper('W')])['OFFENSE'].agg('count')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create dataframe of Halloween crime incidents grouped by neighborhood to measure statistical significance\n", | |
"halloween_crime_stats = dc_crime[(dc_crime.index.month == 10) & (dc_crime.index.day > 24)].\\\n", | |
"groupby(['NEIGHBORHOOD', pd.TimeGrouper('M')])['OFFENSE'].agg('count')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create dataframe of average weekly crime incidents across years by neighborhood for statistical significance test\n", | |
"summary_stats = dc_crime_stats.reset_index().set_index('START_DATE').groupby(['NEIGHBORHOOD']).mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# add standard deviation\n", | |
"summary_stats['STD'] = dc_crime_stats.reset_index().set_index('START_DATE').groupby(['NEIGHBORHOOD']).std()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# rename columsn for clarity\n", | |
"summary_stats.columns = ['AVG', 'STD']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create dataframe of average weekly Halloween incidents across years by neighborhood for statistical significance test\n", | |
"observed = halloween_crime_stats.reset_index().set_index(['NEIGHBORHOOD', 'START_DATE']).astype('float')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# calculate the mean across years\n", | |
"observed = observed.groupby(level=0).mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# merge mean/std for all crime incidents and incidents during Halloween in same dataframe\n", | |
"new_df = pd.DataFrame()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"new_df = pd.concat([summary_stats])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"observed = observed.reindex(summary_stats.index)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"summary_stats['OBSERVED'] = observed" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# calculate z-score of halloween crime incidents, sample size equals to 4\n", | |
"summary_stats['Z'] = (summary_stats['OBSERVED'] - summary_stats['AVG']) / ( summary_stats['STD'] / np.sqrt(4))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# convert z-scores into p-values\n", | |
"summary_stats['P'] = st.norm.cdf(summary_stats.Z)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>AVG</th>\n", | |
" <th>STD</th>\n", | |
" <th>OBSERVED</th>\n", | |
" <th>Z</th>\n", | |
" <th>P</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>NEIGHBORHOOD</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Howard University, Le Droit Park, Cardozo/Shaw</th>\n", | |
" <td>27.614286</td>\n", | |
" <td>8.099784</td>\n", | |
" <td>38.750000</td>\n", | |
" <td>2.749633</td>\n", | |
" <td>0.997017</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Capitol View, Marshall Heights, Benning Heigh</th>\n", | |
" <td>19.423810</td>\n", | |
" <td>6.019617</td>\n", | |
" <td>27.000000</td>\n", | |
" <td>2.517167</td>\n", | |
" <td>0.994085</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Brightwood Park, Crestwood, Petworth</th>\n", | |
" <td>32.466667</td>\n", | |
" <td>8.521930</td>\n", | |
" <td>42.000000</td>\n", | |
" <td>2.237365</td>\n", | |
" <td>0.987369</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Edgewood, Bloomingdale, Truxton Circle, Eckington</th>\n", | |
" <td>24.880952</td>\n", | |
" <td>7.388736</td>\n", | |
" <td>31.750000</td>\n", | |
" <td>1.859330</td>\n", | |
" <td>0.968510</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Columbia Heights, Mt. Pleasant, Pleasant Plains, Park View</th>\n", | |
" <td>57.166667</td>\n", | |
" <td>13.337210</td>\n", | |
" <td>69.500000</td>\n", | |
" <td>1.849462</td>\n", | |
" <td>0.967804</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Congress Heights, Bellevue, Washington Highland</th>\n", | |
" <td>30.895238</td>\n", | |
" <td>7.721125</td>\n", | |
" <td>37.250000</td>\n", | |
" <td>1.646072</td>\n", | |
" <td>0.950125</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Takoma, Brightwood, Manor Park</th>\n", | |
" <td>18.814286</td>\n", | |
" <td>6.392938</td>\n", | |
" <td>23.750000</td>\n", | |
" <td>1.544115</td>\n", | |
" <td>0.938720</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Mayfair, Hillbrook, Mahaning Heigh</th>\n", | |
" <td>8.957143</td>\n", | |
" <td>3.390540</td>\n", | |
" <td>11.500000</td>\n", | |
" <td>1.499972</td>\n", | |
" <td>0.933189</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Shaw, Logan Circ</th>\n", | |
" <td>22.004762</td>\n", | |
" <td>6.072526</td>\n", | |
" <td>26.000000</td>\n", | |
" <td>1.315841</td>\n", | |
" <td>0.905886</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Georgetown, Burleith/Hillanda</th>\n", | |
" <td>18.623810</td>\n", | |
" <td>5.911339</td>\n", | |
" <td>22.500000</td>\n", | |
" <td>1.311442</td>\n", | |
" <td>0.905146</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Southwest Employment Area, Southwest/Waterfront, Fort McNair, Buzzard Poin</th>\n", | |
" <td>11.066667</td>\n", | |
" <td>4.216093</td>\n", | |
" <td>13.750000</td>\n", | |
" <td>1.272901</td>\n", | |
" <td>0.898473</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Eastland Gardens, Kenilworth</th>\n", | |
" <td>2.610811</td>\n", | |
" <td>1.563821</td>\n", | |
" <td>3.500000</td>\n", | |
" <td>1.137201</td>\n", | |
" <td>0.872273</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Twining, Fairlawn, Randle Highlands, Penn Branch, Fort Davis Park, Dupont Park</th>\n", | |
" <td>17.304762</td>\n", | |
" <td>5.636728</td>\n", | |
" <td>20.500000</td>\n", | |
" <td>1.133721</td>\n", | |
" <td>0.871544</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>NoMa, Union Station, Stanton Park, Kingman Park</th>\n", | |
" <td>38.500000</td>\n", | |
" <td>10.786422</td>\n", | |
" <td>43.750000</td>\n", | |
" <td>0.973446</td>\n", | |
" <td>0.834834</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Historic Anacostia</th>\n", | |
" <td>8.205742</td>\n", | |
" <td>3.486342</td>\n", | |
" <td>9.750000</td>\n", | |
" <td>0.885890</td>\n", | |
" <td>0.812162</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fairfax Village, Naylor Gardens, Hillcrest, Summit Park</th>\n", | |
" <td>6.928230</td>\n", | |
" <td>2.778630</td>\n", | |
" <td>8.000000</td>\n", | |
" <td>0.771438</td>\n", | |
" <td>0.779776</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Douglass, Shipley Terrac</th>\n", | |
" <td>13.095238</td>\n", | |
" <td>4.205314</td>\n", | |
" <td>14.500000</td>\n", | |
" <td>0.668089</td>\n", | |
" <td>0.747962</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Dupont Circle, Connecticut Avenue/K S</th>\n", | |
" <td>38.533333</td>\n", | |
" <td>8.307565</td>\n", | |
" <td>40.750000</td>\n", | |
" <td>0.533650</td>\n", | |
" <td>0.703208</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Kalorama Heights, Adams Morgan, Lanier Heigh</th>\n", | |
" <td>18.519048</td>\n", | |
" <td>6.198635</td>\n", | |
" <td>20.000000</td>\n", | |
" <td>0.477832</td>\n", | |
" <td>0.683615</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Woodridge, Fort Lincoln, Gateway</th>\n", | |
" <td>8.476190</td>\n", | |
" <td>3.443586</td>\n", | |
" <td>9.250000</td>\n", | |
" <td>0.449421</td>\n", | |
" <td>0.673436</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Friendship Heights, American University Park, Tenleytown</th>\n", | |
" <td>11.742857</td>\n", | |
" <td>4.563279</td>\n", | |
" <td>12.750000</td>\n", | |
" <td>0.441412</td>\n", | |
" <td>0.670543</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Lamond Riggs, Queens Chapel, Fort Totten, Pleasant Hi</th>\n", | |
" <td>8.052381</td>\n", | |
" <td>3.356365</td>\n", | |
" <td>8.750000</td>\n", | |
" <td>0.415699</td>\n", | |
" <td>0.661185</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Woodland/Fort Stanton, Garfield Heights, Knox Hi</th>\n", | |
" <td>8.162679</td>\n", | |
" <td>3.115153</td>\n", | |
" <td>8.750000</td>\n", | |
" <td>0.377073</td>\n", | |
" <td>0.646940</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Brookland, Brentwood, Langdon</th>\n", | |
" <td>22.276190</td>\n", | |
" <td>6.492536</td>\n", | |
" <td>23.500000</td>\n", | |
" <td>0.376990</td>\n", | |
" <td>0.646909</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Ivy City, Arboretum, Trinidad, Carver Langston</th>\n", | |
" <td>25.061905</td>\n", | |
" <td>6.641970</td>\n", | |
" <td>26.250000</td>\n", | |
" <td>0.357754</td>\n", | |
" <td>0.639736</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>River Terrace, Benning, Greenway, Fort Dupon</th>\n", | |
" <td>17.233333</td>\n", | |
" <td>5.127824</td>\n", | |
" <td>18.000000</td>\n", | |
" <td>0.299022</td>\n", | |
" <td>0.617538</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Spring Valley, Palisades, Wesley Heights, Foxhall Crescent, Foxhall Village, Georgetown Reservoi</th>\n", | |
" <td>4.130653</td>\n", | |
" <td>2.680460</td>\n", | |
" <td>4.500000</td>\n", | |
" <td>0.275585</td>\n", | |
" <td>0.608566</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Capitol Hill, Lincoln Park</th>\n", | |
" <td>31.757143</td>\n", | |
" <td>11.193516</td>\n", | |
" <td>32.750000</td>\n", | |
" <td>0.177399</td>\n", | |
" <td>0.570402</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>North Cleveland Park, Forest Hills, Van N</th>\n", | |
" <td>4.118812</td>\n", | |
" <td>2.314940</td>\n", | |
" <td>4.250000</td>\n", | |
" <td>0.113340</td>\n", | |
" <td>0.545120</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Colonial Village, Shepherd Park, North Portal Esta</th>\n", | |
" <td>3.940000</td>\n", | |
" <td>2.674352</td>\n", | |
" <td>3.666667</td>\n", | |
" <td>-0.204411</td>\n", | |
" <td>0.419016</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>North Michigan Park, Michigan Park, University Heigh</th>\n", | |
" <td>8.578947</td>\n", | |
" <td>3.468919</td>\n", | |
" <td>8.000000</td>\n", | |
" <td>-0.333791</td>\n", | |
" <td>0.369269</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Downtown, Chinatown, Penn Quarters, Mount Vernon Square, North Capitol S</th>\n", | |
" <td>44.261905</td>\n", | |
" <td>9.446550</td>\n", | |
" <td>41.750000</td>\n", | |
" <td>-0.531814</td>\n", | |
" <td>0.297427</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>West End, Foggy Bottom, GWU</th>\n", | |
" <td>10.504762</td>\n", | |
" <td>3.761105</td>\n", | |
" <td>9.500000</td>\n", | |
" <td>-0.534291</td>\n", | |
" <td>0.296570</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Hawthorne, Barnaby Woods, Chevy Cha</th>\n", | |
" <td>5.907767</td>\n", | |
" <td>3.408202</td>\n", | |
" <td>4.250000</td>\n", | |
" <td>-0.972810</td>\n", | |
" <td>0.165324</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Sheridan, Barry Farm, Buena Vista</th>\n", | |
" <td>10.280952</td>\n", | |
" <td>3.899714</td>\n", | |
" <td>8.250000</td>\n", | |
" <td>-1.041590</td>\n", | |
" <td>0.148801</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Near Southeast, Navy Yard</th>\n", | |
" <td>3.808081</td>\n", | |
" <td>2.206022</td>\n", | |
" <td>2.500000</td>\n", | |
" <td>-1.185918</td>\n", | |
" <td>0.117827</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Deanwood, Burrville, Grant Park, Lincoln Heights, Fairmont Heigh</th>\n", | |
" <td>19.371429</td>\n", | |
" <td>6.212747</td>\n", | |
" <td>15.500000</td>\n", | |
" <td>-1.246286</td>\n", | |
" <td>0.106330</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Cathedral Heights, McLean Gardens, Glover Park</th>\n", | |
" <td>5.283654</td>\n", | |
" <td>2.776945</td>\n", | |
" <td>3.333333</td>\n", | |
" <td>-1.404652</td>\n", | |
" <td>0.080062</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Cleveland Park, Woodley Park, Massachusetts Avenue Heights, Woodland-Normanstone Terrac</th>\n", | |
" <td>7.252381</td>\n", | |
" <td>3.528167</td>\n", | |
" <td>4.250000</td>\n", | |
" <td>-1.701950</td>\n", | |
" <td>0.044382</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" AVG STD \\\n", | |
"NEIGHBORHOOD \n", | |
" Howard University, Le Droit Park, Cardozo/Shaw 27.614286 8.099784 \n", | |
" Capitol View, Marshall Heights, Benning Heigh 19.423810 6.019617 \n", | |
" Brightwood Park, Crestwood, Petworth 32.466667 8.521930 \n", | |
" Edgewood, Bloomingdale, Truxton Circle, Eckin... 24.880952 7.388736 \n", | |
" Columbia Heights, Mt. Pleasant, Pleasant Plai... 57.166667 13.337210 \n", | |
" Congress Heights, Bellevue, Washington Highland 30.895238 7.721125 \n", | |
" Takoma, Brightwood, Manor Park 18.814286 6.392938 \n", | |
" Mayfair, Hillbrook, Mahaning Heigh 8.957143 3.390540 \n", | |
" Shaw, Logan Circ 22.004762 6.072526 \n", | |
" Georgetown, Burleith/Hillanda 18.623810 5.911339 \n", | |
" Southwest Employment Area, Southwest/Waterfro... 11.066667 4.216093 \n", | |
" Eastland Gardens, Kenilworth 2.610811 1.563821 \n", | |
" Twining, Fairlawn, Randle Highlands, Penn Bra... 17.304762 5.636728 \n", | |
" NoMa, Union Station, Stanton Park, Kingman Park 38.500000 10.786422 \n", | |
" Historic Anacostia 8.205742 3.486342 \n", | |
" Fairfax Village, Naylor Gardens, Hillcrest, S... 6.928230 2.778630 \n", | |
" Douglass, Shipley Terrac 13.095238 4.205314 \n", | |
" Dupont Circle, Connecticut Avenue/K S 38.533333 8.307565 \n", | |
" Kalorama Heights, Adams Morgan, Lanier Heigh 18.519048 6.198635 \n", | |
" Woodridge, Fort Lincoln, Gateway 8.476190 3.443586 \n", | |
" Friendship Heights, American University Park,... 11.742857 4.563279 \n", | |
" Lamond Riggs, Queens Chapel, Fort Totten, Ple... 8.052381 3.356365 \n", | |
" Woodland/Fort Stanton, Garfield Heights, Knox Hi 8.162679 3.115153 \n", | |
" Brookland, Brentwood, Langdon 22.276190 6.492536 \n", | |
" Ivy City, Arboretum, Trinidad, Carver Langston 25.061905 6.641970 \n", | |
" River Terrace, Benning, Greenway, Fort Dupon 17.233333 5.127824 \n", | |
" Spring Valley, Palisades, Wesley Heights, Fox... 4.130653 2.680460 \n", | |
" Capitol Hill, Lincoln Park 31.757143 11.193516 \n", | |
" North Cleveland Park, Forest Hills, Van N 4.118812 2.314940 \n", | |
" Colonial Village, Shepherd Park, North Portal... 3.940000 2.674352 \n", | |
" North Michigan Park, Michigan Park, Universit... 8.578947 3.468919 \n", | |
" Downtown, Chinatown, Penn Quarters, Mount Ver... 44.261905 9.446550 \n", | |
" West End, Foggy Bottom, GWU 10.504762 3.761105 \n", | |
" Hawthorne, Barnaby Woods, Chevy Cha 5.907767 3.408202 \n", | |
" Sheridan, Barry Farm, Buena Vista 10.280952 3.899714 \n", | |
" Near Southeast, Navy Yard 3.808081 2.206022 \n", | |
" Deanwood, Burrville, Grant Park, Lincoln Heig... 19.371429 6.212747 \n", | |
" Cathedral Heights, McLean Gardens, Glover Park 5.283654 2.776945 \n", | |
" Cleveland Park, Woodley Park, Massachusetts A... 7.252381 3.528167 \n", | |
"\n", | |
" OBSERVED Z \\\n", | |
"NEIGHBORHOOD \n", | |
" Howard University, Le Droit Park, Cardozo/Shaw 38.750000 2.749633 \n", | |
" Capitol View, Marshall Heights, Benning Heigh 27.000000 2.517167 \n", | |
" Brightwood Park, Crestwood, Petworth 42.000000 2.237365 \n", | |
" Edgewood, Bloomingdale, Truxton Circle, Eckin... 31.750000 1.859330 \n", | |
" Columbia Heights, Mt. Pleasant, Pleasant Plai... 69.500000 1.849462 \n", | |
" Congress Heights, Bellevue, Washington Highland 37.250000 1.646072 \n", | |
" Takoma, Brightwood, Manor Park 23.750000 1.544115 \n", | |
" Mayfair, Hillbrook, Mahaning Heigh 11.500000 1.499972 \n", | |
" Shaw, Logan Circ 26.000000 1.315841 \n", | |
" Georgetown, Burleith/Hillanda 22.500000 1.311442 \n", | |
" Southwest Employment Area, Southwest/Waterfro... 13.750000 1.272901 \n", | |
" Eastland Gardens, Kenilworth 3.500000 1.137201 \n", | |
" Twining, Fairlawn, Randle Highlands, Penn Bra... 20.500000 1.133721 \n", | |
" NoMa, Union Station, Stanton Park, Kingman Park 43.750000 0.973446 \n", | |
" Historic Anacostia 9.750000 0.885890 \n", | |
" Fairfax Village, Naylor Gardens, Hillcrest, S... 8.000000 0.771438 \n", | |
" Douglass, Shipley Terrac 14.500000 0.668089 \n", | |
" Dupont Circle, Connecticut Avenue/K S 40.750000 0.533650 \n", | |
" Kalorama Heights, Adams Morgan, Lanier Heigh 20.000000 0.477832 \n", | |
" Woodridge, Fort Lincoln, Gateway 9.250000 0.449421 \n", | |
" Friendship Heights, American University Park,... 12.750000 0.441412 \n", | |
" Lamond Riggs, Queens Chapel, Fort Totten, Ple... 8.750000 0.415699 \n", | |
" Woodland/Fort Stanton, Garfield Heights, Knox Hi 8.750000 0.377073 \n", | |
" Brookland, Brentwood, Langdon 23.500000 0.376990 \n", | |
" Ivy City, Arboretum, Trinidad, Carver Langston 26.250000 0.357754 \n", | |
" River Terrace, Benning, Greenway, Fort Dupon 18.000000 0.299022 \n", | |
" Spring Valley, Palisades, Wesley Heights, Fox... 4.500000 0.275585 \n", | |
" Capitol Hill, Lincoln Park 32.750000 0.177399 \n", | |
" North Cleveland Park, Forest Hills, Van N 4.250000 0.113340 \n", | |
" Colonial Village, Shepherd Park, North Portal... 3.666667 -0.204411 \n", | |
" North Michigan Park, Michigan Park, Universit... 8.000000 -0.333791 \n", | |
" Downtown, Chinatown, Penn Quarters, Mount Ver... 41.750000 -0.531814 \n", | |
" West End, Foggy Bottom, GWU 9.500000 -0.534291 \n", | |
" Hawthorne, Barnaby Woods, Chevy Cha 4.250000 -0.972810 \n", | |
" Sheridan, Barry Farm, Buena Vista 8.250000 -1.041590 \n", | |
" Near Southeast, Navy Yard 2.500000 -1.185918 \n", | |
" Deanwood, Burrville, Grant Park, Lincoln Heig... 15.500000 -1.246286 \n", | |
" Cathedral Heights, McLean Gardens, Glover Park 3.333333 -1.404652 \n", | |
" Cleveland Park, Woodley Park, Massachusetts A... 4.250000 -1.701950 \n", | |
"\n", | |
" P \n", | |
"NEIGHBORHOOD \n", | |
" Howard University, Le Droit Park, Cardozo/Shaw 0.997017 \n", | |
" Capitol View, Marshall Heights, Benning Heigh 0.994085 \n", | |
" Brightwood Park, Crestwood, Petworth 0.987369 \n", | |
" Edgewood, Bloomingdale, Truxton Circle, Eckin... 0.968510 \n", | |
" Columbia Heights, Mt. Pleasant, Pleasant Plai... 0.967804 \n", | |
" Congress Heights, Bellevue, Washington Highland 0.950125 \n", | |
" Takoma, Brightwood, Manor Park 0.938720 \n", | |
" Mayfair, Hillbrook, Mahaning Heigh 0.933189 \n", | |
" Shaw, Logan Circ 0.905886 \n", | |
" Georgetown, Burleith/Hillanda 0.905146 \n", | |
" Southwest Employment Area, Southwest/Waterfro... 0.898473 \n", | |
" Eastland Gardens, Kenilworth 0.872273 \n", | |
" Twining, Fairlawn, Randle Highlands, Penn Bra... 0.871544 \n", | |
" NoMa, Union Station, Stanton Park, Kingman Park 0.834834 \n", | |
" Historic Anacostia 0.812162 \n", | |
" Fairfax Village, Naylor Gardens, Hillcrest, S... 0.779776 \n", | |
" Douglass, Shipley Terrac 0.747962 \n", | |
" Dupont Circle, Connecticut Avenue/K S 0.703208 \n", | |
" Kalorama Heights, Adams Morgan, Lanier Heigh 0.683615 \n", | |
" Woodridge, Fort Lincoln, Gateway 0.673436 \n", | |
" Friendship Heights, American University Park,... 0.670543 \n", | |
" Lamond Riggs, Queens Chapel, Fort Totten, Ple... 0.661185 \n", | |
" Woodland/Fort Stanton, Garfield Heights, Knox Hi 0.646940 \n", | |
" Brookland, Brentwood, Langdon 0.646909 \n", | |
" Ivy City, Arboretum, Trinidad, Carver Langston 0.639736 \n", | |
" River Terrace, Benning, Greenway, Fort Dupon 0.617538 \n", | |
" Spring Valley, Palisades, Wesley Heights, Fox... 0.608566 \n", | |
" Capitol Hill, Lincoln Park 0.570402 \n", | |
" North Cleveland Park, Forest Hills, Van N 0.545120 \n", | |
" Colonial Village, Shepherd Park, North Portal... 0.419016 \n", | |
" North Michigan Park, Michigan Park, Universit... 0.369269 \n", | |
" Downtown, Chinatown, Penn Quarters, Mount Ver... 0.297427 \n", | |
" West End, Foggy Bottom, GWU 0.296570 \n", | |
" Hawthorne, Barnaby Woods, Chevy Cha 0.165324 \n", | |
" Sheridan, Barry Farm, Buena Vista 0.148801 \n", | |
" Near Southeast, Navy Yard 0.117827 \n", | |
" Deanwood, Burrville, Grant Park, Lincoln Heig... 0.106330 \n", | |
" Cathedral Heights, McLean Gardens, Glover Park 0.080062 \n", | |
" Cleveland Park, Woodley Park, Massachusetts A... 0.044382 " | |
] | |
}, | |
"execution_count": 40, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# sort by p-value\n", | |
"summary_stats.sort_values('P', ascending=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 41, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create list of top 5 neighborhoods\n", | |
"hoods = pct_spike.index" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 42, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create dataframe of Halloween crime by offense type to measure which see greatest increase\n", | |
"halloween_crime_type= dc_crime[(dc_crime['NEIGHBORHOOD'].isin(hoods) & (dc_crime.index.month == 10) & (dc_crime.index.day > 24))].\\\n", | |
"groupby(['NEIGHBORHOOD', 'OFFENSE', pd.TimeGrouper('M')])['OFFENSE'].agg('count').groupby(level=[1]).mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create dataframe of all crime by offense type to measure which see greatest increase\n", | |
"all_crime_type = dc_crime[(dc_crime['NEIGHBORHOOD'].isin(hoods) & (dc_crime.index.month <= 12) & (dc_crime.index.month >= 1))].\\\n", | |
"groupby(['NEIGHBORHOOD', 'OFFENSE', pd.TimeGrouper('W')])['OFFENSE'].agg('count').groupby(level=[1]).mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"OFFENSE\n", | |
"BURGLARY 0.591220\n", | |
"THEFT F/AUTO 0.496354\n", | |
"ROBBERY 0.440450\n", | |
"THEFT/OTHER 0.247436\n", | |
"MOTOR VEHICLE THEFT 0.168851\n", | |
"ASSAULT W/DANGEROUS WEAPON 0.076433\n", | |
"HOMICIDE -0.086957\n", | |
"SEX ABUSE -0.145631\n", | |
"ARSON NaN\n", | |
"Name: OFFENSE, dtype: float64" | |
] | |
}, | |
"execution_count": 44, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# list of offenses that increase the most during halloween\n", | |
"((halloween_crime_type / all_crime_type) - 1).sort_values(ascending=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# add halloween crime bump to dataframe\n", | |
"summary_stats['PCT'] = summary_stats['OBSERVED'] / summary_stats['AVG']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 46, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>PCT</th>\n", | |
" <th>P</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>NEIGHBORHOOD</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Howard University, Le Droit Park, Cardozo/Shaw</th>\n", | |
" <td>1.403259</td>\n", | |
" <td>0.997017</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Capitol View, Marshall Heights, Benning Heigh</th>\n", | |
" <td>1.390047</td>\n", | |
" <td>0.994085</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Eastland Gardens, Kenilworth</th>\n", | |
" <td>1.340580</td>\n", | |
" <td>0.872273</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Brightwood Park, Crestwood, Petworth</th>\n", | |
" <td>1.293634</td>\n", | |
" <td>0.987369</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Mayfair, Hillbrook, Mahaning Heigh</th>\n", | |
" <td>1.283892</td>\n", | |
" <td>0.933189</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Edgewood, Bloomingdale, Truxton Circle, Eckington</th>\n", | |
" <td>1.276077</td>\n", | |
" <td>0.968510</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Takoma, Brightwood, Manor Park</th>\n", | |
" <td>1.262339</td>\n", | |
" <td>0.938720</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Southwest Employment Area, Southwest/Waterfront, Fort McNair, Buzzard Poin</th>\n", | |
" <td>1.242470</td>\n", | |
" <td>0.898473</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Columbia Heights, Mt. Pleasant, Pleasant Plains, Park View</th>\n", | |
" <td>1.215743</td>\n", | |
" <td>0.967804</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Georgetown, Burleith/Hillanda</th>\n", | |
" <td>1.208131</td>\n", | |
" <td>0.905146</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Congress Heights, Bellevue, Washington Highland</th>\n", | |
" <td>1.205687</td>\n", | |
" <td>0.950125</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Historic Anacostia</th>\n", | |
" <td>1.188192</td>\n", | |
" <td>0.812162</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Twining, Fairlawn, Randle Highlands, Penn Branch, Fort Davis Park, Dupont Park</th>\n", | |
" <td>1.184645</td>\n", | |
" <td>0.871544</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Shaw, Logan Circ</th>\n", | |
" <td>1.181562</td>\n", | |
" <td>0.905886</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Fairfax Village, Naylor Gardens, Hillcrest, Summit Park</th>\n", | |
" <td>1.154696</td>\n", | |
" <td>0.779776</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>NoMa, Union Station, Stanton Park, Kingman Park</th>\n", | |
" <td>1.136364</td>\n", | |
" <td>0.834834</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Douglass, Shipley Terrac</th>\n", | |
" <td>1.107273</td>\n", | |
" <td>0.747962</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Woodridge, Fort Lincoln, Gateway</th>\n", | |
" <td>1.091292</td>\n", | |
" <td>0.673436</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Spring Valley, Palisades, Wesley Heights, Foxhall Crescent, Foxhall Village, Georgetown Reservoi</th>\n", | |
" <td>1.089416</td>\n", | |
" <td>0.608566</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Lamond Riggs, Queens Chapel, Fort Totten, Pleasant Hi</th>\n", | |
" <td>1.086635</td>\n", | |
" <td>0.661185</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Friendship Heights, American University Park, Tenleytown</th>\n", | |
" <td>1.085766</td>\n", | |
" <td>0.670543</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Kalorama Heights, Adams Morgan, Lanier Heigh</th>\n", | |
" <td>1.079969</td>\n", | |
" <td>0.683615</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Woodland/Fort Stanton, Garfield Heights, Knox Hi</th>\n", | |
" <td>1.071952</td>\n", | |
" <td>0.646940</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Dupont Circle, Connecticut Avenue/K S</th>\n", | |
" <td>1.057526</td>\n", | |
" <td>0.703208</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Brookland, Brentwood, Langdon</th>\n", | |
" <td>1.054938</td>\n", | |
" <td>0.646909</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Ivy City, Arboretum, Trinidad, Carver Langston</th>\n", | |
" <td>1.047406</td>\n", | |
" <td>0.639736</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>River Terrace, Benning, Greenway, Fort Dupon</th>\n", | |
" <td>1.044487</td>\n", | |
" <td>0.617538</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>North Cleveland Park, Forest Hills, Van N</th>\n", | |
" <td>1.031851</td>\n", | |
" <td>0.545120</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Capitol Hill, Lincoln Park</th>\n", | |
" <td>1.031264</td>\n", | |
" <td>0.570402</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Downtown, Chinatown, Penn Quarters, Mount Vernon Square, North Capitol S</th>\n", | |
" <td>0.943249</td>\n", | |
" <td>0.297427</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>North Michigan Park, Michigan Park, University Heigh</th>\n", | |
" <td>0.932515</td>\n", | |
" <td>0.369269</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Colonial Village, Shepherd Park, North Portal Esta</th>\n", | |
" <td>0.930626</td>\n", | |
" <td>0.419016</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>West End, Foggy Bottom, GWU</th>\n", | |
" <td>0.904352</td>\n", | |
" <td>0.296570</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Sheridan, Barry Farm, Buena Vista</th>\n", | |
" <td>0.802455</td>\n", | |
" <td>0.148801</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Deanwood, Burrville, Grant Park, Lincoln Heights, Fairmont Heigh</th>\n", | |
" <td>0.800147</td>\n", | |
" <td>0.106330</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Hawthorne, Barnaby Woods, Chevy Cha</th>\n", | |
" <td>0.719392</td>\n", | |
" <td>0.165324</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Near Southeast, Navy Yard</th>\n", | |
" <td>0.656499</td>\n", | |
" <td>0.117827</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Cathedral Heights, McLean Gardens, Glover Park</th>\n", | |
" <td>0.630877</td>\n", | |
" <td>0.080062</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Cleveland Park, Woodley Park, Massachusetts Avenue Heights, Woodland-Normanstone Terrac</th>\n", | |
" <td>0.586014</td>\n", | |
" <td>0.044382</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" PCT P\n", | |
"NEIGHBORHOOD \n", | |
" Howard University, Le Droit Park, Cardozo/Shaw 1.403259 0.997017\n", | |
" Capitol View, Marshall Heights, Benning Heigh 1.390047 0.994085\n", | |
" Eastland Gardens, Kenilworth 1.340580 0.872273\n", | |
" Brightwood Park, Crestwood, Petworth 1.293634 0.987369\n", | |
" Mayfair, Hillbrook, Mahaning Heigh 1.283892 0.933189\n", | |
" Edgewood, Bloomingdale, Truxton Circle, Eckin... 1.276077 0.968510\n", | |
" Takoma, Brightwood, Manor Park 1.262339 0.938720\n", | |
" Southwest Employment Area, Southwest/Waterfro... 1.242470 0.898473\n", | |
" Columbia Heights, Mt. Pleasant, Pleasant Plai... 1.215743 0.967804\n", | |
" Georgetown, Burleith/Hillanda 1.208131 0.905146\n", | |
" Congress Heights, Bellevue, Washington Highland 1.205687 0.950125\n", | |
" Historic Anacostia 1.188192 0.812162\n", | |
" Twining, Fairlawn, Randle Highlands, Penn Bra... 1.184645 0.871544\n", | |
" Shaw, Logan Circ 1.181562 0.905886\n", | |
" Fairfax Village, Naylor Gardens, Hillcrest, S... 1.154696 0.779776\n", | |
" NoMa, Union Station, Stanton Park, Kingman Park 1.136364 0.834834\n", | |
" Douglass, Shipley Terrac 1.107273 0.747962\n", | |
" Woodridge, Fort Lincoln, Gateway 1.091292 0.673436\n", | |
" Spring Valley, Palisades, Wesley Heights, Fox... 1.089416 0.608566\n", | |
" Lamond Riggs, Queens Chapel, Fort Totten, Ple... 1.086635 0.661185\n", | |
" Friendship Heights, American University Park,... 1.085766 0.670543\n", | |
" Kalorama Heights, Adams Morgan, Lanier Heigh 1.079969 0.683615\n", | |
" Woodland/Fort Stanton, Garfield Heights, Knox Hi 1.071952 0.646940\n", | |
" Dupont Circle, Connecticut Avenue/K S 1.057526 0.703208\n", | |
" Brookland, Brentwood, Langdon 1.054938 0.646909\n", | |
" Ivy City, Arboretum, Trinidad, Carver Langston 1.047406 0.639736\n", | |
" River Terrace, Benning, Greenway, Fort Dupon 1.044487 0.617538\n", | |
" North Cleveland Park, Forest Hills, Van N 1.031851 0.545120\n", | |
" Capitol Hill, Lincoln Park 1.031264 0.570402\n", | |
" Downtown, Chinatown, Penn Quarters, Mount Ver... 0.943249 0.297427\n", | |
" North Michigan Park, Michigan Park, Universit... 0.932515 0.369269\n", | |
" Colonial Village, Shepherd Park, North Portal... 0.930626 0.419016\n", | |
" West End, Foggy Bottom, GWU 0.904352 0.296570\n", | |
" Sheridan, Barry Farm, Buena Vista 0.802455 0.148801\n", | |
" Deanwood, Burrville, Grant Park, Lincoln Heig... 0.800147 0.106330\n", | |
" Hawthorne, Barnaby Woods, Chevy Cha 0.719392 0.165324\n", | |
" Near Southeast, Navy Yard 0.656499 0.117827\n", | |
" Cathedral Heights, McLean Gardens, Glover Park 0.630877 0.080062\n", | |
" Cleveland Park, Woodley Park, Massachusetts A... 0.586014 0.044382" | |
] | |
}, | |
"execution_count": 46, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# table of all neighborhoods with selected columns\n", | |
"summary_stats[['PCT', 'P']].sort_values('PCT', ascending=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create dataframe of weekly crime incidents during fall season grouped by neighborhood \n", | |
"all_crime_city = dc_crime[(dc_crime.index.month >= 1) & (dc_crime.index.month <= 12)].groupby([pd.TimeGrouper('W')])['OFFENSE'].agg('count').mean(level=0).mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 48, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# create dataframe of weekly crime incidents during Halloween Week grouped by neighborhood\n", | |
"halloween_crime_city = dc_crime[(dc_crime.index.month == 10) & (dc_crime.index.day > 24)].groupby([pd.TimeGrouper('M')])['OFFENSE'].agg('count').mean(level=0).mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 49, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# calculate percent increae in crime\n", | |
"pct_spike_city = ((halloween_crime_city / all_crime_city ) - 1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 50, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# calculate absolute increae in crime\n", | |
"abs_spike_city = (halloween_crime_city - all_crime_city)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 51, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.11579088585429242" | |
] | |
}, | |
"execution_count": 51, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"pct_spike_city" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 52, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"674.4095238095238" | |
] | |
}, | |
"execution_count": 52, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"all_crime_city" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 53, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"halloween_crime_type = dc_crime[(dc_crime.index.month == 10) & (dc_crime.index.day > 24)].\\\n", | |
"groupby(['OFFENSE', pd.TimeGrouper('M')])['OFFENSE'].agg('count').groupby(level=[0]).mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 54, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"all_crime_type = dc_crime[(dc_crime.index.month <= 12) & (dc_crime.index.month >= 1)].\\\n", | |
"groupby(['OFFENSE', pd.TimeGrouper('W')])['OFFENSE'].agg('count').groupby(level=[0]).mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 55, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"OFFENSE\n", | |
"HOMICIDE 0.362944\n", | |
"ROBBERY 0.230705\n", | |
"SEX ABUSE 0.181112\n", | |
"BURGLARY 0.150839\n", | |
"ASSAULT W/DANGEROUS WEAPON 0.142439\n", | |
"ARSON 0.119565\n", | |
"MOTOR VEHICLE THEFT 0.116927\n", | |
"THEFT/OTHER 0.101288\n", | |
"THEFT F/AUTO 0.062758\n", | |
"Name: OFFENSE, dtype: float64" | |
] | |
}, | |
"execution_count": 55, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# list of offenses that increase the most during halloween\n", | |
"((halloween_crime_type / all_crime_type) - 1).sort_values(ascending=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 56, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"OFFENSE\n", | |
"ARSON 1.50\n", | |
"ASSAULT W/DANGEROUS WEAPON 49.25\n", | |
"BURGLARY 76.75\n", | |
"HOMICIDE 3.00\n", | |
"MOTOR VEHICLE THEFT 63.00\n", | |
"ROBBERY 91.50\n", | |
"SEX ABUSE 5.75\n", | |
"THEFT F/AUTO 200.75\n", | |
"THEFT/OTHER 261.75\n", | |
"Name: OFFENSE, dtype: float64" | |
] | |
}, | |
"execution_count": 56, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"dc_crime[(dc_crime.index.month == 10) & (dc_crime.index.day > 24)].\\\n", | |
"groupby(['OFFENSE', pd.TimeGrouper('M')])['OFFENSE'].agg('count').groupby(level=[0]).mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 57, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"OFFENSE\n", | |
"ARSON 1.339806\n", | |
"ASSAULT W/DANGEROUS WEAPON 43.109524\n", | |
"BURGLARY 66.690476\n", | |
"HOMICIDE 2.201117\n", | |
"MOTOR VEHICLE THEFT 56.404762\n", | |
"ROBBERY 74.347619\n", | |
"SEX ABUSE 4.868293\n", | |
"THEFT F/AUTO 188.895238\n", | |
"THEFT/OTHER 237.676190\n", | |
"Name: OFFENSE, dtype: float64" | |
] | |
}, | |
"execution_count": 57, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"dc_crime[(dc_crime.index.month <= 12) & (dc_crime.index.month >= 1)].\\\n", | |
"groupby(['OFFENSE', pd.TimeGrouper('W')])['OFFENSE'].agg('count').groupby(level=[0]).mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 58, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"OFFENSE\n", | |
"THEFT/OTHER 24.073810\n", | |
"ROBBERY 17.152381\n", | |
"THEFT F/AUTO 11.854762\n", | |
"BURGLARY 10.059524\n", | |
"MOTOR VEHICLE THEFT 6.595238\n", | |
"ASSAULT W/DANGEROUS WEAPON 6.140476\n", | |
"SEX ABUSE 0.881707\n", | |
"HOMICIDE 0.798883\n", | |
"ARSON 0.160194\n", | |
"Name: OFFENSE, dtype: float64" | |
] | |
}, | |
"execution_count": 58, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"((halloween_crime_type - all_crime_type)).sort_values(ascending=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 59, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"OFFENSE\n", | |
"HOMICIDE 0.362944\n", | |
"ROBBERY 0.230705\n", | |
"SEX ABUSE 0.181112\n", | |
"BURGLARY 0.150839\n", | |
"ASSAULT W/DANGEROUS WEAPON 0.142439\n", | |
"ARSON 0.119565\n", | |
"MOTOR VEHICLE THEFT 0.116927\n", | |
"THEFT/OTHER 0.101288\n", | |
"THEFT F/AUTO 0.062758\n", | |
"Name: OFFENSE, dtype: float64" | |
] | |
}, | |
"execution_count": 59, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"((halloween_crime_type / all_crime_type) - 1).sort_values(ascending=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 60, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"674.4095238095238" | |
] | |
}, | |
"execution_count": 60, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"dc_crime[(dc_crime.index.month <= 12) & (dc_crime.index.month >= 1)].\\\n", | |
"groupby([pd.TimeGrouper('W')])['OFFENSE'].agg('count').mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 61, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"105.08326115462815" | |
] | |
}, | |
"execution_count": 61, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"dc_crime[(dc_crime.index.month <= 12) & (dc_crime.index.month >= 1)].\\\n", | |
"groupby([pd.TimeGrouper('W')])['OFFENSE'].agg('count').std()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 62, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"752.5" | |
] | |
}, | |
"execution_count": 62, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"dc_crime[(dc_crime.index.month == 10) & (dc_crime.index.day > 24)].groupby([pd.TimeGrouper('M')])['OFFENSE'].agg('count').mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 63, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.75754759129455629" | |
] | |
}, | |
"execution_count": 63, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"(752.5 - 674.40952380952376) / (105.08326115462812 - np.sqrt(4))" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.4.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment