import pandas as pd
from pandas import DataFrame
import census
import settings
import us
from itertools import islice
# instantiate the census object
c=census.Census(settings.CENSUS_KEY)
def places(variables="NAME"):
for state in us.states.STATES:
print state
geo = {'for':'place:*', 'in':'state:{s_fips}'.format(s_fips=state.fips)}
for place in c.sf1.get(variables, geo=geo):
yield place
r = list(islice(places("NAME,P0010001"), None))
places_df = DataFrame(r)
places_df.P0010001 = places_df.P0010001.astype('int')
places_df['FIPS'] = places_df.apply(lambda s: s['state']+s['place'], axis=1)
print "number of places", len(places_df)
print "total pop", places_df.P0010001.sum()
places_df.head()
Alabama Alaska Arizona Arkansas California Colorado Connecticut Delaware District of Columbia Florida Georgia Hawaii Idaho Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Maryland Massachusetts Michigan Minnesota Mississippi Missouri Montana Nebraska Nevada New Hampshire New Jersey New Mexico New York North Carolina North Dakota Ohio Oklahoma Oregon Pennsylvania Rhode Island South Carolina South Dakota Tennessee Texas Utah Vermont Virginia Washington West Virginia Wisconsin Wyoming number of places 29261 total pop 228457238
NAME | P0010001 | place | state | FIPS | |
---|---|---|---|---|---|
0 | Abanda CDP | 192 | 00100 | 01 | 0100100 |
1 | Abbeville city | 2688 | 00124 | 01 | 0100124 |
2 | Adamsville city | 4522 | 00460 | 01 | 0100460 |
3 | Addison town | 758 | 00484 | 01 | 0100484 |
4 | Akron town | 356 | 00676 | 01 | 0100676 |
assert places_df.P0010001.sum() == 228457238
# number of places in 2010 Census
assert len(places_df) == 29261