2016-02-10 22 views
5

Mam dataframe pandy że przekonwertować do NumPy tablicę następująco:Konwersja dataFrame do listy

df.values 

co daje następujący wynik:

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

Jednakże chcę uzyskać listę następująco :

[0, 2, 3] 

Każdy pomysł, jak to zrobić?

+0

ty oznacza 'df.values.tolist()'? – EdChum

Odpowiedz

2

Może można użyć iloc lub loc wyboru kolumny, a następnie 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] 

czy może:

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] 

ale może trzeba flatten:

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

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

Wygląda na to, że masz ramkę danych z jedną kolumną i kilkoma wierszami. Pamiętaj, że jest to tablica dwuwymiarowa, musisz wyciąć pierwszą kolumnę, a następnie listę wartości w tej kolumnie.

ten powinien zrobić:

df[0].values.tolist() 

df[0] - Wybiera wszystkie wartości w pierwszej kolumnie. W drugiej kolumnie użyjesz df[1] trzeci df[2] i tak dalej.

Możesz określić kształt swojej ramki danych, uruchamiając df.shape. Dzięki temu dowiesz się, ile wierszy i kolumn istnieje w Twojej ramie danych, np. (9,1) co oznacza 9 wierszy i 1 kolumny