当前位置 : 主页 > 编程语言 > python >

python – 在Pandas中有一种方法可以在dataframe.apply中使用之前的行值,同时在apply中

来源:互联网 收集:自由互联 发布时间:2021-06-25
我有以下数据帧: 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-0
我有以下数据帧:

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
网友评论