我需要计算每个小组使用会议空间的总时间。但是数据集有双重和三重预订,所以我想我需要先修复数据。披露:我的编码经验仅包括一些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
目前没有回答
相关问题 更多 >
编程相关推荐