停止计数特定阈值?

时间:2017-09-08 20:29:51

标签: python function pandas numpy

我根据其他几列来计算列。但是,当所有数字的累积总和达到特定阈值时(在我的情况下,当我达到预算的顶部时),我想停止进行计算,并且在列之后的所有内容中仅返回0。我尝试了嵌套功能,而且它没有工作,只是说它只是说' str'和' int'无法添加。以下是它现在的样子:

def total(PC):
    for C in PC:
        if np.cumsum(C) <= budget_var1:
            return pol_cost 
        else:
            C == 0
    def pol_cost(x):
        if 9500000 <= x.CRV or x.CRV < 50 or x.MDI <= MDI_var:
            return 0
        if (x.CI < 40 ):
            return x.CRV
        elif (60 <= x.CI <80):
            return x.CRV*((100-x.CI)/(100-var_var))**x.Cost_Escalation_N

df1['Policy_Cost_Y1'] = df1.apply(total, axis = 1)

我尝试了几种组合,但都没有成功。内部函数pol_cost独立时工作得很好。由于我尝试尽可能高效,因此我不想在计算出值后将值更改为0。一旦达到我的阈值(budget_var1),我想要一个硬停止,然后用0填充列的其余部分。

编辑:这就是df1与&#39; Policy_Cost_Y1&#39; (格式为I&#39; m创建)添加了格式参考:

   budget_var1 = 9


 CRV     MDI    CI    'Policy_Cost_Y1'
  1.5     80    30         2
  3.0     90    95         3
  4.25    75    67         4
  10.0    90    87         0
  6.5     40    55         0
  2.0     56    65         0

0 个答案:

没有答案