获取列名列表在Python中所有值都是NaN
我是否可以使用Python获取列名称列表,其中所有值都是获取列名列表在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.列使用布尔
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
>>>