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

对DataFrame列使用casefold()结合contains实现不修改原值的大小写不敏感搜索

正确实现方式

以下两种写法都不会修改原DataFrame的原始数据,仅在匹配判断时临时处理大小写,符合需求:

写法1:和你现有精确匹配逻辑对齐,手动转小写后模糊匹配

# 生成布尔筛选掩码,casefold()比lower()对特殊字符的大小写适配更全面,加na=False避免空值引发索引错误
mask = df['Campaign'].str.casefold().str.contains('b0', na=False)
# 按掩码筛选符合条件的行
result = df.loc[mask]

写法2:更简洁的内置参数实现,无需手动转大小写

直接使用str.contains的case参数关闭大小写匹配,效果完全一致:

mask = df['Campaign'].str.contains('b0', case=False, na=False)
result = df.loc[mask]
原代码错误说明

你之前的写法颠倒了.loc和字符串处理的调用顺序:.loc是pandas的索引访问器,需要传入筛选条件作为参数,不能直接在.loc后调用str类方法,正确逻辑是先生成筛选用的布尔序列,再传入.loc完成行筛选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:15:04