这是我的dataframe:
df = pd.DataFrame({'a': [10, 20, 50], 'b': [5, 2, 20]})
这是我需要的输出:
a b c
0 10 5 1005
1 20 2 1009.02
2 50 20 1109.922
我想创建列c
。我有一个初始值1000。c
的第一行是这样计算的:
x = 1000 * (10 / 100) # 10 is first line of column a
y = 1 + (5 / 100) # 5 is first line of column b
z = 1000 - x
result = (x * y) + z
c
的第二行是:
x = 1005 * (20 / 100) # 20 is second line of column a
y = 1 + (2 / 100) # 2 is second line of column b
z = 1005 - x
result = (x * y) + z
相同逻辑适用于c
的最后一行。1005是来自第一行的计算结果。
我尝试了以下代码,但它不工作:
df['c'] = ((df.a / 100 * (1 + df.b / 100)).cumprod() * 1000) + 1000
2条答案
按热度按时间hl0ma9xz1#
由于下一个结果依赖于前一个结果,因此可以直接执行循环
kt06eoxx2#
另一种可能的解决方案:
输出: