繁体   English   中英

GroupBy和饼图 plot in pandas

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM