逆时针而不是顺时针取消堆叠 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
我有一个多索引 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