#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
?