Panda: come combinare le colonne di data e ora


È possibile utilizzare la seguente sintassi per combinare le colonne di data e ora di un DataFrame panda in un’unica colonna:

 df[' datetime '] = pd. to_datetime (df[' date '] + ' ' + df[' time '])

Tieni presente che questa sintassi presuppone che le colonne data e ora siano entrambe stringhe correnti.

Se entrambe le colonne non sono già stringhe, puoi utilizzare astype(str) per convertirle in stringhe:

 df[' datetime '] = pd. to_datetime (df[' date ']. astype ( str ) + ' ' + df[' time ']. astype ( str ))

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

Esempio: combina le colonne di data e ora in Panda

Supponiamo di avere il seguente DataFrame panda che contiene una colonna di data e una colonna di ora:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': ['10-1-2023', '10-4-2023', '10-6-2023', '10-6-2023',
                            '10-14-2023', '10-15-2023', '10-29-2023'],
                   ' time ': ['4:15:00', '7:16:04', '9:25:00', '10:13:45',
                            '15:30:00', '18:15:00', '23:15:00']})

#view DataFrame
print (df)

         date time
0 10-1-2023 4:15:00
1 10-4-2023 7:16:04
2 10-6-2023 9:25:00
3 10-6-2023 10:13:45
4 10-14-2023 15:30:00
5 10-15-2023 18:15:00
6 10-29-2023 23:15:00

Diciamo che vogliamo creare una nuova colonna chiamata datetime che combini i valori delle colonne data e ora .

Possiamo usare la seguente sintassi per fare ciò:

 #create new datetime column
df[' datetime '] = pd. to_datetime (df[' date '] + ' ' + df[' time '])

#view updated DataFrame
print (df)

         datetime datetime
0 10-1-2023 4:15:00 2023-10-01 04:15:00
1 10-4-2023 7:16:04 2023-10-04 07:16:04
2 10-6-2023 9:25:00 2023-10-06 09:25:00
3 10-6-2023 10:13:45 2023-10-06 10:13:45
4 10-14-2023 15:30:00 2023-10-14 15:30:00

Tieni presente che la nuova colonna datetime ha combinato con successo i valori delle colonne data e ora in un’unica colonna.

Possiamo anche utilizzare la funzione dtypes per verificare i tipi di dati di ciascuna colonna nel DataFrame:

 #view data type of each column
df. dtypes

date object
time object
datetime datetime64[ns]
dtype:object

Dal risultato possiamo vedere che le colonne data e ora sono entrambi oggetti (cioè stringhe) e la nuova colonna datetime è una dataora.

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 *