@ cᴏʟᴅsᴘᴇᴇᴅ Я так не думаю, иногда лучше ссылаться на уровень по имени, что позволяет get_level_values ​​(так что я привык его писать).

вая образец MultiIndex:

idx = pd.MultiIndex.from_product([[0, 1, 2], ['a', 'b', 'c', 'd']])    
df = pd.DataFrame({'value' : np.arange(12)}, index=idx)

df

     value
0 a      0
  b      1
  c      2
  d      3
1 a      4
  b      5
  c      6
  d      7
2 a      8
  b      9
  c     10
  d     11

Как я могу эффективно преобразовать это в табличный формат, как это?

   a  b   c   d
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11

Кроме того, учитывая приведенный выше кадр данных, как я могу вернуть его в исходное многоиндексированное состояние?

Что я пробовал:

pd.DataFrame(df.values.reshape(-1, df.index.levels[1].size), 
             index=df.index.levels[0], columns=df.index.levels[1])

Который работает для первой проблемы, но я не уверен, как оттуда вернуть его к оригиналу.

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

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