如何在python中比较两种不同结构的excel

2024-05-20 04:08:29 发布

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

假设我有file1.xlsx和file2.xlsx,分别有['id'、'name'、'role'、'gender']和['id'、'country'、'role']列。我试图在一个新的excel文件中检索具有相同角色的所有行及其各自的ID。我试着用下面的代码来实现-

import pandas

file1 = file1.xlsx
file2 = file2.xlsx
data1 = pandas.read_excel(file1)
data2 = pandas.read_excel(file2)
dataDiff = data1[data1 != data2]
writer = pandas.ExcelWriter('result.xlsx')
dataDiff.to_excel(writer, sheet_name='Sheet1',index=false)
writer.save()

但这一块给了我以下的错误

Exception: Can only compare identically-labeled Dataframe objects'

我还是python的新手。任何帮助都将不胜感激。我们能用熊猫以外的东西吗


Tags: nameidpandasreaddatadiffxlsxgenderexcel
1条回答
网友
1楼 · 发布于 2024-05-20 04:08:29

我们可以使用^{}来执行^{}

mask=data1.role.isin(data2.role.tolist())
data_equal=data1[mask]

data_diff=data1[~mask]

我们也可以按照建议使用^{}@Jon Clements

data_equal=data.merge(data2,on='role',how='inner')

data_diff= ( data1.merge(data2,on='role',how='outer',indicator=True)     
                  .query('_merge == "left_only"')
                  .drop('_merge',axis=1) )

相关问题 更多 >