Hoe u het formaat kunt opgeven in pandas.to_datetime


U kunt de functie pandas.to_datetime() gebruiken om een tekenreekskolom te converteren naar een datetime-kolom in een pandas DataFrame.

Wanneer u deze functie gebruikt, kunt u het format- argument gebruiken om het formaat van uw datum op te geven om fouten te voorkomen bij het converteren van string naar datetime.

Deze functie gebruikt de volgende basissyntaxis:

 df[' datetime '] = pd. to_datetime (df[' my_date_column '], format=' %m%d%Y %H:%M:%S '])

Dit zijn de meest voorkomende richtlijnen die u kunt opgeven voor het format- argument:

  • %m : Maand als getal met nul (01, 02, … 12)
  • %d : Dag van de maand als getal met nul (01, 02, … 31)
  • %y : Jaar met eeuw als getal (2020, 2021, 2022, etc.)
  • %H : Uur (24-uurs klok) als een getal opgevuld met nullen (00, 01, … 23)
  • %I : Tijd (12-uursklok) als een getal opgevuld met nullen (01, 02, … 12)
  • %p : AM of PM
  • %M : Minuut in de vorm van een getal aangevuld met nullen (00, 01, … 59)
  • %S : tweede in de vorm van een getal aangevuld met nullen (00, 01, … 59)

Voor een volledige lijst met richtlijnen, zie deze pagina .

In het volgende voorbeeld ziet u hoe u het format- argument in de functie to_datetime() in verschillende scenario’s kunt gebruiken.

Voorbeeld: Geef het formaat op in pandas.to_datetime

Stel dat we het volgende panda’s DataFrame hebben dat informatie bevat over de totale verkopen op verschillende data in een winkel:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': ['10012023 4:15:30', '10042023 7:16:04', '10062023 9:25:00',
                            '10142023 15:30:50', '10152023 18:15:00'],
                   ' sales ': [100, 140, 235, 120, 250]})

#view DataFrame
print (df)

                dirty dates
0 10012023 4:15:30 100
1 10042023 7:16:04 140
2 10062023 9:25:00 235
3 10142023 15:30:50 120
4 10152023 18:15:00 250

#view data type of each column in DataFrame
print ( df.dtypes )

date object
dirty int64
dtype:object

We kunnen zien dat de datumkolom momenteel een stringkolom (dwz objectkolom) is.

Stel dat we pandas.to_datetime() proberen te gebruiken om deze kolom naar datetime te converteren:

 #attempt to convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '])

ParserError: month must be in 1..12: 10012023 4:15:30 present at position 0

We ontvangen een foutmelding omdat de functie pandas.to_datetime() de datum- en tijdnotatie waarin de datumkolom zich momenteel bevindt, niet herkent.

We kunnen ook het formaatargument gebruiken om het formaat van de kolom op te geven:

 #convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '], format=' %m%d%Y %H:%M:%S ')

#view DataFrame
print (df)

                 dirty dates
0 2023-10-01 04:15:30 100
1 2023-10-04 07:16:04 140
2 2023-10-06 09:25:00 235
3 2023-10-14 15:30:50 120
4 2023-10-15 18:15:00 250

#view updated type of each column
print ( df.dtypes )

date datetime64[ns]
dirty int64
dtype:object

We kunnen zien dat de datumkolom met succes is geconverteerd naar een datetime-kolom en dat we geen fouten hebben ontvangen, omdat we het format- argument hebben gebruikt om de exacte notatie op te geven waarin de datumkolom zich bevond.

Opmerking : u kunt hier de volledige documentatie van de pandas to_datetime() -functie vinden.

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 bij panda’s te berekenen

Einen Kommentar hinzufügen

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