Series.dt.floor()

Метод Series.dt.floor() округляет временные метки вниз до указанной частоты. Удобен для приведения логов к одинаковым интервалам. Аналогичные методы — dt.ceil() (вверх) и dt.round() (к ближайшему).

Сигнатура

Series.dt.floor(freq, ambiguous="raise", nonexistent="raise")

Параметры

  • freq — частота: "min", "H", "D", "15min" и т. д.

  • ambiguous — поведение при двусмысленном времени (DST).

  • nonexistent — поведение при несуществующих метках (DST).

Возвращаемое значение

Series округлённых временных меток.

Примеры

Пример 1. Округление до часа

import pandas as pd

s = pd.Series(pd.to_datetime([
    "2026-05-15 09:23:00",
    "2026-05-15 09:57:30",
]))
print(s.dt.floor("H"))
0   2026-05-15 09:00:00
1   2026-05-15 09:00:00
dtype: datetime64[ns]

Пример 2. Округление до минуты

Метки с миллисекундной точностью от лога Arduino:

import pandas as pd

s = pd.Series(pd.to_datetime([
    "2026-05-15 10:00:35.250",
    "2026-05-15 10:00:42.870",
]))
print(s.dt.floor("min"))
0   2026-05-15 10:00:00
1   2026-05-15 10:00:00
dtype: datetime64[ns]

Пример 3. До 15 минут

import pandas as pd

s = pd.Series(pd.to_datetime([
    "2026-05-15 10:07:00",
    "2026-05-15 10:23:00",
    "2026-05-15 10:59:00",
]))
print(s.dt.floor("15min"))
0   2026-05-15 10:00:00
1   2026-05-15 10:15:00
2   2026-05-15 10:45:00
dtype: datetime64[ns]

Пример 4. До дня

import pandas as pd

s = pd.Series(pd.to_datetime([
    "2026-05-15 23:55:00",
    "2026-05-16 00:05:00",
]))
print(s.dt.floor("D"))
0   2026-05-15
1   2026-05-16
dtype: datetime64[ns]

Пример 5. Группировка показаний по 5 минут

import pandas as pd

df = pd.DataFrame({
    "ts":   pd.to_datetime([
        "2026-05-15 10:01", "2026-05-15 10:04",
        "2026-05-15 10:06", "2026-05-15 10:09",
    ]),
    "temp": [22.0, 22.2, 22.5, 22.7],
})
df["bucket"] = df["ts"].dt.floor("5min")
print(df.groupby("bucket")["temp"].mean())
bucket
2026-05-15 10:00:00    22.10
2026-05-15 10:05:00    22.60
Name: temp, dtype: float64

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.