簡體   English   中英

pandas 數據幀中第二級多索引的總和值

[英]Sum values for second level of multi-index in pandas dataframe

我有一個帶有'County ID''County'多索引的DataFrame 有一個'Workforce'列,我需要對列中的所有值求和,然后將其添加到DataFrame另一列,但我只需要對每個級別中的值求和。 但是,我一直無法讓熊貓以這種方式求和。

我嘗試了許多不同的事情,包括讓其他DataFrame對每個索引求和,然后重新添加到另一個DataFrame 我也嘗試過循環,但無法不將列中的所有值加在一起。

我的數據框如下所示: 在此處輸入圖片說明

*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

任何幫助都會非常感謝!

level=0上的groupby並使用sum轉換應該執行以下操作:

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

一個更短的版本:

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

編輯:分配給

df['TOTALWORKFORCE']

不會工作,正如馬克王正確提到的那樣。 所以這個解決方案只能對每個國家進行求和,而沒有分配回原始數據幀。

感謝您的評論!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM