Python:向后滚动函数

Python:向后滚动函数,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个数据框,它有两列(即审计值和滚动总和)。滚动总和3列包含最后3个审核值的滚动总和。Dataframe如下所示: df1 audit_value rolling_sum_3 Fixed_audit 0 4 NA 3 1 5 NA 3 2 3 12 3 3 1

我有一个数据框,它有两列(即审计值和滚动总和)。滚动总和3列包含最后3个审核值的滚动总和。Dataframe如下所示:

df1

        audit_value  rolling_sum_3  Fixed_audit
0       4             NA              3
1       5             NA              3
2       3             12              3
3       1             9               1
4       2             6               2
5       1             4               1
6       4             7               3
现在,我想在rolling_sum_3列上应用条件,并找出该值是否大于5,如果是,则查看audit_值的最后3个值,并找出大于3的值。如果审计值的最后3个值中的任意值大于3,则将这些值替换为3并放入新列(称为固定审计),否则在新列中保留审计值的旧值。我在pandas中找不到任何执行回滚功能的内置函数。有谁能建议在某些列上执行回滚功能的简单有效的方法吗?

df1['fixed\u audit']=df1['audit\u value']
对于范围(3,len(df1))中的i:
如果(df1.iloc[i].滚动求和3>5):
如果df1.loc[i-1,'audit\u value']>3,则df1.loc[i-1,'fixed\u audit']=3,否则df1.loc[i-1,'audit\u value']
如果df1.loc[i-2,'audit\U value']>3,则df1.loc[i-2,'audit\U value']=3,否则df1.loc[i-2,'audit\U value']
如果df1.loc[i-3,'fixed_audit']=3,则df1.loc[i-3,'audit_value']>3,否则df1.loc[i-3,'audit_value']

您能发布预期的输出吗?@Roshansantosh我已经修改了问题并添加了输出您的修复审计逻辑仍然不清楚。你能解释得更清楚一点吗?我补充了更多的解释。希望它现在能有意义。请包括你到目前为止所做的尝试。