Come convertire la colonna DataFrame in data e ora in pandas
-
Funzione pandas
to_datetime
per convertire la colonna DataFrame indatetime
-
Metodo
apply
DataFrame per convertire la colonna DataFrame in Datatime - Metodi per convertire i DataFrame da colonna a data e ora di confronto delle prestazioni
Introdurremo dei metodi per convertire la colonna DataFrame Pandas DataFrame in Python datetime.
- Funzione
to_datetime()
di Pandas - Metodo DataFrame
apply
per operare sugli elementi in colonna
Useremo lo stesso DataFrame qui sotto in questo articolo.
>>> from datetime import datetime, timedelta
>>> from pandas import DataFrame
>>> df = DataFrame.from_items(
[('Alfa', [1, 2, 3]),
('Bravo', [4, 5, 6]),
('Datetime', [datetime.strftime(datetime.now()-timedelta(days=_), "%m/%d/%Y, %H:%M:%S") for _ in range(3)])],
orient='index',
columns=['A', 'B', 'C']).T
>>> df
Alfa Bravo Datetime
A 1 4 12/07/2019, 14:08:55
B 2 5 12/06/2019, 14:08:55
C 3 6 12/05/2019, 14:08:55
Funzione pandas to_datetime
per convertire la colonna DataFrame in datetime
La funzione Pandas to_datetime
converte l’argomento dato in datetime
.
pandas.to_datetime(param, format="")
Il formato specifica lo schema della stringa datetime. È lo stesso con il formato in stftime
o strptime
nel modulo datetime
di Python.
>>> df
Alfa Bravo Datetime
A 1 4 12/07/2019, 14:08:55
B 2 5 12/06/2019, 14:08:55
C 3 6 12/05/2019, 14:08:55
>>> df['Datetime'] = pd.to_datetime(df['Datetime'], format="%m/%d/%Y, %H:%M:%S")
>>> df
Alfa Bravo Datetime
A 1 4 2019-12-07 14:08:55
B 2 5 2019-12-06 14:08:55
C 3 6 2019-12-05 14:08:55
La funzione to_datetime()
non modifica i dati DataFrame
in-place, quindi dobbiamo assegnare i pandas restituiti Series
alla specifica colonna DataFrame
.
to_datetime()
La funzione è intelligente da convertire in Datetime
La funzione to_datetime()
potrebbe effettuare la conversione a datetime
in modo intelligente senza dare la stringa di formato datetime
. Troverà lo schema di stringa automaticamente e in modo intelligente.
>>> df['Datetime'] = pd.to_datetime(df['Datetime'])
>>> df
Alfa Bravo Datetime
A 1 4 2019-12-07 14:08:55
B 2 5 2019-12-06 14:08:55
C 3 6 2019-12-05 14:08:55
Anche se to_datetime
potrebbe fare il suo lavoro senza dare il format
in modo intelligente, la velocità di conversione è molto più bassa di quella data dal format
.
Potremmo impostare l’opzione infer_datetime_format
di to_datetime
come True
per passare la conversione in una modalità più veloce se il formato della stringa di data e ora può essere dedotto senza dare la stringa format
.
Potrebbe aumentare la velocità di parsing di 5~6 volte.
Metodo apply
DataFrame per convertire la colonna DataFrame in Datatime
apply(func, *args, **kwds)
Il metodo apply
di DataFrame
applica la funzione func
ad ogni colonna o riga.
Potremmo usare la funzione lambda
al posto di func
per la semplicità.
>>> df['Datetime'] = df['Datetime'].apply(lambda _: datetime.strptime(_,"%m/%d/%Y, %H:%M:%S"))
>>> df
Alfa Bravo Datetime
A 1 4 2019-12-07 14:44:35
B 2 5 2019-12-06 14:44:35
C 3 6 2019-12-05 14:44:35
Metodi per convertire i DataFrame da colonna a data e ora di confronto delle prestazioni
Usiamo timeit
per confrontare le prestazioni di entrambi i metodi introdotti in questo articolo.
In [1]: %timeit pd.to_datetime(df['Datetime'], format="%m/%d/%Y, %H:%M:%S")
452 µs ± 85.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [2]: %timeit df['Datetime'].apply(lambda _: datetime.strptime(_,"%m/%d/%Y, %H:%M:%S"))
377 µs ± 58.5 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
Il metodo apply
è anche leggermente migliore del metodo nativo di Pandas to_datetime
, con circa l'80% del tempo di esecuzione della funzione to_datetime
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArticolo correlato - Pandas DataFrame
- Come ottenere le intestazioni delle colonne DataFrame Pandas come lista
- Come cancellare la colonna DataFrame Pandas DataFrame
- Converti un Float in un Integer in Pandas DataFrame
- Ordina Pandas DataFrame in base ai valori di una colonna
- Ottieni l'aggregato di Pandas Group-By e Sum
Articolo correlato - Pandas DataFrame Column
- Come ottenere le intestazioni delle colonne DataFrame Pandas come lista
- Come cancellare la colonna DataFrame Pandas DataFrame
- Ottieni la colonna della somma dei pandas
- Modificare l'ordine delle colonne DataFrame di Pandas
- Converti colonna DataFrame in stringa in Pandas