1

DataFrame の 2 点間のビンセティ距離を計算しようとしています。文字列を直接入力すると、次の出力が得られます。

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 関数に入る変数がリストであることを確認しました。

この奇妙な動作を説明して修正するにはどうすればよいですか?

4

1 に答える 1