преобразование списков в массив numpy в панде

1

У нас есть dataframe, где элементы одного столбца являются списками (обсуждение не касается того, нужно ли это делать или нет). Простой пример:

df = pd.DataFrame([[12,[123,234,234]], [14,[124,25,235]], [16,[1267,267,2345]]], columns = ['A', 'B'])

получение:

Изображение 174551

целью здесь является преобразование столбца B в массив numpy, как и следующий:

Изображение 174551.

Если я попрошу pandas преобразовать столбец в массив:

df['B'].values

он возвращает массив списка, который не совпадает с приведенным выше:

array([list([123, 234, 234]), list([124, 25, 235]),
   list([1267, 267, 2345])], dtype=object)

Как мы можем решить эту проблему?

Теги:
pandas
numpy

1 ответ

1

Если всегда такая же длина списков возможна, создайте вложенные списки, а затем конвертируйте в np.array:

arr = np.array(df['B'].values.tolist())
#alternative
#arr = np.array(df['B'].tolist())
print (arr)
[[ 123  234  234]
 [ 124   25  235]
 [1267  267 2345]]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню