Panda: come convertire un indice in data/ora


È possibile utilizzare la seguente sintassi per convertire una colonna di indice di un DataFrame panda in un formato datetime:

 df. index = pd. to_datetime ( df.index )

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: converti la colonna dell’indice in Datetime in Panda

Supponiamo di avere il seguente DataFrame panda che contiene informazioni sulle vendite dei prodotti in un negozio:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' time ': ['4-15-2022 10:15', '5-19-2022 7:14', '8-01-2022 1:14',
                            '6-14-2022 9:45', '10-24-2022 2:58', '12-13-2022 11:03'],
                   ' product ': ['A', 'B', 'C', 'D', 'E', 'F'],
                   ' sales ': [12, 25, 23, 18, 14, 10]})

#set 'time' column as index
df = df. set_index (' time ')

#view DataFrame
print (df)

                 product sales
time                           
4-15-2022 10:15 A 12
5-19-2022 7:14 B 25
8-01-2022 1:14 C 23
6-14-2022 9:45 D 18
10-24-2022 2:58 E 14
12-13-2022 11:03 F 10

Supponiamo ora di provare a creare una nuova colonna contenente l’ora nella colonna indice:

 #attempt to create new column that contains hour of index column
df[' hour '] = df. index . hour

AttributeError: 'Index' object has no attribute 'hour'

Stiamo ricevendo un errore perché la colonna dell’indice attualmente non è nel formato datetime e pertanto non contiene un attributo “time”.

Per evitare questo errore, possiamo utilizzare la funzione panda to_datetime() per convertire la colonna dell’indice nel formato datetime:

 #convert index column to datetime format
df. index = pd. to_datetime ( df.index )

#create new column that contains hour of index column
df[' hour '] = df. index . hour

#view updated DataFrame
print (df)

                    product sales hour
time                                    
2022-04-15 10:15:00 At 12 10
2022-05-19 07:14:00 B 25 7
2022-08-01 01:14:00 C 23 1
2022-06-14 09:45:00 D 18 9
2022-10-24 02:58:00 E 14 2
2022-12-13 11:03:00 F 10 11

Usando la funzione to_datetime() possiamo convertire la colonna dell’indice nel formato datetime.

Pertanto, siamo in grado di creare con successo una nuova colonna chiamata time che contiene l’ora nella colonna dell’indice senza ricevere alcun errore.

Nota : puoi trovare la documentazione completa della funzione panda to_datetime() qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Come creare un intervallo di date in Pandas
Come convertire il timestamp in data/ora in Pandas
Come calcolare la differenza tra due date nei panda

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *