在python中通过多列控制聚合输出?

时间:2017-11-30 21:45:16

标签: python pandas

我正在运行以下代码:

monthly_data = df.groupby(['year','month','name']).agg({'name':'count'})

我在多年内按月汇总名称数量。当前输出的格式为

year month game count(name)
....
....
....

其中输出的前三个值是索引。我想要的是返回一个数据框,其名称为行,每年 - 月组合作为列,计数(名称)作为列中的值,这样我可以绘制名称的时间序列随着时间的推移。我怎么能这样做?

编辑:数据格式为

year    month    name
2012    1        annie
2012    1        annie
2012    2        david
2012    2        david
2012    2        david

汇总我做输出

year    month    name    count(name)
2012    1        annie   2
2012    2        david   3

我希望它的形式为

name    2012-1   2012-2
annie   2        0
david   0        3

认为我将能够使用行

创建水平图表

1 个答案:

答案 0 :(得分:1)

这并没有准确地给出你所写的输出,但如果你的柱标签有miltiindex就可以了,你可以做到

Zip_Code

如果您希望它看起来与您的帖子完全相同:

df2 = pd.pivot_table(df, columns = ['year', 'date'], index = 'name', aggfunc = len)