在 pandas 中,apply() 函数通常用于将函数应用于 DataFrame 的每一行。然而,当也使用相同的 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 | 2 80 |
2015-02-03 | 10 | 100 | NaN | 250 |
这目标是导出 C 列:
要实现此目的,我们首先设置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_Date | A | B | C | D |
---|---|---|---|---|
2015-01-31 | 10 | 10 | 10 | 1 0 |
2015-02-01 | 2 | 3 | 23 | 22 |
2015-02-02 | 10 | 60 | 290 | 280 |
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3