Python 数据帧中第二级多索引的和值

Python 数据帧中第二级多索引的和值,python,pandas,dataframe,sum,multi-index,Python,Pandas,Dataframe,Sum,Multi Index,我有一个pandasDataFrame,多索引为'country ID'和'country'。有一个'Workforce'列,我需要对该列中的所有值求和,然后将其添加到数据框中的另一列中,但我只需要对每个级别中的值求和。然而,我一直无法让熊猫以这种方式来计算 我尝试了很多不同的方法,包括让其他DataFrames对每个索引求和,然后重新添加到另一个DataFrame。我也尝试过循环,但无法将列中的所有值相加 我的数据框如下所示: 'TOTAL WORKFORCE'是一个虚拟列,我将其添加为int

我有一个pandas
DataFrame
,多索引为
'country ID'
'country'
。有一个
'Workforce'
列,我需要对该列中的所有值求和,然后将其添加到
数据框中的另一列中,但我只需要对每个级别中的值求和。然而,我一直无法让熊猫以这种方式来计算

我尝试了很多不同的方法,包括让其他
DataFrame
s对每个索引求和,然后重新添加到另一个
DataFrame
。我也尝试过循环,但无法将列中的所有值相加

我的数据框如下所示:

'TOTAL WORKFORCE'
是一个虚拟列,我将其添加为
int64
,这样我就可以根据我需要的总和在其中放置一个数值

我想计算所有劳动力数量,并将每个县的劳动力数量相加,结果如下:

*COUNTY ID*   *COUNTY*             INDUSTRY  WORKFORCE  TOTAL WORKFORCE
12001      |  Alachua County, FL    Retail     25329        48243
           |  Alachua County, FL    Health     22914        48243
8013       |  Boulder County, CO    Education  24123        43601
           |  Boulder County, CO    Finance    19478        43601

任何帮助都很好,谢谢

A
groupby
level=0
上,使用
sum
进行转换时应:

df['TOTALWORKFORCE'] = df.groupby(level=0).WORKFORCE.transform('sum')

更简短的版本:

df['TOTALWORKFORCE'] = df.sum(level=0).WORKFORCE
编辑: 分配给

df['TOTALWORKFORCE']
正如正确提到的那样,将不起作用。因此,该解决方案只能对每个国家进行求和,而不需要将赋值返回到原始数据帧


谢谢你的评论

太棒了,非常感谢你!工作完美我不认为列分配会工作,因为汇总的数据集有不同的索引
df['TOTALWORKFORCE']