首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas:将组中一列的起始值与另一列中的每个值相乘

Pandas:将组中一列的起始值与另一列中的每个值相乘
EN

Stack Overflow用户
提问于 2017-06-05 21:21:51
回答 0查看 76关注 0票数 2

我有一些客户的起步值和一些未来的预期增长率。

下面是一个简单的示例数据帧:

代码语言:javascript
复制
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

对于每个Cust,我想将起始值乘以增长率,然后将该值结转到下一个周期。我可以用groupby-apply或者一个丑陋的for循环来做这件事,但我希望有一些更快的矢量化方法来做这件事。我曾希望会有一些.fill()魔术,您可以在向下填充时乘以另一列。输出应该是这样的:

代码语言:javascript
复制
 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

有什么想法?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44369986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档