DATA201_projects/python_project_2.ipynb

734 lines
88 KiB
Plaintext
Raw Normal View History

2022-07-26 02:20:35 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "a8d466b1",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"pd.set_option('display.max_columns', None)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "1feb2733",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
2022-07-27 20:34:45 +00:00
"/tmp/ipykernel_13417/2268714868.py:1: DtypeWarning: Columns (18,20) have mixed types. Specify dtype option on import or set low_memory=False.\n",
2022-07-26 02:20:35 +00:00
" df = pd.read_csv('~/Downloads/NYPD_Complaint_Data_Historic.csv')\n"
]
}
],
"source": [
"df = pd.read_csv('~/Downloads/NYPD_Complaint_Data_Historic.csv')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "5b1cdbba",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['CMPLNT_NUM', 'CMPLNT_FR_DT', 'CMPLNT_FR_TM', 'CMPLNT_TO_DT',\n",
" 'CMPLNT_TO_TM', 'ADDR_PCT_CD', 'RPT_DT', 'KY_CD', 'OFNS_DESC', 'PD_CD',\n",
" 'PD_DESC', 'CRM_ATPT_CPTD_CD', 'LAW_CAT_CD', 'BORO_NM',\n",
" 'LOC_OF_OCCUR_DESC', 'PREM_TYP_DESC', 'JURIS_DESC', 'JURISDICTION_CODE',\n",
" 'PARKS_NM', 'HADEVELOPT', 'HOUSING_PSA', 'X_COORD_CD', 'Y_COORD_CD',\n",
" 'SUSP_AGE_GROUP', 'SUSP_RACE', 'SUSP_SEX', 'TRANSIT_DISTRICT',\n",
" 'Latitude', 'Longitude', 'Lat_Lon', 'PATROL_BORO', 'STATION_NAME',\n",
" 'VIC_AGE_GROUP', 'VIC_RACE', 'VIC_SEX'],\n",
" dtype='object')"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.columns\n",
"# df.dtypes\n",
"# df.shape"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "1ac30b35",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# According to the data dictionary, CMPLNT_NUM (Complaint Number) is randomly generated and persistent.\n",
"# Is it unique?\n",
"\n",
"df['CMPLNT_NUM'].is_unique"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "f0c76e18",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False 7821537\n",
"True 3962\n",
"dtype: int64"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# It's not unique. That's unexpected.\n",
"\n",
"df.duplicated(subset = 'CMPLNT_NUM').value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "253ab2f0",
"metadata": {},
"outputs": [],
"source": [
"# Since CMPLNT_NUM is not unique, we can't use it as an index.\n",
"# Let's drop it.\n",
"\n",
"df.drop('CMPLNT_NUM', axis = 1, inplace = True)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "7859f04c",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>CMPLNT_FR_DT</th>\n",
" <th>CMPLNT_FR_TM</th>\n",
" <th>CMPLNT_TO_DT</th>\n",
" <th>CMPLNT_TO_TM</th>\n",
" <th>ADDR_PCT_CD</th>\n",
" <th>RPT_DT</th>\n",
" <th>KY_CD</th>\n",
" <th>OFNS_DESC</th>\n",
" <th>PD_CD</th>\n",
" <th>PD_DESC</th>\n",
" <th>CRM_ATPT_CPTD_CD</th>\n",
" <th>LAW_CAT_CD</th>\n",
" <th>BORO_NM</th>\n",
" <th>LOC_OF_OCCUR_DESC</th>\n",
" <th>PREM_TYP_DESC</th>\n",
" <th>JURIS_DESC</th>\n",
" <th>JURISDICTION_CODE</th>\n",
" <th>PARKS_NM</th>\n",
" <th>HADEVELOPT</th>\n",
" <th>HOUSING_PSA</th>\n",
" <th>X_COORD_CD</th>\n",
" <th>Y_COORD_CD</th>\n",
" <th>SUSP_AGE_GROUP</th>\n",
" <th>SUSP_RACE</th>\n",
" <th>SUSP_SEX</th>\n",
" <th>TRANSIT_DISTRICT</th>\n",
" <th>Latitude</th>\n",
" <th>Longitude</th>\n",
" <th>Lat_Lon</th>\n",
" <th>PATROL_BORO</th>\n",
" <th>STATION_NAME</th>\n",
" <th>VIC_AGE_GROUP</th>\n",
" <th>VIC_RACE</th>\n",
" <th>VIC_SEX</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>12/31/2019</td>\n",
" <td>17:30:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>32.0</td>\n",
" <td>12/31/2019</td>\n",
" <td>118</td>\n",
" <td>DANGEROUS WEAPONS</td>\n",
" <td>793.0</td>\n",
" <td>WEAPONS POSSESSION 3</td>\n",
" <td>COMPLETED</td>\n",
" <td>FELONY</td>\n",
" <td>MANHATTAN</td>\n",
" <td>NaN</td>\n",
" <td>STREET</td>\n",
" <td>N.Y. POLICE DEPT</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>999937.0</td>\n",
" <td>238365.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>40.820927</td>\n",
" <td>-73.943324</td>\n",
" <td>(40.82092679700002, -73.94332421899996)</td>\n",
" <td>PATROL BORO MAN NORTH</td>\n",
" <td>NaN</td>\n",
" <td>UNKNOWN</td>\n",
" <td>UNKNOWN</td>\n",
" <td>E</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>12/29/2019</td>\n",
" <td>16:31:00</td>\n",
" <td>12/29/2019</td>\n",
" <td>16:54:00</td>\n",
" <td>47.0</td>\n",
" <td>12/29/2019</td>\n",
" <td>113</td>\n",
" <td>FORGERY</td>\n",
" <td>729.0</td>\n",
" <td>FORGERY,ETC.,UNCLASSIFIED-FELO</td>\n",
" <td>COMPLETED</td>\n",
" <td>FELONY</td>\n",
" <td>BRONX</td>\n",
" <td>NaN</td>\n",
" <td>STREET</td>\n",
" <td>N.Y. POLICE DEPT</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1022508.0</td>\n",
" <td>261990.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>40.885701</td>\n",
" <td>-73.861640</td>\n",
" <td>(40.885701406000074, -73.86164032499995)</td>\n",
" <td>PATROL BORO BRONX</td>\n",
" <td>NaN</td>\n",
" <td>UNKNOWN</td>\n",
" <td>UNKNOWN</td>\n",
" <td>E</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>12/15/2019</td>\n",
" <td>18:45:00</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>109.0</td>\n",
" <td>12/29/2019</td>\n",
" <td>578</td>\n",
" <td>HARRASSMENT 2</td>\n",
" <td>638.0</td>\n",
" <td>HARASSMENT,SUBD 3,4,5</td>\n",
" <td>COMPLETED</td>\n",
" <td>VIOLATION</td>\n",
" <td>QUEENS</td>\n",
" <td>FRONT OF</td>\n",
" <td>STREET</td>\n",
" <td>N.Y. POLICE DEPT</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1034178.0</td>\n",
" <td>209758.0</td>\n",
" <td>25-44</td>\n",
" <td>UNKNOWN</td>\n",
" <td>M</td>\n",
" <td>NaN</td>\n",
" <td>40.742281</td>\n",
" <td>-73.819824</td>\n",
" <td>(40.74228115600005, -73.81982408)</td>\n",
" <td>PATROL BORO QUEENS NORTH</td>\n",
" <td>NaN</td>\n",
" <td>25-44</td>\n",
" <td>WHITE HISPANIC</td>\n",
" <td>F</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" CMPLNT_FR_DT CMPLNT_FR_TM CMPLNT_TO_DT CMPLNT_TO_TM ADDR_PCT_CD \\\n",
"0 12/31/2019 17:30:00 NaN NaN 32.0 \n",
"1 12/29/2019 16:31:00 12/29/2019 16:54:00 47.0 \n",
"2 12/15/2019 18:45:00 NaN NaN 109.0 \n",
"\n",
" RPT_DT KY_CD OFNS_DESC PD_CD \\\n",
"0 12/31/2019 118 DANGEROUS WEAPONS 793.0 \n",
"1 12/29/2019 113 FORGERY 729.0 \n",
"2 12/29/2019 578 HARRASSMENT 2 638.0 \n",
"\n",
" PD_DESC CRM_ATPT_CPTD_CD LAW_CAT_CD BORO_NM \\\n",
"0 WEAPONS POSSESSION 3 COMPLETED FELONY MANHATTAN \n",
"1 FORGERY,ETC.,UNCLASSIFIED-FELO COMPLETED FELONY BRONX \n",
"2 HARASSMENT,SUBD 3,4,5 COMPLETED VIOLATION QUEENS \n",
"\n",
" LOC_OF_OCCUR_DESC PREM_TYP_DESC JURIS_DESC JURISDICTION_CODE \\\n",
"0 NaN STREET N.Y. POLICE DEPT 0.0 \n",
"1 NaN STREET N.Y. POLICE DEPT 0.0 \n",
"2 FRONT OF STREET N.Y. POLICE DEPT 0.0 \n",
"\n",
" PARKS_NM HADEVELOPT HOUSING_PSA X_COORD_CD Y_COORD_CD SUSP_AGE_GROUP \\\n",
"0 NaN NaN NaN 999937.0 238365.0 NaN \n",
"1 NaN NaN NaN 1022508.0 261990.0 NaN \n",
"2 NaN NaN NaN 1034178.0 209758.0 25-44 \n",
"\n",
" SUSP_RACE SUSP_SEX TRANSIT_DISTRICT Latitude Longitude \\\n",
"0 NaN NaN NaN 40.820927 -73.943324 \n",
"1 NaN NaN NaN 40.885701 -73.861640 \n",
"2 UNKNOWN M NaN 40.742281 -73.819824 \n",
"\n",
" Lat_Lon PATROL_BORO \\\n",
"0 (40.82092679700002, -73.94332421899996) PATROL BORO MAN NORTH \n",
"1 (40.885701406000074, -73.86164032499995) PATROL BORO BRONX \n",
"2 (40.74228115600005, -73.81982408) PATROL BORO QUEENS NORTH \n",
"\n",
" STATION_NAME VIC_AGE_GROUP VIC_RACE VIC_SEX \n",
"0 NaN UNKNOWN UNKNOWN E \n",
"1 NaN UNKNOWN UNKNOWN E \n",
"2 NaN 25-44 WHITE HISPANIC F "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head(3)\n",
"# df.columns\n",
"# df.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "5fd666ad",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"BORO CRIME_CLASS\n",
"BRONX MISDEMEANOR 1000078\n",
" FELONY 466248\n",
" VIOLATION 227655\n",
"BROOKLYN MISDEMEANOR 1249836\n",
" FELONY 754414\n",
" VIOLATION 308893\n",
"MANHATTAN MISDEMEANOR 1075687\n",
" FELONY 597184\n",
" VIOLATION 209421\n",
"QUEENS MISDEMEANOR 826883\n",
" FELONY 516528\n",
" VIOLATION 218301\n",
"STATEN ISLAND MISDEMEANOR 210270\n",
" FELONY 81032\n",
" VIOLATION 70589\n",
"Name: CRIME_CLASS, dtype: int64"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Question 1\n",
"\n",
"# How does each borough compare according to the class of crime committed?\n",
"# But first, rename some columns to make the table more readable.\n",
"\n",
"df.rename(columns = {'LAW_CAT_CD': 'CRIME_CLASS', 'BORO_NM': 'BORO'}, inplace = True)\n",
"df.groupby(['BORO'])['CRIME_CLASS'].value_counts()"
]
},
{
"cell_type": "code",
2022-07-27 20:34:45 +00:00
"execution_count": 9,
2022-07-26 02:20:35 +00:00
"id": "3cbcbd7c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='BORO,CRIME_CLASS'>"
]
},
2022-07-27 20:34:45 +00:00
"execution_count": 9,
2022-07-26 02:20:35 +00:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2022-07-26 21:22:25 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAAHmCAYAAABXrguzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABijUlEQVR4nO3dedytc73/8dfbUBSiUI5po0ESmarTjOpwVJrE1pzSQCNFpbmk0ogGldQ5RRxlSJ0GkTRTZI4QUj+SdCplev/++F5r77XXXvfa97budX2vxfv5eOyHta5r3ff1cV/rWutzfYfPV7aJiIiIiDtmmdoBREREREyzJFMRERERY0gyFRERETGGJFMRERERY0gyFRERETGGJFMRERERY6iaTEk6QtK1ks6b5eufI+kCSedL+sqk44uIiIhYEtWsMyXpccDfgC/Z3nQJr30AcAywne0bJK1p+9o24oyIiIiYSdWWKdunA3/u3yZpI0n/K+ksST+UtHGz62XAYbZvaH42iVRERERU18UxU4cDr7a9FbAv8Mlm+wOBB0r6kaSfStqhWoQRERERjeVqB9BP0krAo4BjJfU2373573LAA4AnAOsAP5S0qe2/tBxmRERExAKdSqYoLWV/sf2wIfuuBn5q+xbgckkXU5KrX7QYX0RERMQiOtXNZ/uvlERpFwAVmze7jwe2bbavTun2u6xGnBERERE9tUsjHAX8BHiQpKsl7QE8F9hD0jnA+cDOzcu/DVwv6QLgVOCNtq+vEXdERERET9XSCBERERHTrlPdfBERERHTJslURERExBiqzeZbffXVPW/evFqHj4iIiJi1s84660+21xi2r1oyNW/ePM4888xah4+IiIiYNUm/m2lfuvkiIiIixpBkKiIiImIMSaYiIiIixpBkKiIiImIMSaYiIiIixpBkKiIiImIMSaYiIiIixpBkKiIiImIMSaYiIiIixpBkKiIiImIMSaYiIiIixlBtbb6485u3/8lz9ruuOGinOftdERERcyktUxERERFjSDIVERERMYYkUxERERFjSDIVERERMYYkUxERERFjWGIyJekISddKOm+G/c+V9Ovm348lbT73YUZERER002xapo4Edhix/3Lg8bY3A94DHD4HcUVERERMhSXWmbJ9uqR5I/b/uO/pT4F15iCuiIiIiKkw12Om9gC+Nce/MyIiIqKz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
2022-07-26 02:20:35 +00:00
"text/plain": [
2022-07-26 21:22:25 +00:00
"<Figure size 720x360 with 1 Axes>"
2022-07-26 02:20:35 +00:00
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# A quick visualization of the above\n",
"\n",
2022-07-26 21:22:25 +00:00
"df.groupby(['BORO'])['CRIME_CLASS'].value_counts().plot(kind = 'bar', figsize = (10, 5))"
2022-07-26 02:20:35 +00:00
]
},
{
"cell_type": "code",
2022-07-27 20:34:45 +00:00
"execution_count": 10,
2022-07-26 21:22:25 +00:00
"id": "b07d2228",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6761"
]
},
2022-07-27 20:34:45 +00:00
"execution_count": 10,
2022-07-26 21:22:25 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# df.head(25)\n",
"# df['OFNS_DESC'].isna().sum()\n",
"df['PD_DESC'].isna().sum()"
]
},
{
"cell_type": "code",
2022-07-27 20:34:45 +00:00
"execution_count": 11,
2022-07-26 02:20:35 +00:00
"id": "1ef4d375",
"metadata": {},
"outputs": [],
"source": [
"# Question 2\n",
"\n",
"# Some incidents occurred in NYC parks, playgrounds or greenspaces.\n",
"# What crimes were reported most often and where?\n",
"\n",
"# Again, let's begin by renaming columns.\n",
"\n",
2022-07-26 21:22:25 +00:00
"df.rename(columns = {'PARKS_NM': 'PUBLIC_SPACE',\n",
" 'PD_DESC': 'DESCRIPTION',\n",
" 'ADDR_PCT_CD': 'PRECINCT',\n",
" 'Lat_Lon': 'LOCATION',\n",
" 'CMPLNT_FR_DT': 'DATE',\n",
" 'CMPLNT_FR_TM': 'TIME'\n",
" }, inplace = True)"
]
},
{
"cell_type": "code",
2022-07-27 20:34:45 +00:00
"execution_count": 12,
2022-07-26 21:22:25 +00:00
"id": "b838819a",
"metadata": {},
"outputs": [],
"source": [
"# PD_DESC and OFNS_DESC are both descriptions of the incident.\n",
"# The former is more granular, according to the data dictionary.\n",
"# Also, it has fewer NaNs."
]
},
{
"cell_type": "code",
2022-07-27 20:34:45 +00:00
"execution_count": 13,
2022-07-26 21:22:25 +00:00
"id": "e9c16848",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"CENTRAL PARK 1856\n",
"FLUSHING MEADOWS CORONA PARK 1532\n",
"CONEY ISLAND BEACH & BOARDWALK 1161\n",
"WASHINGTON SQUARE PARK 1063\n",
"RIVERSIDE PARK 680\n",
"PROSPECT PARK 616\n",
"UNION SQUARE PARK 599\n",
"MARCUS GARVEY PARK 469\n",
"RANDALL'S ISLAND PARK 454\n",
"SARA D. ROOSEVELT PARK 395\n",
"BRYANT PARK 354\n",
"ST. MARY'S PARK BRONX 354\n",
"CLAREMONT PARK 348\n",
"MACOMBS DAM PARK 341\n",
"CROTONA PARK 319\n",
"Name: PUBLIC_SPACE, dtype: int64"
]
},
2022-07-27 20:34:45 +00:00
"execution_count": 13,
2022-07-26 21:22:25 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Let's choose public spaces to compare.\n",
"\n",
"# df.head()\n",
"df['PUBLIC_SPACE'].sort_values(ascending = False).value_counts().head(15)"
]
},
{
"cell_type": "code",
2022-07-27 20:34:45 +00:00
"execution_count": 56,
2022-07-26 21:22:25 +00:00
"id": "91ae572a",
"metadata": {},
2022-07-27 20:34:45 +00:00
"outputs": [
{
"data": {
"text/plain": [
"LARCENY,PETIT FROM OPEN AREAS, 563\n",
"LARCENY,GRAND FROM OPEN AREAS, UNATTENDED 501\n",
"ASSAULT 3 473\n",
"CONTROLLED SUBSTANCE, POSSESSI 272\n",
"HARASSMENT,SUBD 3,4,5 252\n",
"CRIMINAL MISCHIEF 4TH, GRAFFIT 209\n",
"ASSAULT 2,1,UNCLASSIFIED 187\n",
"HARASSMENT,SUBD 1,CIVILIAN 187\n",
"MARIJUANA, POSSESSION 4 & 5 174\n",
"ROBBERY,OPEN AREA UNCLASSIFIED 143\n",
"LARCENY,PETIT OF VEHICLE ACCES 141\n",
"LARCENY,PETIT FROM BUILDING,UN 133\n",
"LARCENY,PETIT OF BICYCLE 131\n",
"ROBBERY,PERSONAL ELECTRONIC DEVICE 115\n",
"LEWDNESS,PUBLIC 91\n",
"SEXUAL ABUSE 3,2 77\n",
"LARCENY,GRAND FROM BUILDING (NON-RESIDENCE) UNATTENDED 71\n",
"CRIMINAL MISCHIEF,UNCLASSIFIED 4 66\n",
"MENACING,UNCLASSIFIED 66\n",
"MARIJUANA, SALE 4 & 5 65\n",
"LARCENY,GRAND FROM PERSON,PICK 64\n",
"RESISTING ARREST 63\n",
"LARCENY,GRAND FROM VEHICLE/MOTORCYCLE 59\n",
"LARCENY,PETIT BY DISHONEST EMP 54\n",
"WEAPONS, POSSESSION, ETC 53\n",
"MISCHIEF, CRIMINAL 4, OF MOTOR 53\n",
"PUBLIC ADMINISTATION,UNCLASS M 52\n",
"ASSAULT POLICE/PEACE OFFICER 47\n",
"FORGERY,ETC.-MISD. 46\n",
"AGGRAVATED HARASSMENT 2 45\n",
"LARCENY,GRAND FROM PERSON,PERSONAL ELECTRONIC DEVICE(SNATCH) 45\n",
"LARCENY,PETIT FROM AUTO 44\n",
"BURGLARY,COMMERCIAL,NIGHT 36\n",
"LEAVING SCENE-ACCIDENT-PERSONA 33\n",
"LARCENY,GRAND FROM PERSON, BAG OPEN/DIP 33\n",
"RECKLESS ENDANGERMENT 2 31\n",
"CONTROLLED SUBSTANCE,INTENT TO 31\n",
"BRIBERY,PUBLIC ADMINISTRATION 30\n",
"LARCENY,GRAND BY THEFT OF CREDIT CARD 27\n",
"RAPE 1 26\n",
"MISCHIEF, CRIMINAL 3 & 2, OF M 26\n",
"WEAPONS POSSESSION 3 26\n",
"LARCENY,GRAND OF BICYCLE 25\n",
"LARCENY,PETIT FROM STORE-SHOPL 24\n",
"LARCENY,GRAND BY ACQUIRING LOST CREDIT CARD 23\n",
"LARCENY,GRAND FROM PERSON,UNCL 22\n",
"LARCENY,PETIT BY ACQUIRING LOS 21\n",
"ROBBERY,BICYCLE 21\n",
"LARCENY,GRAND OF AUTO 20\n",
"RECKLESS ENDANGERMENT 1 19\n",
"Name: DESCRIPTION, dtype: int64"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
2022-07-26 21:22:25 +00:00
"source": [
"# Each of the top four have more than 1000 incidents.\n",
2022-07-27 20:34:45 +00:00
"# What kind of incidents occurred there?\n",
"\n",
"subset = df[(df['PUBLIC_SPACE'] == 'CENTRAL PARK')\n",
" | (df['PUBLIC_SPACE'] == 'FLUSHING MEADOWS CORONA PARK')\n",
" | (df['PUBLIC_SPACE'] == 'CONEY ISLAND BEACH & BOARDWALK')\n",
" | (df['PUBLIC_SPACE'] == 'WASHINGTON SQUARE PARK')\n",
" ]\n",
"subset['DESCRIPTION'].value_counts().head(50)"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "30c5dab8",
"metadata": {},
"outputs": [],
"source": [
"# Many incidents. This is grim.\n",
"# Choose just a few (to avoid psychological fatigue).\n",
"\n",
"bikes = subset[subset['DESCRIPTION'].str.contains('BICYCLE')]\n",
"cars = subset[subset['DESCRIPTION'].str.contains('VEHICLE')]"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "be093f45",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='PUBLIC_SPACE'>"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Visualizations comparing these two incidents in each location\n",
"# I wonder if there's a way to combine them into one plot using different colors.\n",
"\n",
"bikes.groupby(['PUBLIC_SPACE'])['DESCRIPTION'].count().plot(kind = 'bar')"
]
},
{
"cell_type": "code",
"execution_count": 67,
"id": "c52dda8e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='PUBLIC_SPACE'>"
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"cars.groupby(['PUBLIC_SPACE'])['DESCRIPTION'].count().plot(kind = 'bar')"
]
},
{
"cell_type": "markdown",
"id": "483a4ff9",
"metadata": {},
"source": [
"## Conclusions\n",
"\n",
"### The dataset comprises NYPD criminal complaints from 2006 to 2019. The downloaded csv file contains more than 7 million rows and 35 columns. The complaint number for each row was found to be non-unique. Exploratory analysis shows the dataset to be well formatted, with mostly string type data providing time, date, location and descriptions of each incident. No columns seemed to contain numerical data that would merit any summary statistics.\n",
"\n",
"### The first research question looks at the category of each incident and where those incidents occurred. I made a visualization to show the number of felony, misdemeanor and violations for each borough.\n",
"\n",
"### The second research quesion intended to show the top criminal complaints that occurred in NYC parks, playgrounds and greenspaces. But the task was found to be a nauseating experience, so I abandoned it. Instead, I compared the number of bike and car incidents for each of these public spaces. All incidents involving bikes or cars were considered: e.g. theft of, assault with, damage to, etc. Plotting showed Central Park to be where the greatest number of bike incidents occurred, but very few car incidents. Surprisingly, Flushing Meadows Park was very high for cars, whereas Washington Square Park had no car incidents at all."
2022-07-26 02:20:35 +00:00
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}