Pandas: как выбрать строки между двумя датами


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

 df[df. date . between (' 2022-01-02 ', ' 2022-01-06 ')]

В этом конкретном примере выбираются все строки в DataFrame в период с 02.01.2022 по 06.01.2022.

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

Пример: выберите строки между двумя датами в Pandas

Предположим, у нас есть следующий DataFrame pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': pd. date_range (start=' 1/1/2022 ', periods= 8 ),
                   ' sales ': [18, 20, 15, 14, 10, 9, 8, 12],
                   ' returns ': [5, 7, 7, 9, 12, 3, 2, 4]})

#view DataFrame
print (df)

        date sales returns
0 2022-01-01 18 5
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3
6 2022-01-07 8 2
7 2022-01-08 12 4

Мы можем использовать следующий синтаксис, чтобы выбрать только строки между датой 02.01.2022 и 06.01.2022:

 #select all rows where date is between 2022-01-02 and 2022-01-06
df[df. date . between (' 2022-01-02 ', ' 2022-01-06 ')]

              date sales returns
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3

Обратите внимание, что выбраны только строки между датами 2022-01-02 и 2022-01-06.

Если вы хотите, вы также можете установить даты начала и окончания вне функции Between() :

 #define start and end dates
start_date = ' 2022-01-02 '
end_date = ' 2022-01-06 '

#select all rows where date is between start and end
df[df. date . between (start_date, end_date)]


              date sales returns
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3

Это дает тот же результат.

Обратите внимание: если ваш столбец даты не имеет распознаваемого формата даты и времени, вам может потребоваться сначала использовать следующий код, чтобы преобразовать его в формат даты и времени:

 df[' date '] = pd. to_datetime (df[' date ']) 

После этого вы можете использовать функцию Between() для выбора строк между определенными датами.

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

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

Как создать диапазон дат в Pandas
Как извлечь месяц из даты в Pandas
Как преобразовать временную метку в дату/время в Pandas

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *