根据前一天的值计算参数

Calculating a parameter based on values from the previous day

我有一个 DataFrame,它是 Python 上更广泛的脚本的一部分,具有以下特征:

到目前为止,数据帧结构是这样的:

                 col1    col2      col3       col4       Condition   value to calculate
2018-01-01        5.0  0.853232  0.992774   0.65377        0.0       0.65429
2018-01-02        0.4  0.004652  0.992774   0.65377        0.0       NaN
2018-01-03        0.0  0.000000  0.992774   0.65377        0.0       NaN
2018-01-04        0.0  0.000000  0.992774   0.65377        1.0       0.33456
2018-01-05        0.4  0.004652  0.992774   0.65377        0.0       NaN
              ...       ...       ...       ...        ...       ...

'condition' 列用于归因最后一列中特定时间的值

最后一列中的缺失值应使用第 1 至第 4 列的数据进行计算,使用第 1 至第 4 列中先前 DOY 的值以及必须计算的值的同一列。

此外,如果某个值已存在于特定的 DOY,则公式应重置为使用之前添加的值开始计算。

我不确定如何将其置于循环中以执行操作,或者是否有其他替代方法来解决我正在处理的这部分代码。

您似乎需要这样的东西: def compute_value(previous_row, 行):

for index, row in df.iterrows():
      if index>0:
           previous_row = df.iloc[index-1]
           row['value to calculate'] = previous_row['col1'] * previous_row['col2'] - previous_row['col3'] * previous_row['col4']

这是你迭代的方式,但不确定是否完全理解了条件,也不确定你的意思,如果我可以扩展,请告诉我

Also, in case a value is already present at a specific DOY, the formula should reset to start calculation using the previously added value.