我的程序中有一个来自 Excel 文件的 pandas 数据框作为输入。
我想替换 pandas 数据框中的一些非 ASCII 字符。
import pandas as pd
XList=['Meßi','Ürik']
YList=['01.01.1970','01.01.1990']
df = pd.DataFrame({'X':XList,
'Y':YList})
X Y
0 Meßi 01.01.1970
1 Ürik 01.01.1990
我想创建一些替换规则:例如。 ß->ss 和 Ü->UE
得到这个:
X Y
0 Messi 01.01.1970
1 UErik 01.01.1990
注意:我使用的是 Python 2.7
更新:
使用下面的答案解决并通过 Eclipse 设置如下:
1°:将 Eclipe 中的文本文件编码更改为 UTF-8。
如何: How to use Special Chars in Java/Eclipse
2°:添加到第一行命令
# -*- coding: UTF-8 -*-
最佳答案
一种方法是创建一个字典并遍历 k,v 并使用 replace
:
In [42]:
repl_dict = {'ß':'ss', 'Ü':'UE'}
for k,v in repl_dict.items():
df.loc[df.X.str.contains(k), 'X'] = df.X.str.replace(pat=k,repl=v)
df
Out[42]:
X Y
0 Messi 01.01.1970
1 UErik 01.01.1990
编辑
对于不允许在 python 脚本中使用 unicode 编码的编辑器,您可以使用 unicode 值进行音译:
In [72]:
repl_dict = {'\u00DF':'ss', '\u00DC':'UE'}
for k,v in repl_dict.items():
df.loc[df.X.str.contains(k), 'X'] = df.X.str.replace(pat=k,repl=v)
df
Out[72]:
X Y
0 Messi 01.01.1970
1 UErik 01.01.1990
关于python - 如何用 Pandas 数据框中的 ASCII 替换非 ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27544913/