对需要更新每一行的数组或数据框上的Python操作

时间:2018-05-18 17:53:38

标签: python pandas numpy

我正在尝试学习python / pandas,并且不知道如何处理这个

假设:

df =

              P1      P2      P3       P4      P5
Date                                                  
2017-01-20   808.23  135.60  107.64  53.20  57.66
2017-01-27   835.77  138.30  109.29  53.18  56.13
2017-02-03   810.07  137.92  110.28  52.34  55.05
2017-02-10   827.48  139.87  109.27  56.23  56.22
2017-02-17   845.06  142.91  110.02  56.74  57.35
2017-02-24   845.23  145.89  110.29  57.83  57.48
2017-03-03   849.85  147.77  111.20  56.68  57.09
2017-03-10   852.20  146.88  110.95  56.45  54.54
2017-03-17   852.31  149.57  111.67  57.79  55.79
2017-03-24   845.60  147.77  112.17  56.37  56.81

假设我有一个最初设置为x = 1000的更新变量。在第一行完成操作后,我使用x作为等式的一部分,假设我得到第一行的最终结果= 1005。然后我想要x = 1005,并且在第二行中使用x执行上述等式,其中第二行的最终结果= 1010.然后我想要更新x = 1010并在整个数据帧中执行相同的操作。我想它必须用for循环做一些事情,并且我认为在将所述数据帧转换为numpy数组之后执行此操作可能更容易/更好但我希望获得有关迭代数据集并更新a的一些提示变量基于它之前的行的结果。

任何提示都会很棒!非常感谢。

1 个答案:

答案 0 :(得分:0)

最新的pandas版本包含一个用于迭代行的内置函数。

for index, row in df.iterrows():
    # do some logic here and modify the value of x as per your needs
    # Or, if you want it faster use itertuples()