2017-10-15 113 views
0

我有以下類型的數據幀:如何GROUPBY,並與大熊貓collpase?

Country  Year Age  Male Female 
0 Canada  2005 50  400  25 
1 Canada  2005 51  100  25 
2 Canada  2006 50  100  70 
3 Columbia 2005 50  75  75 

我想,例如,讓任何年齡的男性總數+女性,由國家和年份進行分組。即我想了解什麼操作可以讓我看到這樣一個表作爲

Country  Year Total over ages and sexes 
0 Canada  2005 550 
1 Canada  2006 170 
2 Columbia 2005 150 

在上面的例子中,值550來自於加拿大的男性和女性的2005年度總數,無論年齡:所以550 = 400 + 25 + 100 + 25。

我可能需要groupby國家和年份,但我不知道如何崩潰的年齡和總的男性和女性的數量。

+0

能否請你有點用你所說的 「崩潰」 什麼更清楚了嗎?你如何結束這些數字?請打破計算,這將有所幫助。 –

+0

我已經擴展了這個例子。 – theQman

回答

1
df["Total"] = df.Male + df.Female 
df.groupby(["Country", "Year"]).Total.sum() 

輸出:

Country Year 
Canada 2005 550 
      2006 170 
Columbia 2005 150 
Name: Total, dtype: int64 

更新
cᴏʟᴅsᴘᴇᴇᴅ的鏈式版本:

(df.assign(Total=df.Male + df.Female) 
    .groupby(['Country', 'Year']) 
    .Total 
    .sum() 
    .reset_index(name='Total over ages and sexes')) 
+0

'df.assign(合計= df.Male + df.Female).groupby([ '國家', '年'])。Total.sum()。reset_index(NAME = '總在年齡和性別')' –

+0

太棒了,謝謝你。 –