为了账号安全,请及时绑定邮箱和手机立即绑定

如何按两列分组并创建子图循环?

如何按两列分组并创建子图循环?

大话西游666 2022-06-28 17:36:54
我在这个结构中有一个大数据框(df):    year        person      purchase    2016        Peter       0    2016        Peter       223820    2016        Peter       0    2017        Peter       261740    2017        Peter       339987    2018        Peter       200000    2016        Carol       256400    2017        Carol       33083820    2017        Carol       154711    2018        Carol       3401000    2016        Frank       824043    2017        Frank       300000    2018        Frank       214416259    2018        Frank       4268825    2018        Frank       463080    2016        Rita        0要查看每个人每年花费多少,我会按年和人进行分组,这给了我想要的东西。代码:df1 = df.groupby(['person','year']).sum().reset_index()如何创建一个循环来为每个人创建包含他/她每年在购买上花费的子图?所以每个人都有一个子图,其中 x = 年份和 y = 购买。我已经尝试了很多不同的东西在这里解释,但似乎没有一个工作。
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

您可以执行pivot_table或groupby().sum().unstack('person')然后plot:


(df.pivot_table(index='year', 

                columns='person', 

                values='purchase', 

                aggfunc='sum')

    .plot(subplots=True)

);

或者


(df.groupby(['person','year'])['purchase']

   .sum()

   .unstack('person')

   .plot(subplots=True)

);

输出:

//img1.sycdn.imooc.com//62bacbd50001bf4503940271.jpg

查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信