Преобразование Pandas DataFrame с иерархическим индексом n-уровня в массив N-D Numpy

Вопрос

Есть ли хороший способ преобразовать DataFrame сnиндекс вn-D Numpy массив (a.k.an-тензор)?

пример

Предположим, я настроил DataFrame как

from pandas import DataFrame, MultiIndex

index = range(2), range(3)
value = range(2 * 3)
frame = DataFrame(value, columns=['value'],
                  index=MultiIndex.from_product(index)).drop((1, 0))
print frame

какие выводы

     value
0 0      0
  1      1
  2      3
1 1      5
  2      6

Индекс представляет собой двухуровневый иерархический индекс. Я могу извлечь двумерный массив Numpy из данных, используя

print frame.unstack().values

какие выводы

[[  0.   1.   2.]
 [ nan   4.   5.]]

Как это обобщается наnиндекс?

Играть сunstack()Похоже, что его можно использовать только для масштабирования двумерной формы DataFrame, но не для добавления оси.

Я не могу использовать напримерframe.values.reshape(x, y, z), так как для этого потребуется, чтобы кадр точно содержалx * y * z строки, которые не могут быть гарантированы. Это то, что я пытался продемонстрироватьdrop()В строке в приведенном выше примере.

Любые предложения высоко ценятся.

Ответы на вопрос(1)

Ваш ответ на вопрос