2017-06-19 5 views
2

Ich möchte Pandas Dataframe in eine Liste konvertieren. Zum Beispiel habe ich einen Datenrahmen wie unten, und ich möchte Liste mit allen Spalten machen.Konvertieren Pandas Datenrahmen in eine spaltenbasierte Bestellliste

Datenrahmen (df)

A B C 
0 4 8 
1 5 9 
2 6 10 
3 7 11 

Erwartetes Ergebnis

[[0,1,2,3], [4,5,6,7], [8,9,10,11]] 

Wenn ich df.values.tolist() verwenden, es in zeilenbasierte Bestellliste wie unten zurück.

[[0,4,8], [1,5,9], [2,6,10], [3,7,11]] 

Es ist möglich, den Datenrahmen zu transponieren, aber ich möchte wissen, ob es bessere Lösungen gibt.

Antwort

3

Ich denke, am einfachsten ist transponieren.

Verwenden T oder numpy.ndarray.transpose:

df1 = df.T.values.tolist() 
print (df1) 
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]] 

Oder:

df1 = df.values.transpose().tolist() 
print (df1) 
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]] 

Eine andere Antwort mit Liste Verständnis, danke John Galt:

L = [df[x].tolist() for x in df.columns] 
+0

ich nicht über das ‚T wusste 'Funktion, aber es scheint sehr einfach zu transponieren (ich dachte, dass ich zip f verwenden muss oder transponieren). Vielen Dank für Ihre Antwort. – z991

+0

Ich mag diese Funktion, weil sehr kurz;) – jezrael

+2

Ich würde normalerweise auch die oben genannten Optionen verwenden. Nur wenn Sie nach einem anderen suchen, könnten Sie '[df [x] .tolist() für x in df.columns]' – Zero

Verwandte Themen