2016-05-09 9 views
3

を使用して2つのExcelファイルの比較:は、次のように私は2つの<code>xlsx</code>のファイルを持っているのPython

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 

を私はすべてのセルを比較する必要があり、もしfile2printからfile1 !=の細胞からの細胞それ。

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の比較セルを追加することができますか?

+0

[Excelセルの値の比較]の可能な複製(http://stackoverflow.com/questions/33486884/comparing-values-in-excel-cells) –

答えて

3

次のアプローチは、あなたが始める必要があります。

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 
8

使用pandasと、あなたはそれをこのような単純な操作を行うことができます。

import pandas as pd 

df1 = pd.read_excel('excel1.xlsx') 
df2 = pd.read_excel('excel2.xlsx') 

difference = df1[df1!=df2] 
print difference 

そして、その結果は次のようになります。

enter image description here

関連する問題