打印带有 Unicode 字符的 Pandas 列
我有一个 pandas 数据框,里面有一列是用 Unicode 编码的名字。
import pandas as pd
no_unicode = pd.Series(['Steve', 'Jason', 'Jake'])
yes_unicode = pd.Series(['tea', 'caf\xe9', 'beer'])
var_names = dict(no_unicode = no_unicode, yes_unicode = yes_unicode)
df = pd.DataFrame(var_names)
print(df)
我在 ipython 中可以正常打印这个数据框,但在 Sublimetext(使用 Python 3)中打印时却出错了。
错误信息:UnicodeEncodeError: 'ascii' 编码无法在位置 73 编码字符 '\xe9':序号不在范围内(128)
我到处寻找解决办法(在这个过程中也学到了很多关于 Unicode 的知识),但就是不知道怎么在 Sublimetext 中打印这个数据框。
任何帮助都将非常感谢。
1 个回答
3
在u
,可以把你的值转换成unicode格式。
In [26]:
import pandas as pd
from pandas.compat import u
no_unicode = pd.Series(['Steve', 'Jason', 'Jake'])
#yes_unicode = pd.Series(['tea', 'caf\xe9', 'beer'])
yes_unicode = pd.Series(map(u,['tea', 'caf\xe9', 'beer']))
var_names = dict(no_unicode = no_unicode, yes_unicode = yes_unicode)
df = pd.DataFrame(var_names)
print(df)
no_unicode yes_unicode
0 Steve tea
1 Jason café
2 Jake beer
[3 rows x 2 columns]