Давайте дадим фрейм данных, подобный следующему:
import pandas as pd
import numpy as np
a = ['a', 'b']
b = ['i', 'ii']
mi = pd.MultiIndex.from_product([a,b], names=['first', 'second'])
A = pd.DataFrame(np.zeros([3,4]), columns=mi)
first a b
second i ii i ii
0 0.0 0.0 0.0 0.0
1 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 0.0
Я хотел бы создать новые столбцы iii
для всех first
-уровневых столбцов и назначить значение нового массива (соответствующего размера). Я попробовал следующее, но безрезультатно.
A.loc[:,pd.IndexSlice[:,'iii']] = np.arange(6).reshape(3,-1)
Результат должен выглядеть следующим образом:
a b
i ii iii i ii iii
0 0.0 0.0 0.0 0.0 0.0 1.0
1 0.0 0.0 2.0 0.0 0.0 3.0
2 0.0 0.0 4.0 0.0 0.0 5.0