시작하기무료로 시작하기

API에서 시각화까지: 집단 시설(Group Quarters)

이번 연습 문제에서는 청소년 범죄자들이 어디에 수감되어 있는지 살펴보겠습니다. 이 과정에서 대학 기숙사, 교정 시설, 요양원, 군 기지 등을 포함하는 "집단 시설(group quarters)" 개념을 소개합니다.

주(state)별로, 성인 교정 시설에 수감된 미성년 남성의 비율을 시각화할 것입니다. API로 요청할 변수는 다음과 같습니다.

  • PCT021005 - 남성: 18세 미만: 시설 수용 인구: 성인 교정 시설
  • PCT021015 - 남성: 18세 미만: 시설 수용 인구: 소년 시설: 소년을 위한 교정 시설

requests는 이미 임포트되어 있습니다. API 요청을 위한 base_url도 정의되어 있습니다.

pandasseaborn은 일반적으로 사용하는 별칭으로 임포트되어 있습니다.

이 연습은 강의의 일부입니다

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

강의 보기

연습 안내

  • 필요한 두 변수를 리스트 get_vars에 완성하세요.
  • astype을 사용해 in_adultin_juvenile 열을 정수형으로 변환하세요.
  • 성인 교정 시설에 있는 미성년자의 비율을 계산하세요. 분자는 미성년자가 in_adult 교정 시설에 있는 수에 100을 곱한 값, 분모는 미성년자가 in_adultin_juvenile 교정 시설에 있는 수의 합입니다.
  • statespct_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()
코드 편집 및 실행