[英]Getting different output for DataFrame & normal implementation of same code
我正在嘗試計算DataFrame的兩個點之間的距離。 如果我直接輸入字符串,則會得到以下輸出:
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函數的變量是列表。
如何解釋和解決這種奇怪的行為?
好吧,我得到了答案,值13921來自先前的代碼,沒有被覆蓋,更改后使覆蓋成為可能
cleandata.iloc[i,'distance'] = vincenty(location1, location2).meters
而不是cleandata.iloc[i]['distance']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.