如何使用python逻辑将一个作业的结束时间设置为下一个作业的开始时间?

时间:2019-12-05 08:39:04

标签: python dataframe

我必须实现一种逻辑,其中一个作业的结束时间将成为下一个作业的开始时间并打印它们。 我不想执行此计划。 数据以数据框形式出现

Start Time = datetime.datetime.now().strftime("%H:%M:%S") 
End Time = datetime.datetime.now().strftime("%H:%M:%S") 

如何在循环中使用开始时间和结束时间,以便像这样打印数据框。 例如:

Master Job   Start Time   End Time
IM_BRIDGE    03:27:15     03:27:21
RECORDTYPE   03:27:21     03:27:35
ACCOUNT      03:27:35     03:27:55
MEDAFF       03:27:55     03:28:05

您能帮我如何在python中实现逻辑吗?

1 个答案:

答案 0 :(得分:1)

根据我对您问题的有限理解,尝试给出答案

import pandas as pd
import datetime
import time

data = [('IM_BRIDGE', '', ''), ('RECORDTYPE', '', ''), ('ACCOUNT', '', ''), ('MEDAFF', '', '')]

dtframe = pd.DataFrame(data, columns=['Master Job', 'Start Time', 'End Time'])

for index, item in enumerate(dtframe.get_values()):
    if index == 0:
        dtframe.xs(0)['Start Time'] = datetime.datetime.now().strftime("%H:%M:%S")
        time.sleep(2)
        dtframe.xs(0)['End Time'] = datetime.datetime.now().strftime("%H:%M:%S")
        time.sleep(2)
        continue

    if dtframe.xs(index-1)['End Time']:
        dtframe.xs(index)['Start Time'] = dtframe.xs(index-1)['End Time']
        dtframe.xs(index)['End Time'] = datetime.datetime.now().strftime("%H:%M:%S")
    time.sleep(2)

print dtframe

在少数几个地方使用time.sleep来区分开始时间和结束时间。

输出:

   Master Job Start Time  End Time
0   IM_BRIDGE   15:05:17  15:05:19
1  RECORDTYPE   15:05:19  15:05:21
2     ACCOUNT   15:05:21  15:05:23
3      MEDAFF   15:05:23  15:05:25