【问题标题】:Python: Find the name of the columns where NA values are above a thresholdPython:查找 NA 值高于阈值的列的名称
【发布时间】:2017-07-19 14:15:21
【问题描述】:

我知道如何从数据框中删除具有许多 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)

但它不起作用

【问题讨论】:

  • 你可以做na_values[na_values > 0.2]
  • 我什至不知道。谢谢!你看到的很新
  • 哦,抱歉,我试图这样做,但直到过了一段时间才让我这样做。所以我回到了我的代码,我打算稍后将问题标记为已回答。感谢您的回答和提醒!

标签: python pandas na threshold


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    相关资源
    最近更新 更多