首页 > 解决方案 > 使用python在excel中查找缺少的列标题

问题描述

我想使用python查找excel中是否存在所有必需的列名。例如:

Header1 Header2 Header3
Val1    Val4    Val6
Val2    val5    Val7

我想知道是否header4存在

我使用以下内容:

import pandas as pd
path=C:\Req_file\excel_file

xl = pd.Excelfile(path)

for name in xl.sheet_names:
    df = pd.read_excel(xl, name)
my_cols = [Header1, Header2,Header3,Header4]
print(df[my_cols])

它生成一个

键错误:[header4] 不在索引中

我想知道是否可以使用“if”语句。我想在框架上生成一条错误消息,但我只能在终端中得到。

提前非常感谢。

标签: pythonpandas

解决方案


如果要检查是否存在所有必需的列标题,可以使用集合,并使用数据框的columns属性:

if set(required_columns) <= set(df.columns):
    print("all required columns are there")

如果您需要查找缺少的必需列,请使用设置差异,首先使用必需的列(以便忽略其他列):

missing = set(required_columns) - set(df.columns)

并将两者结合如下:

missing = set(required_columns) - set(df.columns)
if missing:
    print("Missing required columns:", missing)

推荐阅读