我正在编写一个代码,该代码将为我提供每月的进度报告,说明我的债务应该在哪里以及还清债务需要多长时间。当支付了一笔债务时,我想从数组中删除该值,以及从各自数组中删除相应的利率和最低还款额,这样我就可以提取花在这些债务上的值(钱)来还清其余的更快。有没有一种方法可以对每个数组中的每个值编制索引,以便说到还清865美元的“债务5”时,每个数组中与该债务相对应的每个值都被删除了?当前,每个债务的每个详细信息在各自的数组中都位于相同的位置(即,债务1的名称为[0],债务的金额也为[0],利息也为[0],依此类推) 。
import numpy as np
from numpy import round
# Max amount you can spend per month on debts
budget = 1000
# name your debts, balances, interests, and minimum payments
name = np.array(["Debt 1:", "Debt 2:", "Debt 3:", "Debt 4:", "Debt 5:", "Debt 6:"])
debt = np.array([250,300,7215,5500,864,1066])
interest = np.array([.1715,.0376,.0376,.0445,.0445,0])
minPayment = np.array([15,60,60,60,60,70])
# Miscellaneous variables for data storage and counting
index = [0]
intAccrued = []
month = []
i = 0
j = 0
# Loop through to calculate debt progress
while any(debt >=0):
debt = debt - minPayment + debt*interest/12
debt[debt <=0] = 0
## This deletes the zero values from the debt index, now I need a way to delete
## the corresponding minPayments and interest values from the other arrays
debt = np.delete(debt, index)
print (round(debt,2))
if sum(debt) == 0:
break
month
i += 1
print (i, "Months")
最佳答案
我将比使用numpy
和使用pandas更进一步。 pandas
有一个DataFrame
,基本上是一个表。您可以一次对整行或整列进行操作,例如通过在某些条件下过滤数据框(此处为df[df.debt > 0]
):
import pandas as pd
df = pd.DataFrame({"name": name, "debt": debt, "interest": interest, "minimum_payment": minPayment}).set_index("name")
# debt interest minimum_payment
# name
# Debt 1: 250 0.1715 15
# Debt 2: 300 0.0376 60
# Debt 3: 7215 0.0376 60
# Debt 4: 5500 0.0445 60
# Debt 5: 864 0.0445 60
# Debt 6: 1066 0.0000 70
那么您的循环将是:
from itertools import count
for i in count(1):
df.debt = df.debt - df.minimum_payment + df.debt * df.interest / 12
df = df[df.debt > 0]
if len(df) == 0:
break
print(f"Month {i}:")
print(df)
print()
给出以下输出:
# Month 1:
# debt interest minimum_payment
# name
# Debt 1: 215.226480 0.1715 15
# Debt 2: 122.264256 0.0376 60
# Debt 3: 7102.469139 0.0376 60
# Debt 4: 5380.746359 0.0445 60
# Debt 5: 692.979363 0.0445 60
# Debt 6: 856.000000 0.0000 70
#
# Month 2:
# debt interest minimum_payment
# name
# Debt 1: 203.302425 0.1715 15
# Debt 2: 62.647351 0.0376 60
# Debt 3: 7064.723542 0.0376 60
# Debt 4: 5340.699960 0.0445 60
# Debt 5: 635.549162 0.0445 60
# Debt 6: 786.000000 0.0000 70
#
# ...
#
# Month 149:
# debt interest minimum_payment
# name
# Debt 3: 8.948222 0.0376 60
关于python - 根据要从另一个数组中删除的项目从Python数组中删除项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53905934/