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

Python: Find the name of the columns where NA values are above a 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)

但是没用

您可以使用带有布尔条件的相同 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