Pandas中的瑞典字符和列表

时间:2017-10-23 18:03:41

标签: pandas special-characters

我正在使用Python 2.7和Pandas,并且瑞典字符存在问题。瑞典字符在Pandas中起作用,但是当我从数据框中创建一个列表出错时:

import pandas as pd 

d = {'name': ['Åberg', 'Östlund', 'Älberg', 'Ericsson'],
     'age': [22,38,26,35] 
    }

    df = pd.DataFrame(d)

    print(df)


   age      name
0   22     Åberg
1   38   Östlund
2   26    Älberg
3   35  Ericsson

df['name'].tolist()

['\xc3\x85berg', '\xc3\x96stlund', '\xc3\x84lberg', 'Ericsson']

知道如何将瑞典字符保留在列表中吗?

1 个答案:

答案 0 :(得分:2)

它们保存在列表中,但是python 2会呈现unicode字符串。您可以通过打印每个值来看到这一点:

In [11]: for name in df.name.tolist(): print(name)
Åberg
Östlund
Älberg
Ericsson

您可以使用join:

呈现联接列表
In [12]: print(", ".join(df.name.tolist()))
Åberg, Östlund, Älberg, Ericsson

可能希望明确确保它们是unicode:

In [13]: [n.decode("utf-8") for n in df.name.tolist()]
Out[13]: [u'\xc5berg', u'\xd6stlund', u'\xc4lberg', u'Ericsson']

但正如你所看到的,他们仍然会变得笨拙。

(最好的解决方案是更新到python 3 !;))

注意:Python 3会在列表中呈现这些unicodes:

In [31]: df.name.tolist()
Out[31]: ['Åberg', 'Östlund', 'Älberg', 'Ericsson']