Pandas中具有NaN值的子集列

时间:2017-04-27 08:05:54

标签: python pandas

在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

2 个答案:

答案 0 :(得分:3)

我认为您需要先在示例中将字符串NaN替换为np.nan

df = pd.DataFrame(
        {'H': ['a','b', 'c'],
         'A': [np.nan,'d', 'e'],
         'LG':['AR1', 'RO1', np.nan],
         })

然后按isnullany检查:

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