【问题标题】:How can I remove rows containing specific value, on a scalable way?如何以可扩展的方式删除包含特定值的行?
【发布时间】:2022-06-27 21:24:46
【问题描述】:

我有一个这样的数据框:

Column_A    Column_B    Column_C

 10          Total        20
 20           10          20
 30           15          10
 Total        98         Total

我想删除所有包含“总计”的行。

在我的实际情况中,我有很多列。因此,我不是在寻找这个解决方案

df[df['Column_A'] != 'Total'] 
df[df['Column_B'] != 'Total'] 
df[df['Column_C'] != 'Total'] 

相反,我想要一个检查所有列的解决方案。

建议的结果应该是:

Column_A    Column_B    Column_C

 20           10          20
 30           15          10

【问题讨论】:

  • 数据从何而来?也许考虑在摄取时将Total 标记为 NA 值 - 如果您的数据可能的话,使用 NA 删除行。一个好处:数字类型已经到位。否则你必须稍后转换。

标签: python pandas


【解决方案1】:

您可以在eqany 和布尔非运算符~ 的帮助下使用boolean indexing

如果任何值是该行等于 Total,则不要对其进行索引。

out = df[~df.eq('Total').any(axis=1)]

输出:

  Column_A Column_B Column_C
1       20       10       20
2       30       15       10

【讨论】:

    猜你喜欢
    • 2013-12-01
    • 2013-07-31
    • 2022-12-10
    • 2014-10-29
    • 1970-01-01
    • 2021-06-20
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多