我知道如何从数据框中删除包含许多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)
但它不起作用
答案 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
行