首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Seaborn从Pandas DataFrame创建箱形图

使用Seaborn从Pandas DataFrame创建箱形图
EN

Stack Overflow用户
提问于 2019-01-28 19:40:23
回答 1查看 136关注 0票数 1

我有以下Pandas DataFrame,我使用它来比较不同分类器在多次迭代中的性能。在每次迭代之后,我将该特定分类器的排名保存到一个DataFrame中,它是所有迭代中排名的累积和( DataFrame的索引告诉排名从0到3,即总共4个分类器,0是最好的)。

DataFrame如下所示:

代码语言:javascript
复制
rankings = {'Classifier1': ['1', '2', '1', '0'], 
            'Classifier2': ['2', '1', '1', '0'], 
            'Classifier3': ['0', '1', '1', '2'],
            'Classifier4': ['1', '0', '1', '2']}

df = pd.DataFrame(data = rankings)

其格式为:

代码语言:javascript
复制
       Classifier1 Classifier2 Classifier3 Classifier4
0           1           2           0           1
1           2           1           1           0
2           1           1           1           1
3           0           0           2           2

我想使用Seaborn或其他方法为不同的分类器创建以下箱线图(如在this paper中):

EN

回答 1

Stack Overflow用户

发布于 2019-01-28 20:37:54

首先,我们需要将您的数据转换为数值而不是字符串。然后,我们将数据帧熔化为长格式,最后应用顶部带有swarmplot的boxplot

代码语言:javascript
复制
df = df.apply(pd.to_numeric).melt(var_name='Classifier', value_name='AUC Rank')
ax = sns.boxplot(data=df, x='Classifier', y='AUC Rank')
ax = sns.swarmplot(data=df, x='Classifier', y='AUC Rank', color='black')

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54401223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档