A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://stackoverflow.com/questions/441147/how-can-i-subtract-a-day-from-a-python-date below:

python - How to subtract a day from a date?

You can also use pandas pd.Timedelta('1D') (it's extremely flexible and you can even pass something like pd.Timedelta('1d 5h 9s') for 1 day, 5 hours and 9 seconds).

A convenient thing about pandas is that its datetime objects are built on datetime.datetime, so any operation involving Python's datetime objects work fine on pandas datetime objects and vice versa.

import pandas as pd
import numpy as np
from datetime import datetime, date, timedelta

datetime.now() - pd.Timedelta('1d')           # datetime.datetime(2023, 2, 21, 15, 35, 23, 603832)
pd.Timestamp('now') - timedelta(days=1)       # Timestamp('2023-02-21 15:35:23.741866')
pd.Timestamp('now') - pd.Timedelta('1d')      # Timestamp('2023-02-21 15:35:23.882746')
pd.Timestamp('now') - np.timedelta64(1, 'D')  # Timestamp('2023-02-21 15:35:24.032356')

date(2022, 2, 22) - pd.Timedelta('10d')        # datetime.date(2022, 2, 12)

The advantage of pandas is that you can perform vectorized operations (even if the dtype is object). You can use either of pd.Timedelta/datetime.timedelta/np.timedelta64.

pd.Series([datetime(2023,2,22), datetime(2023,2,21), datetime(2023,2,20)]) - pd.Timedelta('1d')
pd.Series([date(2023,2,22), date(2023,2,21), date(2023,2,20)]) - timedelta(days=1)
pd.Series([date(2023,2,22), date(2023,2,21), date(2023,2,20)]) - np.timedelta64(1, 'D')

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4