Python 输出空列
我的目标是添加一列,在其中显示空单元格的字段名Python 输出空列,python,pandas,null,Python,Pandas,Null,我的目标是添加一列,在其中显示空单元格的字段名 Name x y z abc 1 3 0 ijk m lmn 1 2 3 新专栏将是: Name x y z Empty abc 1 3 y 0 x,Name,z ijk m y,z lmn 1 a c 我尝试过:pd.isnull(df).any(1).nonzero(),但这只显示包含空单元格的行 Name x y z
Name x y z
abc 1 3
0
ijk m
lmn 1 2 3
新专栏将是:
Name x y z Empty
abc 1 3 y
0 x,Name,z
ijk m y,z
lmn 1 a c
我尝试过:pd.isnull(df).any(1).nonzero(),但这只显示包含空单元格的行
Name x y z
abc 1 3
0
ijk m
lmn 1 2 3
非常感谢!:) 嗯。。。这不是一个矢量化的解决方案,但它可以做到这一点。也许其他人会来,有更好的办法。您必须修复<代码> GETYNULLLCOLYNEX/<代码>函数来检查并考虑<代码> 0 和<代码>楠< /代码>。但这应该给你一个想法
>>> df
Name x y z
0 abc 1 None 3
1 None None 0 None
2 ijk m None None
3 lmn 1 a c
>>> def get_null_col_name(row):
... return ','.join([col for col in row.index if not row[col]])
...
>>> df['Empty'] = df.apply(get_null_col_name, axis=1)
>>> df
Name x y z Empty
0 abc 1 None 3 y
1 None None 0 None Name,x,y,z
2 ijk m None None y,z
3 lmn 1 a c Empty
我知道stack()会牵涉其中。但是,当我应用代码:TypeError:无法将['']与块值进行比较时,我遇到了这个错误。你知道为什么吗?@TylerNG所以你的空格是空白的,或者是NaN,在这种情况下是NaN。在Sql中,它是空的,但我想当我将它转换为df时,它会变成NaN。@TylerNG然后我们将df.where((df='')更改为df.where((df.isnull())@TylerNG好的,如果你有na,让我们在我的代码之前添加df=df.fillna('')