微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 在Pandas中有一种方法可以在dataframe.apply中使用之前的行值,同时在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

要求:

 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

C列是根据D的值得出2015-01-31.

然后我需要使用C的值2015-01-31并乘以2015-02-01的A值并添加B.

我已尝试使用if else进行应用和移位,这会产生一个关键错误.

解决方法:

首先,创建派生值:

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']


  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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐