gpt4 book ai didi

python - 如何在Python中比较两个不同结构的Excel

转载 作者:行者123 更新时间:2023-12-01 06:53:35 24 4
gpt4 key购买 nike

假设我有 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()

但是这个 block 给了我以下错误

Exception: Can only compare identically-labeled Dataframe objects'

我还是一个Python新手。任何帮助,将不胜感激。除了 pandas 之外我们还可以使用其他东西吗?

最佳答案

我们可以使用Series.isin表现 boolean indexing :

mask=data1.role.isin(data2.role.tolist())
data_equal=data1[mask]
<小时/>
data_diff=data1[~mask]
<小时/>

我们还可以使用DataFrame.merge正如建议的@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) )

关于python - 如何在Python中比较两个不同结构的Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58900164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com