删除Pandas数据帧中基于整行最大值的行。

huangapple go评论94阅读模式
英文:

How do I drop rows from a Pandas dataframe based on the maximum value of the whole row?

问题

我想根据行中所有值的最大值的条件来删除行,而不是像该站点上大多数解决方案一样逐列进行操作。

假设我有以下数据框:

AA BB
A 5 8
B 11 55

我想要删除所有行,其中行的最大值 <= 50。所以行A应该被删除,因为该行中的最大值只有8。

我该如何操作?

英文:

I would like to drop rows based on a conditional of the maximum of all the values in the row, not on a column by column basis like most of the solutions on this site demonstrate.

Let's say I have the following dataframe:

AA BB
A 5 8
B 11 55

I want to drop all the rows where the maximum value of the row is <= 50. So row A should be dropped since the max value in the row is only 8.
How do I go about doing this?

答案1

得分: 2

与其删除行,不如保留正确的行:

  1. # 使用最大值筛选
  2. df[df.max(axis=1).gt(50)]
  3. # 或者参考 @BigBen 的建议
  4. df[df.gt(50).any(axis=1)]
英文:

Instead of dropping rows, you can keep right ones:

  1. &gt;&gt;&gt; df[df.max(axis=1).gt(50)]
  2. AA BB
  3. B 11 55
  4. # Or suggested by @BigBen
  5. &gt;&gt;&gt; df[df.gt(50).any(axis=1)]
  6. AA BB
  7. B 11 55

答案2

得分: 2

使用drop Pandas函数,例如:

  1. import pandas as pd
  2. df = pd.DataFrame({'AA':[5, 11],
  3. 'BB':[8, 55],
  4. })
  5. df = df.drop(df[df.max(axis=1) < 50].index)
  6. # &gt;&gt;&gt; df
  7. # AA BB
  8. # 1 11 55
英文:

With drop Pandas function for instance :

  1. import pandas as pd
  2. df = pd.DataFrame({&#39;AA&#39;:[5, 11],
  3. &#39;BB&#39;:[8, 55],
  4. })
  5. df = df.drop(df[df.max(axis=1) &lt; 50].index)
  6. # &gt;&gt;&gt; df
  7. # AA BB
  8. # 1 11 55

huangapple
  • 本文由 发表于 2023年2月7日 05:21:07
  • 转载请务必保留本文链接:https://go.coder-hub.com/75366705.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定