1
我有三列“A”,“B”和“C”一个DF从一个值和MULTIPLY中减去所有值。移动到下一个值和重复
[a] [b] [c]
2 2 12
11 5.95 12
10 16.7 12
我需要的是一个额外的列“d”,它代表下面的计算:
((2-11)* 5.95 +(2-10)* 16.7)/ 12 = -15.59583333
((11-2)* 2 +(11-10)* 16.7)/ 12 = 2.8916666667 ((10-11)* 5.95 +(10-2)* 2)/ 12 = 0.8375
[a] [b] [c] [d]
2 2 12 -15.59583333
11 5.95 12 2.8916666667
10 16.7 12 0.8375
它应该是高度动态的,所以行数可以不同。速度也是我为什么要避免循环的一个问题。
我试图使用.apply()和.pivot()以简单的格式调用sub()和mul(),但它没有解决。
我提供的最初输入是在一个groupby对象后面。所以,当我在组合对象上运行你的代码时,它返回的是'd'的NAN。 我尝试使用.transform,但这只给了我'0' – jumboRumbo
然后可能'.groupby(...)。apply(lambda g:g.assign(d = gaapply(lambda x:((x-ga)* gb/gc).sum())'。不知道你的实际数据,我不能保证能解决你的问题 – Psidom
你真是个天才! – jumboRumbo