我有一个机器上事务的数据帧,按开始时间(a)按时间顺序排列日期时间.time列)。 机器有位置A、B、C等。 我想创建一个标志列,显示该位置中的所有计算机当前是否都在使用,也就是说,事务的开始时间在该位置上其他计算机的开始/结束时间内。你知道吗
我试图通过确定所有机器何时都忙来推断机器何时可以排队。你知道吗
我的数据帧如下所示,目前缺少“所有忙”列:
terminal ID MACHINE_LOCATION MACHINE_COUNT TRANS_TIME NEXT_TIME all busy
001 A 3 09:00:00 09:08:00 N
002 A 3 09:01:00 09:04:00 N
003 A 3 09:02:00 09:07:00 Y
002 A 3 09:06:00 09:07:00 Y
004 B 3 09:07:00 09:09:00 N
我希望创建“all busy”列,但无法计算逻辑。你知道吗
编辑:我的尝试:
for i, r in df.iterrows():
subgr = df[(df['MACHINE_LOCATION'] == r['MACHINE_LOCATION'])&(df['TRANS_DTE'] ==
r['TRANS_DTE'])&(df['TRANS_HR'] == r['TRANS_HR'])]
if len(subgr[(subgr['TRANS_TIME'] < r['TRANS_TIME'])&(subgr['NEXT_TIME'] >
r['TRANS_TIME'])]) == r['MACHINE_COUNT']:
df.loc[i,'ALL_BUSY'] = 'Y'
else:
df.loc[i,'ALL_BUSY'] = 'N'
但这需要34天才能完成运行(!!!)你知道吗
有人能把这个操作矢量化吗?你知道吗
您可以使用以下代码:
小心:如果一个位置上只有一台机器,这也会返回True
相关问题 更多 >
编程相关推荐