使用python在excel中查找缺少的列标题
我想使用python查找excel中是否存在所有必需的列名。 例如:使用python在excel中查找缺少的列标题,python,pandas,Python,Pandas,我想使用python查找excel中是否存在所有必需的列名。 例如: Header1 Header2 Header3 Val1 Val4 Val6 Val2 val5 Val7 我想知道是否有标题4 我使用以下方法: 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,
Header1 Header2 Header3
Val1 Val4 Val6
Val2 val5 Val7
我想知道是否有标题4
我使用以下方法:
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 set(required_columns) <= set(df.columns):
print("all required columns are there")
并将两者结合如下:
missing = set(required_columns) - set(df.columns)
if missing:
print("Missing required columns:", missing)
如果要检查是否存在所有必需的列标题,可以使用集合,并使用数据帧的columns
属性:
if set(required_columns) <= set(df.columns):
print("all required columns are there")
并将两者结合如下:
missing = set(required_columns) - set(df.columns)
if missing:
print("Missing required columns:", missing)
链接此:
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
链接此:
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
df.columns
将列出列标题的名称:您可以测试您感兴趣的列是否存在:如果df.columns:
中有“我的列”。如果您试图在缺少标题时生成错误消息,则使用尝试:
而不是如果:
@Dan:绝对正确,但需要注意的是,如果您必须对十几个必需的列执行此操作,并且中间有可选的中间代码,那么现在没有一个点可以检查是否存在。除非您执行无操作尝试,除了:try:df[必需的_列];除了KeyError:
。可能更好的方法是让KeyError冒泡到用户面前。try:df[required_columns];除了KeyError:
在我看来是正确的。我喜欢您发布的set解决方案,但在本例中,您的try:
代码对我更有意义。我认为您应该将其添加到您的答案中。df.columns
将列出列标题的名称:您可以测试您感兴趣的列是否存在:如果df.columns中的“my_column:
。如果您试图在缺少标题时生成错误消息,使用try:
而不是if:
更像是一种python@Dan:绝对正确,但需要注意的是,如果您必须对十几个必需的列执行此操作,并且中间有可选的中间代码,那么现在没有一个点可以检查是否存在。除非您执行无操作尝试,除了:try:df[必需的_列];除了KeyError:
。可能更好的方法是让KeyError冒泡到用户面前。try:df[required_columns];除了KeyError:
在我看来是正确的。我喜欢您发布的set解决方案,但在本例中,您的try:
代码对我更有意义。我想你也许应该把它添加到你的答案中。有没有办法我可以从df.columns中不存在的my_列打印缺少的列标题?可能print(set(my_columns)-set(df.columns))
就可以了。谢谢大家。我得到了我需要的东西。有什么方法可以从df.columns中不存在的my_列打印缺少的列标题吗?可能print(set(my_columns)-set(df.columns))
就可以了。谢谢大家。我有我需要的东西。