DATA201_projects/python_project_2.ipynb

478 lines
43 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": [
"/tmp/ipykernel_18634/2268714868.py:1: DtypeWarning: Columns (18,20) have mixed types. Specify dtype option on import or set low_memory=False.\n",
" 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",
"execution_count": 9,
"id": "3cbcbd7c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='BORO,CRIME_CLASS'>"
]
},
"execution_count": 9,
"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": [
"# A quick visualization of the above\n",
"\n",
"df.groupby(['BORO'])['CRIME_CLASS'].value_counts().plot(kind = 'bar')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"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",
"# df.rename(columns = {'PARKS_NM': 'PUBLIC_SPACE', '', inplace = True}"
]
}
],
"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
}