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)
但它在表格中提供了一个奇怪的表格
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)