Python 所有机器忙时的标志列?

Python 所有机器忙时的标志列?,python,pandas,Python,Pandas,我有一个机器上事务的数据帧,按开始时间(datetime.time列)按时间顺序排列。 机器有位置A、B、C等。 我想创建一个标志列,显示该位置的所有机器当前是否正在使用,也就是说,事务的开始时间在该位置其他机器的开始/结束时间内 我试图通过确定所有机器何时都忙来推断机器何时可以排队 我的数据帧如下所示,目前缺少“所有忙”列: 终端ID机器\u位置机器\u计数下一次传输时间所有忙 001 A 3 09:00:00 09:08:00 N 002 A 3 09:01:00 09:04:00北纬 00

我有一个机器上事务的数据帧,按开始时间(datetime.time列)按时间顺序排列。 机器有位置A、B、C等。 我想创建一个标志列,显示该位置的所有机器当前是否正在使用,也就是说,事务的开始时间在该位置其他机器的开始/结束时间内

我试图通过确定所有机器何时都忙来推断机器何时可以排队

我的数据帧如下所示,目前缺少“所有忙”列:

终端ID机器\u位置机器\u计数下一次传输时间所有忙
001 A 3 09:00:00 09:08:00 N
002 A 3 09:01:00 09:04:00北纬
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北纬
我希望创建“所有忙”列,但无法计算出逻辑

编辑:我的尝试:

df.iterrows()中的i,r的

subgr=df[(df['MACHINE\u LOCATION']==r['MACHINE\u LOCATION'])和(df['TRANS\u DTE']==
r['TRANS_DTE'])和(df['TRANS_HR']==r['TRANS_HR'])]
如果len(subgr[(subgr['TRANS_TIME']
r['TRANS_TIME']])==r['MACHINE_COUNT']:
df.loc[i,'ALL_BUSY']='Y'
其他:
df.loc[i,'ALL_BUSY']='N'
但这需要34天才能完成跑步(!!!)


任何人都可以矢量化此操作吗?

您可以使用以下代码:

df['all_are_busy'] = df.groupby(['location'])['all busy'].transform(lambda x: x.eq('Y').all())

小心:如果一个位置只有一台机器,则此值也将返回True

您想要什么?请澄清一下。以上这些都没有意义。欢迎来到StackOverflow。请花点时间阅读这篇文章,以及如何提供答案,并相应地修改你的问题。这些关于如何提出一个好问题的提示可能也很有用。很抱歉,我没有澄清我还没有“全部忙”专栏。那么,通过
groupby().transform()构建一个max_start_time和min_start_end怎么样
然后检查特定的开始时间是否在该范围内?可能是我的错,没有把这一点弄清楚,但这不足以作为解决方案。我需要对每个地点当前使用的机器数量进行滚动计数。