嗨,我是python的新手,我有一个像这样的数据集:
我需要创建两列“女性”和“男性”,这将分别基于十年计算出女性和男性的总出生数。所以我的结果数据框应该是这样的:
我尝试使用groupby,但返回的内容如下:
dataset.groupby(['decade','gender'])['births']。sum()
但是我需要F和M作为另外两列。
您能告诉我我该怎么办吗?在此先感谢!
答案 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)