У нас есть dataframe, где элементы одного столбца являются списками (обсуждение не касается того, нужно ли это делать или нет). Простой пример:
df = pd.DataFrame([[12,[123,234,234]], [14,[124,25,235]], [16,[1267,267,2345]]], columns = ['A', 'B'])
получение:
целью здесь является преобразование столбца B в массив numpy, как и следующий:
.
Если я попрошу pandas преобразовать столбец в массив:
df['B'].values
он возвращает массив списка, который не совпадает с приведенным выше:
array([list([123, 234, 234]), list([124, 25, 235]),
list([1267, 267, 2345])], dtype=object)
Как мы можем решить эту проблему?
Если всегда такая же длина списков возможна, создайте вложенные списки, а затем конвертируйте в 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]]