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

使用encode('ascii','ignore')无法移除非ASCII字符,遇b''格式问题求助

移除DataFrame列中非ASCII字符并避免bytes格式的解决方法

你遇到的b'...'格式问题,是因为str.encode('ascii','ignore')会把字符串转换成bytes类型,而非普通字符串。解决这个问题只需要在编码后再解码回字符串即可,或者换一种更直接的正则替换方式:

方法一:编码后解码

在encode之后调用str.decode('ascii'),将bytes对象转回字符串:

df['column_name'] = df['column_name'].str.encode('ascii', 'ignore').str.decode('ascii')

这样处理后,'©lekd'会直接变成'lekd',不再带有b前缀。

方法二:正则直接替换非ASCII字符

可以用正则表达式匹配所有不在ASCII范围内的字符(\x00-\x7F是ASCII字符的十六进制范围),直接替换为空字符串:

df['column_name'] = df['column_name'].str.replace(r'[^\x00-\x7F]', '', regex=True)

这种方式不需要经过编码解码的步骤,逻辑更直观,效果和方法一完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:01:01