在 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() 函数中结合使用初始化和迭代。
df.loc[0, 'C'] = df.loc[0, 'D']
for i in range(1, len(df)):
df.loc[i, 'C'] = df.loc[i - 1, 'C'] * df.loc[i, 'A'] df.loc[i, 'B']
结果
此方法将有效地使用所需的计算值填充“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
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3