Итерировать по строкам, если оператор - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть датафрейм в Python с 4 столбцами, и я хотел бы создать новый столбец на основе этого условия Excel: = IF (AND (B2 = B1; D2 = D1; D2 = 14); 1; 0). Я новичок в Python и не знаю, с чего начать ..

Должен ли я создать цикл for? Если да, то как обратиться к предыдущему ряду?

1 Ответ

0 голосов
/ 15 апреля 2019

пусть 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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...