gpt4 book ai didi

python - 如何替换 Pandas 数据框列中的口音

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:12 25 4
gpt4 key购买 nike

我有一个数据框dataSwiss,其中包含瑞士市政当局的信息。我想用普通字母替换带有重音符号的字母。

这就是我正在做的:

dataSwiss['Municipality'] = dataSwiss['Municipality'].str.encode('utf-8')
dataSwiss['Municipality'] = dataSwiss['Municipality'].str.replace(u"é", "e")

但我收到以下错误:

----> 2 dataSwiss['Municipality'] = dataSwiss['Municipality'].str.replace(u"é", "e")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128)

数据看起来像:

dataSwiss.Municipality
0 Zürich
1 Zürich
2 Zürich
3 Zürich
4 Zürich
5 Zürich
6 Zürich
7 Zürich

我找到了解决方案

s = dataSwiss['Municipality']
res = s.str.decode('utf-8')
res = res.str.replace(u"é", "e")

最佳答案

这是一种方式。在解码为 utf-8 之前,您可以先转换为字节文字。

s = pd.Series(['hello', 'héllo', 'Zürich', 'Zurich'])

res = s.str.normalize('NFKD')\
.str.encode('ascii', errors='ignore')\
.str.decode('utf-8')

print(res)

0 hello
1 hello
2 Zurich
3 Zurich
dtype: object

pd.Series.str.normalize使用 unicodedata模块。根据 docs :

The normal form KD (NFKD) will apply the compatibility decomposition, i.e. replace all compatibility characters with their equivalents.

关于python - 如何替换 Pandas 数据框列中的口音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50253753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com