Как создать диапазон дат в 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.