熊猫数据框中第二级多索引的总和值

时间:2019-06-27 15:53:52

标签: python pandas dataframe sum multi-index

我有一个熊猫DataFrame,其多索引分别为'County ID''County'。有一个'Workforce'列,我需要对该列中的所有值求和,然后将其添加到DataFrame中的另一列中,但是我只需要对每个级别中的值求和。但是,我一直无法以这种方式来总结熊猫。

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

我的数据框如下:enter image description here

*COUNTY ID*   *COUNTY*             INDUSTRY  WORKFORCE  TOTAL WORKFORCE
12001      |  Alachua County, FL    Retail     25329        0
           |  Alachua County, FL    Health     22914        0
8013       |  Boulder County, CO    Education  24123        0
           |  Boulder County, CO    Finance    19478        0
# And so on in that manner 

'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

任何帮助将非常感谢!

2 个答案:

答案 0 :(得分:0)

groupby上的level=0并用sum进行转换应该

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

答案 1 :(得分:0)

更短的版本:

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

编辑: 分配给

df['TOTALWORKFORCE']

将不起作用,正如 Mark Wang 正确提到的那样。所以这个解决方案只能对每个国家进行求和,而没有分配回原始 DataFrame。

感谢您的评论!