Come confrontare le date nei panda: con esempi


È possibile utilizzare i seguenti metodi per confrontare le date tra due colonne in un DataFrame panda:

Metodo 1: aggiungi una nuova colonna al DataFrame che visualizza il confronto delle date

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

Questo particolare esempio aggiunge una nuova colonna chiamata met_due_date che restituisce True o False a seconda che la data nella colonna comp_date sia precedente alla data nella colonna due_date .

Metodo 2: filtra DataFrame in base al confronto delle date

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

Questo particolare esempio filtra il DataFrame per mantenere solo le righe la cui data nella colonna comp_date è precedente alla data nella colonna due_date .

I seguenti esempi mostrano come utilizzare ciascuno di questi metodi nella pratica con i seguenti DataFrame panda:

 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

Esempio 1: aggiungi una nuova colonna al DataFrame che visualizza il confronto delle date

Il codice seguente mostra come aggiungere una nuova colonna denominata met_due_date che restituisce True o False a seconda che la data nella colonna comp_date sia precedente alla data nella colonna 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

Per ogni riga nel DataFrame, la nuova colonna met_due_date indica se la data nella colonna comp_date è precedente alla data nella colonna due_date .

Ad esempio, possiamo vedere che l’Attività A aveva una data di scadenza il 15/04/2022 e una data di completamento il 14/04/2022.

Poiché la data di completamento era precedente alla data di scadenza, il valore della colonna met_due_date è True.

Esempio 2: filtra il DataFrame in base al confronto delle date

Il codice seguente mostra come filtrare DataFrame per contenere solo righe la cui data nella colonna comp_date è precedente alla data nella colonna 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

Il nuovo DataFrame è stato filtrato per contenere solo righe la cui data nella colonna comp_date è precedente alla data nella colonna due_date .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Come creare un intervallo di date in Pandas
Come convertire il timestamp in data/ora in Pandas
Come calcolare la differenza tra due date nei panda

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *