การคำนวณ D ในลูป
ค่า Index of Dissimilarity ของจอร์เจียที่ 0.544 นั้นสูงหรือต่ำ? มาเปรียบเทียบกับอิลลินอยส์ (FIPS = 17) รัฐที่เป็นที่ตั้งของชิคาโกกัน
ในแบบฝึกหัดนี้ จะใช้ลูปคำนวณ \(D\) สำหรับ ทุกรัฐ แล้วจึงเปรียบเทียบค่าของจอร์เจียกับอิลลินอยส์
โปรดจำไว้ว่าสูตรของ Index of Dissimilarity คือ:
$$D = \frac{1}{2}\sum{\left\lvert \frac{a}{A} - \frac{b}{B} \right\rvert}$$
pandas ถูก import ไว้แล้วด้วย alias ปกติ และ DataFrame tracts ที่มีคอลัมน์ประชากร "white" และ "black" ได้ถูกโหลดไว้แล้ว ตัวแปร w และ b ถูกกำหนดให้เก็บชื่อคอลัมน์ "white" และ "black" ตามลำดับ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ข้อมูลสำมะโนประชากรสหรัฐฯ ด้วย Python
คำแนะนำการฝึกหัด
- ใช้เมธอด
unique()กับคอลัมน์"state"เพื่อสร้างรายการรหัส FIPS ของแต่ละรัฐ - ใช้ for-loop เพื่อนำแต่ละองค์ประกอบของ
states(นั่นคือรหัส FIPS แต่ละรหัส) มาเก็บในตัวแปรชื่อstate - กรอง DataFrame
tractsตามค่าของstateแต่ละค่า แล้วกำหนดผลลัพธ์ให้กับtmp - คำนวณ \(D\) สำหรับแต่ละรัฐโดยใช้สูตรกับ
tmpแล้วเก็บผลลัพธ์ไว้ในพจนานุกรมstate_D
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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))