可为Pandas数据帧调整的迭代函数?

2024-05-19 06:47:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我建立了一种财务预测模型。它很长,我不知道我会用什么样的函数来完成它。基本上,我需要根据上一年来计算一年的预计支出,然后重新排列清单的优先级,这样上一个财政年度购买的东西就会降到最低点。我试着计算30年。我知道这可以通过一个循环来完成,但是,可用于支出的预算每年都在变化。在

下面是我试图实现的数据帧的一个示例:

    Budget_Y1 = 400.00
    Budget_Y2 = 300.00

  DF1
Part           RankY1     CostY1     SpendY1    RankY2  CostY2   SpendY2

Transmission      1         400       400         4         0       0
Tires             2         200        0          1        200     200
Windshield        3         100        0          2        100     100
Wipers            4          20        0          3         20      0

我的数据最终要比这复杂得多,涉及数百万行。在

现在,我根据前一年分别计算每一年,这样我就可以轻松地更改每年的可用预算,以便运行不同的融资方案。在

我的问题很简单,是否有一个函数(或函数类型)可以根据上一年的情况计算每年,并且每年都有不同的预算,这样我就不必手工编写所有的计算代码了?在

我是在看一个发电机来做类似的事情还是其他的功能? 本质上,它类似于摊销计算器。在

现在我用这个代码来计算每年的成本,因为每年的预算都不一样:

^{pr2}$

编辑以获得更清晰的示例。在


Tags: 数据函数代码模型示例财务df1budget
1条回答
网友
1楼 · 发布于 2024-05-19 06:47:28

你还不清楚你想达到什么目标。在

下面是一个关于函数的循环:

def budget_calculations(df, year_budget):
    df.loc[(df['RankY2']<4), 'CostY2'] = df['CostY1']

    df['Spend_Y2'] = np.where((df.Cost_Y2.cumsum(<=year_budget), df.Cost_Y2, 0)

    return df.sort_values('RankY3', ascending = False)


for budget in budget_list:
    df = budget_calculation(df, budget)

这将遍历预算列表(例如[100, 250, 300])并输出一个新的pd数据帧在下一次迭代中使用。在

如果要计算每个迭代中的预算:

^{pr2}$

并计算了明年的预算。在

最后,您可以返回项目和预算,如下所示:

budget_each_year = []
for n in range(30):
    df, budget = calculate_year(df, budget)
    budget_each_year.append(budget)

这将为所有迭代创建一个预算列表。在

相关问题 更多 >

    热门问题