我想使用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”语句。 我想在框架上生成一条错误消息,但是我只能在终端上看到。
非常感谢。
答案 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