【问题标题】:pandas groupby categories with some categories grouped togetherpandas groupby 类别与一些类别组合在一起
【发布时间】:2018-11-28 22:19:47
【问题描述】:

问题的标题非常模糊,但本质上,我想在 pandas 数据框上运行 groupby 函数,我想按“类别”列进行分组,类别的唯一值是 milk,@ 987654323@、caramelxyz 等。我要对其执行聚合的列包含已售出任何种类巧克力数量的 Quantity 数据。现在,我知道如果groupby('Category').sum().plot.bar(),我将看到代表milkdark 类别的高交易量的高条,以及其他4 个类别的非常小的(如果有的话)条。我想将其他类别组合在一起,以便最终情节只有 3 个条形图,例如对于milkdarkothers。 实现这一目标的最简单方法是什么? 谢谢!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    按照这些思路应该可以工作。

    df2 = df.groupby('Category').sum()
    df2['others'] = [x if x.name not in ['milk', 'dark'] else None for x in df2.columns]
    df2[['milk', 'dark', 'others']].plot.bar()
    

    【讨论】:

    • 谢谢!不是输入应该属于Others 的每个类别的名称,而是有一个声明会说“所有其他不是牛奶而不是黑暗的东西?
    • 添加了一个列表解析,它应该只抓取未命名为 milkdark 的列。
    • 为什么在列表理解语句中出现invalid syntax 错误,箭头指向for?或许,这应该是[xfor x in df2.columns if x.name not in ['milk', 'dark'] ]
    • 内联 if 中可能需要一个 else 情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 2019-08-03
    相关资源
    最近更新 更多