为了账号安全,请及时绑定邮箱和手机立即绑定

使用 GeoPy 计算熊猫数据帧上的纬度/经度距离

使用 GeoPy 计算熊猫数据帧上的纬度/经度距离

Cats萌萌 2023-04-25 16:02:27
我正在尝试使用 Pandas Dataframe 上的 geopy 计算纬度和经度之间的距离。这是我的数据框:    latitude    longitude   altitude    -15.836310  -48.020298  1137.199951    -15.836360  -48.020512  1136.400024    -15.836415  -48.020582  1136.400024    -15.836439  -48.020610  1136.400024    -15.836488  -48.020628  1136.599976我尝试了两种不同的方式:from geopy import distancefor i in range(1, len(df)):   before = (df.loc[i-1, 'latitude'], df.loc[i-1, 'longitude'])   actual = (df.loc[i, 'latitude'], df.loc[i, 'longitude'])   df.loc[i, 'geodesic'] = distance.distance(before, actual).miles错误: KeyError: 0显然,df.loc[i, 'column_name']不起作用。和:from geopy import distancedf['geodesic'] = distance.distance((df.latitude.shift(1), df.longitude.shift(1)), (df.latitude, df.longitude)).miles错误:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().GeoPy 官方文档:from geopy import distancenewport_ri = (41.49008, -71.312796)cleveland_oh = (41.499498, -81.695391)print(distance.distance(newport_ri, cleveland_oh).miles)
查看完整描述

2 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

我得到了错误。

1 - 我必须检查 iflatitudelongitudeis NaN

2 - 我无法设置time为索引。(我不知道为什么,这花了很长时间才发现)

一旦检查了这个,错误就消失了。


查看完整回答
反对 回复 2023-04-25
?
郎朗坤

TA贡献1921条经验 获得超9个赞

raw = """latitude;longitude;altitude

-15.836310;-48.020298;1137.199951

-15.836360;-48.020512;1136.400024

-15.836415;-48.020582;1136.400024

-15.836439;-48.020610;1136.400024

-15.836488;-48.020628;1136.599976"""


import pandas as pd

from io import StringIO

from geopy import distance


data = StringIO(raw)

df = pd.read_csv(data, sep=";")

df1 = df.drop(['altitude'], axis=1)

locations = df1.apply(tuple, axis=1)


for counter in range(len(locations) - 1):

    print(distance.distance(locations[counter], locations[counter + 1]).miles)

因为df = pd.read_csv(data, sep=";")它和你的代码一样,所以我让它可以测试。


之后,df1 = df.drop(['altitude'], axis=1)删除此应用程序不需要的表 z 轴。


将 df1 转换为元组,并循环遍历位置,你得到了你的距离


查看完整回答
反对 回复 2023-04-25
  • 2 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信