Jak porównywać daty w pandach: z przykładami


Aby porównać daty między dwiema kolumnami w ramce DataFrame pandy, możesz użyć następujących metod:

Metoda 1: Dodaj nową kolumnę do ramki DataFrame, która wyświetla porównanie dat

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

W tym konkretnym przykładzie dodano nową kolumnę o nazwie met_due_date , która zwraca wartość True lub False w zależności od tego, czy data w kolumnie comp_date jest wcześniejsza niż data w kolumnie due_date .

Metoda 2: Filtruj ramkę danych na podstawie porównania dat

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

Ten konkretny przykład filtruje ramkę DataFrame, aby zachować tylko wiersze, których data w kolumnie comp_date jest wcześniejsza niż data w kolumnie due_date .

Poniższe przykłady pokazują, jak w praktyce używać każdej z tych metod z następującą ramką DataFrame pand:

 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

Przykład 1: Dodaj nową kolumnę do DataFrame, która wyświetla porównanie dat

Poniższy kod pokazuje, jak dodać nową kolumnę o nazwie met_due_date , która zwraca wartość True lub False w zależności od tego, czy data w kolumnie comp_date jest wcześniejsza niż data w kolumnie 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

Dla każdego wiersza w ramce danych nowa kolumna met_due_date wskazuje, czy data w kolumnie comp_date jest wcześniejsza niż data w kolumnie due_date .

Na przykład widzimy, że zadanie A miało termin realizacji 15.04.2022 r. i datę zakończenia 14.04.2022 r.

Ponieważ data zakończenia przypadała przed terminem, wartość kolumny met_due_date wynosi True.

Przykład 2: Filtruj ramkę danych na podstawie porównania dat

Poniższy kod pokazuje, jak filtrować ramkę danych tak, aby zawierała tylko wiersze, których data w kolumnie comp_date jest wcześniejsza niż data w kolumnie 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

Nowa ramka DataFrame została przefiltrowana tak, aby zawierała tylko wiersze, których data w kolumnie comp_date jest wcześniejsza niż data w kolumnie due_date .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:

Jak utworzyć zakres dat w Pandach
Jak przekonwertować znacznik czasu na datę/godzinę w Pandach
Jak obliczyć różnicę między dwiema datami w pandach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *