Объединить два кадра данных с повторяющимися записями, но с разными значениями - PullRequest
1 голос
/ 19 апреля 2019

Я смогу объяснить на примере, чего мне нужно достичь: enter image description here

Хотя оба фрейма данных имеют дубликаты, значения столбца 'first_name' различны. Теперь я хочу объединить оба с выводом что-то вроде этого:

enter image description here

df_a.merge(df_b, on='subject_id', how='left')

Слияние панд не выдаст этот вывод из-за дубликатов. Как я могу получить желаемый результат или любые другие предложения?

1 Ответ

2 голосов
/ 19 апреля 2019

Я полагаю, вам нужны вспомогательные кумны, созданные GroupBy.cumcount и использованные для merge, в последний раз удалите их:

df_a['g'] = df_a.groupby('subject_id').cumcount()
df_b['g'] = df_b.groupby('subject_id').cumcount()
df_a.merge(df_b, on=['subject_id', 'g'], how='left').drop('g', axis=1)
...