在循环中计算 D
乔治亚州的差异指数为 0.544,这个值算高还是低?让我们与伊利诺伊州(FIPS = 17,芝加哥所在州)比较一下。
本练习将使用循环为所有州计算 $D$,然后比较乔治亚州与伊利诺伊州。
请记住,差异指数的公式为:
$$D = \frac{1}{2}\sum{\left\lvert \frac{a}{A} - \frac{b}{B} \right\rvert}$$
已按惯例导入了 pandas,并加载了包含人口列 "white" 和 "black" 的 tracts 数据框。变量 w 与 b 已分别被定义为列名 "white" 与 "black"。
本练习是课程的一部分
使用 Python 分析美国人口普查数据
练习说明
- 在
"state"列上使用unique()方法,创建州 FIPS 代码的列表。 - 使用 for 循环将
states的每个元素(即每个 FIPS 代码)依次存入名为state的变量。 - 按每个
state的取值筛选tracts数据框,并赋给tmp。 - 将公式应用于
tmp,为每个州计算 $D$,并将结果存入字典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))