Атрибут time аксессора dt
Атрибут time аксессора dt применяется к Series
с типом данных datetime64 и извлекает временную часть
из каждого элемента. Результатом является Series, содержащая
объекты типа datetime.time без информации о дате.
Этот атрибут полезен, когда нужно проигнорировать дату
и работать только со временем.
Синтаксис
ser.dt.time
Пример
Создадим Series с датами и временем и извлечём
временную часть:
import pandas as pd
ser = pd.Series(pd.date_range(
'2026-01-15 10:30:45',
periods=5,
freq='4h'
))
print(ser.dt.time)
Результат выполнения кода:
0 10:30:45
1 14:30:45
2 18:30:45
3 22:30:45
4 02:30:45
dtype: object
Пример
Извлечём время из Series, содержащей только даты.
В этом случае временная часть будет нулевой:
import pandas as pd
ser = pd.Series(pd.date_range(
'2026-01-15',
periods=4,
freq='D'
))
print(ser.dt.time)
Результат выполнения кода:
0 00:00:00
1 00:00:00
2 00:00:00
3 00:00:00
dtype: object
Пример
Сравним значения времени из Series с конкретным
временем. Например, выберем все строки, у которых
время позже 12:00:
import pandas as pd
from datetime import time
ser = pd.Series(pd.date_range(
'2026-01-15 08:00:00',
periods=6,
freq='2h'
))
res = ser[ser.dt.time > time(12, 0)]
print(res)
Результат выполнения кода:
2 2026-01-15 12:00:00
3 2026-01-15 14:00:00
4 2026-01-15 16:00:00
5 2026-01-15 18:00:00
dtype: datetime64[ns]
Пример
Извлечём время из столбца DataFrame и создадим
отдельный столбец с этой информацией:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4],
'dt': pd.date_range(
'2026-01-15 09:15:30',
periods=4,
freq='45min'
)
})
df['time'] = df['dt'].dt.time
print(df)
Результат выполнения кода:
a dt time
0 1 2026-01-15 09:15:30 09:15:30
1 2 2026-01-15 10:00:30 10:00:30
2 3 2026-01-15 10:45:30 10:45:30
3 4 2026-01-15 11:30:30 11:30:30