Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用条件计算列值_Python_Pandas_Numpy - Fatal编程技术网

Python 使用条件计算列值

Python 使用条件计算列值,python,pandas,numpy,Python,Pandas,Numpy,数据帧: Date A B C D 1 10 0 0 0 2 0 25 6 7 3 0 2 5 10 4 0 10 9 7

数据帧:

Date          A          B          C          D
1            10         0           0          0
2             0         25          6          7
3             0         2           5          10
4             0         10          9          7
我试图编写一个func来计算一个扣减列,每次日期=1,扣减列==列a

如果日期不等于1,则扣减列=列B+列C-列D

最终产量

Date          A          B          C          D           Deduction       Close
1            10         0           0          0            10              10
2            10         25          6          7            24              34
3            34         2           5          10           -3              31
4            31         10          9          7            12              43
在下面的代码中,我使用shift(-1)从上一行获取列['Close']的val

下面的代码给出了我如何处理这个问题的想法,我不知道如何在自己的定义中引用该列,或者是否有某种解决方法

问题被删除并重新发布,因为我需要在几个小时内提交,上一个问题因不清楚而关闭,我们已经尝试在这一个问题中尽可能详细地阐述

Final['Deduction']=np.where(Final['Date'] ==1, Final['A'],  Final['B'] + Final['C']- Final['D'])

Final['Close']=np.where(Final['Date'] ==1, Final['Deduction'],Final['Close'].shift(-1)+ Final['Deduction'] )
Final
尝试cumsum()

Final['Deduction']=np.where(Final['Date'] ==1, Final['A'],  Final['B'] + Final['C']- Final['D'])

Final['Close']=Final['Deduction'].cumsum()
Final