【问题标题】:Pandas groupby top5 productsPandas groupby top5 产品
【发布时间】:2021-07-11 02:10:51
【问题描述】:

我正在尝试“从类别中接收 top5 产品”。

import panda as pd
gg=pd.read_excel(product.xlsx)
gg.groupby(['Category','Product'])['Sale'].sum().sort_values(by='sum', ascending=False).head(5) 

【问题讨论】:

  • 但此代码从所有表中获得了前 5 个类别/产品。我应该使用什么 groupby ???
  • 不是将数据发布为图像/屏幕截图,而是将数据发布为文本,以便我们可以重现您的数据框
  • 我们无法从图片中复制数据,建议将您的数据添加为文本。

标签: python pandas


【解决方案1】:

示例数据:


df = pd.DataFrame(data={'Category': np.random.choice(['TV', 'Phone', 'Computer'], size=n),
                        'Product': np.random.randint(low=100, high=1000, size=n),
                        'Sales': np.random.randint(low=10, high=10000, size=n)})

那么,我们可以使用nlargest系列方法来获取你要找的东西:

df.set_index(['Category','Product']).Sales.groupby('Category',group_keys=False).nlargest(3)

Category  Product
Computer  565        9997
          992        9739
          773        9060
Phone     242        9720
          300        9380
          744        9297
TV        891        9271
          552        9264
          752        9030
Name: Sales, dtype: int64

【讨论】:

  • 我看到我进入了前 3 而不是前 5 - 只需将 3 更改为 5。这对你有用吗?
  • @Alexosipov 随时接受关闭答案。
猜你喜欢
  • 1970-01-01
  • 2021-01-02
  • 1970-01-01
  • 2013-09-05
  • 2021-08-03
  • 1970-01-01
  • 2021-03-24
  • 2015-05-13
  • 2021-09-21
相关资源
最近更新 更多