python - 如何用 Pandas 数据框中的 ASCII 替换非 ASCII

标签 python unicode pandas ascii dataframe

我的程序中有一个来自 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 -*- 

http://www.vogella.com/tutorials/Python/article.html

最佳答案

一种方法是创建一个字典并遍历 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/

相关文章:

python - 从 csv 中加载数据到文件更新表中的重复值

c++ - 在 UTF8 wstring 中从控制台转换带有重音符号的字符串

c++ - 我如何能够在 1 字节的普通字符串中存储日文字符?

python - 如何从数据框中绘制堆叠条形组

python - 创建由另一列 pandas 分组的一列的排列

python - 从 Python 将密码传递给 runas

python - 列出来自 Python 调试器的理解范围错误

php - strpos 在 PHP 中搜索 unicode(并处理内联 UTF-8)

python - 当省略 x 或 y 参数时,swarmplot 无法识别色调

python - 无法从docker-compose生成django.po文件