首页 >后端开发 >Python教程 >如何将前一行值合并到带有派生值的 Pandas'应用”计算中?

如何将前一行值合并到带有派生值的 Pandas'应用”计算中?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-27 10:23:30392浏览

How to Incorporate Previous Row Values into Pandas 'apply' Calculations with Derived Values?

利用 Pandas 将前一行值合并到派生值的“应用”计算中

在 Pandas 中使用数据帧时,通常有必要执行涉及使用前一行值的计算。当之前的值也在“apply”函数中计算时,这可能具有挑战性。

考虑以下数据框:

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,我们首先复制以下值D 到第一行:

df.loc[0, 'C'] = df.loc[0, 'D']

现在,对于后续行,我们可以迭代数据帧并使用循环填充 C 列的计算值:

<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 值由其先前的值以及 A 和 B 的相应值确定。生成的数据帧将如下所示:

  Index_Date   A   B    C    D
0 2015-01-31  10  10   10   10
1 2015-02-01   2   3   23   22
2 2015-02-02  10  60  290  280

通过遵循此方法,您可以有效地将先前的行值合并到“应用”计算中,即使先前的值是从相同的“应用”函数派生的。

以上是如何将前一行值合并到带有派生值的 Pandas'应用”计算中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn