pandas.Timestamp.ceil — pandas 2.2.3 documentation (original) (raw)
Timestamp.ceil(freq, ambiguous='raise', nonexistent='raise')#
Return a new Timestamp ceiled to this resolution.
Parameters:
freqstr
Frequency string indicating the ceiling 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, ceiling will take place relative to the local (“wall”) time and re-localized to the same timezone. When ceiling 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 ceiled using multiple frequency units:
ts.ceil(freq='h') # hour Timestamp('2020-03-14 16:00:00')
ts.ceil(freq='min') # minute Timestamp('2020-03-14 15:33:00')
ts.ceil(freq='s') # seconds Timestamp('2020-03-14 15:32:53')
ts.ceil(freq='us') # microseconds Timestamp('2020-03-14 15:32:52.192549')
freq
can also be a multiple of a single unit, like ‘5min’ (i.e. 5 minutes):
ts.ceil(freq='5min') Timestamp('2020-03-14 15:35:00')
or a combination of multiple units, like ‘1h30min’ (i.e. 1 hour and 30 minutes):
ts.ceil(freq='1h30min') Timestamp('2020-03-14 16:30: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 01:30:00").tz_localize("Europe/Amsterdam")
ts_tz.ceil("h", ambiguous=False) Timestamp('2021-10-31 02:00:00+0100', tz='Europe/Amsterdam')
ts_tz.ceil("h", ambiguous=True) Timestamp('2021-10-31 02:00:00+0200', tz='Europe/Amsterdam')