Аналіз даних перепису США в Python
Lee Hachadoorian
Asst. Professor of Instruction, Temple University
Повний підрахунок базових демографічних характеристик:
Вибірка розширених соціальних та економічних характеристик:
Variable | Label
-----------|--------------------------------------
B25045001 | Усього
B25045002 | Власне житло (owner occupied)
B25045003 | Без авто
B25045004 | Голова домогосподарства 15–34 роки
B25045005 | Голова домогосподарства 35–64 роки
B25045006 | Голова домогосподарства 65+ років
B25045007 | 1 або більше авто
B25045008 | Голова домогосподарства 15–34 роки
B25045009 | Голова домогосподарства 35–64 роки
B25045010 | Голова домогосподарства 65+ років
B25045011 | Орендоване житло (renter occupied)
B25045012 | Без авто
B25045013 | Голова домогосподарства 15–34 роки
B25045014 | Голова домогосподарства 35–64 роки
B25045015 | Голова домогосподарства 65+ років
B25045016 | 1 або більше авто
B25045017 | Голова домогосподарства 15–34 роки
B25045018 | Голова домогосподарства 35–64 роки
B25045019 | Голова домогосподарства 65+ років
import requests import pandas as pd HOST, dataset = "https://api.census.gov/data", "acs/acs1"get_vars = ["B25045_" + str(i + 1).zfill(3) + "E" for i in range(19)] get_vars = ["NAME"] + get_varsprint(get_vars)
['NAME', 'B25045_001E', 'B25045_002E', 'B25045_003E', 'B25045_004E',
'B25045_005E', 'B25045_006E', 'B25045_007E', 'B25045_008E', 'B25045_009E',
'B25045_010E', 'B25045_011E', 'B25045_012E', 'B25045_013E', 'B25045_014E',
'B25045_015E', 'B25045_016E', 'B25045_017E', 'B25045_018E', 'B25045_019E']
import requests import pandas as pd HOST, dataset = "https://api.census.gov/data", "acs/acs1"get_vars = ["B25045_" + str(i + 1).zfill(3) + "E" for i in range(19)] get_vars = ["NAME"] + get_vars# print(get_vars)predicates = {} predicates["get"] = ",".join(get_vars) predicates["for"] = "us:*"
# Initialize DataFrame collector dfs = []for year in range(2011, 2018):base_url = "/".join([HOST, str(year), dataset]) r = requests.get(base_url, params=predicates)df = pd.DataFrame(columns=r.json()[0], data=r.json()[1:])# Add column to hold year value df["year"] = yeardfs.append(df)# Concatenate all DataFrames in collector us = pd.concat(dfs, ignore_index=True)
print(us.head())
NAME B25045_001E B25045_002E ... B25045_019E us year
0 United States 114991725 74264435 ... 3232812 1 2011
1 United States 115969540 74119256 ... 3447172 1 2012
2 United States 116291033 73843861 ... 3662322 1 2013
3 United States 117259427 73991995 ... 3847400 1 2014
4 United States 118208250 74506512 ... 4044430 1 2015
[5 rows x 22 columns]
Аналіз даних перепису США в Python