熊猫堆积条形图

时间:2016-05-18 13:33:05

标签: python pandas plot bar-chart

我有以下数据集:

SessionId    Query
   1           a   
   1           b
   2           a
   3           b
   3           b
   3           c
   3           a

我想显示一个堆积条形图,每个会话都会有一个条形图,条形图将包含每个查询的不同颜色,堆叠大小将是每个会话中查询数量的大小。

我试过这样的事情:

result = data.groupby('SessionId').apply(
   lambda group: (
      group.groupby('Query').apply(
         lambda queryGroup: (
            queryGroup.count()
         )                
      )
   )
 ) 

但它在表格中提供了一个奇怪的表格

2 个答案:

答案 0 :(得分:7)

如果我理解你的问题,

crosstab应该做的工作:

puma

enter image description here

答案 1 :(得分:0)

Pandas堆积条形图依赖于绘制不同的列,因此您需要透视数据表以将查询作为包含行数查询的列。

试试这个:

df = pd.DataFrame({"session":[1,1,2,2,3,3],
              "query":list("ababab"), "count":[5,7,32,5,8,1]})
df.pivot("session","query").plot(kind="bar", stacked=True)

输出:

enter image description here