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