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

时间:2017-02-28 14:40:28

标签: 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.238406

但我想只提取那些高于0.2阈值的那些,比如x_14。

有什么想法吗?我试过了:

print(i > 0.4 for i in na_values)

但它不起作用

1 个答案:

答案 0 :(得分:1)

您可以使用具有布尔条件的相同Series来屏蔽系列:

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