簡體   English   中英

為DataFrame和相同代碼的正常實現獲取不同的輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM