我正在尝试合并列上的两个数据框artist_title。但是,重复值可能在两列中。由于我正在处理大型数据集和大型列,因此我稍微简化了数据框。
在 中df1,artist_title可以提到与下面的示例'J. Balvin - Ay Vamos'。
在 中df2,'J 也可以有多个值。Balvin - Ay Vamos'。
如果它artist_title从df1in 中找到df2,则它提供check_code. 当有多个值要从 返回时df2,我希望复制一行df1以添加附加值,check_code以便我可以查看两个(所有)可用代码。
df1:
channel ID artist_title
NOW 301 J. Balvin - Ay Vamos
NOW 302 Troye Sivan - Bloom
NOW 303 Christina Milian - Dip It Low
NOW 304 Lorde - Royals
TRENDING 301 J. Balvin - Ay Vamos
TRENDING 305 Mase - Welcome Back
CHILL 306 Bastille - Pompeii
df2:
artist_title check_code
The Doors - Touch Me AD9823459
Ricky Martin - She Bangs SD8845623
Spice Girls - Wannabe SDF945345
Daft Punk - Da Funk KI9023475
J. Balvin - Ay Vamos URY734586
J. Balvin - Ay Vamos YH4763523
Troye Sivan - Bloom EH7623495
期望的结果:
channel ID artist_title check_code
NOW 301 J. Balvin - Ay Vamos URY734586
NOW 301 J. Balvin - Ay Vamos YH4763523
NOW 302 Troye Sivan - Bloom EH7623495
NOW 303 Christina Milian - Dip It Low NaN
NOW 304 Lorde - Royals NaN
TRENDING 301 J. Balvin - Ay Vamos URY734586
TRENDING 301 J. Balvin - Ay Vamos YH4763523
TRENDING 305 Mase - Welcome Back NaN
CHILL 306 Bastille - Pompeii NaN
我尝试合并:
pd.merge(df1, df2, on ='artist_title', how = 'left')
结果:
它确实创建了额外的行,但它总是包含一个完全不同的“check_code”,第二个是正确的“check_code”。例如,这样的事情:
channel ID artist_title check_code
NOW 301 J. Balvin - Ay Vamos ABE000149
NOW 301 J. Balvin - Ay Vamos YH4763523
由于两列都包含重复的值,我猜我需要做除合并之外的其他事情?我怎样才能最好地实现上述目标?
补充:df1有 4405 个值,df2有 177806 个值。我只希望有值的df2,如果他们都在df1。如果没有,那我不要他们。
天涯尽头无女友
相关分类