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