У меня есть следующий ДФ:Как создать столбцы из мультииндекса в кадре данных pandas?
import numpy as np
import pandas as pd
from pandas import *
arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']),
np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]
s = pd.Series(np.random.randn(8), index=arrays)
df = pd.DataFrame(np.random.randn(8, 4), index=arrays)
это выглядит следующим образом:
0 1 2 3
bar one -0.986089 -0.501170 1.635501 -0.789489
two 1.890491 -0.022640 -1.649097 0.984925
baz one -0.759930 -1.640487 -0.763909 -0.554997
two 1.636005 0.037158 0.567383 0.770314
foo one 0.709847 0.048332 -0.676660 1.059454
two 0.588063 0.568405 1.619102 0.393631
qux one -0.735497 -0.589282 1.015266 0.934877
two -0.380719 0.822213 0.295152 -0.838549
То, что я хотел бы получить это две имеют две колонки, представляющие индекс как:
0 1 2 3 col1 col2
bar one -0.986089 -0.501170 1.635501 -0.789489 bar one
two 1.890491 -0.022640 -1.649097 0.984925 bar two
baz one -0.759930 -1.640487 -0.763909 -0.554997 baz one
two 1.636005 0.037158 0.567383 0.770314 baz two
foo one 0.709847 0.048332 -0.676660 1.059454 foo one
two 0.588063 0.568405 1.619102 0.393631 foo two
qux one -0.735497 -0.589282 1.015266 0.934877 qux one
two -0.380719 0.822213 0.295152 -0.838549 qux two
обычный код для этого, если бы у меня был только индекс одного уровня:
df['col'] = df.index
Как это можно сделать на многоуровневом индексе?