我已将我的 CSV 简化如下:
Job,Task,Operator,Comment,Time,Required
Forklift,Crating,John,Daily Task,2020/11/23 00:14:59.280,Y
Truck,Crating,Steve,Daily Task,2020/11/23 01:14:59.280,N
Truck,Storage,Brain,Daily Task,2020/11/23 02:14:59.280,Y
Forklift,Crating,John,Daily Task,2020/11/23 03:14:59.280,Y
Shop Floor,Stacking,Steve,Weekly,2020/11/23 04:14:59.280,N
Truck,Storage,Brain,Daily Task,2020/11/23 06:14:59.280,Y
Forklift,Crating,John,Daily Task,2020/11/23 08:14:59.280,Y
Forklift,Crating,John,Daily Task,2020/11/23 10:14:59.280,Y
Truck,Storage,Brain,Daily Task,2020/11/23 12:14:59.280,Y
我正在寻找此任务所需的任务和之前的开始时间。所以在这种情况下,我希望输出类似于:
Job Task Operator Comment Time Previous Time
Forklift Crating John Daily Task 11/23/2020 3:14 11/23/2020 0:14
Truck Storage Brain Daily Task 11/23/2020 6:14 11/23/2020 2:14
到目前为止,我的代码找到了所需的任务并将单元格分配给 pandas DF。但我不知道如何通过 csv 循环来查找匹配行的上一次时间。
import csv
import pandas
import datetime
from datetime import datetime, timedelta
Job=[]
Task=[]
Oper=[]
Time=[]
Comment=[]
with open('Job.csv','r') as source:
reader = csv.reader((line.replace('\0','') for line in source), delimiter=",", quotechar='"')
next(reader, None)
count = 0
CurrentTime = datetime.now()
Last24HrsTime = CurrentTime - timedelta(hours=24)
print(Last24HrsTime)
for row in reader:
count += 1
Required_Row = row[5]
JobStartTime = row[4]
if JobStartTime in (None, ""):
JobStartTimeFormat = "2019/09/08 01:01:59.280" #In case there is an error and the date is blank.
else:
JobStartTimeFormat = datetime.strptime(JobStartTime, '%Y/%m/%d %H:%M:%S.%f')
JobStartTimeFormatPrint = datetime.strftime(JobStartTimeFormat, '%Y/%m/%d %H:%M')
if Required_Row == "Y" and JobStartTimeFormat >= Last24HrsTime: #Is the job required and Job start is in the last 24hrs?
JobID = row[0]
TaskID = row[1]
OperID = row[2]
SearchRow = count + 1
Job.append({'Job': row[1]})
Task.append({'Task': row[2]})
Oper.append({'Oper': row[2]})
Time.append({'Tool': 'JobStartTimeFormatPrint'})
Comment.append({'Comment': row[3]})
##Need to loop here to find preivous values
目前的输出是:
Forklift Crating John 2020/11/23 00:14 Daily Task
Truck Storage Brain 2020/11/23 02:14 Daily Task
Forklift Crating John 2020/11/23 03:14 Daily Task
Truck Storage Brain 2020/11/23 06:14 Daily Task
Forklift Crating John 2020/11/23 08:14 Daily Task
Forklift Crating John 2020/11/23 10:14 Daily Task
Truck Storage Brain 2020/11/23 12:14 Daily Task
任何想法如何循环并找到以前的事件?