Преобразование фрейма данных в список

#python #excel #pandas

#python #панды #фрейм данных

Вопрос:

У меня есть фрейм данных pandas, который я преобразую в массив numpy следующим образом:

 df.values
 

что дает следующий результат:

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

Однако я хочу получить список следующим образом:

 [0, 2, 3]
 

Есть идеи, как это сделать?

Комментарии:

1. вы имеете в виду df.values.tolist() ?

Ответ №1:

Может быть, вы можете использовать iloc или loc для выбора столбца, а затем 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]
 

Или, может быть:

 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]
 

Но, может быть, вам нужно flatten :

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

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

Ответ №2:

Похоже, у вас есть фрейм данных с одним столбцом и несколькими строками. Помните, что это двумерный массив, вам нужно разрезать первый столбец, а затем перечислить значения в этом столбце.

Это должно сделать это:

 df[0].values.tolist()
 

df[0] — При этом выбираются все значения в первом столбце. Для второго столбца вы бы использовали df[1] третий df[2] и так далее.

Вы можете определить форму вашего фрейма данных, выполнив команду df.shape . Это сообщит вам, сколько строк и столбцов существует в вашем фрейме данных, например (9,1) , что означает 9 строк и 1 столбец