시작하기무료로 시작하기

트랙트와 대도시권(메트로폴리탄 지역) 결합하기

merge 메서드의 동작에 집중할 수 있도록, 불균등지수(Index of Dissimilarity)를 계산하는 함수가 미리 제공되어 있어요. (다음 연습 문제에서 직접 만들어 보게 됩니다!)

이 함수를 적용하려면 tracts DataFrame에 MSA 식별자를 추가해야 해요. 두 DataFrame에 모두 있는 statecounty를 조인 키로 사용하세요. 마지막에는 seabornstripplot 메서드를 사용해 분리 수준이 가장 높은 10개 메트로를 시각화합니다.

이전에 사용한 tracts DataFrame이 로드되어 있어요. MSA별 인구 데이터는 msa로 로드되어 있으며, 처음 몇 행이 콘솔에 표시됩니다. 마지막으로 각 MSA를 구성하는 카운티 정보는 msa_def로 로드되어 있어요.

pandasseaborn은 평소와 같은 별칭으로 로드되어 있습니다.

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

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

강의 보기

연습 안내

  • msa DataFrame에서 "population"을 기준으로 가장 큰 메트로 50개를 반환하려면 nlargest 메서드를 사용하세요.
  • tractsmsa_def에는 모두 "state""county" 열이 있어요. 이 열들을 키로 조인하도록 on 매개변수를 사용해 merge 메서드를 호출하세요.
  • MSA 식별자를 기준으로 msamsa_Dmerge 메서드로 조인하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Find identifiers for 50 largest metros by population
msa50 = list(msa.____["msa"])

# Join MSA identifiers to tracts, restrict to largest 50 metros
msa_tracts = pd.merge(____, ____, on = ____)
msa_tracts = msa_tracts[msa_tracts["msa"].isin(msa50)]

# Calculate D using custom function, merge back into MSA
msa_D = dissimilarity(msa_tracts, "white", "black", "msa")
msa = pd.merge(msa, msa_D, ____, ____)

# Plot ten most segregated metros
sns.stripplot(x = "D", y = "name", data = msa.nlargest(10, "D"))
plt.show()
코드 편집 및 실행