-
Notifications
You must be signed in to change notification settings - Fork 0
/
MapMaker.py
39 lines (30 loc) · 1.32 KB
/
MapMaker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import os
import pandas as pd
import geopandas as gpd
from shapely.geometry import Point, Polygon
from pyproj import CRS, Proj, transform
def loadShootingData():
folder = 'ShootingData\\'
masterShootingDataFrame = pd.DataFrame()
frames = []
for item in os.listdir(folder):
tempYearDataFrame = pd.read_excel(folder+item)
frames.append(tempYearDataFrame)
masterShootingDataFrame = pd.concat(frames)
return masterShootingDataFrame
def cleanData(dataFrame):
dataFrame = dataFrame.reset_index()
agencyDataFrame = pd.read_csv("PD Agency.csv",)
dataFrame = dataFrame.merge(agencyDataFrame, on = "Agency", how = 'left')
dataFrame = dataFrame[['PD NAME', 'Type','DateTime', 'Vsex', 'Vrace', 'Ref', 'Filed', 'Disposed', 'Declined', 'ILat', 'ILng']]
dataFrame['DateTime'] = pd.to_datetime(dataFrame['DateTime'])
dataFrame['Year'] = dataFrame['DateTime'].dt.year
dataFrame['Type'] = dataFrame['Type'].replace('H', 'Homicide')
dataFrame['Type'] = dataFrame['Type'].replace('B', 'Non-Fatal')
dataFrame['Type'] = dataFrame['Type'].replace('S', 'Self-Inflicted')
dataFrame = dataFrame[dataFrame['Ref'] != "NoJuris"]
dataFrame = dataFrame[dataFrame['Type'] != "Self-Inflicted"]
dataFrame.to_csv("ShootingMapV2.csv", encoding = 'utf-8', index = False)
def runMapMaker():
shootingDataFrame = loadShootingData()
cleanData(shootingDataFrame)