Как сравнивать даты в пандах: с примерами


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

Способ 1. Добавьте в DataFrame новый столбец, в котором отображается сравнение дат.

 df[' met_due_date '] = df[' comp_date '] < df[' due_date ']

В этом конкретном примере добавляется новый столбец с именем met_due_date , который возвращает True или False в зависимости от того, находится ли дата в столбце comp_date перед датой в столбце Due_date .

Способ 2. Фильтрация DataFrame на основе сравнения дат.

 df_met_due_date = df[df[' comp_date '] < df[' due_date ']]

В этом конкретном примере DataFrame фильтруется, чтобы сохранять только строки, дата которых в столбце comp_date предшествует дате в столбце Due_date .

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' task ': ['A', 'B', 'C', 'D'],
                   ' due_date ': ['4-15-2022', '5-19-2022', '6-14-2022', '10-24-2022'],
                   ' comp_date ': ['4-14-2022', '5-23-2022', '6-24-2022', '10-7-2022']})

#convert due_date and comp_date columns to datetime format
df[[' due_date ', ' comp_date ']] = df[[' due_date ', ' comp_date ']]. apply (pd. to_datetime )

#view DataFrame
print (df)

  task due_date comp_date
0 A 2022-04-15 2022-04-14
1 B 2022-05-19 2022-05-23
2 C 2022-06-14 2022-06-24
3 D 2022-10-24 2022-10-07

Пример 1. Добавьте в DataFrame новый столбец, в котором отображается сравнение дат.

Следующий код показывает, как добавить новый столбец с именем met_due_date , который возвращает True или False в зависимости от того, находится ли дата в столбце comp_date перед датой в столбце Due_date .

 import pandas as pd

#create new column that shows if completion date is before due date
df[' met_due_date '] = df[' comp_date '] < df[' due_date ']

#view updated DataFrame
print (df)

  task due_date comp_date met_due_date
0 A 2022-04-15 2022-04-14 True
1 B 2022-05-19 2022-05-23 False
2 C 2022-06-14 2022-06-24 False
3 D 2022-10-24 2022-10-07 True

Для каждой строки в DataFrame новый столбец met_due_date указывает, находится ли дата в столбце comp_date перед датой в столбце Due_date .

Например, мы видим, что задача A имела срок выполнения 15.04.2022 и дату завершения 14.04.2022.

Поскольку дата завершения предшествовала дате выполнения, значение столбца met_due_date равно True.

Пример 2. Фильтрация DataFrame на основе сравнения дат

В следующем коде показано, как отфильтровать DataFrame, чтобы он содержал только строки, дата которых в столбце comp_date предшествует дате в столбце Due_date .

 import pandas as pd

#filter for rows where completion date is before due date
df_met_due_date = df[df[' comp_date '] < df[' due_date ']]

#view results
print (df_met_due_date)

  task due_date comp_date
0 A 2022-04-15 2022-04-14
3 D 2022-10-24 2022-10-07

Новый DataFrame был отфильтрован и содержит только строки, дата которых в столбце comp_date предшествует дате в столбце Due_date .

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

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

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

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

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