Как использовать, если условие в пандах с использованием логических операторов - PullRequest
0 голосов
/ 28 июня 2019

У меня есть фрейм данных

Software Product      Case Number    Created date   End date    CS date 
MDM9607.LE.1.0      2774904     2/3/2017                   3/4/2019
MDM9607.LE.1.0      2774203     8/7/2017       3/9/2018    7/8/2016
MDM9607.LE.1.0      2768088     9/3/2018                   1/2/2019 
MDM9607.LE.1.0      2767500     10/10/2016      3/4/2017   3/2/2015
MDM9607.LE.1.0      2764617     11/12/2017      8/5/2018   4/5/2016

здесь я использую два условия

if f9 f9['Created date'] < f9['End date']
    f9['Status'] = np.select([ m2], ['EOL']) 

и

if f9['Created date'] > f9['End date']
    f9['Num of days'] = (f9['Created date'] - f9['CS date']).dt.days
    m1 = f9['Num of days'].isna()
    m2 = f9['Num of days'] > 365
    m3 = f9['Num of days'] < 365
    f9['Status'] = np.select([m1, m2, m3], ['U','L', 'N']

Software Product  Case Number    Created date   End date    CS date   Sta
MDM9607.LE.1.0      2774904     2/3/2017                   3/4/2019   L
MDM9607.LE.1.0      2774203     8/7/2017       3/9/2017    7/8/2016   Y
MDM9607.LE.1.0      2768088     9/3/2018                   1/2/2019   NMDM9607.LE.1.0      2767500     10/10/2016     3/4/2017   3/2/2015   L
MDM9607.LE.1.0      2764617     11/12/2017      8/5/2018   4/5/2016   N

Я использовал код выше, но я получил

File "<ipython-input-134-3943efb08731>", line 1
                    if SyntaxError: invalid syntax

1 Ответ

0 голосов
/ 28 июня 2019

Вы можете сделать что-то вроде этого

Сохраните результат вашего сравнения в переменной типа:

data=f9["Created Date"]>f9["End Date"]

Это вернет список логических значений. С его помощью вы можете получить соответствующие строки, которые удовлетворяют этому условию, и продолжить работу.

new_rows=f9[data]

Или вы можете использовать метод .iterrows () для фрейма данных, перебирать все записи и проверять условие if для всех записей по отдельности

for index,item in f9.iterrows(): 
    if item["Created Date"]>item["End Date"]:
       #Perform your operation

Я бы также порекомендовал вам разобрать вышеприведенные столбцы как даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...