Python | Pandas.to_datetime()

Når en CSV-fil importeres, og der laves en dataramme, læses Dato-klokkeslæt-objekterne i filen som et strengobjekt i stedet for et Date Time-objekt. Derfor er det meget svært at udføre operationer som tidsforskel på en streng i stedet for en Date Time. objekt. Pandas to_datetime() metoden hjælper med at konvertere streng Date time til Python Dato tid objekt.

Pandas.to_datetime() Syntaks

Syntaks: pandas.to_datetime(arg, errors='raise', dayfirst=False, yearfirst=False, utc=Ingen, box=True, format=None, exact=True, unit=None, infer_datetime_format=False, origin='unix', cache=False)

Parametre:

  1. arg: Et heltal-, streng-, float-, liste- eller dict-objekt, der skal konverteres til Date time-objekt.
  2. dag først: Boolesk værdi, placerer dagen først, hvis Sandt.
  3. første år: Boolesk værdi, placerer året først, hvis True.
  4. utc: Boolesk værdi, Returnerer tiden i UTC, hvis Sand.
  5. format: Streng input til at fortælle positionen for dag, måned og år.

Returtype: Dato tid

Pandas.to_datetime() i Pandas eksempel

Pandaer to_datetime() bruges til at konvertere forskellige datatyper til datetime-objekter. Vi vil se forskellige eksempler på, hvordan man bruger det:

Konverter en Pandas-streng til Datetime

Brug Pandas.to_datetime() for at konvertere dato- og tidsdata gemt som tekster til datetime-objekter. Formatet består af dato og klokkeslæt.

Python3




import> pandas as pd> # date string> d_string> => '2023-09-17 14:30:00'> # Convert the string to datetime> dt_obj> => pd.to_datetime(d_string)> print> (dt_obj)>

Produktion:

2023-09-17 14:30:00 

Konverter Pandas numeriske værdier til Datetime

Datetime-objekterne kan oprettes ud fra numeriske tal, der repræsenterer tid, f.eks. sekunder siden Unix-epoken. Vi kan angive enheden for inputdata ved at bruge enhedsargumentet.

Python3




import> pandas as pd> # Sample numerical value representing seconds since the Unix epoch> unix_timestamp> => 1721700500> # Convert to datetime using 's' (seconds) as the unit> dt_obj> => pd.to_datetime(unix_timestamp, unit> => 's'> )> print> (dt_obj)>

Produktion:

2024-07-23 02:08:20 

Konverter Pandas Column til DateTime

Dette vil forklare, hvordan man arbejder med dato- og tidsdata ved hjælp af Pandas bibliotek. Hovedformålet er at transformere oplysninger om dato og klokkeslæt fra en CSV-fil til et format, der gør analysen lettere at forstå og mere nyttig.

For linket til den anvendte CSV-fil, Klik her .

Eksempel 1: Konvertering af datoformat ved hjælp af pandaer

String to Date I det følgende eksempel læses en csv-fil, og datokolonnen i Dataframe konverteres til Date Time-objekt fra et strengobjekt.

Python3




# Importing the pandas package> import> pandas as pd> # Making a data frame from a CSV file> data> => pd.read_csv(> '/content/todatetime.csv'> )> # Overwriting data after changing the 'Date' format> data[> 'Date'> ]> => pd.to_datetime(data[> 'Date'> ])> # Corrected: Added quotes around 'Date'> # Info of the data> data.info()> # Display the data> print> (data.head())>

Produktion:

 RangeIndex: 1000 entries, 0 to 999 Data columns (total 2 columns):  # Column Non-Null Count Dtype  --- ------ -------------- -----   0 Date 1000 non-null datetime64[ns]  1 Time 1000 non-null object  dtypes: datetime64[ns](1), object(1) memory usage: 15.8+ KB  Date Time 0 1993-08-06 12:42 PM 1 1996-03-31 6:53 AM 2 1993-04-23 11:17 AM 3 2005-03-04 1:00 PM 4 1998-01-24 4:47 PM 

Som vist på billedet var kolonnen Data Type of Date et objekt, men efter at have brugt to_datetime(), blev det konverteret til et date time-objekt.

Eksempel 2: Konvertering af tidsformat ved hjælp af pandaer

Undtagelse under konvertering Time-objekt kan også konverteres med denne metode. Men da der ikke er angivet en dato i kolonnen Tid, og derfor vil Pandas sætte Dags dato automatisk i så fald.

Python3




# importing pandas package> import> pandas as pd> # making data frame from csv file> data> => pd.read_csv(> '/content/todatetime.csv'> )> # overwriting data after changing format> data[> 'Time'> ]> => pd.to_datetime(data[> 'Time'> ])> # info of data> data.info()> # display> print> (data.head())>

Produktion:

 RangeIndex: 1000 entries, 0 to 999 Data columns (total 2 columns):  # Column Non-Null Count Dtype  --- ------ -------------- -----   0 Date 1000 non-null object   1 Time 1000 non-null datetime64[ns] dtypes: datetime64[ns](1), object(1) memory usage: 15.8+ KB  Date Time 0 8/6/1993 2023-10-12 12:42:00 1 3/31/1996 2023-10-12 06:53:00 2 4/23/1993 2023-10-12 11:17:00 3 3/4/2005 2023-10-12 13:00:00 4 1/24/1998 2023-10-12 16:47:00 

Som vist i outputtet er en dato (2018-07-07), der er dagens dato, allerede tilføjet med Date time-objektet.