我试图找出如何将列的前一行的元素与数据帧中当前行的不同列进行比较。例如:
data = pd.DataFrame({'a':['1','1','1','1','1'],'b':['0','0','1','0','0']})
输出:
a b
0 1 0
1 1 0
2 1 1
3 1 0
4 1 0
现在我想创建一个新列,询问(data['a']+data['b'])是否大于同一列的前一个值。 理论上:
data['c'] = np.where(data['a']==( the previous row value of data['a'] ),min((data['b']+( the previous row value of data['c'] )),1),data['b'])
所以理论上我可以输出:
a b c
0 1 0 0
1 1 0 0
2 1 1 1
3 1 0 1
4 1 0 1
我想知道如何做到这一点,因为我正在尝试重新创建这个excel条件语句:=IF(A70=A69,MIN((P70+Q69),1),P70)
其中data['a']=a列,data['b']=p列
如果有人对如何做到这一点有任何想法,我将非常感谢你的建议。你知道吗
根据您的陈述:'询问(data['a']+data['b'])是否大于同一列的先前值的新列'我可以建议您通过以下方式解决:
但它不查找同一列的前一个值。 如果您尝试在
np.where()
中写入df['c'].shift(1)
,它将引发KeyError:'c'。你知道吗相关问题 更多 >
编程相关推荐