熊猫堆积条形图

Lee*_*Lee 1 python plot bar-chart pandas

我有以下数据集:

SessionId    Query
   1           a   
   1           b
   2           a
   3           b
   3           b
   3           c
   3           a
Run Code Online (Sandbox Code Playgroud)

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

我试过这样的事情:

result = data.groupby('SessionId').apply(
   lambda group: (
      group.groupby('Query').apply(
         lambda queryGroup: (
            queryGroup.count()
         )                
      )
   )
 ) 
Run Code Online (Sandbox Code Playgroud)

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

ste*_*han 7

crosstab 如果我正确理解你的问题,应该做的工作:

import pandas as pd

data = pd.DataFrame({'SessionId': [1, 1, 2, 3, 3, 3, 3], 
                     'Query': ['a', 'b', 'a', 'b', 'b', 'c', 'a']})

pd.crosstab(data.SessionId, data.Query).plot.barh(stacked=True)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述