You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中移除account_name列含指定词汇的行?

移除Pandas DataFrame中含指定关键词的行(财务报表数据清洗)

简洁高效的实现方案

直接借助Pandas内置的字符串匹配方法,一次完成过滤操作,无需拆分多个函数和循环:

# 匹配包含total/Total/Result任一关键词的行,取反后保留有效数据
filtered_df = df[~df['account_name'].str.contains(r'total|Total|Result', na=False)]

代码细节说明

  • str.contains(r'total|Total|Result'):用正则表达式匹配account_name列中包含指定关键词的内容
  • na=False:将空值(NaN)判定为不匹配,避免过滤过程中抛出异常
  • ~:逻辑取反,最终保留不包含任何指定关键词的行

原代码的优化方向

你当前的写法拆分了三个独立函数和三次列表推导,不仅冗余,且仅生成了有效账户名称列表,未直接完成DataFrame的过滤。若要基于原有逻辑优化,可合并为单一函数:

import pandas as pd

def is_subtotal(name):
    return pd.notna(name) and any(keyword in name for keyword in ['total', 'Total', 'Result'])

# 直接对原DataFrame进行过滤
filtered_df = df[~df['account_name'].apply(is_subtotal)]

关键提示

两种方案均会返回移除目标行后的新DataFrame,替代原代码仅生成valid_accounts列表的操作,直接满足清洗需求。

内容的提问来源于stack exchange,提问作者Jesper Holm-Pedersen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 13:10:24