如何有效地删除熊猫中某些列的值大于99%的所有行?

什么时候

我有一个熊猫数据框

           a           b           c           d           e           f
0   0.025641    0.554686    0.988809    0.176905    0.050028    0.333333
1   0.027151    0.520914    0.985590    0.409572    0.163980    0.424242
2   0.028788    0.478810    0.970480    0.288557    0.095053    0.939394
3   0.018692    0.450573    0.985910    0.178048    0.118399    0.484848
4   0.023256    0.787253    0.865287    0.217591    0.205670    0.303030

和列列表

cols_list = ['a', 'd', 'f']

我想筛选出所有这些列的值都在第99个百分点以上的所有行。我可以做类似的事情:

for col in cols_list:
      df[f'q_{col}'] = df[col].quantile([0.99]).values[0]

for col in cols_list:
     df = df[df[col] <= df[f'q_{col}']]

有更有效的方法吗?

广晃

您可以使用运算符le将数据框与分位数进行比较,然后用于all/any检查行中的值:

valids = df[cols_list].le(df[cols_list].quantile(0.99)).all(1)

df[valids]

输出:

          a         b         c         d         e         f
0  0.025641  0.554686  0.988809  0.176905  0.050028  0.333333
3  0.018692  0.450573  0.985910  0.178048  0.118399  0.484848
4  0.023256  0.787253  0.865287  0.217591  0.205670  0.303030

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Spark有效地检查列中的所有值?

如何有效地从 3d numpy 数组中删除行和列?

如何通过未知列中的唯一值有效地更新 MySQL 行

有效地删除熊猫数据框中的行

如何有效地从Scala的ListBuffer中删除所有元素?

熊猫:如何根据先前的值有效地更新行?

如何有效地对熊猫数据帧的行的值求和

如何有效地按索引熊猫分组的列中选择最小值?

如何根据熊猫中字符串的出现情况有效地分配列值?

如何有效地复制熊猫行,仅更改一列?

如何有效地从具有特定值模式的字典中删除元素?

如何有效地从列表中删除

如何有效地选择熊猫中的几个值范围?

如何有效地从Rails的大表中获取所有行?

如何使用Hibernate有效地从表中获取所有行?

如何有效地更新表的列值?

如何有效地从熊猫数据框中减去每一行?

如何有效地对具有相同顶行值的列求和

如果某些行值与第二个DataFrame中的行值相同,则从DataFrame中有效地删除行

如何有效地删除仅包含0作为值的前导行?

如何有效地在 Javascript 中删除二维数组中的空列

如何有效地比较具有相同x和y值的所有行的z值?

如何有效地从DataFrame中删除重复的行

如何有效地从大型文本文件中删除重复行?

如何有效地从大型MySQL表中删除过期的行

如何使用索引有效地获取张量中每一行的值?

熊猫MultiIndex DataFrames HDFStore:如何有效地获取所有索引

如何有效地从php的mysql列中检索值?

如何有效地选择Spark中包含特定值的数据框列?