1 回答
TA贡献1850条经验 获得超11个赞
您将需要循环,因为您的总数会根据前面的行而变化,然后会影响后面的行。因此,您当前的利息计算是错误的。
total = 0
cumulative_interest = 0
total_per_day = []
interest_per_day = []
cumulative_per_day = []
for day in df.itertuples():
total += day.Debit - day.Credit
interest = total * 0.11 / 365
cumulative_interest += interest
if day.IsItLastDay:
total += cumulative_interest
total_per_day.append(total)
interest_per_day.append(interest)
cumulative_per_day.append(cumulative_interest)
if day.IsItLastDay:
cumulative_interest = 0
df.Total = total_per_day
df.InterestPerDay = interest_per_day
df.InterestCumulative = cumulative_per_day
不幸的是,这看起来更令人困惑,但当值依赖于以前的值时就会发生这种情况。根据您的确切要求,可能有一些很好的方法可以使用数学来简化这一过程,但除此之外,这就是您所拥有的。
我已将其直接写入 stackoverflow,因此它可能并不完美。
添加回答
举报