Pitone | Pandas.to_datetime()

Quando viene importato un file CSV e viene creato un frame di dati, gli oggetti Date Time nel file vengono letti come un oggetto stringa anziché come un oggetto Date Time Pertanto è molto difficile eseguire operazioni come Differenza temporale su una stringa anziché su Date Time oggetto. Il metodo to_datetime() di Panda aiuta a convertire la stringa Data e ora in Pitone Oggetto data/ora.

Pandas.to_datetime() Sintassi

Sintassi: pandas.to_datetime(arg, errori='raise', dayfirst=False, yearfirst=False, utc=None, box=True, format=Nessuno, esatto=Vero, unit=Nessuno, infer_datetime_format=False, origin='unix', cache=Falso)

parametri:

  1. argomento: Un oggetto intero, stringa, float, elenco o dict da convertire in oggetto Date time.
  2. primo giorno: Valore booleano, inserisce il giorno prima se True.
  3. primo anno: Valore booleano, inserisce l'anno per primo se True.
  4. utc: Valore booleano, restituisce l'ora in UTC se True.
  5. formato: Input di stringa per indicare la posizione di giorno, mese e anno.

Tipo di reso: Appuntamento

Pandas.to_datetime() nell'esempio di Pandas

Panda to_datetime() viene utilizzato per convertire diversi tipi di dati in oggetti datetime. Vedremo diversi esempi su come utilizzarlo:

Converti una stringa Panda in Datetime

Per convertire i dati di data e ora salvati come testo in oggetti datetime, utilizzare Pandas.to_datetime(). Il formato è costituito dalla data e dall'ora.

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)>

Produzione:

2023-09-17 14:30:00 

Converti i valori numerici dei panda in Datetime

Gli oggetti datetime possono essere creati da numeri numerici che rappresentano il tempo, come i secondi trascorsi dall'epoca di Unix. Possiamo specificare l'unità dei dati di input utilizzando l'argomento unit.

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)>

Produzione:

2024-07-23 02:08:20 

Converti la colonna Panda in DateTime

Questo spiegherà come lavorare con i dati di data e ora utilizzando il file Biblioteca dei panda. L'obiettivo principale è trasformare le informazioni su data e ora da un file CSV in un formato che renda l'analisi più facile da comprendere e più utile.

Per il collegamento al file CSV utilizzato, clicca qui .

Esempio 1: Conversione del formato della data utilizzando i Panda

String to Date Nell'esempio seguente, viene letto un file CSV e la colonna della data del frame di dati viene convertita in un oggetto Date Time da un oggetto stringa.

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())>

Produzione:

 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 

Come mostrato nell'immagine, il tipo di dati della colonna Date era un oggetto ma dopo aver utilizzato to_datetime(), è stato convertito in un oggetto data/ora.

Esempio 2: Conversione del formato ora utilizzando Panda

Anche l'eccezione durante la conversione dell'oggetto Time può essere convertita con questo metodo. Ma poiché nella colonna Ora non è specificata una data e quindi verrà inserita Pandas Data odierna automaticamente in quel caso.

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())>

Produzione:

 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 

Come mostrato nell'output, una data (2018-07-07) ovvero la data odierna è già aggiunta all'oggetto Data/ora.