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

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

如何根據同一數據框中其他列名稱中的匹配 ID 和字符串創建新列?

如何根據同一數據框中其他列名稱中的匹配 ID 和字符串創建新列?

慕姐4208626 2024-01-04 17:17:31
我嘗試在網上尋找解決方案,但找不到。我有一個數據框,其中有 10 個單獨的 id 列,每個 ID 有 10 個單獨的對應值列。下面顯示了一個簡短的示例例子:player_id_1    player_1_x   player_id_2   player_2_x  shooter_id 300               10           301           12           301299               11           300           13           299我想創建一個新列,該列從“shooter_id”和任何“player_id”列之間的相應 ID 匹配中獲取值列,如下所示:player_id_1    player_1_x   player_id_2   player_2_x  shooter_id  shooter_x300               10           301           12           301         12 299               11           300           13           299         11我真的一直在努力完成這項工作,我不確定我是否需要在其內部進行合并,for循環數據幀,或者.apply..任何見解都會非常有幫助!
查看完整描述

1 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

讓我們filter像player_id列一樣,使用.eq+idxmax來獲取player_id找到匹配項的列,最后使用lookup來獲取對應于 的值player_id's:


c = df.filter(like='player_id')\

      .eq(df['shooter_id'], axis=0)\

      .idxmax(1).str.replace('_id', '').add('_x')


df['shooter_x'] = df.lookup(df.index, c)

   player_id_1  player_1_x  player_id_2  player_2_x  shooter_id  shooter_x

0          300          10          301          12         301         12

1          299          11          300          13         299         11


查看完整回答
反對 回復 2024-01-04
  • 1 回答
  • 0 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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