Python:如何迭代行并根据前一行计算值

2024-01-01

我有截至 2020 年 7 月的销售数据,并希望使用回收率来预测未来 3 个月。 这是数据框:

test = pd.DataFrame({'Country':['USA','USA','USA','USA','USA'],
             'Month':[6,7,8,9,10],
              'Sales':[100,200,0,0,0],
              'Recovery':[0,1,1.5,2.5,3]
             })

它看起来是这样的:

现在,我想在该数据框中添加一个“预测”列:

第 3 行的第一个值 300 基本上是(200 * 1.5/1)。这将是我们接下来的基值,所以下一个值,即 500 基本上是(300 * 2.5/1.5)等等。 如何从第 3 行开始迭代每一行?我尝试使用 shift() 但无法迭代行。


你可以这样做:

import pandas as pd
test = pd.DataFrame({'Country':['USA','USA','USA','USA','USA'],
             'Month':[6,7,8,9,10],
              'Sales':[100,200,0,0,0],
              'Recovery':[0,1,1.5,2.5,3]
             })

test['Prediction'] = test['Sales']
for i in range(1, len(test)):
    #prevent division by zero
    if test.loc[i-1, 'Recovery'] != 0:
        test.loc[i, 'Prediction'] = test.loc[i-1, 'Prediction'] * test.loc[i, 'Recovery'] / test.loc[i-1, 'Recovery']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:如何迭代行并根据前一行计算值 的相关文章

随机推荐