我在网上找到了这个很好的脚本,它可以很好地比较2个Excel工作表之间的差异,但有一个问题-如果Excel文件在给定的.xlsx中有多个工作表,它就不起作用:
import pandas as pd
import numpy as np
df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')
df1.equals(df2)
comparison_values = df1.values == df2.values
print(comparison_values)
rows, cols = np.where(comparison_values == False)
for item in zip(rows,cols):
df1.iloc[item[0], item[1]] = '{} --> {}'.format(df1.iloc[item[0], item[1]], df2.iloc[item[0], item[1]])
df1.to_excel('./Excel_diff.xlsx', index = False, header = True)
它的工作真的很好,我需要它,除了它不工作时,我有多个工作表在每个。xlsx -它只比较第一张文件。任何想法如何改变上面的脚本,使它比较文件中的所有工作表?谢谢
1条答案
按热度按时间goqiplq21#
正如@StevenS在评论部分所说的,你可以使用
sheet_name=None
选项来获取一个包含输入文件中所有工作表和 Dataframe 的字典。然后你需要决定如何区分输出文件中的每个工作表。在下面的例子中,我为file1.xlsx输入中的每个工作表在输出差异文件中放置了一个工作表。