Datums in panda's vergelijken: met voorbeelden


U kunt de volgende methoden gebruiken om datums tussen twee kolommen in een pandas DataFrame te vergelijken:

Methode 1: Voeg een nieuwe kolom toe aan het DataFrame waarin de datumvergelijking wordt weergegeven

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

In dit specifieke voorbeeld wordt een nieuwe kolom toegevoegd met de naam met_due_date , die True of False retourneert, afhankelijk van of de datum in de comp_date- kolom vóór de datum in de due_date- kolom ligt.

Methode 2: Filter het DataFrame op basis van datumvergelijking

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

Dit specifieke voorbeeld filtert het DataFrame om alleen rijen te behouden waarvan de datum in de comp_date- kolom eerder is dan de datum in de due_date- kolom.

De volgende voorbeelden laten zien hoe u elk van deze methoden in de praktijk kunt gebruiken met de volgende panda’s 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

Voorbeeld 1: Voeg een nieuwe kolom toe aan het DataFrame waarin de datumvergelijking wordt weergegeven

De volgende code laat zien hoe u een nieuwe kolom toevoegt met de naam met_due_date , die True of False retourneert, afhankelijk van of de datum in de kolom comp_date vóór de datum in de kolom due_date ligt.

 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

Voor elke rij in het DataFrame geeft de nieuwe kolom met_due_date aan of de datum in de kolom comp_date vóór de datum in de kolom due_date ligt.

We kunnen bijvoorbeeld zien dat taak A een vervaldatum had van 15-04-2022 en een voltooiingsdatum van 14-04-2022.

Omdat de voltooiingsdatum vóór de vervaldatum lag, is de waarde van de kolom met_due_date True.

Voorbeeld 2: Filter het DataFrame op basis van datumvergelijking

De volgende code laat zien hoe u het DataFrame kunt filteren zodat het alleen rijen bevat waarvan de datum in de kolom comp_date vóór de datum in de kolom due_date ligt.

 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

Het nieuwe DataFrame is gefilterd zodat het alleen rijen bevat waarvan de datum in de kolom comp_date vóór de datum in de kolom due_date ligt.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:

Hoe u een datumbereik in Pandas maakt
Hoe tijdstempel naar datum/tijd in Panda’s te converteren
Hoe het verschil tussen twee datums in panda’s te berekenen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert