逆时针而不是顺时针卸载MultiIndex pandas DataFrame

时间:2015-04-21 13:23:43

标签: python pandas matplotlib

我有一个多索引pandas DataFrame,如下所示:

                      Number of Vulnerabilities
Name       Severity
           moderate   2167
Person 1   high       1421
           critical   2464
           moderate   5841
Person 2   high       3687
           critical   10267

我的目标是创建一个水平堆积条形图,其中条形图代表Severity,按从左到右的顺序:中等,高,严重。为了获得堆积条形图,我似乎需要取消堆叠Severity索引列。当我尝试这样做时,df.unstack('Severity'),我的DataFrame看起来像这样:

           Number of Vulnerabilities
Severity   critical  high  moderate
Name
Person 1   2464      1421  2167
Person 2   10267     3687  5841

因此,当我去绘制它时,堆叠的条形按顺序排列(L-> R):临界,高,中等。
如何更改' Severity'的顺序?拆分时的索引是:中等,高,关键?或者,有没有办法在绘图时更改顺序,无需进一步操作DataFrame? 我目前的情节代码为df.plot(kind='barh', stacked=True)

1 个答案:

答案 0 :(得分:1)

您可以重新排序列。

df = df.unstack('Severity') # This is your current dataframe

df = df['Number of Vulnerabilities'][['moderate', 'high', 'critical']] # reoder
df.plot(kind='barh', stacked=True) #plot