Метод total_seconds
Метод total_seconds применяется к Series
с типом данных timedelta или datetime
через аксессор dt и возвращает общее количество секунд
в виде числа с плавающей точкой. Метод не принимает параметров.
Результатом является Series с типом float64.
Синтаксис
ser.dt.total_seconds()
Пример
Давайте создадим временной ряд с разницей во времени и получим общее число секунд:
import pandas as pd
from datetime import timedelta
ser = pd.Series([
timedelta(seconds=30),
timedelta(minutes=2, seconds=15),
timedelta(hours=1, minutes=10)
])
res = ser.dt.total_seconds()
print(res)
Результат выполнения кода:
0 30.0
1 135.0
2 4200.0
dtype: float64
Пример
Метод также работает с разницей между датами
в столбце DataFrame:
import pandas as pd
from datetime import datetime
df = pd.DataFrame({
'a': [datetime(2026, 9, 1, 10, 0),
datetime(2026, 9, 1, 12, 30),
datetime(2026, 9, 1, 14, 45)],
'b': [datetime(2026, 9, 1, 10, 5),
datetime(2026, 9, 1, 12, 35),
datetime(2026, 9, 1, 14, 50)]
})
df['diff'] = df['b'] - df['a']
df['seconds'] = df['diff'].dt.total_seconds()
print(df)
Результат выполнения кода:
a b diff seconds
0 2026-09-01 10:00:00 2026-09-01 10:05:00 0 days 00:05:00 300.0
1 2026-09-01 12:30:00 2026-09-01 12:35:00 0 days 00:05:00 300.0
2 2026-09-01 14:45:00 2026-09-01 14:50:00 0 days 00:05:00 300.0
Пример
Метод может использоваться для вычисления длительности в секундах для больших временных интервалов:
import pandas as pd
from datetime import timedelta
ser = pd.Series([
timedelta(days=1, hours=2, minutes=30),
timedelta(days=0, hours=0, minutes=45),
timedelta(days=5, hours=3, minutes=15)
])
res = ser.dt.total_seconds()
print(res)
Результат выполнения кода:
0 95400.0
1 2700.0
2 443700.0
dtype: float64
Смотрите также
-
атрибут
seconds,
который возвращает секунды без учёта дней -
атрибут
days,
который возвращает количество дней -
атрибут
microseconds,
который возвращает микросекунды -
атрибут
nanoseconds,
который возвращает наносекунды