我有以下数据集:
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()
)
)
)
)
但是它在桌子内提供了一个奇怪的桌子
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句