Панды серии Numpy ndarray - PullRequest
       6

Панды серии Numpy ndarray

0 голосов
/ 08 ноября 2018

У меня есть датафрейм, похожий на этот (но гораздо больше).

>>> df = pd.DataFrame([ [ 'a', np.array([ 1, 2]) ], [ 'b', np.array([ 3, 4 ]) ] ])
   0       1
0  a  [1, 2]
1  b  [3, 4]

Последний столбец имеет форму, указанную как ...

>>> df[1].shape
(2,)

Я бы хотел, чтобы он был указан как (2,2). Я смог сделать это через следующую строку, но производительность tolist() ... плохая.

>>> np.array(df[1].tolist()).shape
(2, 2)

Это также может быть фрейм данных Pandas, если он правильно сообщает форму. Любые другие предложения?

1 Ответ

0 голосов
/ 08 ноября 2018

Это невозможно!

Панды хранят каждый Series как одно измерение ndarray. Если у вас есть несколько измерений, которые вы пытаетесь втиснуть в него, Pandas заставит это быть одномерным массивом с dtype из object.

Если вы просто хотите получить содержимое и превратить его в двумерный массив, я бы предложил

np.array(df[1].values.tolist())

В противном случае, я бы посоветовал вам хранить их в двух разных столбцах.

...