我有一张格式正确的Excel工作表(某些标头和特定名称)。在这里,我还有另一个Excel工作表,并且我必须检查此Excel工作表的格式是否正确(标题必须相同,标题名称应相同,如果标题下面的值会发生变化,则没有问题。)。如何解决这个问题?有NLP或其他任何合适的方法吗?
答案 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如下所示:
其他文件的想法相同。要了解更多信息,请参见How to create dataframes。
这是您的代码:
f1 = pd.read_excel('file1.xlsx')
f2 = pd.read_excel('file2.xlsx')
print(areHeaderExcelEqual(f1, f2))