Метод normalize
Метод normalize применяется к Series
с типом данных datetime через аксессор dt
и возвращает новые временные метки, в которых время
установлено на полночь (00:00:00). Метод не принимает
параметров и часто используется для группировки данных
по датам без учёта времени.
Синтаксис
ser.dt.normalize()
Пример
Создадим серию с датами и временем и применим метод
normalize к ней:
import pandas as pd
ser = pd.Series(pd.date_range('2026-01-01 10:30:00', periods=3, freq='D'))
res = ser.dt.normalize()
print(res)
Результат выполнения кода:
0 2026-01-01
1 2026-01-02
2 2026-01-03
dtype: datetime64[ns]
Пример
Теперь создадим серию с произвольными временными метками и посмотрим, как метод убирает время:
import pandas as pd
ser = pd.Series(pd.to_datetime(['2026-05-15 23:59:59', '2026-12-31 12:00:00', '2026-07-20 00:00:00']))
res = ser.dt.normalize()
print(res)
Результат выполнения кода:
0 2026-05-15
1 2026-12-31
2 2026-07-20
dtype: datetime64[ns]
Пример
Метод normalize особенно полезен при группировке.
Посмотрим, как он помогает группировать данные по датам,
игнорируя время:
import pandas as pd
df = pd.DataFrame({
'dates': pd.date_range('2026-01-01 08:00:00', periods=3, freq='12H'),
'values': [1, 2, 3, 4, 5, 6]
})
df['date_only'] = df['dates'].dt.normalize()
res = df.groupby('date_only')['values'].sum()
print(res)
Результат выполнения кода:
date_only
2026-01-01 3
2026-01-02 12
2026-01-03 6
Name: values, dtype: int64