[英]How to drop NaNs and get the same number of values in each column in Python?
[英]Get list of column names all values are NaNs in Python
我可以使用 Python 獲取所有值都是NaN
的列名列表,從下面的數據幀返回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.columns
使用布爾索引:
res = df.columns[df.isnull().all(0)]
# Index(['c', 'd'], dtype='object')
@ahbon ,你可以試試df.any()
。 請參閱以下在 Python 交互式終端上執行的語句序列。
檢查http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.any.html
>>> import numpy as np
>>> import pandas as pd
>>>
>>> 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]})
>>> df
a b c d
0 1 3 NaN NaN
1 2 4 NaN NaN
2 3 5 NaN NaN
>>>
>>> # Remove all columns having all NaN values using DataFrame.any()
...
>>> df_new = df.any()
>>> df_new
a True
b True
c False
d False
dtype: bool
>>>
最后,
>>> 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
>>>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.