我有一个多索引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)
。
答案 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