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('')