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

使用.loc与.casefold实现DataFrame不修改原值的大小写不敏感筛选

实现方法

你之前的写法存在两个核心错误:

  • casefold是字符串类的内置方法,不能直接作用于Pandas的Series对象,需要通过Pandas提供的.str字符串访问器调用
  • 逻辑顺序错误,应该先对列内容做小写转换,再和筛选条件做相等判断,而不是把相等判断的结果丢进casefold里处理

基础实现写法

df.loc[
    (df['Record Type'].str.casefold() == 'keyword')
    | (df['Record Type'].str.casefold() == 'product targeting')
]

更简洁的多条件写法

如果需要匹配多个目标值,用isin方法简化代码:

# 提前定义所有需要匹配的小写目标值
target_list = ["keyword", "product targeting"]
df.loc[df['Record Type'].str.casefold().isin(target_list)]

说明

以上写法仅在筛选判断时临时对列内容做小写转换,完全不会修改原DataFrame的存储值,原有数据的大小写特性会完整保留。
如果你的Record Type列存在空值/非字符串值,可以在调用casefold时添加na=False参数避免报错:

df.loc[df['Record Type'].str.casefold(na=False).isin(target_list)]

内容的提问来源于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 20:45:01