逆时针而不是顺时针取消堆叠 MultiIndex pandas DataFrame

Unstack a MultiIndex pandas DataFrame counter-clockwise instead of clockwise

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

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

我的 objective 是创建一个水平堆叠条形图,其中条形表示严重程度,从左到右的顺序为:中等、高、严重。为了获得堆叠条形图,我似乎需要取消堆叠严重性指数列。当我尝试这样做时,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).

您可以重新排序您的列。

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