如何基于python中的两个条件计算列的总和

时间:2019-02-26 18:19:38

标签: python pandas-groupby

嗨,我是python的新手,我有一个像这样的数据集:

enter image description here

我需要创建两列“女性”和“男性”,这将分别基于十年计算出女性和男性的总出生数。所以我的结果数据框应该是这样的:

enter image description here

我尝试使用groupby,但返回的内容如下:

dataset.groupby(['decade','gender'])['births']。sum()

enter image description here

但是我需要F和M作为另外两列。

您能告诉我我该怎么办吗?在此先感谢!

1 个答案:

答案 0 :(得分:1)

import pandas as pd

decade = [1960, 1960, 1960, 1960, 1960, 1960, 1970, 1970, 1970, 1970, 1970, 1970, 1980, 1980, 1980, 1980]
gender = ['F', 'M', 'F', 'M', 'F', 'M', 'F', 'M', 'F', 'M', 'F', 'M', 'F', 'M', 'F', 'M']
births = [4192, 4198, 4710, 4850, 4646, 5092, 4800, 4934, 4126, 4324, 4758, 5076, 5070, 5296, 4798, 5096]

dataset = pd.DataFrame({
    'decade': decade,
    'gender': gender,
    'births' : births
})

尝试一下:

df = dataset.groupby(['gender', 'decade'])['births'].sum()
df = df.unstack(level=0)

enter image description here