许多熊猫数据框的箱形图

发布于 2021-01-29 15:20:34

我有三个数据框,其中包含17组A,B和C组数据。以下代码段中显示了A

import pandas as pd
import numpy as np
data1 = pd.DataFrame(np.random.rand(17,3), columns=['A','B','C'])
data2 = pd.DataFrame(np.random.rand(17,3)+0.2, columns=['A','B','C'])
data3 = pd.DataFrame(np.random.rand(17,3)+0.4, columns=['A','B','C'])

我想绘制箱线图来比较三组,如图下图中
在此处输入图片说明
,我试图用化妆情节seaborn的箱线图如下

import seaborn as sns
sns.boxplot(data1, groupby='A','B','C')

但显然这是行不通的。有人可以帮忙吗?

关注者
0
被浏览
41
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    考虑分配一个类似于“ 位置” 的指标来区分三组数据。然后将所有三个输入连接起来并融化数据,以检索一个 列,一个 Letter 分类列和一个
    Location 列,所有输入都输入到sns.boxplot

    import pandas as pd
    import numpy as np
    from matplotlib pyplot as plt
    import seaborn as sns
    
    data1 = pd.DataFrame(np.random.rand(17,3), columns=['A','B','C']).assign(Location=1)
    data2 = pd.DataFrame(np.random.rand(17,3)+0.2, columns=['A','B','C']).assign(Location=2)
    data3 = pd.DataFrame(np.random.rand(17,3)+0.4, columns=['A','B','C']).assign(Location=3)
    
    cdf = pd.concat([data1, data2, data3])    
    mdf = pd.melt(cdf, id_vars=['Location'], var_name=['Letter'])
    print(mdf.head())
    
    #    Location Letter     value
    # 0         1      A  0.223565
    # 1         1      A  0.515797
    # 2         1      A  0.377588
    # 3         1      A  0.687614
    # 4         1      A  0.094116
    
    ax = sns.boxplot(x="Location", y="value", hue="Letter", data=mdf)    
    plt.show()
    

    直方图输出



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看