Python 如何按层次分类计算增量?
假设您有一个如下所示的数据帧:Python 如何按层次分类计算增量?,python,pandas,group-by,increment,pandas-groupby,Python,Pandas,Group By,Increment,Pandas Groupby,假设您有一个如下所示的数据帧: -Fruit- -Shop- -Total- -Year- 0 Apple Maximo 100 2016 1 Apple John 200 2016 2 Banana John 400 2016 3 Apple Maximo 50 2017 4 Ap
-Fruit- -Shop- -Total- -Year-
0 Apple Maximo 100 2016
1 Apple John 200 2016
2 Banana John 400 2016
3 Apple Maximo 50 2017
4 Apple Maximo 100 2017
5 Banana John 300 2017
然后,您希望按类别的每个组合计算年与年之间的增量,并将其保存为groupedby数据框中的新列:
-Fruit- -Fruit-Increment- -Shop- -Shop-Increment-
0 Apple -50% Maximo 50%
1 Apple -50% John -100%
2 Banana -25% John -25%
说明:2016-2017年苹果公司的总销售额增量为(伪代码示例):
这是具有实际值的以下操作:
(150-300)/300=-50%
然而,我也想知道,这种水果在每家商店的表现如何。在Maximo中,苹果的销售额增量为(150-100)/100=50%(以此类推)
奖励1:如果2016年的值为0,而2017年有一个值(不可能计算增量),则在可能的代码中包含一种输入NaN的方法
奖励2:考虑解决这个问题的最佳方法(我想在一个大数据框架中实现它,其中列几乎是所有类别)
请,如果我不清楚我想要实现什么,请通知我,以便更正问题。谢谢大家! 我不明白你的逻辑,你是如何从输入数据中得到输出的。你能解释一下吗?@jezrael已经修改过了,如果你能帮我,我会很高兴的:(
(150-300)/300=-50%