”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何通过“apply()”使用前一行值计算 DataFrame 中的列?

如何通过“apply()”使用前一行值计算 DataFrame 中的列?

发布于2024-11-13
浏览:186

How to Calculate a Column in a DataFrame Using Previous Row Values with `apply()`?

使用 apply() 迭代 DataFrame 并考虑先前的值

在 pandas 中,apply() 函数通常用于将函数应用于 DataFrame 的每一行。然而,当也使用相同的 apply() 方法计算前一行值时,就会出现挑战。

考虑以下情况DataFrame:

Index_DateABCD
2015-01-311010NaN10
2015-02-0123NaN22
2015-02-0210 60NaN2 80
2015-02-0310100NaN250

这目标是导出 C 列:

  • 对于 2015-01-31,将其设置为 D 的值。
  • 对于后续行,将 C 的前一行值乘以A 的当前行值并将其添加到 B 的当前行值。

解决方案:

要实现此目的,我们首先设置2015-01-31 的 C 初始值:

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

然后,我们迭代剩余的行并使用所需的计算更新 C 值:

for i in range(1, len(df)):
    df.loc[i, 'C'] = df.loc[i-1, 'C'] * df.loc[i, 'A']   df.loc[i, 'B']

这些之后的最终 DataFrame操作:

Index_DateABCD
2015-01-311010101 0
2015-02-01232322
2015-02-021060290280
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3