在多列上分组时如何绘制条形图?

时间:2019-03-26 06:36:16

标签: pandas matplotlib data-science

按日期对数据分组:

grouped = tickets.groupby(['date'])
size = grouped.size()
size

,然后使用:

size.plot(kind='bar')

结果: enter image description here

但是,我需要按日期对数据进行分组,然后按通信方式对子组进行分组,最后绘制每个子组的计数。

grouped = df.groupby([‘date’,’modeofcommunication'])
size = grouped.size()
size

结果如下:

date                modeofcommunication
2019-03-15          Chat                       2
                    Internal Email             2
                    Phone                      4

2019-03-16          Chat                      25
                    Email                     20
                    Feedback Form              2
                    Phone                      6

2019-03-17          Chat                      23
                    Email                     68
                    Feedback Form             13
                    Internal Email             3


2019-03-18          Chat                    1822
                    Email                     57
                    Facebook                  14
                    Feedback Form             11
                    Internal Email            11
                    Phone                    812
                    Twitter                    4

如何绘制分组数据的条形图,以使每个子组(通信方式)的计数都表示为父组下的竖线?

1 个答案:

答案 0 :(得分:1)

我相信您需要DataFrameSeries.unstackDataFrame.plot.bar中的MultiIndex Series

size.unstack().plot.bar()

或者:

size.unstack().plot.bar(stacked=True)