【发布时间】:2021-06-12 00:28:23
【问题描述】:
我正在使用两个 pandas DataFrame(两个单独的年份),其中包含有关个人的信息。我正在使用 pd.merge 和内部连接。我可以根据个人姓名设置“开”。但是,我注意到有同名的重复条目(基本上是两个同名的人)。为了分隔这些记录,我使用了其他字段,例如它们的位置。我的代码如下:
df_combine = pd.merge(df_current, df_old, on=['Name', 'Department', 'College Name'])
虽然这可以解决此特定情况,但在某些情况下,具有唯一名称的人会调动部门。因此,这不会被捕获。
有没有办法先按名称合并唯一案例,然后按名称重复记录以考虑其他字段?
为清楚起见,考虑在两个不同部门中有两个“Doe,John”的记录,在一个部门中有一个“Doe,Jane”在一年内,另一个在第二年。我希望代码能够识别两个“Doe,John”和一个“Doe,Jane”
编辑,示例数据框:
最新数据框:
Name, Department, Field1
"Doe,John","ABC",555
"Doe,John","DEF",145
"Doe,Jane","FGH",205
上一个数据框:
Name, Department, Field1
"Doe,John","ABC",345
"Doe,John","DEF",140
"Doe,Jane","ABC",200
注意 Jane Doe 部门的变化。
预期结果:
Name, Department, Field1_A, Field1_B
"Doe,John","ABC",555,345
"Doe,John","DEF",145,140
"Doe,Jane","FGH",205,200
【问题讨论】:
-
如果您可以提供可复制的输入数据框和输出数据框以进行检查,这将很有帮助
-
我编辑了 OP 来举个例子。我正在合并此表中的其他列。
标签: python python-3.x pandas dataframe