In [1]:
from __future__ import division, print_function, unicode_literals
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
In [2]:
housing_owners = pd.read_csv('fema_data/chi_housing_assistance_owners.csv')
housing_owners['zipCode'] = housing_owners['zipCode'].fillna(0).astype(int).astype(str)
housing_renters = pd.read_csv('fema_data/chi_housing_assistance_renters.csv')
housing_renters['zipCode'] = housing_renters['zipCode'].fillna(0).astype(int).astype(str)
combined_fema_df = pd.concat([housing_owners[['zipCode', 'approvedForFemaAssistance', 'totalApprovedIhpAmount']],
housing_renters[['zipCode', 'approvedForFemaAssistance', 'totalApprovedIhpAmount']]])
combined_fema_df.head()
Out[2]:
In [3]:
combined_fema_zips = pd.DataFrame(combined_fema_df.groupby(['zipCode']).agg({'approvedForFemaAssistance': 'sum',
'totalApprovedIhpAmount': 'sum'})).reset_index()
combined_fema_zips = combined_fema_zips.dropna()
combined_fema_zips.head()
Out[3]:
In [4]:
wib_07_df = pd.read_csv('311_data/wib_calls_311_zip.csv')
wib_07_df['Created Date'] = pd.to_datetime(wib_07_df['Created Date'])
wib_07_df = wib_07_df.set_index(wib_07_df['Created Date'])
wib_07_df = wib_07_df['2007-01-01':][wib_07_df.columns.values[2:]]
wib_07_stack = pd.DataFrame(wib_07_df.stack()).reset_index()
wib_07_stack = wib_07_stack.rename(columns={'level_0':'Created Date','level_1':'Zip Code',0:'Count Calls'})
wib_07_sum = wib_07_stack.groupby(['Zip Code'])['Count Calls'].sum()
wib_07_sum = wib_07_sum.reset_index()
wib_07_sum = wib_07_sum.sort_values(by='Count Calls',ascending=False)
wib_07_sum.head()
Out[4]:
In [5]:
wib_07_zips = wib_07_sum['Zip Code'].unique()
fema_zip_df = combined_fema_zips.loc[combined_fema_zips['zipCode'].isin(wib_07_zips)].copy()
fema_zip_df.head()
Out[5]:
In [6]:
plt.rcParams["figure.figsize"] = [15, 5]
fema_wib_zip = pd.DataFrame()
fema_wib_zip[['Zip Code', 'FEMA Approved', 'FEMA Claims Total']] = fema_zip_df.copy()
fema_wib_zip = fema_wib_zip.merge(wib_07_sum, on='Zip Code')
fema_wib_zip.plot(title='FEMA Totals and FOIA Scatter Plot', x='Count Calls', y='FEMA Claims Total', kind='scatter')
Out[6]:
In [7]:
# Total dollar amount of FEMA claims generally seems to line up with the number of approved claims by zip
fema_wib_zip.plot(title='FEMA and FOIA Data Scatter Plot', x='FEMA Approved', y='FEMA Claims Total', kind='scatter')
Out[7]:
In [8]:
fema_zips_by_total = fema_wib_zip.sort_values(by='FEMA Claims Total', ascending=False)[:20].copy()
fema_zips_by_total.plot(kind='bar', x='Zip Code', y='FEMA Claims Total')
Out[8]:
In [9]:
fema_zips_by_approved = fema_wib_zip.sort_values(by='FEMA Approved', ascending=False)[:20].copy()
fema_zips_by_approved.plot(kind='bar', x='Zip Code', y='FEMA Approved')
Out[9]:
In [ ]: