在 Pandas 中应用前一行值的计算
在 Pandas 中,在数据操作期间遇到将前一行值合并到计算中的挑战并不困难罕见。其中一个场景涉及在使用 apply() 函数计算新列时需要使用前一行的值。
考虑一个场景,其中我们有一个具有以下结构的 DataFrame:
Index_Date A B C D ================================ 2015-01-31 10 10 Nan 10 2015-02-01 2 3 Nan 22 2015-02-02 10 60 Nan 280 2015-02-03 10 100 Nan 250
我们的目标是用计算值填充“C”列。对于第一行,“C”源自“D”。对于后续行,“C”的计算方法是将前一行的“C”值乘以当前行的“A”值并加上“B”值。
Approach
为了实现这一点,我们在 apply() 函数中结合使用初始化和迭代。
<code class="python">df.loc[0, 'C'] = df.loc[0, 'D']</code>
<code class="python">for i in range(1, len(df)): df.loc[i, 'C'] = df.loc[i - 1, 'C'] * df.loc[i, 'A'] + df.loc[i, 'B']</code>
结果
此方法将有效地使用所需的计算值填充“C”列:
Index_Date A B C D ================================ 2015-01-31 10 10 10 10 2015-02-01 2 3 23 22 2015-02-02 10 60 290 280 2015-02-03 10 100 3000 250
以上是如何使用'apply()”函数根据 Pandas 中的前一行值计算列?的详细内容。更多信息请关注PHP中文网其他相关文章!