我使用 geopy distance.distance 函數(shù)來計(jì)算 gpx 文件中每個(gè)緯度和經(jīng)度點(diǎn)之間的距離,如下所示:lat lon alt time0 44.565335 -123.312517 85.314 2020-09-07 14:00:011 44.565336 -123.312528 85.311 2020-09-07 14:00:022 44.565335 -123.312551 85.302 2020-09-07 14:00:033 44.565332 -123.312591 85.287 2020-09-07 14:00:044 44.565331 -123.312637 85.270 2020-09-07 14:00:05我正在使用此代碼,它為緯度和經(jīng)度創(chuàng)建新列,其中行向下移動(dòng),然后我可以使用 apply 來計(jì)算每個(gè)列的距離。這是可行的,但我想知道是否有一種方法可以做到這一點(diǎn),而無需為移位的數(shù)據(jù)創(chuàng)建額外的列。def calcDistance(row): return distance.distance((row.lat_shift,row.lon_shift),(row.lat,row.lon)).milesGPS_df['lat_shift']=GPS_df['lat'].shift()GPS_df['lon_shift']=GPS_df['lon'].shift()GPS_df['lat_shift'][0]=GPS_df['lat'][0]GPS_df['lon_shift'][0]=GPS_df['lon'][0]GPS_df['dist']= GPS_df.apply(calcDistance,axis=1)
1 回答

幕布斯7119047
TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
代碼是高效的。一種選擇是在獲得距離后刪除新列。
GPS_df = GPS_df.drop(columns=['lat_shift', 'lon_shift'])
添加回答
舉報(bào)
0/150
提交
取消