Атрибут dt.second
Атрибут second применяется к Series
с типом данных datetime через аксессор dt
и возвращает секунды в виде целых чисел от 0 до 59.
Этот атрибут полезен, когда требуется извлечь секунды из временных меток
для анализа или фильтрации данных по времени.
Синтаксис
Series.dt.second
Пример
Давайте создадим Series с временными метками
и извлечём из них секунды:
import pandas as pd
ser = pd.Series(pd.date_range('2026-01-01 12:15:30', periods=5, freq='15S'))
res = ser.dt.second
print(res)
Результат выполнения кода:
0 30
1 45
2 0
3 15
4 30
dtype: int32
Пример
Извлечём секунды из Series с произвольными датами и временем:
import pandas as pd
ser = pd.Series(pd.to_datetime([
'2026-05-10 08:05:07',
'2026-05-10 08:05:15',
'2026-05-10 08:05:45'
]))
res = ser.dt.second
print(res)
Результат выполнения кода:
0 7
1 15
2 45
dtype: int32
Пример
Используем полученные секунды для фильтрации строк:
import pandas as pd
ser = pd.Series(pd.date_range('2026-01-01 12:00:00', periods=10, freq='10S'))
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'b': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100],
'time': ser
})
filtered = df[df['time'].dt.second > 30]
print(filtered)
Результат выполнения кода:
a b time
4 5 50 2026-01-01 12:00:40
5 6 60 2026-01-01 12:00:50
6 7 70 2026-01-01 12:01:00
7 8 80 2026-01-01 12:01:10
8 9 90 2026-01-01 12:01:20
9 10 100 2026-01-01 12:01:30
Пример
Если Series содержит значения, которые не являются датой и временем,
доступ к атрибуту second вызовет ошибку:
import pandas as pd
ser = pd.Series([1, 2, 3])
try:
res = ser.dt.second
print(res)
except AttributeError as e:
print("Error: " + str(e))
Результат выполнения кода:
Error: Can only use .dt accessor with datetimelike values