我正在使用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']
知道如何将瑞典字符保留在列表中吗?
答案 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']