Получить ndarray из столбца панд, когда элементы ячейки находятся в списке - PullRequest
1 голос
/ 12 апреля 2019

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

>>> df = pd.DataFrame({'a': list(range(10))})
>>> df['a'] = df.a.apply(lambda x: x*np.array([1,2,3]))
>>>df.head()
            a
0   [0, 0, 0]
1   [1, 2, 3]
2   [2, 4, 6]
3   [3, 6, 9]
4  [4, 8, 12]

Я хотел бы получить столбец a из df в качестве ndarray. Но когда я это делаю, я получаю массив массивов

>>> df.a.values
array([array([0, 0, 0]), array([1, 2, 3]), array([2, 4, 6]),
       array([3, 6, 9]), array([ 4,  8, 12]), array([ 5, 10, 15]),
       array([ 6, 12, 18]), array([ 7, 14, 21]), array([ 8, 16, 24]),
       array([ 9, 18, 27])], dtype=object)

Как я могу получить выходное значение возврата

array([[ 0,  0,  0],
       [ 1,  2,  3],
       [ 2,  4,  6],
       [ 3,  6,  9],
       [ 4,  8, 12],
       # ...
])

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019

Чек

np.array(df['a'].tolist())

array([[ 0,  0,  0],
       [ 1,  2,  3],
       [ 2,  4,  6],
       [ 3,  6,  9],
       [ 4,  8, 12],
       [ 5, 10, 15],
       [ 6, 12, 18],
       [ 7, 14, 21],
       [ 8, 16, 24],
       [ 9, 18, 27]], dtype=int64)
2 голосов
/ 12 апреля 2019

Используя панд,

df.a.apply(pd.Series).values

Используя numpy,

np.vstack(df.a.values)

Вы получаете

array([[ 0,  0,  0],
       [ 1,  2,  3],
       [ 2,  4,  6],
       [ 3,  6,  9],
       [ 4,  8, 12],
       [ 5, 10, 15],
       [ 6, 12, 18],
       [ 7, 14, 21],
       [ 8, 16, 24],
       [ 9, 18, 27]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...