我在Python中有一个包含4列的数据框,并想根据此Excel条件创建一个新列:= IF(AND(B2 = B1; D2 = D1; D2 = 14); 1; 0)。我是Python的新手,不确定如何启动。.
我应该创建一个for循环吗?如果是这样,如何参考上一行?
答案 0 :(得分:0)
让df['newCol']
为新列,下面的代码应该起作用('B'和'D'分别为相应的列名。
import pandas as pd
import numpy as np
df = pd.DataFrame({'B': [1,2,2,3], 'D': [2,14,14,4]})
print(df)
>>> df
B D
0 1 2
1 2 14
2 2 14
3 3 4
df['newCol']= [np.NaN]+[1 if (df.loc[i-1,'B']==df.loc[i,'B'] and df.loc[i-1,'d']==df.loc[i,'D'] and df.loc[i,'D']==14) else 0 for i in range(1,len(df))]
print(df)
>>> df
B D newCol
0 1 2 NaN
1 2 14 0.0
2 2 14 1.0
3 3 4 0.0