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

使用pandas str.contains时,如何避免重复条件并统计修改次数?

批量处理str.contains匹配并统计修改行数

问题场景

大量使用str.contains进行匹配赋值时,需要频繁修改匹配条件,同时希望自动统计每次修改的行数,避免重复复制粘贴代码导致的繁琐和错误。

解决方案

将匹配规则(模式+目标分类)统一管理,通过循环批量处理,自动统计并输出每次修改的行数:

  1. 定义匹配规则列表:把所有需要匹配的模式和对应的分类放在一个列表中,后续修改条件只需调整这个列表即可。
  2. 循环处理规则:遍历规则列表,每次执行匹配、统计行数、赋值,并打印结果。

示例代码

import pandas as pd

# 替换为你实际需要匹配的列名(比如df["product_name"])
target_column = df["目标列名"]
# 初始化category列(如果尚未创建)
df["category"] = ""

# 定义匹配规则:(匹配模式, 目标分类)
match_rules = [
    ("apple", "fruit"),
    ("banana", "fruit"),
    ("Samsung|Sony", "Technology")
]

# 循环处理每个规则
for pattern, category in match_rules:
    # 生成匹配掩码,na=False避免空值干扰匹配结果
    mask = target_column.str.contains(pattern, na=False)
    # 统计匹配到的行数
    change_count = mask.sum()
    # 执行分类赋值
    df.loc[mask, "category"] = category
    # 输出本次修改结果
    print(f"{pattern} 替换完成,共修改 {change_count} 行")

预期输出

apple 替换完成,共修改 30 行
banana 替换完成,共修改 57 行
Samsung|Sony 替换完成,共修改 0 行

优势

  • 只需维护match_rules列表,无需重复编写loc和str.contains代码
  • 自动统计修改行数,直观查看每次匹配的效果
  • 减少重复粘贴带来的错误,提升效率

内容的提问来源于stack exchange,提问作者asd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:03:31