【问题标题】:Boxplot with pandas and groupby带有 pandas 和 groupby 的箱线图
【发布时间】:2015-07-04 06:34:32
【问题描述】:

我有以下数据集示例:

     0         1
0    0  0.040158
1    2  0.500642
2    0  0.005694
3    1  0.065052
4    0  0.034789
5    2  0.128495
6    1  0.088816
7    1  0.056725
8    0 -0.000193
9    2 -0.070252
10   2  0.138282
11   2  0.054638
12   2  0.039994
13   2  0.060659
14   0  0.038562

并且需要一个盒须图,按第 0 列分组。我有以下内容:

plt.figure()
grouped = df.groupby(0)
grouped.boxplot(column=1)
plt.savefig('plot.png')

但我最终得到了三个子图。怎么能把这三个都放在一个地块上? 谢谢。

【问题讨论】:

    标签: pandas matplotlib


    【解决方案1】:

    在 0.16.0 版本的 pandas 中,您可以简单地这样做:

    df.boxplot(by='0')
    

    结果:

    【讨论】:

    【解决方案2】:

    我认为您不需要使用 groupby。

    df2 = df.pivot(columns=df.columns[0], index=df.index)
    df2.columns = df2.columns.droplevel()
    
    >>> df2
    0          0         1         2
    0   0.040158       NaN       NaN
    1        NaN       NaN  0.500642
    2   0.005694       NaN       NaN
    3        NaN  0.065052       NaN
    4   0.034789       NaN       NaN
    5        NaN       NaN  0.128495
    6        NaN  0.088816       NaN
    7        NaN  0.056725       NaN
    8  -0.000193       NaN       NaN
    9        NaN       NaN -0.070252
    10       NaN       NaN  0.138282
    11       NaN       NaN  0.054638
    12       NaN       NaN  0.039994
    13       NaN       NaN  0.060659
    14  0.038562       NaN       NaN
    
    df2.boxplot()
    

    【讨论】:

      猜你喜欢
      • 2013-10-27
      • 2014-08-11
      • 2019-06-02
      • 2017-11-24
      • 2013-09-01
      • 2021-06-26
      • 2013-12-07
      • 2020-08-03
      • 1970-01-01
      相关资源
      最近更新 更多