Как добавить столбец в таблицу с многоуровневым заголовками?

Есть такая примитивная таблица:

import pandas as pd
import numpy as np

mframe = pd.DataFrame(np.random.randn(16).reshape(4,4),
              index=[['white','white','red','red'], ['up','down','up','down']],
              columns=[['pen','pen','paper','paper'],[1,2,1,2]])

Вот так выглядит:

            pen                 paper          
                   1         2         1         2
white up   -1.223503  0.781371 -0.028058  0.676958
      down  2.022122 -0.923162 -0.335193 -0.440781
red   up    0.579994 -0.214678 -1.050433  1.866868
      down  0.341215 -1.261777 -0.618855  0.432704

Как я могу добавить столбец в Pen под номером 3 (например где значения из 2 будут умножены на значения из столбца 1)?

            pen                           paper          
            1         2         3          1         2
white up   -1.223503  0.781371 -0,44      -0.028058  0.676958
      down  2.022122 -0.923162 -1,1       -0.440781 -0.440781
red   up    0.579994 -0.214678 -0,1197     1.866868  1.866868
      down  0.341215 -1.261777 -0.4284     0.432704  0.432704

Ответы (1 шт):

Автор решения: Андрей Самохин

Вот разобрался:

mframe['pen',3] = mframe['pen'][1].values*mframe['pen'][2].values

Получается так:

            pen               paper                 pen
              1         2         1         2         3
white  0.394399  0.672002 -0.408329 -0.523119  0.265037
white -1.461758 -0.596727  0.687208  1.209092  0.872271
red   -0.759780  1.299219  0.041327  0.279655 -0.987120
red    0.671234 -2.490533  1.638859 -0.239788 -1.671729

И переставляем местами:

mframe = mframe[[['pen',1], ['pen',2],['pen',3],['paper',1],['paper',2]]]

            pen                         paper          
              1         2         3         1         2
white  0.394399  0.672002  0.265037 -0.408329 -0.523119
white -1.461758 -0.596727  0.872271  0.687208  1.209092
red   -0.759780  1.299219 -0.987120  0.041327  0.279655
red    0.671234 -2.490533 -1.671729  1.638859 -0.239788

Может кому пригодится

→ Ссылка