Pandas MultimtiIndex多层柱1级
我有以下样本数据集: 有了这段代码,我成功地将其加载到pandas数据框中,并进行基本操作,比如获得每个概要文件的总天数和总成本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
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)