Skip to main content
 首页 » 编程设计

python之如何为每个组创建堆积条

2025年05月04日12zhujiabin

我有以下数据集:

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

我想显示一个堆积条形图,其中每个 session 都有一个条形图,并且条形图将由它具有的每个查询 的不同颜色组成,堆叠大小将在每个 session 中的查询数量的大小。

我试过这样的:

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

但它在表中给出了一个奇怪的表

请您参考如下方法:

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)