Tutorials
Step-by-step guides for common cendat workflows. Each tutorial is a fully executable Jupyter notebook with real Census API outputs.
Interactive Tutorials
| Tutorial | Description |
|---|---|
| ACS PUMS Microdata | Analyze person-level microdata with weighted frequency tables |
| ACS 5-Year Aggregate | Fetch aggregate statistics for places (cities, towns, CDPs) |
| Multi-Year Comparisons | Compare data across multiple years with complex filtering |
| Working with Geometries | Fetch geographic boundaries for mapping |
| CPS Microdata | Analyze CPS supplement data with pooled weights |
Tips and Best Practices
Finding the Right Product
Use regex patterns to filter products efficiently:
# ACS 5-year (main product, not profiles/subjects)
cdh.list_products(patterns=r"acs/acs5\)")
# ACS 1-year PUMS
cdh.list_products(patterns=r"acs/acs1/pums\b")
# Decennial Census
cdh.list_products(patterns="dec/")
Using Groups Effectively
For products with many variables (ACS, Decennial), always start with groups:
cdh.list_groups(patterns="your topic")
cdh.set_groups("GROUP_NAME")
cdh.describe_groups() # See variable hierarchy
Rate Limiting
For large requests, adjust max_workers:
# For thousands of API calls, reduce concurrency
response = cdh.get_data(max_workers=25)
The in_place Option
For iterative work or building up complex queries:
# Keep data attached to the helper object
cdh.get_data(in_place=True)
# Access later via helper['params']