上下文
我有一个.csv流程步骤,每个步骤都有一个完成日期&;时间,但它们的开始时间未知。我想确定这些流程中的项目到达部门的时间。这可以通过检查PredecessorProcessCode的“链”来计算
因此.csv字段的结构如下所示:
基本上,我想添加一个名为“PreviousDepartmentFinishDateTime”的字段,以便能够确定在制品数量、队列等。。对于流程。但是,“PredecessorProcessCode”不一定是前一个部门的完成时间,因为前一个部门的前一个部门可能开始得更早,而完成得更晚。基本上,我现在的过程如下:
现在,我的问题是: 我已经加载了400万行,并且能够决定添加“PreviousDepartmentFinishDateTime”列,但是每秒只有大约500行,这意味着我现在要等待2个多小时才能添加新列。我必须提高这个过程的速度,因为我们打算“在线”使用它
第三步。前一个过程的速度似乎太慢了。每次查找大约需要2毫秒,导致等待时间过长
我现在有了一个带有多索引ItemNumber-ProcessCode的df
代码片段如下所示:
def prev_department_finished(row):
itemno, processcode = row.name
processcode_predecessors = processesbefore(processcode)
prevdepartment = row['PrevDepartment']
df_subset = df.loc[itemno].query('Department == @prevdepartment & ProcessCode in processcode_predecessors')['FinishDateTime']
if df_subset.empty: #if no preceding department
return row['ItemStartDateTime']
else:
return df_subset.max()
df['PrevDepartmentDone'] = df.apply(prev_department_finished, axis=1)
因此,我的主要问题是:
目前没有回答
相关问题 更多 >
编程相关推荐