Skip to main content
https://travis-ci.org/datamade/census.svg?branch=master

A simple wrapper for the United States Census Bureau’s API.

Provides access to ACS, SF1, and SF3 data sets.

Usage

First, get yourself a Census API key.

from census import Census
from us import states

c = Census("MY_API_KEY")
c.acs5.get(('NAME', 'B25034_010E'),
          {'for': 'state:{}'.format(states.MD.fips)})

The call above will return the name of the geographic area and the number of homes that were built before 1939 for the state of Maryland. Helper methods have been created to simplify common geometry calls:

c.acs5.state(('NAME', 'B25034_010E'), states.MD.fips)

Full details on geometries and the states module can be found below.

The get method is the core data access method on both the ACS and SF1 data sets. The first parameter is either a single string column or a tuple of columns. The second parameter is a geoemtry dict with a for key and on option in key. The for argument accepts a “*” wildcard character or Census.ALL. The wildcard is not valid for the in parameter.

The default year is 2014. To access earlier data, pass a year parameter to the API call:

c.acs5.state(('NAME', 'B25034_010E'), states.MD.fips, year=2010)

The default year may also be set client-wide:

c = Census("MY_API_KEY", year=2010)

Datasets

  • acs5: ACS 5 Year Estimates (2014, 2013, 2012, 2011, 2010)

  • acs1dp: ACS 1 Year Estimates, Data Profiles (2012)

  • sf1: Census Summary File 1 (2010, 2000, 1990)

  • sf3: Census Summary File 3 (2000, 1990)

Geographies

The API supports a wide range of geographic regions. The specification of these can be quite complicated so a number of convenience methods are provided. Refer to the Census API documentation for more geographies beyond the convenience methods.

Not all geographies are supported in all years. Calling a convenience method with a year that is not supported will raise census.UnsupportedYearException.

Geographic relationship files are provided on the Census developer site as a tool to help users compare the geographies from the 1990, 2000 and 2010 Censuses. From these files, data users may determine how geographies from one Census relate to those from the prior Census.

ACS5 Geographies

  • state(fields, state_fips)

  • state_county(fields, state_fips, county_fips)

  • state_county_blockgroup(fields, state_fips, county_fips, blockgroup)

  • state_county_subdivision(fields, state_fips, county_fips, subdiv_fips)

  • state_county_tract(fields, state_fips, county_fips, tract)

  • state_place(fields, state_fips, place)

  • state_district(fields, state_fips, district)

  • us(fields)

  • zipcode(fields, zip5)

ACS1 Geographies

  • state(fields, state_fips)

  • state_district(fields, state_fips, district)

  • us(fields)

SF1 Geographies

  • state(fields, state_fips)

  • state_county(fields, state_fips, county_fips)

  • state_county_subdivision(fields, state_fips, county_fips, subdiv_fips)

  • state_county_tract(fields, state_fips, county_fips, tract)

  • state_place(fields, state_fips, place)

  • state_district(fields, state_fips, district)

  • state_msa(fields, state_fips, msa)

  • state_csa(fields, state_fips, csa)

  • state_district_place(fields, state_fips, district, place)

  • state_zipcode(fields, state_fips, zip5)

SF3 Geometries

  • state(fields, state_fips)

  • state_county(fields, state_fips, county_fips)

  • state_county_tract(fields, state_fips, county_fips, tract)

  • state_place(fields, state_fips, place)

States

This package previously had a census.states module, but now uses the us package.

>>> from us import states
>>> print states.MD.fips
u'24'

Convert FIPS to state abbreviation using lookup():

>>> print states.lookup('24').abbr
u'MD'

BYOS - Bring Your Own Session

If you’d prefer to use a custom configured requests.Session, you can pass it to the Census constructor:

s = requests.session()
s.headers.update({'User-Agent': 'census-demo/0.0'})

c = Census("MY_API_KEY", session=s)

You can also replace the session used by a specific data set:

c.sf1.session = s

Examples

The geographic name for all census tracts for county 170 in Alaska:

c.sf1.get('NAME', geo={'for': 'tract:*',
                       'in': 'state:{} county:170'.format(states.AK.fips)})

The same call using the state_county_tract convenience method:

c.sf1.state_county_tract('NAME', states.AK.fips, '170', Census.ALL)

Total number of males age 5 - 9 for all states:

c.acs5.get('B01001_004E', {'for': 'state:*'})

The same call using the state convenience method:

c.acs5.state('B01001_004E', Census.ALL)

Metadata

Release files for census 0.8.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for census 0.8.3
File Size Uploaded
census-0.8.3.tar.gz 7.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for census 0.8.3
File Interpreter ABI Platform
census-0.8.3-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 17.7 kB

Release files / census-0.8.3.tar.gz

Download URL census-0.8.3.tar.gz
Size 7.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ea92b9ee443e23cc4657f4d465ba6fd1b7223960fb8229c833ed7cb69f0c69c7
BLAKE2b-256 checksum
How to use checksums
bd1980c0fc7803e00ab7b22f4e499584d1a8e1df87a517f9b1bd2dfe8bed2e25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / census-0.8.3-py2.py3-none-any.whl

Download URL census-0.8.3-py2.py3-none-any.whl
Size 10.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
fdeb9c5f577be0813a11a420ff25b104d7d282bdf6fea52902d2bf9779dec105
BLAKE2b-256 checksum
How to use checksums
e83459f9b88caaf2d5c52682e879e4660da90dd47f32802d35d9e381555bd822
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.8.27

2 release files

0.8.23

2 release files

0.8.19

1 release file

0.8.18

1 release file

0.8.17

2 release files

0.8.16

2 release files

0.8.15

2 release files

0.8.14

2 release files

0.8.12

2 release files

0.8.11

2 release files

0.8.10

2 release files

0.8.9

2 release files

0.8.8

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

This release

0.8.3 This release

2 release files

0.8.2

2 release files

0.8.1

1 release file

0.8

1 release file

0.7

1 release file

0.6

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page