我正在尝试计算 DataFrame 两点之间的 vincety 距离。如果我直接输入字符串,我会得到以下输出:
loca1 = [12.9404578177, 77.5548244743]
loca2 = [12.9404578177, 77.5548244743]
print vincenty(loca1,loca2).meters
>>>0.0
在使用 Dataframe 实现相同的事情时,我得到以下输出:
from geopy.distance import vincenty
for i in range(len(cleandata)):
if i < 303708:
location2 = cleandata.iloc[i]['location']
location1 = cleandata.iloc[i+1]['location']
cleandata.iloc[i]['distance'] = vincenty(location1, location2).meters
else:
print i
print cleandata.loc[1]['distance']
>>>*13921
cleandata['location']
具有与我在第一个代码中放入的完全相同的坐标字符串。我在这两种情况下都检查了进入 vincety 函数的变量是列表。
如何解释和解决这种奇怪的行为?