遍历行,如果语句

时间:2019-04-15 09:01:42

标签: python pandas loops dataframe

我在Python中有一个包含4列的数据框,并想根据此Excel条件创建一个新列:= IF(AND(B2 = B1; D2 = D1; D2 = 14); 1; 0)。我是Python的新手,不确定如何启动。.

我应该创建一个for循环吗?如果是这样,如何参考上一行?

1 个答案:

答案 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