如何使用带有编解码器值的 python .replace 来删除特殊字符?

Posted

技术标签:

【中文标题】如何使用带有编解码器值的 python .replace 来删除特殊字符?【英文标题】:How to use python .replace with a codec value to remove special characters? 【发布时间】:2021-10-31 07:03:22 【问题描述】:

我有一个从 excel 导入的数据框,该数据框在一列中的一个字符串值中有一个“-”,但它不是常规的破折号,最后我通过查看该单元格和 .encode( 'utf-8',错误 = '替换')。 我可以看到破折号真的是:\xe2\x80\x93 我现在想做的就是把它改成一个空格。而且我似乎什么也做不了。我没有收到错误,但它没有更新。我试过了:

df['column'].replace(b'\xe2\x80\x93', ' ')
df['column'].replace('\xe2\x80\x93', ' ')
df['column'].replace(b'\xe2\x80\x93', ' ', regex=True)
df['column'].replace('\xe2\x80\x93', ' ', regex=True)

dictionary = '\xe2\x80\x93': ' '
df['column'].replace(dictionary, regex=True)

我不确定我做错了什么以及如何替换这个字符。

【问题讨论】:

df['column'].replace(b'\xe2\x80\x93'.decode('utf-8'), ' ')?顺便说一句,它是 U+2013, 0xE2,0x80,0x93 En Dash 谢谢!不幸的是,这也没有改变它...... 请将您的问题edit 提供给minimal reproducible example。至少:你的df 的一个例子( En Dash 存在),以及一个代码 sn-p 你如何得到df ... 【参考方案1】:

先尝试解码:

df['column'].replace(b'\xe2\x80\x93'.decode('utf8'), ' ')

【讨论】:

谢谢!不幸的是,这也没有改变它......

以上是关于如何使用带有编解码器值的 python .replace 来删除特殊字符?的主要内容,如果未能解决你的问题,请参考以下文章

Android 手机可以解码和播放带有 iLBC 编解码器的 *.caf 文件吗?

带有“jpeg”视频编解码器的 3GP 视频

有没有办法使用带有编解码器 AAC 到 AAC 的 ffmpeg 获得准确的 1 秒剪辑

将带有 amr_nb 音频编解码器的 .mov 包装器转换为 aac/mp4a 编解码器

无法在python中使用MIME发送带有pdf附件的电子邮件

使用 pyarrow 的 Python 错误 - ArrowNotImplementedError:未构建对编解码器“snappy”的支持