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:
- arg: Et heltal-, streng-, float-, liste- eller dict-objekt, der skal konverteres til Date time-objekt.
- dag først: Boolesk værdi, placerer dagen først, hvis Sandt.
- første år: Boolesk værdi, placerer året først, hvis True.
- utc: Boolesk værdi, Returnerer tiden i UTC, hvis Sand.
- 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.