Вы уже конвертировали Unix Epox в datetime
и получаете только time
df['time_ms'] = pd.to_datetime(df['time'], unit='ms').dt.time
Теперь вам нужно преобразовать строку "00:00:01.500"
в datetime
и получить только time
t1 = datetime.datetime.strptime("00:00:01.500", "%H:%M:%S.%f").time()
t2 = datetime.datetime.strptime("00:00:02.000", "%H:%M:%S.%f").time()
, а затем вы можете фильтровать DataFrame
result = df[ (t1 < df['time_ms']) & (df['time_ms'] < t2) ]
Минимальный рабочий пример:
import pandas as pd
import datetime
df = pd.DataFrame({
'time': [0,1100,1200,1300,1400,1500,1600,1700,1800],
})
df['time_ms'] = pd.to_datetime(df['time'], unit='ms').dt.time
t1 = datetime.datetime.strptime("00:00:01.500", "%H:%M:%S.%f").time()
t2 = datetime.datetime.strptime("00:00:02.000", "%H:%M:%S.%f").time()
result = df[ (t1 < df['time_ms']) & (df['time_ms'] < t2) ]
print(result)
Результат:
time time_ms
6 1600 00:00:01.600000
7 1700 00:00:01.700000
8 1800 00:00:01.800000