주 간 이동 흐름
영상에서 주 간 이주 흐름의 히트맵을 봤지만, 정보가 너무 많아 복잡해 보였죠. 이번 연습에서는 중서부(Midwest) 지역 내부의 이동만 살펴보겠습니다.
DataFrame state_to_state가 로드되어 있으며, 처음 몇 행이 콘솔에 표시되어 있어요. 영상에서 본 것처럼 행 라벨은 이동한 도착 주를, 열 이름은 출발 주를 나타냅니다.
중서부 주 이름을 담은 리스트 midwest_states가 정의되어 있습니다. (포함된 주가 궁금하면 콘솔에 출력해 보세요.) 이 DataFrame의 열 이름과 인덱스도 주 이름이므로, 이번 히트맵에 사용할 열과 행을 추출할 때 midwest_states를 활용할 거예요.
pandas와 seaborn은 일반적으로 쓰는 별칭으로 이미 임포트되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 미국 인구조사 데이터 분석하기
연습 안내
- 데이터 프레임을 서브셋팅해, 주 이름 리스트와 일치하는 열만 선택하고, 인덱스가 해당 리스트에 있는 행만 반환하세요.
- 서브셋팅 과정에서 열과 행의 순서가 바뀌었을 수 있습니다.
midwest.index가midwest.columns와 동일한지 확인하세요. - 행 인덱스(
axis = 0)와 열 이름(axis = 1) 기준으로 DataFrame을 정렬하세요. 두 경우 모두inplace = True를 사용하세요. midwest의 히트맵을 만드세요.cmap="YlGnBu"를 사용해 노랑-초록-파랑 색상 램프를 적용하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Retain only rows and columns of Midwest states
midwest = state_to_state[____][state_to_state.index.isin(____)]
# Are rows and columns still in the same order?
print(____)
# Sort the rows (by index) and columns (by name)
midwest.sort_index(axis = ____, ____)
midwest.sort_index(axis = ____, ____)
# Create a heatmap of migration flows
____
plt.xticks(rotation=90)
plt.yticks(rotation=0)
plt.show()