我有以下示例数据集:

通过这段代码,我成功地将其加载到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)现在我想为每个阶段添加一个"Total cost“,我可以用以下代码创建聚合的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但是,如何在不指定每个阶段名称的情况下,将"Daily rates“乘以阶段中的每个子列,并添加一个名为”阶段名称total cost“的列,得到如下结果:

发布于 2021-04-06 21:03:33
对多个所有列使用DataFrame.mul,然后使用DataFrame.add_prefix并附加到原始DataFrame 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)https://stackoverflow.com/questions/66969026
复制相似问题