Поиск значения серии в pandas df, которое включает поле даты/времени ⇐ Python
-
Гость
Поиск значения серии в pandas df, которое включает поле даты/времени
У меня есть такой df pandas:
Date_Time Time_slot Veh_ID Pwr Group_ID 0 2023-03-30 00:00:01 1 100 10 100_1 1 2023-03-30 00:00:01 2 100 12 100_1 2 2023-03-30 00:00:05 1 100 3 100_1 3 2023-03-30 00:00:05 2 100 13 100_1 4 2023-03-30 00:00:22 1 100 22 100_1 5 2023-03-30 00:00:22 2 100 13 100_1 6 2023-03-30 00:00:01 1 55 8 55_1 7 2023-03-30 00:00:01 2 55 2 55_1 8 2023-03-30 00:00:05 1 55 12 55_1 9 2023-03-30 00:00:05 2 55 11 55_1 10 2023-03-30 00:22:00 1 100 7 100_2 11 2023-03-30 00:22:00 2 100 6 100_2 12 2023-03-30 00:25:00 1 100 11 100_2 13 2023-03-30 00:25:00 2 100 14 100_2 14 2023-03-30 00:23:00 1 55 7 55_2 15 2023-03-30 00:23:00 2 55 9 55_2 16 2023-03-30 00:35:00 1 55 9 55_2 17 2023-03-30 00:35:00 2 55 13 55_2 18 2023-03-30 01:35:00 1 55 10 55_2 19 2023-03-30 01:35:00 2 55 9 55_2 Мне нужно быстро найти Group_ID, который включает дату/время и Veh_ID, указанные пользователем. Под охватывает я имею в виду, что дата/время должны находиться в пределах диапазона Group_ID для этого Veh_ID: т.е. время должно находиться в интервале от start до end. диапазон времени для группы, начинающийся с указанного Veh_ID. Итак
def findGroup(date_time, veh): ... вернуть идентификатор группы для
findGroup(pd.to_datetime('2023-03-30 00:23:00'),100) возвращает 100_2
Я мог бы сделать это с помощью цикла по каждой группе, получая время начала/остановки и выполняя проверку «между», но это кажется неэффективным.
Всем спасибо.
У меня есть такой df pandas:
Date_Time Time_slot Veh_ID Pwr Group_ID 0 2023-03-30 00:00:01 1 100 10 100_1 1 2023-03-30 00:00:01 2 100 12 100_1 2 2023-03-30 00:00:05 1 100 3 100_1 3 2023-03-30 00:00:05 2 100 13 100_1 4 2023-03-30 00:00:22 1 100 22 100_1 5 2023-03-30 00:00:22 2 100 13 100_1 6 2023-03-30 00:00:01 1 55 8 55_1 7 2023-03-30 00:00:01 2 55 2 55_1 8 2023-03-30 00:00:05 1 55 12 55_1 9 2023-03-30 00:00:05 2 55 11 55_1 10 2023-03-30 00:22:00 1 100 7 100_2 11 2023-03-30 00:22:00 2 100 6 100_2 12 2023-03-30 00:25:00 1 100 11 100_2 13 2023-03-30 00:25:00 2 100 14 100_2 14 2023-03-30 00:23:00 1 55 7 55_2 15 2023-03-30 00:23:00 2 55 9 55_2 16 2023-03-30 00:35:00 1 55 9 55_2 17 2023-03-30 00:35:00 2 55 13 55_2 18 2023-03-30 01:35:00 1 55 10 55_2 19 2023-03-30 01:35:00 2 55 9 55_2 Мне нужно быстро найти Group_ID, который включает дату/время и Veh_ID, указанные пользователем. Под охватывает я имею в виду, что дата/время должны находиться в пределах диапазона Group_ID для этого Veh_ID: т.е. время должно находиться в интервале от start до end. диапазон времени для группы, начинающийся с указанного Veh_ID. Итак
def findGroup(date_time, veh): ... вернуть идентификатор группы для
findGroup(pd.to_datetime('2023-03-30 00:23:00'),100) возвращает 100_2
Я мог бы сделать это с помощью цикла по каждой группе, получая время начала/остановки и выполняя проверку «между», но это кажется неэффективным.
Всем спасибо.
Мобильная версия