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

如何从Pandas DataFrame列中移除未知Unicode字符并保留中英文字符?

解决方法

你的问题出在错误理解了特殊字符的本质:\u3000、\uf505是实际存在的Unicode字符,不是字符串里的\转义符号,所以用df[~df['A'].str.contains(r'\\')]根本匹配不到目标,反而会错误过滤行。

要保留中文、英文(以及你需要的全角空格),同时移除所有其他未知特殊Unicode字符,直接用str.replace配合正则表达式即可:

import pandas as pd

data = {'A': ['公司\u3000', 'aaaa\uf505'], 'B': ['1', '2']}
df = pd.DataFrame(data)

# 仅保留中文、英文、全角空格,其余特殊字符全部移除
df['A'] = df['A'].str.replace(r'[^\u4e00-\u9fa5a-zA-Z\u3000]', '', regex=True)

print(df)

执行后输出就是你要的结果:

A  B
0  公司   1
1  aaaa  2

如果还需要保留其他类型字符(比如数字、半角空格),只需把对应字符加入正则的允许集合中,例如要保留数字和半角空格,正则改为:

r'[^\u4e00-\u9fa5a-zA-Z0-9\u3000 ]'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:25:02