Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取列名列表在Python中所有值都是NaN_Python_Pandas_Numpy_Dataframe - Fatal编程技术网

获取列名列表在Python中所有值都是NaN

获取列名列表在Python中所有值都是NaN,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我是否可以使用Python获取列名称列表,其中所有值都是NaNs,从下面的数据框返回c和d?谢谢 df = pd.DataFrame({'a': [1,2,3],'b': [3,4,5], 'c':[np.nan, np.nan, np.nan], 'd':[np.nan, np.nan, np.nan]}) a b c d 0 1 3 NaN NaN 1 2 4 NaN NaN 2 3 5 NaN NaN 对df.列使用布尔

我是否可以使用Python获取列名称列表,其中所有值都是
NaN
s,从下面的数据框返回
c
d
?谢谢

df = pd.DataFrame({'a': [1,2,3],'b': [3,4,5], 'c':[np.nan, np.nan, np.nan],
                   'd':[np.nan, np.nan, np.nan]})

   a  b   c   d
0  1  3 NaN NaN
1  2  4 NaN NaN
2  3  5 NaN NaN

df.列使用布尔索引

res = df.columns[df.isnull().all(0)]

# Index(['c', 'd'], dtype='object')

@ahbon,您可以尝试
df.any()
。请参阅以下在Python的交互式终端上执行的语句序列

检查

最后,

>>> columns = []
>>>
>>> for key, value in df_new.iteritems():
...     if value:
...         columns.append(key)
...
>>> df = pd.DataFrame({'a':[1,2,3],'b':[3,4,5],'c':[np.nan, np.nan, np.nan],'d':[np.nan, np.nan, np.nan]}, columns=columns)
>>>
>>> df
   a  b
0  1  3
1  2  4
2  3  5
>>>

. 您应该能够调整它。@ahbon,使用
df.any()
,正如我在答案中所示。您还可以检查并尝试找到任何其他解决方案。我做得很匆忙,我认为这不是最好的,因为我正在获取专栏并重新创建
df
。不管怎样,它都能按你的意愿工作。谢谢。您的答案的较短派生词:
df.columns[~df.any()]
@haleemulli,这也包括所有为零的列。
>>> columns = []
>>>
>>> for key, value in df_new.iteritems():
...     if value:
...         columns.append(key)
...
>>> df = pd.DataFrame({'a':[1,2,3],'b':[3,4,5],'c':[np.nan, np.nan, np.nan],'d':[np.nan, np.nan, np.nan]}, columns=columns)
>>>
>>> df
   a  b
0  1  3
1  2  4
2  3  5
>>>