2017-10-23 1 views
1

Ich benutze Python 2.7 und Pandas und habe ein Problem mit schwedischen Schriftzeichen. Die schwedischen Zeichen arbeitet in Pandas, aber wenn ich eine Liste aus dem Datenrahmen etwas schaffen wird falsch:Schwedische Zeichen in Pandas und Listen

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'] 

Jede Idee, wie in der Liste die schwedischen Zeichen zu halten?

Antwort

0

Sie werden in der Liste gespeichert, aber python 2 rendert die Unicode-Strings. Sie können dies sehen, indem jeder Wert Druck:

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

Sie die verbundene Liste machen kann mitmachen:

In [12]: print(", ".join(df.name.tolist())) 
Åberg, Östlund, Älberg, Ericsson 

Sie möchten ausdrücklich sie Unicode sind, um sicherzustellen, mit:

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

aber wie Sie sehen können, werden sie immer noch unbeholfen rendern.

(Die beste Lösung ist, um Python 3 zu aktualisieren;!))


Hinweis: Python 3 macht diesen Unicodes, wie Sie in der Liste erwarten würden:

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