亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據另一個數據幀的間隔將列添加到數據幀

根據另一個數據幀的間隔將列添加到數據幀

蕭十郎 2023-09-19 14:52:18
我有一個正在操作的 gpx 文件。我想向其中添加一列,根據另一個按距離列出地形的數據框來描述地形。這是數據框:GPS_df    lat lon alt time    dist    total_dist0   44.565335   -123.312517 85.314  2020-09-07 14:00:01 0.000000    0.0000001   44.565336   -123.312528 85.311  2020-09-07 14:00:02 0.000547    0.0005472   44.565335   -123.312551 85.302  2020-09-07 14:00:03 0.001137    0.0016853   44.565332   -123.312591 85.287  2020-09-07 14:00:04 0.001985    0.0036704   44.565331   -123.312637 85.270  2020-09-07 14:00:05 0.002272    0.005942... ... ... ... ... ... ...12481   44.565576   -123.316116 85.517  2020-09-07 17:28:14 0.002318    26.09132412482   44.565559   -123.316072 85.587  2020-09-07 17:28:15 0.002469    26.09379312483   44.565554   -123.316003 85.637  2020-09-07 17:28:16 0.003423    26.09721712484   44.565535   -123.315966 85.697  2020-09-07 17:28:17 0.002249    26.09946512485   44.565521   -123.315929 85.700  2020-09-07 17:28:18 0.002066    26.101532地形_df:dist    terrain0   0.0 Start1   3.0 Road2   5.0 Gravel3   8.0 Trail-hard4   12.0    Gravel5   16.0    Trail-med6   18.0    Road7   22.0    Gravel8   23.0    Trail-easy9   26.2    Road我想出了以下有效的代碼,但我想通過消除循環來提高它的效率:GPS_df['terrain']=""i=0for j in range(0,len(GPS_df)):    if GPS_df.total_dist[j]<= terrain_df.dist[i]:        GPS_df.terrain[j]=terrain_df.terrain[i]    else:        i=i+1        GPS_df.terrain[j]=terrain_df.terrain[i]我嘗試了六種不同的方法,但似乎沒有一種能正常工作。我確信有一種簡單的方法可以做到這一點,但到目前為止我還沒有解決這個問題的技能和經驗,所以我正在尋求一些幫助。我嘗試使用剪切并添加標簽,但剪切需要獨特的標簽。我可以使用 cut,然后以另一種方式用標簽替換生成的間隔,但這似乎也不是最好的方法。我還嘗試了從另一個問題中找到的這種方法,但它僅用第一個標簽填充了該列(我也無法理解它的工作原理,因此很難進行故障排除)。bins = terrain_df['dist']names = terrain_df['terrain']d = dict(enumerate(names, 1))GPS_df['terrain2'] = np.vectorize(d.get)(np.digitize(GPS_df['dist'], bins))感謝您能給我的任何指導。
查看完整描述

1 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

我相信pandas.merge_asof應該能解決問題。嘗試:

result = pd.merge_asof(left=GPS_df, right=terrain_df, left_on='total_dist', right_on='dist', direction='backward')



查看完整回答
反對 回復 2023-09-19
  • 1 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號