pandas.Series.dt.round#
- Series.dt.round(*args, **kwargs)[source] #
Perform round operation on the data to the specified freq.
- Parameters:
- freqstr or Offset
The frequency level to round the index to. Must be a fixed frequency like ‘S’ (second) not ‘ME’ (month end). See frequency aliases for a list of possible freq values.
- ambiguous‘infer’, bool-ndarray, ‘NaT’, default ‘raise’
Only relevant for DatetimeIndex:
‘infer’ will attempt to infer fall dst-transition hours based on order
bool-ndarray where True signifies a DST time, False designates a non-DST time (note that this flag is only applicable for ambiguous times)
‘NaT’ will return NaT where there are ambiguous times
‘raise’ will raise an AmbiguousTimeError if there are ambiguous times.
- nonexistent‘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.
- Returns:
- DatetimeIndex, TimedeltaIndex, or Series
Index of the same type for a DatetimeIndex or TimedeltaIndex, or a Series with the same index for a Series.
- Raises:
- ValueError if the freq cannot be converted.
Notes
If the timestamps have a timezone, rounding will take place relative to the local ("wall") time and re-localized to the same timezone. When rounding near daylight savings time, use
nonexistent
andambiguous
to control the re-localization behavior.Examples
DatetimeIndex
>>> rng = pd.date_range('1/1/2018 11:59:00', periods=3, freq='min') >>> rng DatetimeIndex(['2018年01月01日 11:59:00', '2018年01月01日 12:00:00', '2018年01月01日 12:01:00'], dtype='datetime64[ns]', freq='min') >>> rng.round('h') DatetimeIndex(['2018年01月01日 12:00:00', '2018年01月01日 12:00:00', '2018年01月01日 12:00:00'], dtype='datetime64[ns]', freq=None)
Series
>>> pd.Series(rng).dt.round("h") 0 2018年01月01日 12:00:00 1 2018年01月01日 12:00:00 2 2018年01月01日 12:00:00 dtype: datetime64[ns]
When rounding near a daylight savings time transition, use
ambiguous
ornonexistent
to control how the timestamp should be re-localized.>>> rng_tz = pd.DatetimeIndex(["2021年10月31日 03:30:00"], tz="Europe/Amsterdam")
>>> rng_tz.floor("2h", ambiguous=False) DatetimeIndex(['2021年10月31日 02:00:00+01:00'], dtype='datetime64[ns, Europe/Amsterdam]', freq=None)
>>> rng_tz.floor("2h", ambiguous=True) DatetimeIndex(['2021年10月31日 02:00:00+02:00'], dtype='datetime64[ns, Europe/Amsterdam]', freq=None)