Pandas MultimtiIndex多层柱1级

Pandas MultimtiIndex多层柱1级,pandas,multi-index,Pandas,Multi Index,我有以下样本数据集: 有了这段代码,我成功地将其加载到pandas数据框中,并进行基本操作,比如获得每个概要文件的总天数和总成本 import pandas as pd df = pd.read_excel('multiindex.xlsx', "0001",header=[0,1,2,3],index_col=[0,1,2]) print(df) print(df.axes[1]) print(df.axes[0]) df['Total days'] = df.gr

我有以下样本数据集:

有了这段代码,我成功地将其加载到pandas数据框中,并进行基本操作,比如获得每个概要文件的总天数和总成本

import pandas as pd
df = pd.read_excel('multiindex.xlsx', "0001",header=[0,1,2,3],index_col=[0,1,2])

print(df)

print(df.axes[1])

print(df.axes[0])
df['Total days'] = df.groupby(axis = 1,level = 'Full project').sum()
df['Total cost']=(df.index.get_level_values('Daily rate')*df['Total days']).values
print (df)
现在我想为每个阶段添加一个“总成本”,我可以用下面的代码创建聚合的df

df2 = df.groupby(axis = 1,level = 'Phase').sum()
print( df2 )



Phase                           Build  Discovery
   Profile Name Daily rate                         
   Dev     dev1 10          110.0    4.0        6.0
           dev2 10           88.0    4.0        4.0
           dev3 10           88.0    4.0        4.0
   QA      qa1  10          110.0    4.0        6.0
           qa2  10           88.0    4.0        4.0
但是,如何将“每日费率”乘以阶段中的每个子列,并添加一个名为“[Phase name]total cost”的列,而不必指定每个阶段名称,并得到如下结果:

用于多个all列,然后使用并附加到原始数据帧
df2

df2 = df.sum(axis = 1,level = 'Phase')

df22 = df2.mul(df2.index.get_level_values('Daily rate'), axis=0).add_prefix(' total cost')
df2 = df2.join(df22)