我有一个以多索引作为列的数据帧。我想按级别1分组并应用一个生成新列的函数。我希望将这个计算列添加到每个组中,因此我的dataframe为每个组添加新列。在
我做了一个小的虚拟脚本和函数来复制我想做的事情。在import pandas as pd
import numpy as np
columns = [('A','julian'),('A','geoffrey'),
('B','julian'),('B','geoffrey'),
('C','julian'),('C','geoffrey')]
columns = pd.MultiIndex.from_tuples(columns)
dataframe = pd.DataFrame(data=np.random.rand(10,6),columns=columns)
def addColumn(inputDF):
group = inputDF.columns[0][1]
inputDF['sum', group] = inputDF.sum(axis=1)
return inputDF
newColumnsDataframe = dataframe.groupby(level=1, axis=1).apply(addColumn)
原始数据帧如下所示:
^{pr2}$
得到的数据帧应该如下所示(我分别构造了sum dataframe,并将两个数据帧连接起来以获得这个结果):A B C sum A B C \
geo