Working with Durations in Python – Complete Guide for Data Science 2026
Durations (the difference between two points in time) are fundamental in data science — calculating customer lifetime, session length, time since last purchase, delivery delays, or rolling windows. Python’s timedelta and pandas Timedelta make working with durations clean, accurate, and highly performant.
TL;DR — Core Tools for Durations
timedelta→ basic arithmetic(dt2 - dt1)→ automatic duration.total_seconds(),.days, etc. → convert to numbers- Pandas
Timedeltafor vectorized operations on DataFrames
1. Basic Duration Creation and Arithmetic
from datetime import datetime, timedelta
from zoneinfo import ZoneInfo
start = datetime(2026, 3, 19, 9, 0, 0, tzinfo=ZoneInfo("UTC"))
end = datetime(2026, 3, 19, 14, 30, 0, tzinfo=ZoneInfo("UTC"))
duration = end - start
print(duration) # 5:30:00
print(duration.total_seconds()) # 19800.0
print(duration.days) # 0
2. Real-World Data Science Examples
import pandas as pd
df = pd.read_csv("sales_data.csv", parse_dates=["order_date", "delivery_date"])
# Calculate duration between two columns
df["delivery_duration"] = df["delivery_date"] - df["order_date"]
# Convert to useful units
df["days_to_deliver"] = df["delivery_duration"].dt.days
df["hours_to_deliver"] = df["delivery_duration"].dt.total_seconds() / 3600
# Example: Session duration
df["session_duration"] = df["end_time"] - df["start_time"]
df["session_minutes"] = df["session_duration"].dt.total_seconds() / 60
3. Creating Durations Manually
# Create specific durations
one_week = timedelta(weeks=1)
three_days = timedelta(days=3)
two_hours = timedelta(hours=2, minutes=30)
# Add to existing dates
future_date = datetime.now(ZoneInfo("UTC")) + timedelta(days=14)
past_date = datetime.now(ZoneInfo("UTC")) - timedelta(days=30)
4. Best Practices in 2026
- Use
Timedeltafor all pandas-based duration calculations - Always work with timezone-aware datetimes before calculating differences
- Convert durations to numeric units (
.days,.total_seconds()) for modeling - Use
pendulumfor human-readable duration strings when needed - Keep raw datetime columns and derived duration columns separate
Conclusion
Working with durations is a core skill in data science. In 2026, Python’s timedelta and pandas Timedelta make time difference calculations fast, accurate, and vectorized. Use these tools to build features like delivery time, session length, customer recency, and rolling windows with clean and professional code.
Next steps:
- Add duration-based features (days since last order, session length, etc.) to one of your current datasets