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

Pandas列字符串取0:8切片后检查含指定值及contains报错解决

问题原因

Pandas的contains是字符串专属的处理方法,必须通过.str访问器调用。你对列做切片操作df['COURSE ID'].str[0:8]后得到的是普通的字符串类型Series对象,无法直接调用contains方法。

修复方案

只需要在切片后再次调用.str访问器即可,修改后的代码如下:

def findCourse(url, course):
    df = pd.read_html(url, flavor="html5lib")[0]
    return df.loc[df['COURSE ID'].str[0:8].str.contains(course)]
可选优化
  • 如果你是要精确匹配切片后的值和给定值完全相等,直接用==判断性能更高:
    return df.loc[df['COURSE ID'].str[0:8] == course]
    
  • 匹配时需要忽略大小写,可添加case=False参数:
    return df.loc[df['COURSE ID'].str[0:8].str.contains(course, case=False)]
    
  • 列中存在空值时会触发匹配报错,添加na=False可将空值默认判定为不匹配:
    return df.loc[df['COURSE ID'].str[0:8].str.contains(course, na=False)]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:09:03