我有一个 Dataframe 如下:
time type category count
2021/01/01 regular A 2
2021/01/02 new B 3
2021/01/02 regular A 5
2021/01/03 new A 1
... and so on
我想要的是一个聚集的堆叠条形图,这样时间在x轴上,并且是有序的,计数在y轴上,并且该图应该能够告诉信息,例如在特定的一天,有多少个类别A的常规类型访问了(计数),当天有多少个常规类型,对于新类型也是如此。
我假设为此,我们首先需要以某种方式转换数据,以便我们也具有零计数的所有组合,因此如上表中的第一个条目将被转换为四个条目,如:
time type category count
2021/01/01 regular A 2
2021/01/01 regular B 0
2021/01/01 new A 0
2021/01/01 new B 0
... and so on
请指导我如何实现我想要的。我对视觉化的东西还是个新手
编辑我可以使用以下方法填充缺失值:
pd.DataFrame({'count' :df.groupby(['time','type','category']).size().unstack(fill_value=0).stack()}).reset_index()
仍然不确定如何在堆叠多条形图中绘制此图。如果有比这个情节更好的选择,请建议.
1条答案
按热度按时间0s0u357o1#
你所期望的并不完全清楚(请提供一个例子,即使只是一个示意图),但这里有一些例子。
首先,您需要使用
pivot
重新编写一点dataframe:输出:
然后,您可以使用以下命令进行绘图:
如果你想确保你有所有的类别,你需要
reindex
: