Python:查找NA值高于阈值的列的名称

Python:查找NA值高于阈值的列的名称,python,pandas,na,threshold,Python,Pandas,Na,Threshold,我知道如何从数据帧中删除包含多个NA的列 df = df.dropna(axis=1, thresh=100) 但是有办法知道他们的名字吗 我想创造这样的东西: na_values = df.isnull().sum()/len(df) 这给了我一个列表,每个列中都有NA部分 x_9 0.011700 x_10 0.001307 x_11 0.025830 x_12 0.011691 x_13 0.002739 x_14 0.2

我知道如何从数据帧中删除包含多个NA的列

df = df.dropna(axis=1, thresh=100)
但是有办法知道他们的名字吗

我想创造这样的东西:

na_values =  df.isnull().sum()/len(df)
这给了我一个列表,每个列中都有NA部分

x_9       0.011700
x_10      0.001307
x_11      0.025830
x_12      0.011691
x_13      0.002739
x_14      0.238406
但我只想提取那些阈值高于0.2的,比如x_14

有什么想法吗?我试过:

print(i > 0.4 for i in na_values)

但它不起作用

您可以使用相同的
序列
和布尔条件来屏蔽序列:

In [36]:
na_values[na_values>0.2]

Out[36]:
            na
val           
x_14  0.238406
您可以看到遮罩:

In [37]:
na_values > 0.2

Out[37]:
val
x_9     False
x_10    False
x_11    False
x_12    False
x_13    False
x_14     True
Name: na, dtype: bool

因此,这将掩盖所有的
False

您只需执行
na_值[na_值>0.2]
我甚至不知道这一点。谢谢很新,你看哦,对不起,我试过这么做,但直到过了一段时间才让我这么做。因此,我回到我的代码,我计划将问题标记为稍后的答案。谢谢你的回答和提醒!