我有一个数据集,该数据集按国家,季度,部门,交易类型和金额列出了各个交易。我想根据前三个变量进行总结,但为其他两个创建新列。数据集如下所示:
Country Quarter Division Type Value
A 1 Sales A 50
A 2 Sales A 150
A 3 Sales B 20
A 1 Sales A 250
A 2 Sales B 50
A 3 Sales B 50
A 2 Marketing A 50
现在,我想聚合数据以按类型获取事务数作为新变量。按前三个变量分组的交易总数很容易:
df.groupby(['Country', 'Quarter', 'Division'], as_index=False).agg({'Type':'count', 'Value':'sum'})
但是,我希望我的新数据框看起来如下:
Country Quarter Division Type_A Type_B Value_A Value_B
A 1 Sales 2 0 300 0
A 2 Sales 1 1 150 50
A 3 Sales 0 2 0 70
A 2 Marketing 1 0 50 0
我该怎么做?
答案 0 :(得分:3)
在groupby
之后用agg
函数中的元组指定具有聚合函数的新列名称的列,然后用DataFrame.unstack
整形,最后用{{1转换列中的MultiIndex
}}:
map