1
我試圖計算DataFrame中兩點之間的vincety距離。如果我輸入字符串直接,我得到下面的輸出:爲DataFrame獲取不同的輸出並正常實現相同的代碼
loca1 = [12.9404578177, 77.5548244743]
loca2 = [12.9404578177, 77.5548244743]
print vincenty(loca1,loca2).meters
>>>0.0
雖然有數據幀實現同樣的事情,我得到以下的輸出:
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函數的變量都是列表。
如何解釋和修復這種奇怪的行爲?
覆蓋可能
是不是因爲你是印刷'loc'而不是'iloc'? – samGbos
不,當你是整數時使用iloc這個case'i',而當你想在這裏使用標籤索引時使用loc''distance' – Nishad