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

如何在Pandas DataFrame中移除表情及中英外的其他语言字符

pandas清洗文本字段:保留中英文、移除表情及其他语种字符

你之前用的正则[^\x00-\x7F]+逻辑是剔除所有非ASCII编码字符,而中文不属于ASCII编码范围,所以会被一并误删。调整正则匹配范围,只保留你需要的中、英文字符及必要的空格、常用标点,剩下的表情、泰文等其他语种字符、特殊装饰符号会被全部清除。

实现代码

# 正则规则:保留范围包含简繁体中文、英文字母、数字、空格、常用英文标点
# 如果需要保留额外的中英文标点,直接在下方中括号内追加对应字符即可
clean_pattern = r'[^\u4e00-\u9fa5a-zA-Z0-9\s.,!?;:\'\"()-]+'

# 替换对应字段内容,按你实际的列名调整即可,示例对应你提到的Post Title/Post Detail字段
df1['Post Title'] = df1['Post Title'].str.replace(clean_pattern, '', regex=True).str.strip()
df1['Post Detail'] = df1['Post Detail'].str.replace(clean_pattern, '', regex=True).str.strip()

# 可选操作:清除字符后可能残留连续空格,统一替换为单个空格
df1['Post Title'] = df1['Post Title'].str.replace(r'\s+', ' ', regex=True)
df1['Post Detail'] = df1['Post Detail'].str.replace(r'\s+', ' ', regex=True)

效果验证

用你给出的样例数据跑上述代码,输出结果完全匹配预期:

TitleContent
補水法Skin Care
現貨Test

说明:规则里的\u4e00-\u9fa5是Unicode里的中日韩统一表意文字区间,覆盖所有简体、繁体中文字符;emoji、泰文、阿拉伯文等其他语种字符、特殊装饰符号都不在保留范围内,会被自动剔除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:09:30