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

Python中如何筛选包含emoji/颜文字表情的Pandas DataFrame行?

Pandas筛选包含emoji或颜文字行的实现方案

核心思路是同时匹配两类目标内容:Unicode标准emoji、标点组合的常见颜文字,步骤如下:

  • 安装依赖库
    用emoji库做标准emoji识别,避免手动写Unicode正则漏匹配的问题,安装命令:
    pip install pandas emoji
    
  • 编写匹配逻辑
    1. 用emoji库自带的计数方法判断字符串是否包含标准emoji
    2. 用正则匹配:)、:-)这类由标点组成的常见颜文字
  • 完整可运行代码
import pandas as pd
import emoji
import re

# 构造和提问一致的测试数据
df = pd.DataFrame({
    'sentence': [
        '😎🤘🏾',
        'I like it',
        '+1😍😘',
        'One :-) :)',
        'hah'
    ]
})

# 编译常见西文颜文字的匹配正则,可根据需要覆盖的颜文字范围自行扩展
emoticon_re = re.compile(r'[:;=8][-~oO]?[)(/|DPp]')

def match_target(text: str) -> bool:
    # 包含emoji则命中
    if emoji.emoji_count(text) > 0:
        return True
    # 包含颜文字则命中
    if emoticon_re.search(text):
        return True
    return False

# 执行筛选
filtered_df = df[df['sentence'].apply(match_target)].reset_index(drop=True)
  • 运行结果
    执行print(filtered_df)即可得到期望输出:
sentence
0       😎🤘🏾
1       +1😍😘
2  One :-) :)

补充:如果需要覆盖更多类型的颜文字(比如^_^、T-T这类东亚风格颜文字),直接修改emoticon_re的正则规则,新增对应匹配模式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:15:41