使用Python比较2个excel文件

我有两个xlsx文件,如下所示:

 value1 value2 value3 0.456 3.456 0.4325436 6.24654 0.235435 6.376546 4.26545 4.264543 7.2564523 

 value1 value2 value3 0.456 3.456 0.4325436 6.24654 0.23546 6.376546 4.26545 4.264543 7.2564523 

我需要比较所有单元格,并且如果file1 !=的单元格来自file2的单元格,则会print该单元格。

 import xlrd rb = xlrd.open_workbook('file1.xlsx') rb1 = xlrd.open_workbook('file2.xlsx') sheet = rb.sheet_by_index(0) for rownum in range(sheet.nrows): row = sheet.row_values(rownum) for c_el in row: print c_el 

如何添加file1file2的比较单元格?

下面的方法应该让你开始:

 from itertools import izip_longest import xlrd rb1 = xlrd.open_workbook('file1.xlsx') rb2 = xlrd.open_workbook('file2.xlsx') sheet1 = rb1.sheet_by_index(0) sheet2 = rb2.sheet_by_index(0) for rownum in range(max(sheet1.nrows, sheet2.nrows)): if rownum < sheet1.nrows: row_rb1 = sheet1.row_values(rownum) row_rb2 = sheet2.row_values(rownum) for colnum, (c1, c2) in enumerate(izip_longest(row_rb1, row_rb2)): if c1 != c2: print "Row {} Col {} - {} != {}".format(rownum+1, colnum+1, c1, c2) else: print "Row {} missing".format(rownum+1) 

这将显示两个文件之间不同的单元格。 对于你给定的两个文件,这将显示:

 Row 3 Col 2 - 0.235435 != 0.23546 

使用pandas ,你可以做到这一点简单:

 import pandas as pd df1 = pd.read_excel('excel1.xlsx') df2 = pd.read_excel('excel2.xlsx') difference = df1[df1!=df2] print difference 

结果将如下所示:

在这里输入图像说明