Pandas DataFrame gespeicherte Liste als String: Wie konvertiert man zurück in die Liste?

Ich habe eine n-von-m Pandas DataFrame df wie folgt definiert. (Ich weiß, das ist nicht der beste Weg, es zu tun. Macht es Sinn, für das, was ich versuche zu tun, in meinem eigentlichen code, aber das wäre TMI für diesen Beitrag so einfach nehmen Sie mein Wort, dass dieser Ansatz funktioniert in meinem speziellen Szenario.)

>>> df = DataFrame(columns=['col1'])
>>> df.append(Series([None]), ignore_index=True)
>>> df
Empty DataFrame
Columns: [col1]
Index: []

Ich die gespeicherten Listen in den Zellen dieser DataFrame wie folgt.

>>> df['column1'][0] = [1.23, 2.34]
>>> df
     col1
0  [1, 2]

Aus irgendeinem Grund, das DataFrame gespeichert, diese Liste als einen string statt einer Liste.

>>> df['column1'][0]
'[1.23, 2.34]'

Ich habe 2 Fragen für Sie.

  1. Warum hat der DataFrame speichern Sie eine Liste als string und gibt es eine Möglichkeit, um dieses Verhalten?
  2. Wenn nicht, dann ist es ein Pythonic way konvertieren Sie diesen string in eine Liste?

Update

Den DataFrame ich mit hatte, wurde gespeichert und geladen werden aus einer CSV-format. Dieses format, anstatt das DataFrame selbst, konvertiert die Liste aus einem string ein literal.

InformationsquelleAutor der Frage Gyan Veda | 2014-04-16

Schreibe einen Kommentar