у меня есть датафрейм df
first bar baz
second one two one two
A 0.487880 -0.487661 -1.030176 0.100813
B 0.267913 1.918923 0.132791 0.178503
C 1.550526 -0.312235 -1.177689 -0.081596
Я хотел бы добавить средние столбцы, а затем переместить среднее значение вперед
df['Average'] = df.mean(level='second', axis='columns') #ERROR HERE
cols = df.columns.tolist()
df = df[[cols[-1]] + cols[:-1]]
Я получаю ошибку:
ValueError: Wrong number of items passed 2, placement implies 1
Может быть, я мог бы добавить каждый столбец df['Average', 'One'] = ...
в среднем по одному за раз, но это кажется глупым, особенно с учетом того, что индекс реальной жизни более сложен.
Редактировать: ( Генерация кадров )
arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
df = DataFrame(np.random.randn(3, 8), index=['A', 'B', 'C'], columns=index)