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

Posted

技术标签:

【中文标题】在使用 `groupby` 之后使用 Seaborn 的 `factorplot`【英文标题】:Using Seaborn's `factorplot`after using `groupby` 【发布时间】:2017-12-14 19:34:05 【问题描述】:

我从一个非常大的 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 因子图:X = DAY、Y = BOUGHT 和 Hue = FLAVOR。在绘图之前我需要融化这个“减少”的数据框吗?或者有没有一种简单的方法来绘制我当前数据框中的数据?

【问题讨论】:

融化,不...重新索引,也许... 【参考方案1】:

你可以做 df.reset_index() 然后做一个因子图选择适当的列。

这意味着:

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

【讨论】:

.reset_index() 命令后跟factorplot 完美运行!正是我想要的,谢谢。

以上是关于在使用 `groupby` 之后使用 Seaborn 的 `factorplot`的主要内容,如果未能解决你的问题,请参考以下文章

Spark数据框:如何在groupBy + sum之后使用

使用 apply() 函数在 pandas 中的 groupby 之后创建列表

在 pandas groupby 之后并行化应用

在groupby之后访问pandas中的分层列

groupby之后的熊猫数据框列[重复]

Pandas 在 groupby 和 nlargest 之后创建额外(重复)索引