合并具有重复条目但具有不同值的两个数据帧

问题描述 投票:1回答:1

我将能够通过示例解释我需要实现的目标:enter image description here

虽然两个数据帧都有重复,但“first_name”列的值不同。现在我想合并两者,输出如下:

enter image description here

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

由于重复,pandas merge不会提供此输出。我怎样才能得到我想要的输出或任何其他建议?

pandas python-3.5
1个回答
2
投票

我相信你需要由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)
© www.soinside.com 2019 - 2024. All rights reserved.