[英]GroupBy and pie plot in pandas
我有数据。 标记 - 5 个唯一值,名称 - 200+ 人,组 - 10 个值,会议 - 50 个值,当前 - 最大值为 20。每个会议由演示组成。 小例子:
data = [
['A', 'Frodo', 'group_1', 1, 1],
['A', 'Sam', 'group_2', 1, 1],
['N', 'Frodo', 'group_1', 1, 2],
['A', 'Sam', 'group_2', 1, 2],
['Z', 'Frodo', 'group_1', 1, 3],
['N', 'Sam', 'group_2', 1, 3],
['M', 'Frodo', 'group_1', 1, 4],
['Z', 'Sam', 'group_2', 1, 4],
['O', 'Frodo', 'group_1', 1, 5],
['A', 'Sam', 'group_2', 1, 5]]
df = pd.DataFrame(data, columns=['mark', 'name', 'group', 'meeting', 'present'])
我想为每个组制作一个饼图,其中每个人的成绩“N”都将绘制为 rest 成绩的百分比。 作为标题,我想要小组的名称,每个人都有饼图 plot 人名,图表内有百分比数字。
plot_df = pd.DataFrame(df.groupby(['name', 'group'])['mark'].value_counts()).rename(columns={'mark':'mark_count'})
plot_df.unstack(level=0).plot(kind='pie', stacked=True, subplots=True, figsize = (7,7), legend=False);
我计算了小组中每个人的分数。 我不知道如何获得百分比。 我还为每个人建立了一个图表,但我不知道如何按组对图表进行分组。
您可以使用autopct=
进行简单的百分比显示。 我认为这是数据结构的影响,但您会看到额外的 0% 显示。
plot_df.unstack(level=0).plot(
kind='pie',
stacked=True,
subplots=True,
autopct='%1.1f%%',
figsize=(7, 7),
legend=False,
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.