2017-10-15 115 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

太棒了,谢谢你。 –