我正在尝试学习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的一些提示变量基于它之前的行的结果。
任何提示都会很棒!非常感谢。
答案 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()