我需要创建一个空的数据框,存储另一个数据框的一列中的值,基于同一第二个数据框的两列中满足的某些条件.
我有一个数据框
test_mob_df = pd.DataFrame( {"geoid_o": [10002, 18039, 18039, 18182, 10006, 18111, 18005, 17001], "geoid_d": [10005, 18039, 18111, 18182, 18005, 17004, 18050, 15001], "pop_flows": [20,10,9,15,2,1,6,30]})
和一个我感兴趣的ID列表作为state_county_fip = [18182, 18111, 18005, 18039, 18050, 18001]
我现在需要创建一个新的$nxn $数据框(或一个数组),其行和列的名称按state_county_fips
排序,只要geoid_o
和geoid_d
列的同一行中的值匹配与否,它就存储在$test_mob_df $的pop_flows
列中的值.从本质上讲,生成的数据框应该如下所示:
18005 | 18039 | 18005 | 18050 | 18111 | 18182 | |
---|---|---|---|---|---|---|
18005 | 0 | 0 | 0 | 0 | 0 | 0 |
18039 | 0 | 10 | 0 | 0 | 9 | 0 |
18005 | 0 | 0 | 0 | 6 | 0 | 0 |
18050 | 0 | 0 | 0 | 0 | 0 | 0 |
18111 | 0 | 0 | 0 | 0 | 0 | 0 |
18182 | 0 | 0 | 0 | 0 | 0 | 15 |
也就是说,我需要创建一个从大地水准面_o到大地水准面_d的人口流的矩阵(或矩阵),当我们没有从大地水准面_o到大地水准面_d的人口流时,我们为相应的像元置零.例如,10个人从geoid_o 18005移动到geoid_d 18050.
除了使用Query创建一个具有感兴趣的大地水准面的数据框(来自test_mob_df)之外,我似乎不知道该如何做到这一点.我将非常感谢你能提供的任何帮助.