This question already has answers here:
Pandas Merging 101
                                
                                    (2个答案)
                                
                        
                                去年关闭。
            
                    
大家。

我有一个与DataFrame Merge相关的问题。

我使用DF1,DF2。

DF1具有用户ID,内容ID,类型列。
DF2具有UserID,ContentID,Rating列。

我想使用多个coloumn-key(UserID,ContentID)
然后显示匹配行的评分显示,没有匹配行是NAN

请检查以下CSV,

请帮助我,谢谢

DataFrame1

UserID ContentID Genre
U-1    C-1       G-1
U-1    C-2       G-2
U-1    C-3       G-3
U-2    C-1       G-1
U-2    C-2       G-2
U-2    C-3       G-3
U-3    C-1       G-1
U-3    C-2       G-2
U-3    C-3       G-3


DataFrame2
UserID ContentID Rating
U-1    C-1       3
U-1    C-2       3
U-2    C-2       3
U-3    C-1       3

Want Result
UserID ContentID Genre Rating
U-1    C-1       G-1   3
U-1    C-2       G-2   3
U-1    C-3       G-3   NAN
U-2    C-1       G-1   NAN
U-2    C-2       G-2   3
U-2    C-3       G-3   NAN
U-3    C-1       G-1   3
U-3    C-2       G-2   NAN
U-3    C-3       G-3   NAN

最佳答案

简单merge

df1.merge(df2,on=['UserID','ContentID'],how='left')
Out[531]:
  UserID ContentID Genre  Rating
0    U-1       C-1   G-1     3.0
1    U-1       C-2   G-2     3.0
2    U-1       C-3   G-3     NaN
3    U-2       C-1   G-1     NaN
4    U-2       C-2   G-2     3.0
5    U-2       C-3   G-3     NaN
6    U-3       C-1   G-1     3.0
7    U-3       C-2   G-2     NaN
8    U-3       C-3   G-3     NaN

09-16 00:03