我是python的新手,但我喜欢用pandas处理数据。你知道吗
我有一百对CSV数据,比如乘客和公共汽车站数据。乘客结构数据为人和XY坐标(UTM米)。公共汽车站数据结构是公共汽车站名称(BS)和XY坐标(UTM)。 我的数据如下:
df(person)
Person X Y
A_first 260357.3199 4064458.685
A_last 261618.5243 4064789.928
B_first 258270.5926 4063717.789
B_last 258270.5926 4063717.789
C_first 259051.758 4064462.021
C_last 258270.5926 4063717.789
D_first 260764.3916 4064624.977
D_last 260753.9053 4064569.745
E_first 258270.5926 4063717.789
E_last 258270.5926 4063717.789
F_first 258262.2825 4063740.234
F_last 258270.5926 4063717.789
G_first 258326.2393 4064104.899
G_last 258270.5926 4063717.789
H_first 259491.5911 4064838.328
H_last 260747.1408 4064647.669
而且
df(bus stop)
BS X Y
BS1 258280.8228 4063715.835
BS2 259961.3734 4064840.298
BS3 260360.0219 4064468.593
BS4 260530.5126 4064683.101
BS5 260806.7009 4064399.184
BS6 261178.4165 4063605.91
BS7 261222.1745 4064495.158
BS8 261627.6173 4064281.38
BS9 261662.8833 4064793.444
我想分析人和公共汽车站数据之间的distance matrix
。我的期望输出是InputID(人),TargetID(公共汽车站)和distance。距离是人点数据和公交站点数据之间的距离。我的预期结果:
result
InputID (Person) TargetID (BS) Distance (meter)
A_first BS1 xx
A_first BS2 xx
A_first BS3 xx
A_first BS4 xx
A_first BS5 xx
A_first BS6 xx
A_first BS7 xx
A_first BS8 xx
A_first BS9 xx
A_last BS1 xx
A_last BS2 xx
A_last BS3 xx
A_last BS4 xx
A_last BS5 xx
A_last BS6 xx
A_last BS7 xx
A_last BS8 xx
A_last BS9 xx
............. so on
有什么建议吗?谢谢
首先,您需要创建一个数据帧,它是两个数据帧的乘积。这意味着每个人在每个公交车站都有一排,就像你写的那样。例如,您可以看到如何使用Pythonhere实现这一点。
现在,在这个新的数据帧上,您需要计算两对坐标(人员坐标和公共汽车站坐标)之间每行的距离。为此,可以使用具有distance方法的GeoPandas示例。
首先可以使用
然后计算行X和Y差,取L2范数:
相关问题 更多 >
编程相关推荐