计算熊猫的复利

时间:2019-08-23 04:48:52

标签: pandas dataframe

我一直在努力寻找如何计算储蓄账户的未来价值的方法,每个月我必须在其中存入$ 100。

import pandas as pd

# deposit an extra $100 per month
deposit = [100] * 4
# unbelievable rate of 10%!
rate = [0.1] * 4

df = pd.DataFrame({ 'deposit':deposit, 'rate':rate})
df['interest'] = df.deposit * df.rate
df['total'] = df.deposit.cumsum() + df.interest.cumsum()

这会导致错误的总计440美元,由于复利应为464.10美元。

total = 0
r = 0.1
d = 100
for i in range(0,4):
    total = (total * r) + total + d
    print (total)
100.0
210.0
331.0
464.1

在Pandas中执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

IIUC,最后复合。使用pd.Series的{​​{1}}和shift

cumprod

输出:

df['total'] = (df['deposit'] * df['rate'].shift().add(1).cumprod().fillna(1)).cumsum()
print(df)