from IPython.display import HTML
HTML('''<script>
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Click here to toggle on/off the raw code."></form>''')
import pandas as pd
import matplotlib
from IPython.display import Image
from IPython.core.display import HTML
%matplotlib inline
df=pd.read_csv('311_geo_report_tracts.csv',parse_dates=['requested_datetime','updated_datetime','closed_date'])
df.shape[0]
df.head()
df['count']=1
df['year']=df.requested_datetime.dt.year
df=df[df['year']==2017]
df['month']=df.requested_datetime.dt.month
df=df[df.month>2]
df.shape[0]
df.service_name.value_counts()[0:50]
df.service_name.value_counts()[50:100]
1- 'Abandoned property', 2- 'Power outage', 3- 'Street light issue', 4- 'ISD-Buildings', 5- 'Illegal parking', 6- 'TV/monitor pick up'
dg=df.groupby('service_name').count()
services=['TV/monitor pick up','Illegal parking','ISD-Buildings','Street light issue','Abandoned property','Power outage']
df=df[df.service_name.isin(services)]
df=df.reset_index(drop=True)
df.shape[0]
dg=df.groupby('TRACTCE').count()
tracts=dg[dg['count']>10].index
df=df[df.TRACTCE.isin(tracts)]
df=df.reset_index(drop=True)
df['week']=df.requested_datetime.dt.week
dg=df[['week','TRACTCE','service_name','count']].groupby(['week','TRACTCE','service_name']).count()
dg=dg.unstack().reset_index()
dg.columns=['Week Number','Tract Number']+list(dg.columns.get_level_values(1)[2:])
dg=dg.fillna(0)
dg.shape[0]
dg.to_csv('311_tract_groups.csv',index=False)
dg.head()