Tính D trong vòng lặp
Chỉ số khác biệt (Index of Dissimilarity) của Georgia là 0,544 — cao hay thấp? Hãy so sánh với Illinois (FIPS = 17), nơi có thành phố Chicago.
Trong bài này, bạn sẽ dùng vòng lặp để tính \(D\) cho tất cả các bang, rồi so sánh Georgia và Illinois.
Nhớ rằng công thức của Index of Dissimilarity là:
$$D = \frac{1}{2}\sum{\left\lvert \frac{a}{A} - \frac{b}{B} \right\rvert}$$
pandas đã được import với bí danh quen thuộc, và DataFrame tracts với các cột dân số "white" và "black" đã được nạp. Các biến w và b đã được gán tên cột "white" và "black".
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
Hướng dẫn bài tập
- Dùng phương thức
unique()trên cột"state"để tạo danh sách mã FIPS của các bang. - Dùng vòng lặp for để lần lượt gán từng phần tử của
states(tức từng mã FIPS) vào biếnstate. - Lọc DataFrame
tractstheo mỗi giá trịstate, và gán vàotmp. - Tính \(D\) cho mỗi bang bằng cách áp dụng công thức lên
tmp, và lưu kết quả vào dictionarystate_D.
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.
# Get list of state FIPS Codes
states = list(tracts["state"].____)
state_D = {} # Initialize dictionary as collector
for state in ____:
# Filter by state
tmp = ____
# Add Index of Dissimilarity to Dictionary
state_D[state] = 0.5 * sum(____)
# Print D for Georgia (FIPS = 13) and Illinois (FIPS = 17)
print("Georgia D =", round(state_D["13"], 3))
print("Illinois D =", round(state_D["17"], 3))