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

如何筛选DataFrame中以特殊字符@开头的列数据?

实现方案

根据需求分两种常见场景处理:

  • 场景1:筛选出text列整段值以@开头的行
    直接用pandas内置的字符串前缀判断方法,性能最优,代码如下:
    # na=False 表示列中空值NaN统一判定为不匹配,避免布尔索引报错
    filtered_df = df[df['text'].str.startswith('@', na=False)]
    
  • 场景2:从每一行的text文本内容中,提取所有内嵌的@开头片段(比如@用户名类的提及内容)
    用正则匹配提取即可,可根据需要调整匹配规则:
    import re
    # 规则1:匹配@开头、后续为字母/数字/下划线的内容(常规用户名场景)
    df['at_content'] = df['text'].apply(lambda x: re.findall(r'@\w+', str(x)))
    
    # 规则2:匹配@开头、后续到第一个空白字符前的所有内容(适配带特殊符号的用户名)
    # df['at_content'] = df['text'].apply(lambda x: re.findall(r'@[^\s]+', str(x)))
    

注意:如果text列存在非字符串类型值(数值、空值等),可以先执行df['text'] = df['text'].astype(str)做统一类型转换,避免字符串方法调用报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:12:19