在使用`groupby`之后使用Seaborn的`factorplot`

时间:2017-07-10 22:34:45

标签: python-2.7 pandas plot seaborn

我从一个非常大的Pandas数据框开始,格式为:

DAY     FLAVOR    PRICE    #CREATED    BOUGHT
 1       apple      5         1         1
 1       apple      5         3         7
 1       apple      5         4         2
 1       apple      5         5         3
 2       apple      5         1         1
 2       apple      5         3         9
 2       apple      5         4         8
                 . 
                 .  
                 . 

完成groupby(['DAY','FLAVOR','PRICE']).mean()之后,我最终得到的数据帧类似于:

DAY     FLAVOR    PRICE    BOUGHT
 1       apple      5       3.4
                   25       2.9
         cherry     5       1.7
                   25       2.6
 2       apple      5       1.6
                   25       1.7
         cherry     5       3.1
                   25       3.2
                 . 
                 . 
                 . 

此时,我想创建Seaborn factorplots:X = DAY,Y = BOUGHT,Hue = FLAVOR。我需要融化这个"减少"绘图前的数据框架?或者是否有一种简单的方法来绘制当前数据框中的数据?

1 个答案:

答案 0 :(得分:3)

您可以执行df.reset_index(),然后选择适当的列进行因子图。

这意味着:

fg = (
    df.groupby(['DAY', 'FLAVOR', 'PRICE'])
      .mean()
      .reset_index()
      .pipe((sns.factorplot, 'data'), x='DAY', y='BOUGHT', hue='FLAVOR')
)