我正在尝试计算每种产品的每月变化百分比。这是我到目前为止所拥有的。我将其用于涉及单个产品的 DataFrame。我对如何将计算应用于包含许多产品和许多月份的结果集感到困惑。
示例数据框:
product_desc activity_month prod_count
product_a 1/1/2014 53
product_b 1/1/2014 42
product_c 1/1/2014 38
product_a 2/1/2014 26
product_b 2/1/2014 48
product_c 2/1/2014 39
product_a 3/1/2014 41
product_b 3/1/2014 35
product_c 3/1/2014 50
我需要得到的是数据框,其中添加了按月按product_desc变化的百分比:
product_desc activity_month prod_count pct_change
product_a 1/1/2014 53
product_a 2/1/2014 26 0.490566038
product_a 3/1/2014 41 1.576923077
product_b 1/1/2014 42
product_b 2/1/2014 48 1.142857143
product_b 3/1/2014 35 0.729166667
product_c 1/1/2014 38
product_c 2/1/2014 39 1.026315789
product_c 3/1/2014 50 1.282051282
我可以使用单个 Product_desc 在数据帧上计算此值:
df['change_rate1'] = df['prod_count'].shift(-1)/df['prod_count']
df['pct_change'] = df['change_rate1'].shift(1)
df = df.drop('change_rate1',1)
这是我现在正在尝试的:
df_grouped = df.groupby(['product_desc','activity_month'])
for product_desc, activity_month in df_grouped:
df['change_rate1'] = df_grouped['prod_count'].shift(-1)/df_grouped['prod_count']
但是,我在 for 语句的最后一行收到“NotImplementedError”。
任何有关如何正确计算此值的建议都将受到赞赏。