如何比较两个Excel文件以检查python中的格式?

时间:2018-10-18 05:29:11

标签: python excel xlrd

我有一张格式正确的Excel工作表(某些标头和特定名称)。在这里,我还有另一个Excel工作表,并且我必须检查此Excel工作表的格式是否正确(标题必须相同,标题名称应相同,如果标题下面的值会发生变化,则没有问题。)。如何解决这个问题?有NLP或其他任何合适的方法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用pandas进行比较。

import pandas as pd


f1 = pd.read_excel('sheet1.xlsx')
f2 = pd.read_excel('sheet2.xlsx')

header_threshold = 5 # any number of headers
print(len(f1.columns) == header_threshold)
print(f1.columns) # get the column names as values 

答案 1 :(得分:0)

如果必须比较两个Excel,则可以尝试这样的操作(我还添加了一些示例Excel):

def areHeaderExcelEqual(excel1, excel2) :
equals = True
if len(excel1.columns) != len(excel2.columns):
    return False

for i in range(len(excel1.columns)):
    if excel1.columns[i] != excel2.columns[i] :
        equals = False

return equals

这是一个应用程序:

 import pandas as pd
#create first example Excel
df_out = pd.DataFrame([('string1',1),('string2',2), ('string3',3)], columns=['Name', 'Value'])
df_out.to_excel('tmp1.xlsx')
#create second example Excel
df_out = pd.DataFrame([('string5',1),('string2',5), ('string2',3)], columns=['Name', 'Value'])
df_out.to_excel('tmp2.xlsx')

# create third example Excel
df_out = pd.DataFrame([('string1',1),('string4',2), ('string3',3)], columns=['MyName', 'MyValue'])
df_out.to_excel('tmp3.xlsx')

excel1 = pd.read_excel('tmp1.xlsx')
excel2 = pd.read_excel('tmp2.xlsx')
excel3 = pd.read_excel('tmp3.xlsx')

print(areHeaderExcelEqual(excel1, excel2))
print(areHeaderExcelEqual(excel1, excel3))

注意:提供Excel的文件只是为了查看不同的输出。
例如,excel1如下所示:
enter image description here

其他文件的想法相同。要了解更多信息,请参见How to create dataframes

这是您的代码:

f1 = pd.read_excel('file1.xlsx')
f2 = pd.read_excel('file2.xlsx')

print(areHeaderExcelEqual(f1, f2))