Вы можете использовать функцию 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