2016-02-10 15 views
5

ich Pandas Datenrahmen, die ich konvertieren Array numpy wie folgt:Convert Datenrahmen zur Liste

df.values 

die folgende Ausgabe gibt:

array([[2], 
     [0], 
     [1], 
     ..., 
     [0], 
     [1], 
     [0]], dtype=int64) 

Allerdings möchte ich die Liste wie folgt erhalten :

[0, 2, 3] 

Irgendeine Idee, wie man das macht?

+0

Sie meine 'df.values.tolist()'? – EdChum

Antwort

2

Vielleicht können Sie iloc oder loc für Spalte auswählen verwenden und dann tolist:

print df 
    a 
0 2 
1 0 
2 1 
3 0 
4 1 
5 0 

print df.values 
[[2] 
[0] 
[1] 
[0] 
[1] 
[0]] 

print df.iloc[:, 0].tolist() 
[2, 0, 1, 0, 1, 0] 

Oder vielleicht:

print df.values.tolist() 
[[2L], [0L], [1L], [0L], [1L], [0L]] 

print df.iloc[:, 0].values.tolist() 
[2L, 0L, 1L, 0L, 1L, 0L] 

print df.loc[:, 'a'].tolist() 
[2, 0, 1, 0, 1, 0] 

print df['a'].tolist() 
[2, 0, 1, 0, 1, 0] 

Aber vielleicht brauchen Sie flatten:

print df.values.flatten() 
[2 0 1 0 1 0] 

print df.iloc[:, 0].values.flatten() 
[2 0 1 0 1 0] 
0

Sieht aus, als ob Sie einen Datenrahmen mit einer Spalte und mehreren Zeilen haben. Denken Sie daran, dass dies ein zweidimensionales Array ist, Sie müssen die erste Spalte in Scheiben schneiden und dann die Werte in dieser Spalte auflisten.

Dies sollte es tun:

df[0].values.tolist() 

df[0] - Damit werden alle Werte in der ersten Spalte. Für die zweite Spalte würden Sie df[1] dritte df[2] und so weiter verwenden.

Sie können die Form Ihres Datenrahmens erkennen, indem Sie df.shape ausführen. Dadurch erfahren Sie, wie viele Zeilen und Spalten in Ihrem Datenrahmen vorhanden sind, z. (9,1) die 9 Zeilen und 1 Spalte bedeutet