Skip to content

Instantly share code, notes, and snippets.

@mapmeld
Created July 1, 2012 13:57
Show Gist options
  • Save mapmeld/3028502 to your computer and use it in GitHub Desktop.
Save mapmeld/3028502 to your computer and use it in GitHub Desktop.
HouseCaseData
# stats and scraper for Macon Code Enforcement Housing Data
import datetime
prop = open('PROP1.csv', 'r')
thisyr = open('cases-2012.csv', 'w')
startdate = None
enddate = None
casespan = None
byyear = {
'1995': 0,
'1996': 0,
'1997': 0,
'1998': 0,
'1999': 0,
'2000': 0,
'2001': 0,
'2002': 0,
'2003': 0,
'2004': 0,
'2005': 0,
'2006': 0,
'2007': 0,
'2008': 0,
'2009': 0,
'2010': 0,
'2011': 0,
'2012': 0
}
bymonth = {
'01': 0,
'02': 0,
'03': 0,
'04': 0,
'05': 0,
'06': 0,
'07': 0,
'08': 0,
'09': 0,
'10': 0,
'11': 0,
'12': 0
}
responsetimebyyear = {
'1995': datetime.timedelta(0),
'1996': datetime.timedelta(0),
'1997': datetime.timedelta(0),
'1998': datetime.timedelta(0),
'1999': datetime.timedelta(0),
'2000': datetime.timedelta(0),
'2001': datetime.timedelta(0),
'2002': datetime.timedelta(0),
'2003': datetime.timedelta(0),
'2004': datetime.timedelta(0),
'2005': datetime.timedelta(0),
'2006': datetime.timedelta(0),
'2007': datetime.timedelta(0),
'2008': datetime.timedelta(0),
'2009': datetime.timedelta(0),
'2010': datetime.timedelta(0),
'2011': datetime.timedelta(0),
'2012': datetime.timedelta(0)
}
maxbyyear = {
'1995': datetime.timedelta(0),
'1996': datetime.timedelta(0),
'1997': datetime.timedelta(0),
'1998': datetime.timedelta(0),
'1999': datetime.timedelta(0),
'2000': datetime.timedelta(0),
'2001': datetime.timedelta(0),
'2002': datetime.timedelta(0),
'2003': datetime.timedelta(0),
'2004': datetime.timedelta(0),
'2005': datetime.timedelta(0),
'2006': datetime.timedelta(0),
'2007': datetime.timedelta(0),
'2008': datetime.timedelta(0),
'2009': datetime.timedelta(0),
'2010': datetime.timedelta(0),
'2011': datetime.timedelta(0),
'2012': datetime.timedelta(0)
}
openbyyear = {
'1995': 0,
'1996': 0,
'1997': 0,
'1998': 0,
'1999': 0,
'2000': 0,
'2001': 0,
'2002': 0,
'2003': 0,
'2004': 0,
'2005': 0,
'2006': 0,
'2007': 0,
'2008': 0,
'2009': 0,
'2010': 0,
'2011': 0,
'2012': 0
}
for line in prop:
line = line.split(',')
caseid = line[10]
try:
# calculate start and end
startdate = datetime.datetime( int( line[11][0:4] ), int( line[11][4:6] ), int( line[11][6:8] ) )
enddate = datetime.datetime( int( line[9][0:4] ), int( line[9][4:6] ), int( line[9][6:8] ) )
casespan = enddate - startdate
# add to stats
byyear[ line[11][0:4] ] = byyear[ line[11][0:4] ] + 1
bymonth[ line[11][4:6] ] = bymonth[ line[11][4:6] ] + 1
responsetimebyyear[ line[11][0:4] ] = responsetimebyyear[ line[11][0:4] ] + casespan
if(casespan > maxbyyear[ line[11][0:4] ]):
maxbyyear[ line[11][0:4] ] = casespan
# create CSV of current stuff
if(line[11][0:4] == "2012"):
thisyr.write(','.join(line))
except:
if(len(line[11]) != 8):
print "begin date error: " + ','.join(line)
if(len(line[9].replace(' ','').replace(' ','')) == 2 or len(line[9].replace(' ','').replace(' ','')) == 0):
try:
openbyyear[ line[11][0:4] ] = openbyyear[ line[11][0:4] ] + 1
except:
print ','.join(line)
continue
#print line[10] + ": " + str( casespan )
for year in range(1995, 2013):
print str(year) + ":" + str(byyear[ str(year) ]) + " cases, average response of " + str( responsetimebyyear[ str(year) ] / byyear[ str(year) ] ) + ", max of " + str( maxbyyear[ str(year) ] ) + " and " + str( openbyyear[ str(year) ] ) + " still open"
#print bymonth
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment