使用python在excel中查找缺少的列标题

时间:2018-10-09 09:25:24

标签: python pandas

我想使用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])

它生成一个

  

Keyerror:[header4]不在索引中

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

非常感谢。

2 个答案:

答案 0 :(得分:2)

如果要检查是否存在所有个必需的列标题,则可以使用集合,并使用数据框的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)

答案 1 :(得分:0)

链接此:

In [5]: data=pd.DataFrame([["Abao","man"],["Tom","man"]],columns=["name","sex"])

In [6]: data
Out[6]: 
   name  sex
0  Abao  man
1   Tom  man

In [7]: data.columns 
Out[7]: Index(['name', 'sex'], dtype='object')

In [8]: "age" in data.columns
Out[8]: False

In [9]: "sex" in data.columns
Out[9]: True