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