Как создать диапазон дат в Pandas (3 примера)


Вы можете использовать функцию pandas.date_range() для создания диапазона дат в pandas.

Эта функция использует следующий базовый синтаксис:

pandas.date_range (начало, конец, периоды, частота, …)

куда:

  • начало : Дата начала
  • конец : Дата окончания
  • периоды: количество периодов для генерации
  • freq : Используемая частота (обратитесь к этому списку псевдонимов частот)

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1. Создание диапазона дат с отдельными днями

В следующем коде показано, как создать диапазон дат, состоящий из отдельных дней с определенной датой начала и окончания:

import pandas as pd

#create 10-day date range 
pd.date_range (start='1/1/2020', end='1/10/2020')

DatetimeIndex(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04',
 '2020-01-05', '2020-01-06', '2020-01-07', '2020-01-08',
 '2020-01-09', '2020-01-10'],
 dtype='datetime64[ns]', freq='D')

Результатом является список из 10 дней, которые варьируются от указанной даты начала до указанной даты окончания.

Пример 2. Создание диапазона дат с определенным количеством периодов

В следующем коде показано, как создать диапазон дат с определенным количеством периодов, разделенных равными промежутками между определенной датой начала и окончания:

import pandas as pd

#create 10-day date range with 3 equally-spaced periods
pd.date_range (start='1/1/2020', end='1/10/2020', periods= 3 )

DatetimeIndex(['2020-01-01 00:00:00', '2020-01-05 12:00:00',
 '2020-01-10 00:00:00'],
 dtype='datetime64[ns]', freq=None)

Результатом является список из 3 равноотстоящих дней, которые варьируются от указанной даты начала до указанной даты окончания.

Пример 3. Создание диапазона дат с определенной периодичностью

В следующем коде показано, как создать диапазон дат, который начинается с определенной даты и имеет частоту шестимесячных дат начала:

import pandas as pd

#create date range with six month start dates
pd.date_range (start='1/1/2020', freq='MS', periods= 6 )

DatetimeIndex(['2020-01-01', '2020-02-01', '2020-03-01', '2020-04-01',
 '2020-05-01', '2020-06-01'],
 dtype='datetime64[ns]', freq='MS')

Результатом является список из шести дат, отстоящих друг от друга на один месяц. Обратите внимание, что « MS » означает «Начало месяца». Вы можете найти полный список псевдонимов даты здесь .

В следующем коде показано, как создать диапазон дат, который начинается с определенной даты и имеет годовую периодичность:

import pandas as pd

#create date range with six consecutive years
pd.date_range (start='1/1/2020', freq='YS', periods= 6 )

DatetimeIndex(['2020-01-01', '2021-01-01', '2022-01-01', '2023-01-01',
 '2024-01-01', '2025-01-01'],
 dtype='datetime64[ns]', freq='AS-JAN')

В результате получается список из шести дат, отстоящих друг от друга на один год.

Примечание.Полную онлайн-документацию по функции pd.date_range() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции с датами в pandas:

Как фильтровать строки Pandas DataFrame по дате
Как отсортировать Pandas DataFrame по дате
Как извлечь месяц из даты в Pandas