我有一个数据框,每个日期我想计算每个日期上每只股票的绝对销售额变化总和。特定股票每日的绝对变化总和
样品DF:
Stock Sales Data 1
1/1/2012 Amazon 120 0.996691907
1/1/2012 Apple 230 0.084699221
1/1/2012 Microsoft 340 0.141253424
1/1/2012 Google 230 0.506264018
1/2/2012 Amazon 340 0.646633737
1/2/2012 Apple 1250 0.204030887
1/2/2012 Microsoft 850 0.556935133
1/2/2012 Dell 650 0.771751177
1/2/2012 Yahoo 650 0.615222763
1/2/2012 Verizon 1065 0.504410742
1/2/2012 Vodafone 200 0.752335341
1/2/2012 Blackberry 1465 0.693017964
1/2/2012 AT&T 2000 0.262392424
1/3/2012 Apple 1465 0.851841806
1/3/2012 Amazon 1465 0.70635569
1/3/2012 AT&T 700 0.911297224
1/3/2012 Blackberry 235 0.118843588
1/3/2012 Vodafone 500 0.07255267
输出df_new将是:
1/1/2012 920
1/2/2012 7780
1/3/2012 11050
计算:
对于1/1/2012(在索引第一个日期),计算将(120 + 230 + 340 + 230)= 920
对于1/2/2012(下一日期),计算将是日期变更期间特定股票的绝对销售额变化。 例如,亚马逊,苹果和微软已经在第一次约会,其余股票是新的,所以绝对变化的总和将是: (绝对(340-120)+绝对(1250-230)+绝对(850 -340)+ abs(650-0)+ abs(650-0)+ abs(1065-0)+ abs(200-0)+ abs(1465-0)+ abs(2000-0))= 7780. 由于戴尔,雅虎,Verizon,沃达丰,黑莓,AT & T是新的,并没有那里前一天简单的销售减去0(因为他们没有前一天如此衡量绝对变化)。
对于1/3/2012(下一个日期)。计算如下: abs(1465-1250)+ abs(1465-340)+ abs(700-2000)+ abs(235-1465)+ abs(500-20)+ abs(0-1065)+ abs (0-650)+ abs(0-650)-abs(0-850)= 11050 由于微软,戴尔,雅虎和Verizon有前一日期但不是当前日期,因此它将为0 - 这些销售额。
该数据集很大,我试图找到一个简单的代码,可以做到这一切。数据涉及可能发生剧烈变化的股票,并且可能会出现从一个日期到另一个日期没有相互关联的股票的情况。
Google在1/2 - “abs(0-230)== 230”中发生了什么。我不知道你在第3天如何达到“11050”,因为你自己说的绝对总和只是'7385'(固定负值和沃达丰绝对值(500-200)')。 – AChampion