尽管两个数据帧都有重复项,但列“ first_name”的值不同。现在,我想将两者合并,并输出如下内容:
df_a.merge(df_b, on='subject_id', how='left')
由于重复,熊猫合并不会提供此输出。如何获得所需的输出或任何其他建议?
答案 0 :(得分:2)
我相信您需要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)