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

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""black" đã được nạp. Các biến wb đã được gán tên cột "white""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

Xem khóa học

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ến state.
  • Lọc DataFrame tracts theo mỗi giá trị state, và gán vào tmp.
  • 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 dictionary state_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))
Chỉnh sửa và Chạy Mã