#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 столбец