在SO上搜索并尝试了几个答案,但它们都是用于返回NaN的行。我只想返回具有NaN值的列。例如以下df。如何选择“A”和“LG”列?
df = pd.DataFrame(
{'H': ['a','b', 'c'],
'A': [np.nan,'d', 'e'],
'LG':['AR1', 'RO1', np.nan],
})
print(df)
A H LG
0 NaN a AR1
1 d b RO1
2 e c NaN
答案 0 :(得分:3)
我认为您需要先在示例中将字符串NaN
替换为np.nan
:
df = pd.DataFrame(
{'H': ['a','b', 'c'],
'A': [np.nan,'d', 'e'],
'LG':['AR1', 'RO1', np.nan],
})
mask = df.isnull().any()
print (mask)
A True
H False
LG True
dtype: bool
上次使用index
的布尔索引:
print (mask.index[mask])
Index(['A', 'LG'], dtype='object')
如果需要列添加loc
:
print (df.loc[:, mask])
A LG
0 NaN AR1
1 d RO1
2 e NaN
答案 1 :(得分:1)
这将返回包含False
。
NaN