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

How can compare two excel files for checking the format in python?

我有一个 excel sheet 格式正确(一定数量的 header 和具体名称)。这里我有另一个 excel sheet 我必须检查这个 excel sheet 是否正确的格式(必须是相同数量的 header 和相同header 名称,如果低于 header 的值将更改,则没有问题。)。如何解决这个问题?有 NLP 或其他合适的方法吗?

您可以使用 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 

如果你必须比较两个 Excel 你可以尝试这样的事情(我还添加了一些例子 Excels):

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 看起来像这样:

其他文件的思路是一样的。要获得更多见解,请参阅 How to create dataframes

这是您的代码:

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

print(areHeaderExcelEqual(f1, f2))