pandas.Timestamp.floor — pandas 2.2.3 documentation (original) (raw)
Timestamp.floor(freq, ambiguous='raise', nonexistent='raise')#
Return a new Timestamp floored to this resolution.
Parameters:
freqstr
Frequency string indicating the flooring resolution.
ambiguousbool or {‘raise’, ‘NaT’}, default ‘raise’
The behavior is as follows:
- bool contains flags to determine if time is dst or not (note that this flag is only applicable for ambiguous fall dst dates).
- ‘NaT’ will return NaT for an ambiguous time.
- ‘raise’ will raise an AmbiguousTimeError for an ambiguous time.
nonexistent{‘raise’, ‘shift_forward’, ‘shift_backward, ‘NaT’, timedelta}, default ‘raise’
A nonexistent time does not exist in a particular timezone where clocks moved forward due to DST.
- ‘shift_forward’ will shift the nonexistent time forward to the closest existing time.
- ‘shift_backward’ will shift the nonexistent time backward to the closest existing time.
- ‘NaT’ will return NaT where there are nonexistent times.
- timedelta objects will shift nonexistent times by the timedelta.
- ‘raise’ will raise an NonExistentTimeError if there are nonexistent times.
Raises:
ValueError if the freq cannot be converted.
Notes
If the Timestamp has a timezone, flooring will take place relative to the local (“wall”) time and re-localized to the same timezone. When flooring near daylight savings time, use nonexistent
and ambiguous
to control the re-localization behavior.
Examples
Create a timestamp object:
ts = pd.Timestamp('2020-03-14T15:32:52.192548651')
A timestamp can be floored using multiple frequency units:
ts.floor(freq='h') # hour Timestamp('2020-03-14 15:00:00')
ts.floor(freq='min') # minute Timestamp('2020-03-14 15:32:00')
ts.floor(freq='s') # seconds Timestamp('2020-03-14 15:32:52')
ts.floor(freq='ns') # nanoseconds Timestamp('2020-03-14 15:32:52.192548651')
freq
can also be a multiple of a single unit, like ‘5min’ (i.e. 5 minutes):
ts.floor(freq='5min') Timestamp('2020-03-14 15:30:00')
or a combination of multiple units, like ‘1h30min’ (i.e. 1 hour and 30 minutes):
ts.floor(freq='1h30min') Timestamp('2020-03-14 15:00:00')
Analogous for pd.NaT
:
When rounding near a daylight savings time transition, use ambiguous
ornonexistent
to control how the timestamp should be re-localized.
ts_tz = pd.Timestamp("2021-10-31 03:30:00").tz_localize("Europe/Amsterdam")
ts_tz.floor("2h", ambiguous=False) Timestamp('2021-10-31 02:00:00+0100', tz='Europe/Amsterdam')
ts_tz.floor("2h", ambiguous=True) Timestamp('2021-10-31 02:00:00+0200', tz='Europe/Amsterdam')