Як порівнювати фініки у панд: з прикладами
Ви можете використовувати наступні методи для порівняння дат між двома стовпцями в 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
Як розрахувати різницю між двома датами в пандах