Оператор If для предварительной обработки данных не работает. Пожалуйста, кто-нибудь может это понять

#python-3.x #loops #if-statement #debugging #data-preprocessing

#python-3.x #петли #if-оператор #отладка #предварительная обработка данных

Вопрос:

Я предварительно обрабатываю необработанный файл Excel с датой начала («sd» в коде) и датой окончания («ed» в коде) для определенных задач, и я написал код if для нового списка / столбца, который показывает статус каждой задачи. А именно не начато, продолжается и завершено. И очевидные условия заключаются в том, что если sd пуст, то задача не запущена, если sd присутствует, но ed пуст, тогда задача выполняется, и если sd и ed оба присутствуют, то задача завершена. Но только условие для выполненных работ. Я использую spyder с python 3.8

 #INVOICE PRE-PROCESSING REV 00
import pandas as pd

#Reading excel file
df1 = pd.read_excel("Invoices Detail.xls")

#Reading Columns from excel
wf,tk,sd,ed,dd,st,vn,jn,iv,an,lk = df1['Workflow ID'].tolist(),df1['Task'].tolist(),df1['Start_Date'].tolist(),df1['End_Date'].tolist(),df1['Delay(Days)'].tolist(),df1['Status'].tolist(),df1['Vendor Name'].tolist(),df1['JOB  Number'].tolist(),df1['INV_AMT'].tolist(),df1['Assignee/Completed by'].tolist(),df1['Alfresco Link'].tolist()
#New Columns for output file
a = len(tk)
stage,tk_name,status = [None]*a,[None]*a,[None]*a
#Start and End Dates for each task
t1_sdate,t1_edate,t2_sdate,t2_edate,t3_sdate,t3_edate,t4_sdate,t4_edate,t5_sdate,t5_edate,t6_sdate,t6_edate,
    t7_sdate,t7_edate,t8_sdate,t8_edate,t9_sdate,t9_edate,t10_sdate,t10_edate,t11_sdate,t11_edate,t12_sdate,t12_edate = 
        [None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,
            [None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a,[None]*a

for i in range(0,a): 
    if tk[i] == "Upload Invoice and Initiate Workflow(Document Controller)":
        stage[i] = "S1: Uploading amp; Initiation"
        tk_name[i] = "T1: Upload Invoice and Initiate Workflow(Document Controller)"
        t1_sdate[i] = sd[i]
        t1_edate[i] = ed[i]
        if t1_sdate[i] == pd.NaT:
            status[i] = "Not Started"
        elif t1_sdate[i] != pd.NaT and t1_edate[i] == pd.NaT:
            status[i] = "On Going"
        elif t1_sdate[i] != pd.NaT and t1_edate[i] != pd.NaT:
            status[i] = "Completed"
    elif tk[i] == "Document Controller Attach DO and Fillout the Related Details (ACL)":
        stage[i] = "S2: Filling Details amp; Attaching DO"
        tk_name[i] = "T2: Document Controller Attach DO and Fillout the Related Details"
        t2_sdate[i] = sd[i]
        t2_edate[i] = ed[i]
        if t2_sdate[i] == pd.NaT:
            status[i] = "Not Started"
        elif t2_sdate[i] != pd.NaT and t2_edate[i] == pd.NaT:
            status[i] = "On Going"
        elif t2_sdate[i] != pd.NaT and t2_edate[i] != pd.NaT:
            status[i] = "Completed"
 

Комментарии:

1. Добро пожаловать в SO. Пожалуйста, рассмотрите возможность добавления кодов с возможностью копирования / вставки вместо изображений, чтобы мы могли лучше ответить на ваши вопросы.

2. извините, я новичок в стеке

3. Можете ли вы также добавить фрагмент Invoices Detail.xls ?