我编写了一些代码来从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']