我的程序中有一个来自Excel文件的pandas数据框作为输入。
我想替换pandas Data Frame中的一些非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 -*-
答案 0 :(得分:1)
一种方法是创建一个dict并迭代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