Як порівнювати фініки у панд: з прикладами


Ви можете використовувати наступні методи для порівняння дат між двома стовпцями в pandas DataFrame:

Спосіб 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 .

Наступні приклади показують, як використовувати кожен із цих методів на практиці з такими pandas DataFrame:

 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
Як розрахувати різницю між двома датами в пандах

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *