【发布时间】:2021-04-10 02:06:39
【问题描述】:
我正在使用 Python 进行计算。假设我有这种 DataFrame,它由一些点的长纬度组成
import pandas as pd
dfa=pd.DataFrame(([1,2],[1,3],[1,1],[1,4]), columns=['y','x'])
之前,我使用了 scipy.spatial 中的距离矩阵,并使用此代码创建了另一个 DataFrame。但它似乎无法精确计算点之间的距离(带长纬度)
from scipy.spatial import distance_matrix
pd.DataFrame(distance_matrix(dfa.values, dfa.values), index=dfa.index, columns=dfa.index)
您认为可以使用测地线更改计算吗?这是我尝试过的。
from geopy.distance import geodesic
pd.DataFrame(geodesic(dfa.values[0], dfa.values[0]).kilometers, index=dfa.index, columns=dfa.index)
# i don't know how to change [0] adjusted to column and index
有什么建议吗?
【问题讨论】:
-
geopy是这样做的方法。 stackoverflow.com/questions/31632190/… -
谢谢,我之前尝试过,但我希望输出是距离矩阵的 DataFrame。有可能吗?
-
geodesic一次只做两点。你必须做两个嵌套循环。
标签: python pandas dataframe geopy