我正在使用groupby创建一个barplot,以显示某个个人在2012日历年的成功率。这很好。 X轴= S_L,Y轴为成功率%。我的数据集中有一列表示成功(1或0)。
ax=df[df['CY']==2012].groupby('S_L').success.mean().sort_values(ascending=False).plot(kind='bar',stacked=False)
我不想显示每个条形图的值,而是要显示均值后面的计算,即每个组的总数和成功(这是一个标志)= 1(即分子)的计数。例如:如果条形图显示90%,这是由9(分子)成功// 10(给定S_L组的总计数)计算得出的,那么我想显示该条形图的n = 9和n = 10。
我查看了这些帖子Add labels to barplots,当我显示这些条的值时,它可以工作。 但是,我不知道如何为计算添加值。由于我也按降序对值进行排序,因此我不知道该怎么做。请帮忙。
我的代码:
import pandas as pd
from os import path
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
fname=path.expanduser(r'Test file.xlsx')
df=pd.read_excel(io=fname,sheet_name='Sheet1')
ax=df.groupby('S_L').success.mean().sort_values(ascending=False).plot(kind='bar',stacked=False)
vals = ax.get_yticks()
ax.set_ylabel('Success Rate')
ax.set_yticklabels(['{:,.2%}'.format(x) for x in vals])