两个excel文件与pandas的比较

2024-06-16 14:07:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个excel文件,A和B。A是主副本,其中有员工姓名和组织名称(NameOrg)的更新记录。文件B包含NameOrg列,这些列的记录稍旧一些,还有许多我们不感兴趣的其他列。在

   Name      Org
0   abc    ddc systems
1   sdc    ddc systems
2   csc    ddd systems
3   rdc    kbf org
4   rfc    kbf org

我要做两个手术:

1)我想将Excel B(列NameOrg)与Excel A(列Name和{})进行比较,并用Name和相应的Org更新文件B。在

2)对于文件B(列NameOrg)中的所有现有条目,我希望将文件和与文件A进行比较,并在任何员工组织发生更改时更新Org列。在

对于解决方案1)要找到下面方法尝试的新条目(尽管不确定此方法是否正确),输出是元组,我不确定如何将其更新回DataFrame。在

^{pr2}$

任何帮助都将不胜感激。谢谢。在


Tags: 文件方法nameorg记录副本员工条目
2条回答

如果名称是唯一的,只需连接A和B,并删除重复项。假设A和{}是您的数据帧

df = pd.concat([A, B]).drop_duplicates(subset=['Name'], keep='first')

或者

^{pr2}$

两者在性能方面应该大致相同。在

解决方案:

diff=pd.DataFrame(list(set(zip(df['aa'], df['bb'])) - set(zip(df2['aa'], df2['bb']))),columns=df.columns)
print(diff.sort_values(by='aa').reset_index(drop=True))

示例:

^{pr2}$

输出:

    aa   bb
0  aa1  bb1
1  aa2  bb2
2  aa3  bb3
3  aa4  bb4
4  aa5  bb5

相关问题 更多 >