我有以下数据集:
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)
关于python - 如何为每个组创建堆积条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37301217/