使用.isna().all()时出现歧义值错误



我编写了一些代码来从pandas数据框架中提取空列列表。代码从一个目录中提取所有excel文件并遍历每个文件,并为每个文件创建一个单独的空列列表。然而,对于一些表,我得到这样的:

ValueError: Series的真值是不明确的。使用a.empty a.bool (), a.item (), a.any()或所有()。

我怎么也弄不明白为什么只在一些桌子上发生了这种情况。没有重复的列名。

data = [[a, b, c, d],[q, r, s, t],[],[w, x, y, z]]
df = pd.DataFrame(data, columns = ['Full_1', 'Full_2', 'Empty', 'Full_3']

def lister(df):
for c in df.columns:
if df[c].isna().all():
return lst.append(df.columns[c])
else:
nope = 'None'
return nope

出现此问题是因为isna()返回一系列boolen

使用这个:-

def lister(df):
lst = []
for c in df.columns:
if (df[c].isna().max()) == True:
lst.append(c)
return lst

现在,如果你调用函数:-lister()并传递你的数据帧df给它,你将得到你想要的输出

lister(df)
Output:-
['Full_1', 'Full_2', 'Empty', 'Full_3']

相关内容

  • 没有找到相关文章

最新更新