【发布时间】:2019-04-29 18:58:53
【问题描述】:
我是 Geopy 的新手。我在这家运输公司工作,需要了解卡车运行的总公里数。
我在这里看到了一些答案,但它们对我不起作用。
我有以下来自卡车上安装的 GPS 的 Dataframe
latitude longitude
0 -25.145439 -54.294871
1 -24.144564 -54.240094
2 -24.142564 -54.198901
3 -24.140093 52.119021
第一步是制作第三列,将所有内容转换为一个点,但我所有的尝试都失败了
我写
df['point'] = df['latitude'].astype(float),df['longitude'].astype(float)
它返回一个对象。我希望它返回一个点。我的目标是:
latitude longitude Point
0 -25.145439 -54.294871 (-25.145439 -54.294871)
1 -24.144564 -54.240094 (-24.144564 -54.240094)
2 -24.142564 -54.198901 (-24.142564 -54.198901)
3 -24.140093 52.119021 (-24.140093 52.119021)
然后我想与这两个保持距离,所以我会有这样的东西:
latitude longitude Point Distance KM
0 -25.145439 -54.294871 (-25.145439 -54.294871) 0
1 -24.144564 -54.240094 (-24.144564 -54.240094) 0,2
2 -24.142564 -54.198901 (-24.142564 -54.198901) 0,4
3 -24.140093 52.119021 (-24.140093 52.119021) 0,2
注意距离是与上一行的差(已经排好序了)
我正在尝试:
df['distance'] = geodesic(df['point'],df['point'].shift(1))
我收到一个错误,它不适用于元组。
有人知道解决办法吗?
tks
【问题讨论】:
-
知道了。谢谢。在这篇文章中:stackoverflow.com/questions/30969282/…