American Community Survey: 연간 변화

Python으로 미국 인구조사 데이터 분석하기

Lee Hachadoorian

Asst. Professor of Instruction, Temple University

인구조사 역사: 전수와 표본

핵심 인구통계 특성의 전체 집계:

  • 10년마다 실시하는 인구조사 1790–2010+

광범위한 사회·경제 특성의 표본:

  • 10년마다 실시하는 인구조사 “Long Form”(SF3) 1970–2000, 가구의 약 15%
  • 연례 American Community Survey 2005+, 가구의 약 1%
Python으로 미국 인구조사 데이터 분석하기

B25045 - 주거형태별 이용 가능 차량 수 및 연령

Variable   |  Label
-----------|--------------------------------------
B25045001  |  합계
B25045002  |    자가점유
B25045003  |      차량 없음
B25045004  |        세대주 15–34세
B25045005  |        세대주 35–64세
B25045006  |        세대주 65세 이상
B25045007  |      차량 1대 이상
B25045008  |        세대주 15–34세
B25045009  |        세대주 35–64세
B25045010  |        세대주 65세 이상
B25045011  |    임차점유
B25045012  |      차량 없음
B25045013  |        세대주 15–34세
B25045014  |        세대주 35–64세
B25045015  |        세대주 65세 이상
B25045016  |      차량 1대 이상
B25045017  |        세대주 15–34세
B25045018  |        세대주 35–64세
B25045019  |        세대주 65세 이상
Python으로 미국 인구조사 데이터 분석하기

ACS 상세 테이블 요청 - 설정

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)
['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']
Python으로 미국 인구조사 데이터 분석하기

ACS 상세 테이블 요청 - 설정

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:*"
Python으로 미국 인구조사 데이터 분석하기

여러 연도에서 동일 변수 요청

# DataFrame 수집기 초기화
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:])
# 연도 값 보관 컬럼 추가 df["year"] = year
dfs.append(df)
# 수집기에 있는 모든 DataFrame 연결 us = pd.concat(dfs, ignore_index=True)
Python으로 미국 인구조사 데이터 분석하기

여러 연도에서 동일 변수 요청

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으로 미국 인구조사 데이터 분석하기

데이터를 가져와 봅시다!

Python으로 미국 인구조사 데이터 분석하기

Preparing Video For Download...