【问题标题】:Printing Pandas Columns With Unicode Characters使用 Unicode 字符打印 Pandas 列
【发布时间】:2014-04-11 13:29:32
【问题描述】:

我有一个 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 中打印数据帧时出现错误(使用 py3)。

UnicodeEncodeError: 'ascii' 编解码器无法对字符 '\xe9' 进行编码 位置 73:序数不在范围内(128)

我已经到处搜索了一个解决方案(并且在这个过程中学到了很多关于 unicode 的知识),但我不知道如何在 Sublimetext 中打印数据帧。

任何帮助将不胜感激。

【问题讨论】:

    标签: python unicode pandas


    【解决方案1】:

    pandas.compat 中有一个非常有用的函数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]
    

    【讨论】:

    • 我收到此代码错误,“TypeError: 'map' 类型的对象没有 len()”
    • 抱歉,没有注意到您正在使用python 3.x,将其更改为list(map(......)) 应该这样做,在python 3 map() 返回一个map object 而不是list
    猜你喜欢
    • 2018-06-22
    • 2014-01-23
    • 2017-07-18
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多