通过两次和三次预订确定会议室功能时间表,以确定空间用途

2024-04-29 09:42:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要计算每个小组使用会议空间的总时间。但是数据集有双重和三重预订,所以我想我需要先修复数据。披露:我的编码经验仅包括一些Dataquest课程,这是我第一次发布stackoverflow,因此我为错误和违规行为道歉

数据集的每一行都包含组ID以及开始和结束时间。它还包括预订类型,即预订、会议等。通常情况下,员工会为整个期间预留一个空间,这将创建一行,然后在知道详细信息后为每个单独的功能添加多行。他们应该分割原始的保留行,这样它就只在函数之间保留空间,但是他们将空间加倍,所以我需要根据实际保留为这些临时保留添加多行

以下是数据的基本情况:

现有数据:

functions = [['Function', 'Group', 'FunctionType', 'StartTime', 'EndTime'],
[01,01,'RES',2019/10/04 07:00,2019/10/06 17:00],
[02,01,'MTG',2019/10/05 09:00,2019/10/05 12:00],
[03,01,'LUN',2019/10/05 12:30,2019/10/05 13:30],
[04,01,'MTG',2019/10/05 14:00,2019/10/05 17:00],
[05,01,'MTG',2019/10/06 09:00,2019/10/06 12:00]]

我尝试使用for循环进行迭代:


for index, row in enumerate(functions):
    last_row_index = len(functions) - 1

    if index == last_row_index:
        pass
    else:
        current_index = index
        next_index = index + 1

    if row[3] <= functions[next_index][2]:
        next
    elif row[4] == 'RES' or row[6] < functions[next_index][6]:
        copied_current_row = row.copy()
        row[3] = functions[next_index][2]
        copied_current_row[2] = functions[next_index][3] 
        functions.append(copied_current_row)

这里似乎有一个逻辑问题,因为最后一个附加行似乎将程序放入某种循环中,我必须手动中断它。所以我相信这对有经验的人来说是显而易见的,但我还是个新手

我之所以比较函数是否为RES,是因为reserved应该从属于实际函数。但有时实际函数之间会有重叠,所以我需要创建另一个比较来决定哪一个优先,但这就是我要开始的地方

我(认为)我希望它结束的方式:

[['Function', 'Group', 'FunctionType', 'StartTime', 'EndTime'],
[01,01,'RES',2019/10/04 07:00,2019/10/05 09:00],
[02,01,'MTG',2019/10/05 09:00,2019/10/05 12:00],
[01,01,'RES',2019/10/05 12:00,2019/10/05 12:30],
[03,01,'LUN',2019/10/05 12:30,2019/10/05 13:30],
[01,01,'RES',2019/10/05 13:30,2019/10/05 14:00],
[04,01,'MTG',2019/10/05 14:00,2019/10/05 17:00],
[01,01,'RES',2019/10/05 14:00,2019/10/06 09:00],
[05,01,'MTG',2019/10/06 09:00,2019/10/06 12:00],
[01,01,'RES',2019/10/06 12:00,2019/10/06 17:00]]

通过这种方式,我可以对每个功能行的运行时间进行简单计算,并将其相加,以查看他们预订了多少空间

我在这里寻找的只是一些我应该追求的方向,我绝对不希望有人为我做这项工作。例如,我在这里走的是正确的道路,还是使用熊猫和矢量化函数更好?如果我能把握好基本方向,我想我可以搞定细节

多谢各位, AF


Tags: 数据函数index时间空间情况res经验