Python:查找NA值高于阈值的列的名称
我知道如何从数据帧中删除包含多个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
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]
我甚至不知道这一点。谢谢很新,你看哦,对不起,我试过这么做,但直到过了一段时间才让我这么做。因此,我回到我的代码,我计划将问题标记为稍后的答案。谢谢你的回答和提醒!