我正在嘗試將排名推薦資料框與包含每個用戶的真實動作的資料框(表明他們是否觀看推薦的電影)連接起來。我想先加入 id 列,然后加入該 id 的推薦/true_actions。這是一個例子:
rec_df: labels_df:
id | recommendation | rank | id | movie 1.| movie2.| movie 3|
---------------------------- --------------------------------
110| movie 1. | 1. | 110| 0. | 1 | 0
110| movie 2. | 2. | --------------------------------
110| movie 3 | 3. | 210| 1. | 0 | 1
---------------------------- --------------------------------
210| movie 1. | 2. |
210| movie 2. | 1. |
210| movie 3 | 3. |
----------------------------
the desired resulting df after join:
id | recommendation | rank | true_action
----------------------------------------
110| movie 1. | 1. | 0 |
110| movie 2. | 2. | 1 |
110| movie 3 | 3. | 0 |
----------------------------------------
210| movie 1. | 2. | 1 |
210| movie 2. | 1. | 0 |
210| movie 3 | 3. | 1 |
----------------------------
有沒有一種簡單的方法可以在熊貓中進行這種型別的加入?非常感謝您提前提供的幫助!
uj5u.com熱心網友回復:
加入前壓平labels_df:
df1['true_action'] = df1.merge(df2.melt('id', var_name='recommendation'),
on=['id', 'recommendation'], how='left')['value']
print(df1)
# Output
id recommendation rank true_action
0 110 movie 1 1 0
1 110 movie 2 2 1
2 110 movie 3 3 0
3 210 movie 1 2 1
4 210 movie 2 1 0
5 210 movie 3 3 1
注意:我洗掉了所有尾隨點以更清晰
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/453570.html
