Pandas 从柱状图中的图例中删除列名

Pandas 从柱状图中的图例中删除列名,pandas,bar-chart,Pandas,Bar Chart,我有一个如下的数据帧 batsman non_striker partnershipRuns 0 SK Raina A Flintoff 23 1 SK Raina DR Smith 90 2 SK Raina F du Plessis 36 3 SK Raina JA Morkel

我有一个如下的数据帧

        batsman      non_striker  partnershipRuns
0      SK Raina       A Flintoff               23
1      SK Raina         DR Smith               90
2      SK Raina     F du Plessis               36
3      SK Raina        JA Morkel               14
10     MS Dhoni    CK Kapugedera               18
11     MS Dhoni         DJ Bravo               51
12     MS Dhoni     F du Plessis               27
13     MS Dhoni        JA Morkel               12
14     MS Dhoni         JDP Oram                6
我已经能够使用

df1=df.groupby(['batsman','non_striker']).sum().unstack().fillna(0)
df1.plot(kind='bar',stacked=True,legend=True)
plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5))
这将导致列名作为元组包含在图例中,如图所示

我怎么能没有列名而只拥有图例的值呢


请帮助

一个简单的解决方法是:

df1=df.groupby(['batsman','non_striker']).sum().unstack().fillna(0)['partnershipRuns']
而不是:

df1=df.groupby(['batsman','non_striker']).sum().unstack().fillna(0)
为什么??因为您的聚合正在创建多索引。在绘图时,可以有不同的多索引值(这里是多个值,而不是“partnershipRuns”)。
如果因为我没有正确理解您的问题而需要其他内容,请提问。

对于列中的“防止
多索引”
,请在
groupby
之后指定“求和”列,并且
fillna
此处无需添加参数
fill\u value=0

另一个解决方案包括:


谢谢我也使用了pivot,但是我似乎得到了元组,尽管不是你提到的那样。您的解决方案也有效!
df1=df.groupby(['batsman','non_striker'])['partnershipRuns'].sum().unstack(fill_value=0)
df1=df.pivot_table(index='batsman',
                   columns='non_striker',
                   values='partnershipRuns',
                   aggfunc='sum',
                   fill_value=0)