在 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
最佳答案
我认为您首先需要将示例中的字符串 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
进行 bool 索引:
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
关于python - Pandas 中具有 NaN 值的子集列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43652054/