亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 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 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號