2
我有許多客戶的起始價值和未來預期增長率。熊貓:通過組內的另一個數值乘以另一列中的每個值的起始值
下面是一個簡單的示例數據幀:
df = pd.DataFrame([['A',1,10,np.nan],['A',2,10,1.2],['A',3,10,1.15],
['B',1,20,np.nan],['B',2,20,1.05],['B',3,20,1.2]],columns = ['Cust','Period','startingValue','Growth'])
print df
Cust Period startingValue Growth
0 A 1 10 NaN
1 A 2 10 1.20
2 A 3 10 1.15
3 B 1 20 NaN
4 B 2 20 1.05
5 B 3 20 1.20
對於每個卡斯特,我要通過生長速率乘以初始值,然後再進行該值正向到下一個週期。我可以用groupby-apply或醜陋的for循環來做到這一點,但我希望有一些更快的矢量化方法。我曾希望會有一些.fill()魔法,當你向下填充時,你可以乘以另一列。以下是輸出的結果:
Cust Period startingValue Growth Pred_val
0 A 1 10 NaN 10.0
1 A 2 10 1.20 12.0
2 A 3 10 1.15 13.8
3 B 1 20 NaN 20.0
4 B 2 20 1.05 21.0
5 B 3 20 1.20 25.2
想法?
你是個明星!我知道有一個更簡單的方法 – flyingmeatball