3

Everyone.

I have a question relate in DataFrame Merge.

I use DF1, DF2.

DF1 have UserID, ContentID, Genre Column. DF2 have UserID, ContentID, Rating Column.

I want use multi coloumn-key( UserID, ContentID ) then match rows Rating display, none match row is NAN

Plz, check below CSV,

help me, plz, Thanks

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
Park.BJ
  • 163
  • 10

1 Answers1

3

Simple 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
BENY
  • 258,262
  • 17
  • 121
  • 165