Tutorial 1: ACS PUMS Microdata Analysis¶
This tutorial demonstrates analyzing person-level microdata from the American Community Survey (ACS) Public Use Microdata Sample (PUMS).
Goal: Get age and sex data for adults in California and Texas, then create weighted frequency tables stratified by state.
Setup¶
In [1]:
Copied!
import os
from cendat import CenDatHelper
from dotenv import load_dotenv
# Load your API key from environment
load_dotenv()
cdh = CenDatHelper(years=[2022], key=os.getenv("CENSUS_API_KEY"))
import os
from cendat import CenDatHelper
from dotenv import load_dotenv
# Load your API key from environment
load_dotenv()
cdh = CenDatHelper(years=[2022], key=os.getenv("CENSUS_API_KEY"))
✅ Years set to: [2022] ✅ API key loaded successfully.
Step 1: Find and Select the PUMS Product¶
In [2]:
Copied!
# Search for the ACS 1-year PUMS product
# The \b ensures we match the exact endpoint, not subpaths
cdh.list_products(patterns=r"acs/acs1/pums\b")
cdh.set_products()
# Search for the ACS 1-year PUMS product
# The \b ensures we match the exact endpoint, not subpaths
cdh.list_products(patterns=r"acs/acs1/pums\b")
cdh.set_products()
✅ Product set: '2022 American Community Survey: 1-Year Estimates - Public Use Microdata Sample (2022/acs/acs1/pums)' (Vintage: [2022])
Step 2: Select Geography and Variables¶
In [3]:
Copied!
# For PUMS, geography is simpler—we just need "state"
cdh.set_geos(values="state", by="desc")
# Select the variables we need:
# - SEX: Person's sex
# - AGEP: Person's age
# - ST: State code
# - PWGTP: Person weight (crucial for microdata!)
cdh.set_variables(names=["SEX", "AGEP", "ST", "PWGTP"])
# For PUMS, geography is simpler—we just need "state"
cdh.set_geos(values="state", by="desc")
# Select the variables we need:
# - SEX: Person's sex
# - AGEP: Person's age
# - ST: State code
# - PWGTP: Person weight (crucial for microdata!)
cdh.set_variables(names=["SEX", "AGEP", "ST", "PWGTP"])
✅ Geographies set: 'state'
✅ Variables set:
- Product: 2022 American Community Survey: 1-Year Estimates - Public Use Microdata Sample (2022/acs/acs1/pums) (Vintage: [2022])
Variables: SEX, PWGTP, ST, AGEP
Step 3: Get Data¶
In [4]:
Copied!
# Fetch data for California (06) and Texas (48)
response = cdh.get_data(
within={"state": ["06", "48"]}
)
# Fetch data for California (06) and Texas (48)
response = cdh.get_data(
within={"state": ["06", "48"]}
)
✅ Parameters created for 1 geo-variable/group combinations.
✅ Data fetching complete. Stacking results.
Step 4: Analyze with Tabulate¶
The tabulate() method creates Stata-style frequency tables with proper weighting:
In [5]:
Copied!
# Age distribution by sex, stratified by state
# Only adults (AGEP > 17), using person weights
response.tabulate(
"SEX", "AGEP",
strat_by="ST",
weight_var="PWGTP",
where="AGEP > 17"
)
# Age distribution by sex, stratified by state
# Only adults (AGEP > 17), using person weights
response.tabulate(
"SEX", "AGEP",
strat_by="ST",
weight_var="PWGTP",
where="AGEP > 17"
)
shape: (292, 7) ┌────┬─────┬──────┬─────────┬─────┬────────────┬────────┐ │ ST ┆ SEX ┆ AGEP ┆ n ┆ pct ┆ cumn ┆ cumpct │ ╞════╪═════╪══════╪═════════╪═════╪════════════╪════════╡ │ 06 ┆ 1 ┆ 18 ┆ 263,169 ┆ 0.9 ┆ 263,169 ┆ 0.9 │ │ 06 ┆ 1 ┆ 19 ┆ 255,365 ┆ 0.8 ┆ 518,534 ┆ 1.7 │ │ 06 ┆ 1 ┆ 20 ┆ 279,423 ┆ 0.9 ┆ 797,957 ┆ 2.6 │ │ 06 ┆ 1 ┆ 21 ┆ 281,050 ┆ 0.9 ┆ 1,079,007 ┆ 3.5 │ │ 06 ┆ 1 ┆ 22 ┆ 269,824 ┆ 0.9 ┆ 1,348,831 ┆ 4.4 │ │ 06 ┆ 1 ┆ 23 ┆ 265,563 ┆ 0.9 ┆ 1,614,394 ┆ 5.3 │ │ 06 ┆ 1 ┆ 24 ┆ 267,327 ┆ 0.9 ┆ 1,881,721 ┆ 6.2 │ │ 06 ┆ 1 ┆ 25 ┆ 273,599 ┆ 0.9 ┆ 2,155,320 ┆ 7.1 │ │ 06 ┆ 1 ┆ 26 ┆ 287,357 ┆ 0.9 ┆ 2,442,677 ┆ 8.0 │ │ 06 ┆ 1 ┆ 27 ┆ 280,104 ┆ 0.9 ┆ 2,722,781 ┆ 8.9 │ │ 06 ┆ 1 ┆ 28 ┆ 287,141 ┆ 0.9 ┆ 3,009,922 ┆ 9.9 │ │ 06 ┆ 1 ┆ 29 ┆ 292,246 ┆ 1.0 ┆ 3,302,168 ┆ 10.8 │ │ 06 ┆ 1 ┆ 30 ┆ 315,175 ┆ 1.0 ┆ 3,617,343 ┆ 11.8 │ │ 06 ┆ 1 ┆ 31 ┆ 304,168 ┆ 1.0 ┆ 3,921,511 ┆ 12.8 │ │ 06 ┆ 1 ┆ 32 ┆ 315,410 ┆ 1.0 ┆ 4,236,921 ┆ 13.9 │ │ 06 ┆ 1 ┆ 33 ┆ 305,927 ┆ 1.0 ┆ 4,542,848 ┆ 14.9 │ │ 06 ┆ 1 ┆ 34 ┆ 293,951 ┆ 1.0 ┆ 4,836,799 ┆ 15.8 │ │ 06 ┆ 1 ┆ 35 ┆ 303,878 ┆ 1.0 ┆ 5,140,677 ┆ 16.8 │ │ 06 ┆ 1 ┆ 36 ┆ 286,153 ┆ 0.9 ┆ 5,426,830 ┆ 17.8 │ │ 06 ┆ 1 ┆ 37 ┆ 291,268 ┆ 1.0 ┆ 5,718,098 ┆ 18.7 │ │ 06 ┆ 1 ┆ 38 ┆ 276,622 ┆ 0.9 ┆ 5,994,720 ┆ 19.6 │ │ 06 ┆ 1 ┆ 39 ┆ 278,203 ┆ 0.9 ┆ 6,272,923 ┆ 20.5 │ │ 06 ┆ 1 ┆ 40 ┆ 308,338 ┆ 1.0 ┆ 6,581,261 ┆ 21.6 │ │ 06 ┆ 1 ┆ 41 ┆ 269,530 ┆ 0.9 ┆ 6,850,791 ┆ 22.4 │ │ 06 ┆ 1 ┆ 42 ┆ 270,873 ┆ 0.9 ┆ 7,121,664 ┆ 23.3 │ │ 06 ┆ 1 ┆ 43 ┆ 245,993 ┆ 0.8 ┆ 7,367,657 ┆ 24.1 │ │ 06 ┆ 1 ┆ 44 ┆ 261,717 ┆ 0.9 ┆ 7,629,374 ┆ 25.0 │ │ 06 ┆ 1 ┆ 45 ┆ 255,515 ┆ 0.8 ┆ 7,884,889 ┆ 25.8 │ │ 06 ┆ 1 ┆ 46 ┆ 241,839 ┆ 0.8 ┆ 8,126,728 ┆ 26.6 │ │ 06 ┆ 1 ┆ 47 ┆ 242,078 ┆ 0.8 ┆ 8,368,806 ┆ 27.4 │ │ 06 ┆ 1 ┆ 48 ┆ 237,958 ┆ 0.8 ┆ 8,606,764 ┆ 28.2 │ │ 06 ┆ 1 ┆ 49 ┆ 238,764 ┆ 0.8 ┆ 8,845,528 ┆ 29.0 │ │ 06 ┆ 1 ┆ 50 ┆ 256,900 ┆ 0.8 ┆ 9,102,428 ┆ 29.8 │ │ 06 ┆ 1 ┆ 51 ┆ 248,917 ┆ 0.8 ┆ 9,351,345 ┆ 30.6 │ │ 06 ┆ 1 ┆ 52 ┆ 261,259 ┆ 0.9 ┆ 9,612,604 ┆ 31.5 │ │ 06 ┆ 1 ┆ 53 ┆ 245,268 ┆ 0.8 ┆ 9,857,872 ┆ 32.3 │ │ 06 ┆ 1 ┆ 54 ┆ 236,207 ┆ 0.8 ┆ 10,094,079 ┆ 33.1 │ │ 06 ┆ 1 ┆ 55 ┆ 241,014 ┆ 0.8 ┆ 10,335,093 ┆ 33.8 │ │ 06 ┆ 1 ┆ 56 ┆ 227,599 ┆ 0.7 ┆ 10,562,692 ┆ 34.6 │ │ 06 ┆ 1 ┆ 57 ┆ 230,254 ┆ 0.8 ┆ 10,792,946 ┆ 35.3 │ │ 06 ┆ 1 ┆ 58 ┆ 238,817 ┆ 0.8 ┆ 11,031,763 ┆ 36.1 │ │ 06 ┆ 1 ┆ 59 ┆ 246,979 ┆ 0.8 ┆ 11,278,742 ┆ 36.9 │ │ 06 ┆ 1 ┆ 60 ┆ 239,026 ┆ 0.8 ┆ 11,517,768 ┆ 37.7 │ │ 06 ┆ 1 ┆ 61 ┆ 234,648 ┆ 0.8 ┆ 11,752,416 ┆ 38.5 │ │ 06 ┆ 1 ┆ 62 ┆ 227,038 ┆ 0.7 ┆ 11,979,454 ┆ 39.2 │ │ 06 ┆ 1 ┆ 63 ┆ 220,083 ┆ 0.7 ┆ 12,199,537 ┆ 39.9 │ │ 06 ┆ 1 ┆ 64 ┆ 225,290 ┆ 0.7 ┆ 12,424,827 ┆ 40.7 │ │ 06 ┆ 1 ┆ 65 ┆ 194,972 ┆ 0.6 ┆ 12,619,799 ┆ 41.3 │ │ 06 ┆ 1 ┆ 66 ┆ 195,293 ┆ 0.6 ┆ 12,815,092 ┆ 42.0 │ │ 06 ┆ 1 ┆ 67 ┆ 192,575 ┆ 0.6 ┆ 13,007,667 ┆ 42.6 │ │ 06 ┆ 1 ┆ 68 ┆ 190,968 ┆ 0.6 ┆ 13,198,635 ┆ 43.2 │ │ 06 ┆ 1 ┆ 69 ┆ 165,036 ┆ 0.5 ┆ 13,363,671 ┆ 43.8 │ │ 06 ┆ 1 ┆ 70 ┆ 171,384 ┆ 0.6 ┆ 13,535,055 ┆ 44.3 │ │ 06 ┆ 1 ┆ 71 ┆ 155,395 ┆ 0.5 ┆ 13,690,450 ┆ 44.8 │ │ 06 ┆ 1 ┆ 72 ┆ 140,762 ┆ 0.5 ┆ 13,831,212 ┆ 45.3 │ │ 06 ┆ 1 ┆ 73 ┆ 136,681 ┆ 0.4 ┆ 13,967,893 ┆ 45.7 │ │ 06 ┆ 1 ┆ 74 ┆ 139,427 ┆ 0.5 ┆ 14,107,320 ┆ 46.2 │ │ 06 ┆ 1 ┆ 75 ┆ 136,725 ┆ 0.4 ┆ 14,244,045 ┆ 46.6 │ │ 06 ┆ 1 ┆ 76 ┆ 102,429 ┆ 0.3 ┆ 14,346,474 ┆ 47.0 │ │ 06 ┆ 1 ┆ 77 ┆ 90,588 ┆ 0.3 ┆ 14,437,062 ┆ 47.3 │ │ 06 ┆ 1 ┆ 78 ┆ 91,590 ┆ 0.3 ┆ 14,528,652 ┆ 47.6 │ │ 06 ┆ 1 ┆ 79 ┆ 87,431 ┆ 0.3 ┆ 14,616,083 ┆ 47.9 │ │ 06 ┆ 1 ┆ 80 ┆ 74,385 ┆ 0.2 ┆ 14,690,468 ┆ 48.1 │ │ 06 ┆ 1 ┆ 81 ┆ 67,695 ┆ 0.2 ┆ 14,758,163 ┆ 48.3 │ │ 06 ┆ 1 ┆ 82 ┆ 60,331 ┆ 0.2 ┆ 14,818,494 ┆ 48.5 │ │ 06 ┆ 1 ┆ 83 ┆ 56,356 ┆ 0.2 ┆ 14,874,850 ┆ 48.7 │ │ 06 ┆ 1 ┆ 84 ┆ 49,839 ┆ 0.2 ┆ 14,924,689 ┆ 48.9 │ │ 06 ┆ 1 ┆ 85 ┆ 39,344 ┆ 0.1 ┆ 14,964,033 ┆ 49.0 │ │ 06 ┆ 1 ┆ 86 ┆ 38,696 ┆ 0.1 ┆ 15,002,729 ┆ 49.1 │ │ 06 ┆ 1 ┆ 87 ┆ 30,770 ┆ 0.1 ┆ 15,033,499 ┆ 49.2 │ │ 06 ┆ 1 ┆ 88 ┆ 24,269 ┆ 0.1 ┆ 15,057,768 ┆ 49.3 │ │ 06 ┆ 1 ┆ 89 ┆ 27,346 ┆ 0.1 ┆ 15,085,114 ┆ 49.4 │ │ 06 ┆ 1 ┆ 90 ┆ 22,426 ┆ 0.1 ┆ 15,107,540 ┆ 49.5 │ │ 06 ┆ 1 ┆ 94 ┆ 76,904 ┆ 0.3 ┆ 15,184,444 ┆ 49.7 │ │ 06 ┆ 2 ┆ 18 ┆ 263,089 ┆ 0.9 ┆ 15,447,533 ┆ 50.6 │ │ 06 ┆ 2 ┆ 19 ┆ 238,097 ┆ 0.8 ┆ 15,685,630 ┆ 51.4 │ │ 06 ┆ 2 ┆ 20 ┆ 250,740 ┆ 0.8 ┆ 15,936,370 ┆ 52.2 │ │ 06 ┆ 2 ┆ 21 ┆ 260,435 ┆ 0.9 ┆ 16,196,805 ┆ 53.0 │ │ 06 ┆ 2 ┆ 22 ┆ 258,813 ┆ 0.8 ┆ 16,455,618 ┆ 53.9 │ │ 06 ┆ 2 ┆ 23 ┆ 258,417 ┆ 0.8 ┆ 16,714,035 ┆ 54.7 │ │ 06 ┆ 2 ┆ 24 ┆ 248,640 ┆ 0.8 ┆ 16,962,675 ┆ 55.5 │ │ 06 ┆ 2 ┆ 25 ┆ 249,152 ┆ 0.8 ┆ 17,211,827 ┆ 56.4 │ │ 06 ┆ 2 ┆ 26 ┆ 255,162 ┆ 0.8 ┆ 17,466,989 ┆ 57.2 │ │ 06 ┆ 2 ┆ 27 ┆ 279,620 ┆ 0.9 ┆ 17,746,609 ┆ 58.1 │ │ 06 ┆ 2 ┆ 28 ┆ 279,995 ┆ 0.9 ┆ 18,026,604 ┆ 59.0 │ │ 06 ┆ 2 ┆ 29 ┆ 273,793 ┆ 0.9 ┆ 18,300,397 ┆ 59.9 │ │ 06 ┆ 2 ┆ 30 ┆ 304,827 ┆ 1.0 ┆ 18,605,224 ┆ 60.9 │ │ 06 ┆ 2 ┆ 31 ┆ 295,618 ┆ 1.0 ┆ 18,900,842 ┆ 61.9 │ │ 06 ┆ 2 ┆ 32 ┆ 286,584 ┆ 0.9 ┆ 19,187,426 ┆ 62.8 │ │ 06 ┆ 2 ┆ 33 ┆ 278,152 ┆ 0.9 ┆ 19,465,578 ┆ 63.7 │ │ 06 ┆ 2 ┆ 34 ┆ 274,833 ┆ 0.9 ┆ 19,740,411 ┆ 64.6 │ │ 06 ┆ 2 ┆ 35 ┆ 265,259 ┆ 0.9 ┆ 20,005,670 ┆ 65.5 │ │ 06 ┆ 2 ┆ 36 ┆ 272,386 ┆ 0.9 ┆ 20,278,056 ┆ 66.4 │ │ 06 ┆ 2 ┆ 37 ┆ 259,148 ┆ 0.8 ┆ 20,537,204 ┆ 67.3 │ │ 06 ┆ 2 ┆ 38 ┆ 279,243 ┆ 0.9 ┆ 20,816,447 ┆ 68.2 │ │ 06 ┆ 2 ┆ 39 ┆ 265,208 ┆ 0.9 ┆ 21,081,655 ┆ 69.0 │ │ 06 ┆ 2 ┆ 40 ┆ 284,950 ┆ 0.9 ┆ 21,366,605 ┆ 70.0 │ │ 06 ┆ 2 ┆ 41 ┆ 268,431 ┆ 0.9 ┆ 21,635,036 ┆ 70.8 │ │ 06 ┆ 2 ┆ 42 ┆ 256,077 ┆ 0.8 ┆ 21,891,113 ┆ 71.7 │ │ 06 ┆ 2 ┆ 43 ┆ 238,047 ┆ 0.8 ┆ 22,129,160 ┆ 72.5 │ │ 06 ┆ 2 ┆ 44 ┆ 244,685 ┆ 0.8 ┆ 22,373,845 ┆ 73.3 │ │ 06 ┆ 2 ┆ 45 ┆ 248,507 ┆ 0.8 ┆ 22,622,352 ┆ 74.1 │ │ 06 ┆ 2 ┆ 46 ┆ 234,493 ┆ 0.8 ┆ 22,856,845 ┆ 74.8 │ │ 06 ┆ 2 ┆ 47 ┆ 243,949 ┆ 0.8 ┆ 23,100,794 ┆ 75.6 │ │ 06 ┆ 2 ┆ 48 ┆ 225,939 ┆ 0.7 ┆ 23,326,733 ┆ 76.4 │ │ 06 ┆ 2 ┆ 49 ┆ 233,730 ┆ 0.8 ┆ 23,560,463 ┆ 77.2 │ │ 06 ┆ 2 ┆ 50 ┆ 252,767 ┆ 0.8 ┆ 23,813,230 ┆ 78.0 │ │ 06 ┆ 2 ┆ 51 ┆ 241,873 ┆ 0.8 ┆ 24,055,103 ┆ 78.8 │ │ 06 ┆ 2 ┆ 52 ┆ 256,760 ┆ 0.8 ┆ 24,311,863 ┆ 79.6 │ │ 06 ┆ 2 ┆ 53 ┆ 229,585 ┆ 0.8 ┆ 24,541,448 ┆ 80.4 │ │ 06 ┆ 2 ┆ 54 ┆ 238,603 ┆ 0.8 ┆ 24,780,051 ┆ 81.1 │ │ 06 ┆ 2 ┆ 55 ┆ 226,950 ┆ 0.7 ┆ 25,007,001 ┆ 81.9 │ │ 06 ┆ 2 ┆ 56 ┆ 229,906 ┆ 0.8 ┆ 25,236,907 ┆ 82.6 │ │ 06 ┆ 2 ┆ 57 ┆ 241,116 ┆ 0.8 ┆ 25,478,023 ┆ 83.4 │ │ 06 ┆ 2 ┆ 58 ┆ 228,081 ┆ 0.7 ┆ 25,706,104 ┆ 84.2 │ │ 06 ┆ 2 ┆ 59 ┆ 240,358 ┆ 0.8 ┆ 25,946,462 ┆ 85.0 │ │ 06 ┆ 2 ┆ 60 ┆ 245,435 ┆ 0.8 ┆ 26,191,897 ┆ 85.8 │ │ 06 ┆ 2 ┆ 61 ┆ 243,724 ┆ 0.8 ┆ 26,435,621 ┆ 86.6 │ │ 06 ┆ 2 ┆ 62 ┆ 244,052 ┆ 0.8 ┆ 26,679,673 ┆ 87.4 │ │ 06 ┆ 2 ┆ 63 ┆ 227,433 ┆ 0.7 ┆ 26,907,106 ┆ 88.1 │ │ 06 ┆ 2 ┆ 64 ┆ 224,853 ┆ 0.7 ┆ 27,131,959 ┆ 88.8 │ │ 06 ┆ 2 ┆ 65 ┆ 226,917 ┆ 0.7 ┆ 27,358,876 ┆ 89.6 │ │ 06 ┆ 2 ┆ 66 ┆ 208,450 ┆ 0.7 ┆ 27,567,326 ┆ 90.3 │ │ 06 ┆ 2 ┆ 67 ┆ 213,291 ┆ 0.7 ┆ 27,780,617 ┆ 91.0 │ │ 06 ┆ 2 ┆ 68 ┆ 199,871 ┆ 0.7 ┆ 27,980,488 ┆ 91.6 │ │ 06 ┆ 2 ┆ 69 ┆ 194,828 ┆ 0.6 ┆ 28,175,316 ┆ 92.3 │ │ 06 ┆ 2 ┆ 70 ┆ 187,215 ┆ 0.6 ┆ 28,362,531 ┆ 92.9 │ │ 06 ┆ 2 ┆ 71 ┆ 173,779 ┆ 0.6 ┆ 28,536,310 ┆ 93.4 │ │ 06 ┆ 2 ┆ 72 ┆ 168,272 ┆ 0.6 ┆ 28,704,582 ┆ 94.0 │ │ 06 ┆ 2 ┆ 73 ┆ 165,987 ┆ 0.5 ┆ 28,870,569 ┆ 94.5 │ │ 06 ┆ 2 ┆ 74 ┆ 159,891 ┆ 0.5 ┆ 29,030,460 ┆ 95.1 │ │ 06 ┆ 2 ┆ 75 ┆ 163,217 ┆ 0.5 ┆ 29,193,677 ┆ 95.6 │ │ 06 ┆ 2 ┆ 76 ┆ 134,158 ┆ 0.4 ┆ 29,327,835 ┆ 96.0 │ │ 06 ┆ 2 ┆ 77 ┆ 122,428 ┆ 0.4 ┆ 29,450,263 ┆ 96.4 │ │ 06 ┆ 2 ┆ 78 ┆ 113,837 ┆ 0.4 ┆ 29,564,100 ┆ 96.8 │ │ 06 ┆ 2 ┆ 79 ┆ 110,322 ┆ 0.4 ┆ 29,674,422 ┆ 97.2 │ │ 06 ┆ 2 ┆ 80 ┆ 97,160 ┆ 0.3 ┆ 29,771,582 ┆ 97.5 │ │ 06 ┆ 2 ┆ 81 ┆ 92,223 ┆ 0.3 ┆ 29,863,805 ┆ 97.8 │ │ 06 ┆ 2 ┆ 82 ┆ 77,242 ┆ 0.3 ┆ 29,941,047 ┆ 98.0 │ │ 06 ┆ 2 ┆ 83 ┆ 76,477 ┆ 0.3 ┆ 30,017,524 ┆ 98.3 │ │ 06 ┆ 2 ┆ 84 ┆ 66,499 ┆ 0.2 ┆ 30,084,023 ┆ 98.5 │ │ 06 ┆ 2 ┆ 85 ┆ 63,829 ┆ 0.2 ┆ 30,147,852 ┆ 98.7 │ │ 06 ┆ 2 ┆ 86 ┆ 55,356 ┆ 0.2 ┆ 30,203,208 ┆ 98.9 │ │ 06 ┆ 2 ┆ 87 ┆ 52,675 ┆ 0.2 ┆ 30,255,883 ┆ 99.1 │ │ 06 ┆ 2 ┆ 88 ┆ 46,224 ┆ 0.2 ┆ 30,302,107 ┆ 99.2 │ │ 06 ┆ 2 ┆ 89 ┆ 43,548 ┆ 0.1 ┆ 30,345,655 ┆ 99.4 │ │ 06 ┆ 2 ┆ 90 ┆ 37,590 ┆ 0.1 ┆ 30,383,245 ┆ 99.5 │ │ 06 ┆ 2 ┆ 94 ┆ 154,962 ┆ 0.5 ┆ 30,538,207 ┆ 100.0 │ │ 48 ┆ 1 ┆ 18 ┆ 226,116 ┆ 1.0 ┆ 226,116 ┆ 1.0 │ │ 48 ┆ 1 ┆ 19 ┆ 213,687 ┆ 0.9 ┆ 439,803 ┆ 1.9 │ │ 48 ┆ 1 ┆ 20 ┆ 211,867 ┆ 0.9 ┆ 651,670 ┆ 2.9 │ │ 48 ┆ 1 ┆ 21 ┆ 220,123 ┆ 1.0 ┆ 871,793 ┆ 3.9 │ │ 48 ┆ 1 ┆ 22 ┆ 221,972 ┆ 1.0 ┆ 1,093,765 ┆ 4.8 │ │ 48 ┆ 1 ┆ 23 ┆ 221,458 ┆ 1.0 ┆ 1,315,223 ┆ 5.8 │ │ 48 ┆ 1 ┆ 24 ┆ 225,652 ┆ 1.0 ┆ 1,540,875 ┆ 6.8 │ │ 48 ┆ 1 ┆ 25 ┆ 222,587 ┆ 1.0 ┆ 1,763,462 ┆ 7.8 │ │ 48 ┆ 1 ┆ 26 ┆ 223,801 ┆ 1.0 ┆ 1,987,263 ┆ 8.8 │ │ 48 ┆ 1 ┆ 27 ┆ 213,400 ┆ 0.9 ┆ 2,200,663 ┆ 9.7 │ │ 48 ┆ 1 ┆ 28 ┆ 205,819 ┆ 0.9 ┆ 2,406,482 ┆ 10.7 │ │ 48 ┆ 1 ┆ 29 ┆ 217,322 ┆ 1.0 ┆ 2,623,804 ┆ 11.6 │ │ 48 ┆ 1 ┆ 30 ┆ 236,426 ┆ 1.0 ┆ 2,860,230 ┆ 12.7 │ │ 48 ┆ 1 ┆ 31 ┆ 222,263 ┆ 1.0 ┆ 3,082,493 ┆ 13.6 │ │ 48 ┆ 1 ┆ 32 ┆ 235,624 ┆ 1.0 ┆ 3,318,117 ┆ 14.7 │ │ 48 ┆ 1 ┆ 33 ┆ 220,095 ┆ 1.0 ┆ 3,538,212 ┆ 15.7 │ │ 48 ┆ 1 ┆ 34 ┆ 207,148 ┆ 0.9 ┆ 3,745,360 ┆ 16.6 │ │ 48 ┆ 1 ┆ 35 ┆ 218,449 ┆ 1.0 ┆ 3,963,809 ┆ 17.5 │ │ 48 ┆ 1 ┆ 36 ┆ 219,253 ┆ 1.0 ┆ 4,183,062 ┆ 18.5 │ │ 48 ┆ 1 ┆ 37 ┆ 228,171 ┆ 1.0 ┆ 4,411,233 ┆ 19.5 │ │ 48 ┆ 1 ┆ 38 ┆ 222,329 ┆ 1.0 ┆ 4,633,562 ┆ 20.5 │ │ 48 ┆ 1 ┆ 39 ┆ 217,363 ┆ 1.0 ┆ 4,850,925 ┆ 21.5 │ │ 48 ┆ 1 ┆ 40 ┆ 231,963 ┆ 1.0 ┆ 5,082,888 ┆ 22.5 │ │ 48 ┆ 1 ┆ 41 ┆ 218,193 ┆ 1.0 ┆ 5,301,081 ┆ 23.5 │ │ 48 ┆ 1 ┆ 42 ┆ 217,916 ┆ 1.0 ┆ 5,518,997 ┆ 24.4 │ │ 48 ┆ 1 ┆ 43 ┆ 214,249 ┆ 0.9 ┆ 5,733,246 ┆ 25.4 │ │ 48 ┆ 1 ┆ 44 ┆ 188,039 ┆ 0.8 ┆ 5,921,285 ┆ 26.2 │ │ 48 ┆ 1 ┆ 45 ┆ 202,131 ┆ 0.9 ┆ 6,123,416 ┆ 27.1 │ │ 48 ┆ 1 ┆ 46 ┆ 182,842 ┆ 0.8 ┆ 6,306,258 ┆ 27.9 │ │ 48 ┆ 1 ┆ 47 ┆ 186,753 ┆ 0.8 ┆ 6,493,011 ┆ 28.7 │ │ 48 ┆ 1 ┆ 48 ┆ 184,103 ┆ 0.8 ┆ 6,677,114 ┆ 29.6 │ │ 48 ┆ 1 ┆ 49 ┆ 179,463 ┆ 0.8 ┆ 6,856,577 ┆ 30.3 │ │ 48 ┆ 1 ┆ 50 ┆ 194,391 ┆ 0.9 ┆ 7,050,968 ┆ 31.2 │ │ 48 ┆ 1 ┆ 51 ┆ 199,352 ┆ 0.9 ┆ 7,250,320 ┆ 32.1 │ │ 48 ┆ 1 ┆ 52 ┆ 186,899 ┆ 0.8 ┆ 7,437,219 ┆ 32.9 │ │ 48 ┆ 1 ┆ 53 ┆ 174,506 ┆ 0.8 ┆ 7,611,725 ┆ 33.7 │ │ 48 ┆ 1 ┆ 54 ┆ 162,828 ┆ 0.7 ┆ 7,774,553 ┆ 34.4 │ │ 48 ┆ 1 ┆ 55 ┆ 160,398 ┆ 0.7 ┆ 7,934,951 ┆ 35.1 │ │ 48 ┆ 1 ┆ 56 ┆ 153,871 ┆ 0.7 ┆ 8,088,822 ┆ 35.8 │ │ 48 ┆ 1 ┆ 57 ┆ 166,054 ┆ 0.7 ┆ 8,254,876 ┆ 36.5 │ │ 48 ┆ 1 ┆ 58 ┆ 167,538 ┆ 0.7 ┆ 8,422,414 ┆ 37.3 │ │ 48 ┆ 1 ┆ 59 ┆ 173,654 ┆ 0.8 ┆ 8,596,068 ┆ 38.0 │ │ 48 ┆ 1 ┆ 60 ┆ 169,571 ┆ 0.8 ┆ 8,765,639 ┆ 38.8 │ │ 48 ┆ 1 ┆ 61 ┆ 169,308 ┆ 0.7 ┆ 8,934,947 ┆ 39.5 │ │ 48 ┆ 1 ┆ 62 ┆ 166,159 ┆ 0.7 ┆ 9,101,106 ┆ 40.3 │ │ 48 ┆ 1 ┆ 63 ┆ 149,812 ┆ 0.7 ┆ 9,250,918 ┆ 40.9 │ │ 48 ┆ 1 ┆ 64 ┆ 149,816 ┆ 0.7 ┆ 9,400,734 ┆ 41.6 │ │ 48 ┆ 1 ┆ 65 ┆ 139,916 ┆ 0.6 ┆ 9,540,650 ┆ 42.2 │ │ 48 ┆ 1 ┆ 66 ┆ 137,175 ┆ 0.6 ┆ 9,677,825 ┆ 42.8 │ │ 48 ┆ 1 ┆ 67 ┆ 130,821 ┆ 0.6 ┆ 9,808,646 ┆ 43.4 │ │ 48 ┆ 1 ┆ 68 ┆ 125,242 ┆ 0.6 ┆ 9,933,888 ┆ 44.0 │ │ 48 ┆ 1 ┆ 69 ┆ 121,911 ┆ 0.5 ┆ 10,055,799 ┆ 44.5 │ │ 48 ┆ 1 ┆ 70 ┆ 107,806 ┆ 0.5 ┆ 10,163,605 ┆ 45.0 │ │ 48 ┆ 1 ┆ 71 ┆ 103,621 ┆ 0.5 ┆ 10,267,226 ┆ 45.4 │ │ 48 ┆ 1 ┆ 72 ┆ 103,071 ┆ 0.5 ┆ 10,370,297 ┆ 45.9 │ │ 48 ┆ 1 ┆ 73 ┆ 93,761 ┆ 0.4 ┆ 10,464,058 ┆ 46.3 │ │ 48 ┆ 1 ┆ 74 ┆ 96,789 ┆ 0.4 ┆ 10,560,847 ┆ 46.7 │ │ 48 ┆ 1 ┆ 75 ┆ 89,088 ┆ 0.4 ┆ 10,649,935 ┆ 47.1 │ │ 48 ┆ 1 ┆ 76 ┆ 69,127 ┆ 0.3 ┆ 10,719,062 ┆ 47.4 │ │ 48 ┆ 1 ┆ 77 ┆ 64,104 ┆ 0.3 ┆ 10,783,166 ┆ 47.7 │ │ 48 ┆ 1 ┆ 78 ┆ 58,640 ┆ 0.3 ┆ 10,841,806 ┆ 48.0 │ │ 48 ┆ 1 ┆ 79 ┆ 52,947 ┆ 0.2 ┆ 10,894,753 ┆ 48.2 │ │ 48 ┆ 1 ┆ 80 ┆ 43,981 ┆ 0.2 ┆ 10,938,734 ┆ 48.4 │ │ 48 ┆ 1 ┆ 81 ┆ 39,679 ┆ 0.2 ┆ 10,978,413 ┆ 48.6 │ │ 48 ┆ 1 ┆ 82 ┆ 40,288 ┆ 0.2 ┆ 11,018,701 ┆ 48.8 │ │ 48 ┆ 1 ┆ 83 ┆ 29,676 ┆ 0.1 ┆ 11,048,377 ┆ 48.9 │ │ 48 ┆ 1 ┆ 84 ┆ 28,609 ┆ 0.1 ┆ 11,076,986 ┆ 49.0 │ │ 48 ┆ 1 ┆ 85 ┆ 23,672 ┆ 0.1 ┆ 11,100,658 ┆ 49.1 │ │ 48 ┆ 1 ┆ 86 ┆ 22,826 ┆ 0.1 ┆ 11,123,484 ┆ 49.2 │ │ 48 ┆ 1 ┆ 87 ┆ 19,993 ┆ 0.1 ┆ 11,143,477 ┆ 49.3 │ │ 48 ┆ 1 ┆ 88 ┆ 15,555 ┆ 0.1 ┆ 11,159,032 ┆ 49.4 │ │ 48 ┆ 1 ┆ 92 ┆ 59,105 ┆ 0.3 ┆ 11,218,137 ┆ 49.7 │ │ 48 ┆ 2 ┆ 18 ┆ 210,181 ┆ 0.9 ┆ 11,428,318 ┆ 50.6 │ │ 48 ┆ 2 ┆ 19 ┆ 195,325 ┆ 0.9 ┆ 11,623,643 ┆ 51.4 │ │ 48 ┆ 2 ┆ 20 ┆ 203,243 ┆ 0.9 ┆ 11,826,886 ┆ 52.3 │ │ 48 ┆ 2 ┆ 21 ┆ 201,050 ┆ 0.9 ┆ 12,027,936 ┆ 53.2 │ │ 48 ┆ 2 ┆ 22 ┆ 212,203 ┆ 0.9 ┆ 12,240,139 ┆ 54.2 │ │ 48 ┆ 2 ┆ 23 ┆ 208,003 ┆ 0.9 ┆ 12,448,142 ┆ 55.1 │ │ 48 ┆ 2 ┆ 24 ┆ 219,384 ┆ 1.0 ┆ 12,667,526 ┆ 56.1 │ │ 48 ┆ 2 ┆ 25 ┆ 201,983 ┆ 0.9 ┆ 12,869,509 ┆ 57.0 │ │ 48 ┆ 2 ┆ 26 ┆ 202,452 ┆ 0.9 ┆ 13,071,961 ┆ 57.9 │ │ 48 ┆ 2 ┆ 27 ┆ 207,237 ┆ 0.9 ┆ 13,279,198 ┆ 58.8 │ │ 48 ┆ 2 ┆ 28 ┆ 201,427 ┆ 0.9 ┆ 13,480,625 ┆ 59.7 │ │ 48 ┆ 2 ┆ 29 ┆ 226,422 ┆ 1.0 ┆ 13,707,047 ┆ 60.7 │ │ 48 ┆ 2 ┆ 30 ┆ 223,387 ┆ 1.0 ┆ 13,930,434 ┆ 61.7 │ │ 48 ┆ 2 ┆ 31 ┆ 210,647 ┆ 0.9 ┆ 14,141,081 ┆ 62.6 │ │ 48 ┆ 2 ┆ 32 ┆ 221,632 ┆ 1.0 ┆ 14,362,713 ┆ 63.6 │ │ 48 ┆ 2 ┆ 33 ┆ 207,369 ┆ 0.9 ┆ 14,570,082 ┆ 64.5 │ │ 48 ┆ 2 ┆ 34 ┆ 216,305 ┆ 1.0 ┆ 14,786,387 ┆ 65.4 │ │ 48 ┆ 2 ┆ 35 ┆ 212,724 ┆ 0.9 ┆ 14,999,111 ┆ 66.4 │ │ 48 ┆ 2 ┆ 36 ┆ 208,905 ┆ 0.9 ┆ 15,208,016 ┆ 67.3 │ │ 48 ┆ 2 ┆ 37 ┆ 202,995 ┆ 0.9 ┆ 15,411,011 ┆ 68.2 │ │ 48 ┆ 2 ┆ 38 ┆ 212,570 ┆ 0.9 ┆ 15,623,581 ┆ 69.2 │ │ 48 ┆ 2 ┆ 39 ┆ 207,576 ┆ 0.9 ┆ 15,831,157 ┆ 70.1 │ │ 48 ┆ 2 ┆ 40 ┆ 222,448 ┆ 1.0 ┆ 16,053,605 ┆ 71.1 │ │ 48 ┆ 2 ┆ 41 ┆ 210,582 ┆ 0.9 ┆ 16,264,187 ┆ 72.0 │ │ 48 ┆ 2 ┆ 42 ┆ 212,767 ┆ 0.9 ┆ 16,476,954 ┆ 72.9 │ │ 48 ┆ 2 ┆ 43 ┆ 199,216 ┆ 0.9 ┆ 16,676,170 ┆ 73.8 │ │ 48 ┆ 2 ┆ 44 ┆ 192,936 ┆ 0.9 ┆ 16,869,106 ┆ 74.7 │ │ 48 ┆ 2 ┆ 45 ┆ 187,328 ┆ 0.8 ┆ 17,056,434 ┆ 75.5 │ │ 48 ┆ 2 ┆ 46 ┆ 173,882 ┆ 0.8 ┆ 17,230,316 ┆ 76.3 │ │ 48 ┆ 2 ┆ 47 ┆ 182,016 ┆ 0.8 ┆ 17,412,332 ┆ 77.1 │ │ 48 ┆ 2 ┆ 48 ┆ 190,103 ┆ 0.8 ┆ 17,602,435 ┆ 77.9 │ │ 48 ┆ 2 ┆ 49 ┆ 188,038 ┆ 0.8 ┆ 17,790,473 ┆ 78.7 │ │ 48 ┆ 2 ┆ 50 ┆ 190,925 ┆ 0.8 ┆ 17,981,398 ┆ 79.6 │ │ 48 ┆ 2 ┆ 51 ┆ 183,892 ┆ 0.8 ┆ 18,165,290 ┆ 80.4 │ │ 48 ┆ 2 ┆ 52 ┆ 182,761 ┆ 0.8 ┆ 18,348,051 ┆ 81.2 │ │ 48 ┆ 2 ┆ 53 ┆ 177,891 ┆ 0.8 ┆ 18,525,942 ┆ 82.0 │ │ 48 ┆ 2 ┆ 54 ┆ 167,727 ┆ 0.7 ┆ 18,693,669 ┆ 82.7 │ │ 48 ┆ 2 ┆ 55 ┆ 164,732 ┆ 0.7 ┆ 18,858,401 ┆ 83.5 │ │ 48 ┆ 2 ┆ 56 ┆ 161,097 ┆ 0.7 ┆ 19,019,498 ┆ 84.2 │ │ 48 ┆ 2 ┆ 57 ┆ 175,166 ┆ 0.8 ┆ 19,194,664 ┆ 85.0 │ │ 48 ┆ 2 ┆ 58 ┆ 164,506 ┆ 0.7 ┆ 19,359,170 ┆ 85.7 │ │ 48 ┆ 2 ┆ 59 ┆ 153,476 ┆ 0.7 ┆ 19,512,646 ┆ 86.4 │ │ 48 ┆ 2 ┆ 60 ┆ 177,050 ┆ 0.8 ┆ 19,689,696 ┆ 87.2 │ │ 48 ┆ 2 ┆ 61 ┆ 179,935 ┆ 0.8 ┆ 19,869,631 ┆ 87.9 │ │ 48 ┆ 2 ┆ 62 ┆ 178,725 ┆ 0.8 ┆ 20,048,356 ┆ 88.7 │ │ 48 ┆ 2 ┆ 63 ┆ 158,017 ┆ 0.7 ┆ 20,206,373 ┆ 89.4 │ │ 48 ┆ 2 ┆ 64 ┆ 164,060 ┆ 0.7 ┆ 20,370,433 ┆ 90.2 │ │ 48 ┆ 2 ┆ 65 ┆ 161,318 ┆ 0.7 ┆ 20,531,751 ┆ 90.9 │ │ 48 ┆ 2 ┆ 66 ┆ 145,074 ┆ 0.6 ┆ 20,676,825 ┆ 91.5 │ │ 48 ┆ 2 ┆ 67 ┆ 144,328 ┆ 0.6 ┆ 20,821,153 ┆ 92.2 │ │ 48 ┆ 2 ┆ 68 ┆ 140,436 ┆ 0.6 ┆ 20,961,589 ┆ 92.8 │ │ 48 ┆ 2 ┆ 69 ┆ 133,363 ┆ 0.6 ┆ 21,094,952 ┆ 93.4 │ │ 48 ┆ 2 ┆ 70 ┆ 130,892 ┆ 0.6 ┆ 21,225,844 ┆ 94.0 │ │ 48 ┆ 2 ┆ 71 ┆ 120,681 ┆ 0.5 ┆ 21,346,525 ┆ 94.5 │ │ 48 ┆ 2 ┆ 72 ┆ 108,100 ┆ 0.5 ┆ 21,454,625 ┆ 95.0 │ │ 48 ┆ 2 ┆ 73 ┆ 114,529 ┆ 0.5 ┆ 21,569,154 ┆ 95.5 │ │ 48 ┆ 2 ┆ 74 ┆ 107,973 ┆ 0.5 ┆ 21,677,127 ┆ 95.9 │ │ 48 ┆ 2 ┆ 75 ┆ 105,575 ┆ 0.5 ┆ 21,782,702 ┆ 96.4 │ │ 48 ┆ 2 ┆ 76 ┆ 85,322 ┆ 0.4 ┆ 21,868,024 ┆ 96.8 │ │ 48 ┆ 2 ┆ 77 ┆ 79,153 ┆ 0.4 ┆ 21,947,177 ┆ 97.1 │ │ 48 ┆ 2 ┆ 78 ┆ 71,373 ┆ 0.3 ┆ 22,018,550 ┆ 97.5 │ │ 48 ┆ 2 ┆ 79 ┆ 71,862 ┆ 0.3 ┆ 22,090,412 ┆ 97.8 │ │ 48 ┆ 2 ┆ 80 ┆ 61,510 ┆ 0.3 ┆ 22,151,922 ┆ 98.0 │ │ 48 ┆ 2 ┆ 81 ┆ 56,223 ┆ 0.2 ┆ 22,208,145 ┆ 98.3 │ │ 48 ┆ 2 ┆ 82 ┆ 49,648 ┆ 0.2 ┆ 22,257,793 ┆ 98.5 │ │ 48 ┆ 2 ┆ 83 ┆ 45,747 ┆ 0.2 ┆ 22,303,540 ┆ 98.7 │ │ 48 ┆ 2 ┆ 84 ┆ 46,852 ┆ 0.2 ┆ 22,350,392 ┆ 98.9 │ │ 48 ┆ 2 ┆ 85 ┆ 36,443 ┆ 0.2 ┆ 22,386,835 ┆ 99.1 │ │ 48 ┆ 2 ┆ 86 ┆ 35,502 ┆ 0.2 ┆ 22,422,337 ┆ 99.2 │ │ 48 ┆ 2 ┆ 87 ┆ 29,581 ┆ 0.1 ┆ 22,451,918 ┆ 99.4 │ │ 48 ┆ 2 ┆ 88 ┆ 24,360 ┆ 0.1 ┆ 22,476,278 ┆ 99.5 │ │ 48 ┆ 2 ┆ 92 ┆ 116,284 ┆ 0.5 ┆ 22,592,562 ┆ 100.0 │ └────┴─────┴──────┴─────────┴─────┴────────────┴────────┘
Step 5: Convert to DataFrame¶
In [6]:
Copied!
# For further analysis, convert to a DataFrame
df = response.to_polars(concat=True, destring=True)
print(df.head())
# For further analysis, convert to a DataFrame
df = response.to_polars(concat=True, destring=True)
print(df.head())
shape: (5, 9) ┌─────┬───────┬─────┬──────┬───┬─────────────────────────────────┬─────────┬────────┬───────┐ │ SEX ┆ PWGTP ┆ ST ┆ AGEP ┆ … ┆ product ┆ vintage ┆ sumlev ┆ desc │ │ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ str ┆ i64 ┆ ┆ str ┆ str ┆ str ┆ str │ ╞═════╪═══════╪═════╪══════╪═══╪═════════════════════════════════╪═════════╪════════╪═══════╡ │ 1 ┆ 55 ┆ 48 ┆ 36 ┆ … ┆ 2022 American Community Survey… ┆ 2022 ┆ 040 ┆ state │ │ 1 ┆ 50 ┆ 48 ┆ 65 ┆ … ┆ 2022 American Community Survey… ┆ 2022 ┆ 040 ┆ state │ │ 1 ┆ 80 ┆ 48 ┆ 15 ┆ … ┆ 2022 American Community Survey… ┆ 2022 ┆ 040 ┆ state │ │ 1 ┆ 13 ┆ 48 ┆ 18 ┆ … ┆ 2022 American Community Survey… ┆ 2022 ┆ 040 ┆ state │ │ 2 ┆ 5 ┆ 48 ┆ 87 ┆ … ┆ 2022 American Community Survey… ┆ 2022 ┆ 040 ┆ state │ └─────┴───────┴─────┴──────┴───┴─────────────────────────────────┴─────────┴────────┴───────┘