过滤多个 between_time 和 ID 条件

Filtering Multiple between_time and ID condition

我知道这些工具在特定时间范围内会发生一些事件,不幸的是,这些事件在不同工具的不同时间范围内发生。我正在努力将数据过滤到那些 2-3 小时的时间范围内,以便我可以量化改进并比较修复前后。我知道我们可以使用 pandas between_time 根据时间过滤数据,但是,我不确定如何通过 eqp_id 和不同的时间范围过滤数据。我正在做的是一个有点粗略的方法,如果你们中的任何人对我的问题有更好更有效的解决方案,我将不胜感激。

dmv2361=report1[report1['Eqp_ID'] == 'dmv2361']
df_2361=ALC2361.between_time('01:30', '04:30')

dmv2362=report1[report1['Eqp_ID'] == 'dmv2362']
df_2362=ALC2362.between_time('03:30', '06:30')

dmv2363=report1[report1['Eqp_ID'] == 'dmv2363']
dmv2363=ALC2363.between_time('05:30', '08:30')

I am expecting something like this or better way

alc= report1[report1["Eqp_ID"].isin(['dmv2360', 'dmv2361', 'dmv2362', 'dmv2363', 'dmv2370', 'dmv2371', 'dmv2372', 'dmv2373', 'dmv2374'])].sort_values(by='Start_Date', ascending=True). between_time('23:30-02:30', '01:30-04:30', 'so on') 

您可以使用 indexer_between_time 在单个 loc:

中完成此操作
report1[(report1['Eqp_ID'] == 'dmv2361') && report1.index.indexer_between_time('01:30', '04:30')]

注意:这就是 between_time 中所谓的内幕。