gpt4 book ai didi

python - 如何在 Pandas 中进行分组、计数然后绘制条形图?

转载 作者:行者123 更新时间:2023-12-02 06:36:09 25 4
gpt4 key购买 nike

我有一个Pandas数据框如下所示。

year  month  class----  -----  -----2015  1      12015  1      12015  1      22015  1      2...

I want to be able to create 2 bar chart series of of this data on one plot. If I can do a groupby, count and end up with a data frame then I am thinking I can just do a simple dataframe.plot.barh.

What I have tried is the following code.

x = df.groupby(['year', 'month', 'class'])['class'].count()

什么x最终是 Series 。然后我执行以下操作以获得 DataFrame .

df = pd.DataFrame(x)

这让我非常接近。数据最终如下所示。

                       clazzyear month clazz        2015 1     1            2     2     1           15     2     2           45

但是当我做条形图时 df.plot.bar() ,我只看到一个系列。所需的输出只是一个系列,从 2015-01 到 2019-12,class 做了多少次每月发生 1 次?然后另一个系列,从2015-01到2019-12,做了多少次class每月发生 2 次?

关于如何以这种方式操作数据有什么想法吗?

最佳答案

groupby-unstack 应该可以解决问题:

数据

df = pd.DataFrame([[2015, 1, 1],
[2015, 1, 1],
[2015, 1, 2],
[2015, 1, 2],
[2015, 1, 2],
[2015, 2, 1],
[2015, 2, 1],
[2015, 2, 1],
[2015, 2, 2],
[2015, 2, 2]], columns = ['year', 'month', 'class'])

解决方案

df_gb = df.groupby(['year', 'month', 'class']).size().unstack(level=2)

输出

df_gb.plot(kind = 'bar')

enter image description here

关于python - 如何在 Pandas 中进行分组、计数然后绘制条形图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59204445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com