在数据框上使用groupby()。sum(),然后绘制带有标签的饼图?

时间:2019-03-30 02:11:26

标签: python matplotlib pandas-groupby

这是我的第一个问题,我对Python / pandas / matplolib很陌生

我具有创建DataFrame的以下代码行:

repartition = sorted2017.groupby(by=sorted2017["Traitement"]).sum()

它的工作与我预期的一样,只是列标题“ Traitement”似乎出现在其自己的行上:

                  Prix  Coût net  Manuvie     CCQ  SSQ
Traitement                                            
masso (Véro)    213.86       0.0    144.0   69.86  0.0
ostéo (Véro)     80.00       0.0     64.0   16.00  0.0
physio (Danny)  415.00       0.0    265.0  150.00  0.0
physio (Véro)   269.00       0.0    204.8   64.20  0.0
psy (Simone)    500.00       0.0    150.0  350.00  0.0
psy (Véro)      300.00       0.0    240.0   60.00  0.0

我想使用“ Traitement”列作为matplotlib饼图的标签,所以我尝试了:

plt.pie(repartition["Prix"], labels=repartition["Traitement"])

plt.show()

但是我收到一个KeyError。我也尝试过使用iloc作为标签,但随后得到

  

ValueError:“'标签'的长度必须为'x'”

我该如何解决?

1 个答案:

答案 0 :(得分:0)

groupby之后,"Traitement"列在索引列中。

plt.pie(x=repartition["Prix"], labels=repartition.index)
plt.show()

enter image description here