汇总数据集并创建新变量

时间:2019-06-12 08:25:21

标签: python pandas

我有一个数据集,该数据集按国家,季度,部门,交易类型和金额列出了各个交易。我想根据前三个变量进行总结,但为其他两个创建新列。数据集如下所示:

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

我该怎么做?

1 个答案:

答案 0 :(得分:3)

groupby之后用agg函数中的元组指定具有聚合函数的新列名称的列,然后用DataFrame.unstack整形,最后用{{1转换列中的MultiIndex }}:

map