Я пытаюсь объединить два кадра данных в столбце artist_title
. Однако повторные значения могут быть в обоих столбцах. Поскольку я работаю с большим набором данных и большими столбцами, я немного упростил рамки данных.
В df1
может быть упомянуто то же самое artist_title
, что и в приведенном ниже примере 'J. Балвин - Ай Вамос.
В df2
также может быть несколько значений для 'J. Балвин - Ай Вамос.
Если он находит artist_title
из df1
в 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')
Результаты:
Он создает дополнительные строки, но всегда содержит код проверки из чего-то совершенно другого, а второй - правильный код проверки. Например, что-то вроде этого:
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
. Если нет, то я не хочу их.