【问题标题】:how to groupby column values如何按列值分组
【发布时间】:2020-04-09 04:51:16
【问题描述】:

下面是我的数据:Dataframe -- df_AW17

Product ID  Season  Division    Brand   Category    Sub Category    AW16 (Sales)    AW17 (Sales)

Blazer 1    AW17    Men's Wear  Brand 1 Top BLAZER      198

Blazer 2    AW16    Men's Wear  Brand 1 Top BLAZER  138 

Blazer 2    AW17    Men's Wear  Brand 1 Top BLAZER      270

Blazer 3    AW17    Men's Wear  Brand 1 Top BLAZER      27

Blazer 4    AW17    Men's Wear  Brand 1 Top BLAZER      192

Blazer-10   AW17    Women's Wear    Brand 1 Top BLAZER      15

Blazer-11   AW16    Women's Wear    Brand 1 Top BLAZER  10  

Blazer-11   AW17    Women's Wear    Brand 1 Top BLAZER      14

Blazer-12   AW17    Women's Wear    Brand 1 Top BLAZER      16

Blazer-13   AW17    Women's Wear    Brand 1 Top BLAZER      207

Blazer-5    AW16    Women's Wear    Brand 1 Top BLAZER  126 

Blazer-5    AW17    Women's Wear    Brand 1 Top BLAZER      200

Blazer-6    AW17    Men's Wear  Brand 1 Top BLAZER      5

Blazer-7    AW17    Women's Wear    Brand 1 Top BLAZER      299

Blazer-8    AW17    Women's Wear    Brand 1 Top BLAZER      147

Blazer-9    AW17    Men's Wear  Brand 1 Top BLAZER      23

Jacket-10   AW17    Men's Wear  Brand 1 Top JACKETS     20

Jacket-11   AW17    Men's Wear  Brand 1 Top JACKETS     5

Jacket-12   AW16    Men's Wear  Brand 1 Top JACKETS 5   

Jacket-12   AW17    Men's Wear  Brand 1 Top JACKETS     12

Jacket-13   AW16    Women's Wear    Brand 1 Top JACKETS 15

它有 Product ID 作为值,我需要使用 Season AW16、AW17 以及给定的 AW16(Sales)、AW17(Sales)销售额来获得销售增长百分比作为新列。问题是我无法对公式进行分组或放置公式,因为销售的列值在特定产品 ID 的不同行中。

我曾尝试过。

df_AW17['Sales Growth %'] = df_AW17.groupby(['Product ID'])(((df_AW17['AW17 (Sales)'] - df_AW17['AW16 (Sales)']) / df_AW17['AW16 (Sales)']) * 100).

我想要的结果是(销售增长百分比)从 AW16(销售)到 AW17(销售)特定于产品 ID。

【问题讨论】:

  • Type Product ID Season AW16 (Sales) A​​W17 (Sales) 0 Fashion Blazer 1 AW17 NaN 198.0 4 Fashion Blazer 2 AW16 138.0 NaN 5 Fashion Blazer 2 AW17 NaN 270.0 7 Fashion Blazer 3 AW17 NaN 27.0 11 Fashion开拓者 4 AW17 NaN 192.0

标签: dataframe numpy data-analysis


【解决方案1】:

由于您的数据框中的所有行似乎都有唯一的产品 ID,因此创建新列之后更简单的方法是否不能满足目的?

df_AW17['Sales_growth_pct'] = (df_AW17['AW17 (Sales)'] - df_AW17['AW16 (Sales)']) / df_AW17['AW16 (Sales)']

【讨论】:

  • 我在“产品”中的数据不是唯一的,一些值被复制为 .示例:Blazer 2 AW16 销量 (138) AW17 销量(270) 。某种逻辑可以将那些重复的产品 ID 分组并获得销售差异以获得实际增长 %(b-a)/a*100
猜你喜欢
  • 1970-01-01
  • 2014-07-24
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
  • 2011-08-07
  • 1970-01-01
  • 2019-12-11
相关资源
最近更新 更多