Атрибут freq
Атрибут freq аксессора dt применяется к Series
с типом данных datetime и возвращает строку с кодом
частоты, если временной ряд имеет регулярную
периодичность. Если частота не установлена,
возвращается None.
Синтаксис
ser.dt.freq
Атрибут не принимает никаких параметров и возвращает
объект DateOffset, строку с кодом частоты или
None.
Пример
Давайте создадим временной ряд с месячной периодичностью и посмотрим его частоту:
import pandas as pd
ser = pd.Series(
[1, 2, 3],
index=pd.date_range('2026-01-01', periods=3, freq='ME')
)
print(ser.dt.freq)
Результат выполнения кода:
"ME"
В результате мы получили строку ME, которая обозначает
ежемесячную частоту (month end).
Пример
Рассмотрим ситуацию, когда частота не установлена. Создадим Series с произвольными датами:
import pandas as pd
ser = pd.Series(
[10, 20, 30],
index=pd.to_datetime(['2026-01-01', '2026-01-05', '2026-01-10'])
)
print(ser.dt.freq)
Результат выполнения кода:
"None"
В данном случае возвращается None, так как даты
не имеют регулярного интервала.
Пример
Частота может быть задана явно при создании
временного ряда с помощью метода date_range:
import pandas as pd
ser = pd.Series(
[5, 10, 15],
index=pd.date_range('2026-01-01', periods=3, freq='D')
)
print(ser.dt.freq)
Результат выполнения кода:
"D"
Код D означает дневную частоту (daily).
Пример
Атрибут freq можно использовать для проверки
регулярности временного ряда перед выполнением
операций, требующих равномерной периодичности:
import pandas as pd
ser = pd.Series(
[100, 200, 300],
index=pd.date_range('2026-01-01', periods=3, freq='h')
)
if ser.dt.freq is not None:
print("Series has frequency:", ser.dt.freq)
else:
print("No frequency set")
Результат выполнения кода:
"Series has frequency: h"
В результате мы видим, что у Series установлена часовая частота.