合并两个具有重复条目但具有不同值的数据框
Merge two dataframe with duplicate entries but with different values
我将能够举例说明我需要实现的目标:
虽然两个数据框都有重复项,但 'first_name' 列的值不同。现在我想合并两者,输出如下:
df_a.merge(df_b, on='subject_id', how='left')
由于重复,pandas 合并将不会给出此输出。我怎样才能得到我想要的输出或任何其他建议?
我相信您需要 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)
我将能够举例说明我需要实现的目标:
虽然两个数据框都有重复项,但 'first_name' 列的值不同。现在我想合并两者,输出如下:
df_a.merge(df_b, on='subject_id', how='left')
由于重复,pandas 合并将不会给出此输出。我怎样才能得到我想要的输出或任何其他建议?
我相信您需要 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)