使用groupby()绘制销售趋势

时间:2020-11-01 00:59:23

标签: python pandas matplotlib group-by

我想了解如何通过此数据集使用groupby或其他函数:

while running:
    for event in ...
    redrawWindow()
    pygame.display.update()

我要实现的目标是通过数月至数年的时间对这些数据进行良好的可视化。它涉及产品的更新以及在特定月份内数年的销售量。由于我需要比较趋势随时间变化的方式,因此我正在考虑将其绘制出来,按月分组,并考虑在特定时间窗口中按年变化。 我想像在拆分之前一样使用以下内容:

Date_ren  Quant  Y      M
2002-03-14  32  2002    3
2002-02-24  31  2002    2
2002-02-21  28  2002    2
... ... ... ...
2011-04-02  1   2011    4
2013-02-25  1   2013    2
2019-05-02  1   2019    5
2012-01-03  1   2012    1
2014-05-01  1   2014    5

或者这个:

month = df.Date_ren.dt.to_period("M")  # new way to get the same
g = df.groupby(month)

但是问题是要绘制我的数据,使其仅保留有关年份和该月在特定月份的销售量的信息,然后与其他年份进行比较。 因此,我应该有一个或多个单独的图来说明此趋势,或者一个单独的图并按年份和月份进行比较。例如:

df.groupby(pd.Grouper(freq='M'))

在y轴上具有Quant(频率直方图)。

您能告诉我在这种特殊情况下如何考虑groupby()函数吗?

1 个答案:

答案 0 :(得分:0)

请尝试

df.groupby(['Y','M'])['Quant'].sum().unstack().plot.bar(stacked=True)

在您发表评论后,我会尝试

import matplotlib.pyplot as plt
g=df.groupby(['Y','M'])['Quant'].sum().unstack()
g.index.name = 'M'#g.index.name = 'Y'
g.plot(kind="bar")