5 min read min read
DateTime Operations
Learn to add, subtract, and compare dates
DateTime Operations
Add or Subtract Days
code.py
import pandas as pd
df = pd.DataFrame({
'Order_Date': pd.to_datetime(['2024-01-15', '2024-02-20'])
})
# Add 7 days
df['Delivery_Date'] = df['Order_Date'] + pd.Timedelta(days=7)
print(df)Output:
Order_Date Delivery_Date
0 2024-01-15 2024-01-22
1 2024-02-20 2024-02-27
Add Weeks, Months, Years
code.py
# Add different time units
df['Plus_1_Week'] = df['Order_Date'] + pd.Timedelta(weeks=1)
df['Plus_30_Days'] = df['Order_Date'] + pd.Timedelta(days=30)
# For months, use DateOffset
df['Plus_1_Month'] = df['Order_Date'] + pd.DateOffset(months=1)
df['Plus_1_Year'] = df['Order_Date'] + pd.DateOffset(years=1)Find Difference Between Dates
code.py
df = pd.DataFrame({
'Start': pd.to_datetime(['2024-01-01', '2024-02-15']),
'End': pd.to_datetime(['2024-01-10', '2024-03-01'])
})
# Difference in days
df['Days_Between'] = (df['End'] - df['Start']).dt.days
print(df)Output:
Start End Days_Between
0 2024-01-01 2024-01-10 9
1 2024-02-15 2024-03-01 15
Calculate Age from Birthdate
code.py
df = pd.DataFrame({
'Name': ['John', 'Sarah'],
'Birthday': pd.to_datetime(['1990-05-15', '1985-08-20'])
})
today = pd.Timestamp.today()
df['Age'] = ((today - df['Birthday']).dt.days / 365).astype(int)
print(df)Filter by Date
code.py
df = pd.DataFrame({
'Date': pd.to_datetime(['2024-01-15', '2024-02-20', '2024-03-10']),
'Sales': [100, 150, 200]
})
# Sales after February 1st
recent = df[df['Date'] > '2024-02-01']
print(recent)Output:
Date Sales
1 2024-02-20 150
2 2024-03-10 200
Filter Date Range
code.py
# Sales between Jan 10 and Feb 25
start = '2024-01-10'
end = '2024-02-25'
filtered = df[(df['Date'] >= start) & (df['Date'] <= end)]
print(filtered)Get Today's Date
code.py
# Current date and time
now = pd.Timestamp.now()
print(now)
# Just today's date
today = pd.Timestamp.today().date()
print(today)Compare Dates
code.py
df = pd.DataFrame({
'Due_Date': pd.to_datetime(['2024-01-15', '2024-12-31']),
'Task': ['Past', 'Future']
})
today = pd.Timestamp.today()
df['Is_Overdue'] = df['Due_Date'] < today
print(df)Quick Reference
| Operation | Code |
|---|---|
| Add days | + pd.Timedelta(days=7) |
| Add weeks | + pd.Timedelta(weeks=2) |
| Add months | + pd.DateOffset(months=1) |
| Add years | + pd.DateOffset(years=1) |
| Difference | (date1 - date2).dt.days |
| Today | pd.Timestamp.today() |
Key Points
- pd.Timedelta() for adding days/weeks/hours
- pd.DateOffset() for adding months/years
- Subtract dates to get difference
- .dt.days converts to number of days
- Compare dates with <, >, ==
- Filter dates like numbers
What's Next?
Learn about time series - data that changes over time with regular intervals.