虽然两个数据帧都有重复,但“first_name”列的值不同。现在我想合并两者,输出如下:
df_a.merge(df_b, on='subject_id', how='left')
由于重复,pandas merge不会提供此输出。我怎样才能得到我想要的输出或任何其他建议?
我相信你需要由GroupBy.cumcount
创建的辅助coumns并将其用于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)