Bắt đầu ngayBắt đầu miễn phí

Ghép Tracts và Khu vực Đô thị (MSA)

Để tập trung vào cách hoạt động của phương thức merge, một hàm tính Chỉ số Khác biệt (Index of Dissimilarity) đã được cung cấp sẵn cho bạn. (Bạn sẽ tự viết hàm này ở bài tiếp theo!)

Để áp dụng hàm này, bạn cần thêm mã định danh MSA vào DataFrame tracts. Bạn sẽ dùng statecounty, có mặt ở cả hai DataFrame, làm khóa ghép. Cuối cùng, bạn sẽ dùng phương thức stripplot của seaborn để hiển thị 10 khu vực đô thị có mức độ phân tách chủng tộc cao nhất.

DataFrame tracts mà bạn đã dùng trước đó đã được nạp. Dữ liệu dân số theo MSA được nạp dưới tên msa, và vài dòng đầu đã được hiển thị trong console. Cuối cùng, msa_def được nạp với danh sách các county cấu thành mỗi MSA.

pandasseaborn đã được nạp với các bí danh quen thuộc.

Bài tập này là một phần của khóa học

Phân tích dữ liệu Điều tra Dân số Hoa Kỳ bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Dùng phương thức nlargest trên DataFrame msa để trả về 50 khu vực đô thị lớn nhất theo "population".
  • Cả tractsmsa_def đều có các cột "state""county". Dùng phương thức merge với tham số on để ghép theo các cột này.
  • Dùng phương thức merge để ghép msamsa_D theo mã định danh MSA.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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()
Chỉnh sửa và Chạy Mã