API에서 시각화까지: 집단 시설(Group Quarters)
이번 연습 문제에서는 청소년 범죄자들이 어디에 수감되어 있는지 살펴보겠습니다. 이 과정에서 대학 기숙사, 교정 시설, 요양원, 군 기지 등을 포함하는 "집단 시설(group quarters)" 개념을 소개합니다.
주(state)별로, 성인 교정 시설에 수감된 미성년 남성의 비율을 시각화할 것입니다. API로 요청할 변수는 다음과 같습니다.
- PCT021005 - 남성: 18세 미만: 시설 수용 인구: 성인 교정 시설
- PCT021015 - 남성: 18세 미만: 시설 수용 인구: 소년 시설: 소년을 위한 교정 시설
requests는 이미 임포트되어 있습니다. API 요청을 위한 base_url도 정의되어 있습니다.
pandas와 seaborn은 일반적으로 사용하는 별칭으로 임포트되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 미국 인구조사 데이터 분석하기
연습 안내
- 필요한 두 변수를 리스트
get_vars에 완성하세요. astype을 사용해in_adult와in_juvenile열을 정수형으로 변환하세요.- 성인 교정 시설에 있는 미성년자의 비율을 계산하세요. 분자는 미성년자가
in_adult교정 시설에 있는 수에 100을 곱한 값, 분모는 미성년자가in_adult와in_juvenile교정 시설에 있는 수의 합입니다. states를pct_in_adult기준으로 내림차순 정렬하고,inplace = True를 사용하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Specify variables and execute API request
get_vars = ["NAME", ____]
predicates["get"] = ",".join(get_vars)
r = requests.get(base_url, params=predicates)
# Construct DataFrame
col_names = ["name", "in_adult", "in_juvenile", "state"]
states = pd.DataFrame(columns=col_names, data=r.json()[1:])
states[["in_adult", "in_juvenile"]] = states[["in_adult", "in_juvenile"]].____
# Calculate percentage of incarcerated male minors in adult facilities
states["pct_in_adult"] = ____
states.sort_values(by = ____, ascending = ____, inplace = ____)
sns.stripplot(x = "pct_in_adult", y = "name", data = states)
plt.show()