Если мы начнем с вашего примера:
df = pd.DataFrame({'Column1': [1, 3],
'Column2': [2,4]},
index = ['Row1', 'Row2'])
df
Column1 Column2
Row1 1 2
Row2 3 4
- Используйте методы pd.concat и interleave, чтобы создать дубликат каждого столбца и убедиться, что дубликат каждого столбца отображается справа от него:
from toolz import interleave
df = pd.concat([df, df], axis=1)[list(interleave([df]))]
На этом этапе кадр данных выглядит следующим образом:
df
Column1 Column1 Column2 Column2
Row1 1 1 2 2
Row2 3 3 4 4
Теперь измените столбцы информационного кадра на MultiIndex:
df.columns = pd.MultiIndex(levels=[['Column1', 'Column2'], ['A', 'B']],
labels=[[0, 0, 1, 1], [0, 1, 0, 1]])
Что приводит к тому, что информационный кадр теперь выглядит так:
df
Column1 Column2
A B A B
Row1 1 1 2 2
Row2 3 3 4 4