Skip to main content

A wrapper for the US Census Bureau's API

Project description

Image for: Project description

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

Provides access to ACS and SF1 data sets.

Install

Image for: Install
pip install census

You may also want to install a complementary library, us, which help you figure out the FIPS codes for many geographies. We use it in the examples below.

pip install us

Usage

Image for: 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.

By default, the year for a dataset is the most recent year available. 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)

Detailed information about the API can be found at the Census Data API User Guide.

Datasets

Image for: Datasets

For each dataset, the first year listed is the default.

Geographies

Image for: 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_congressional_district(fields, state_fips, congressional_district)

  • state_legislative_district_upper(fields, state_fips, legislative_district)

  • state_legislative_district_lower(fields, state_fips, legislative_district)

  • us(fields)

  • state_zipcode(fields, state_fips, zip5)

ACS1 Geographies

  • state(fields, state_fips)

  • state_congressional_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_congressional_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)

PL 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_county_blockgroup(fields, state_fips, county_fips, blockgroup)

  • state_place(fields, state_fips, place)

  • state_congressional_district(fields, state_fips, district)

  • state_legislative_district_upper(fields, state_fips, legislative_district)

  • state_legislative_district_lower(fields, state_fips, legislative_district)

States

Image for: 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

Image for: 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

Image for: 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)

Don’t know the list of tables in a survey, try this:

c.acs5.tables()

Project details

Image for: Project details

Download files

Image for: Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

census-0.8.24.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

census-0.8.24-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Image for: File details

Details for the file census-0.8.24.tar.gz.

File metadata

  • Download URL: census-0.8.24.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for census-0.8.24.tar.gz
Algorithm Hash digest
SHA256 5c6b789652f9a3ae2eb5762367405ae7ca04be7e0f3416700ddc300fc9fe7768
MD5 bfb3d4a1fef27d2bdef9c15bb57981dc
BLAKE2b-256 07cc5161b96b309331e54e3acb06b67ac1d2a98f52cc9d0e27627abb527115f4

See more details on using hashes here.

File details

Image for: File details

Details for the file census-0.8.24-py3-none-any.whl.

File metadata

  • Download URL: census-0.8.24-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for census-0.8.24-py3-none-any.whl
Algorithm Hash digest
SHA256 9ac2c2adca6a7c074d0e6551e1e3bd819724e5d309f0b0d72285247436b58089
MD5 133f66060d8ee2c0e2b28150bc311db4
BLAKE2b-256 99733868a695f082f379dce20f19b55451fef4c3f4337824f0991dc1a228301b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page