Hoe de DataFrame-kolom naar Datetime in Pandas's te converteren

  1. Pandas to_datetime dienen voor dataframe kolom converteren naar datetime
  2. DataFrame- apply methode om de DataFrame-kolom naar Datetime te converteren
  3. Methoden om de DataFrame-kolom te converteren naar een vergelijking van de prestaties in Datetime

We zullen methoden introduceren om de Pandas DataFrame-kolom te converteren naar Python datetime.

  • Pandas’s to_datetime() functie
  • DataFrame- apply methode om te werken op elementen in kolom

We zullen hetzelfde DataFrame hieronder in dit artikel gebruiken.

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

Pandas to_datetime dienen voor dataframe kolom converteren naar datetime

De to_datetime functie Pandas ’s converteert het gegeven argument naar datetime.

pandas.to_datetime(param, format="")

De indeling geeft het patroon van de datetime-tekenreeks aan. Hetzelfde geldt voor het formaat in stftime of strptime in de Python- datetime module.

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

to_datetime() functie wijzigt de DataFrame gegevens niet ter plaatse, daarom moeten we de geretourneerde Pandas’s-serie aan de specifieke DataFrame kolom toewijzen.

to_datetime() Functie is slim om te zetten naar datetime

to_datetime() functie kan de conversie op datetime een slimme manier uitvoeren zonder de datetime opmaakreeks te krijgen. Het vindt het snaarpatroon automatisch en slim.

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

Waarschuwing

Hoewel to_datetime het zijn werk zou kunnen doen zonder format slim te zijn, is de conversiesnelheid veel lager dan die wanneer de format wordt gegeven.

We kunnen de optie in te stellen infer_datetime_format van to_datetime te zijn True om de conversie te schakelen naar een snellere wijze als de indeling van de datum en tijd snaar kan worden afgeleid zonder dat de format string.

Het zou de parsing-snelheid met 5 ~ 6 keer kunnen verhogen.

DataFrame- apply methode om de DataFrame-kolom naar Datetime te converteren

apply(func, *args, **kwds)

apply methode van DataFrame toepassing functie func op elke kolom of rij.

We zouden lambda functie kunnen gebruiken in plaats van func eenvoud.

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

Methoden om de DataFrame-kolom te converteren naar een vergelijking van de prestaties in Datetime

Laten we het gebruiken timeit om de timingprestaties van beide in dit artikel geïntroduceerde methoden te vergelijken.

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)

De apply methode is zelfs iets beter dan die van Pandas’s to_datetime , met ongeveer 80% van de uitvoeringstijd van de to_datetime functie.

Gerelateerde Artikelen - Pandas DataFrame

  • Hoe Pandas DataFrame-kolomkoppen als een lijst te krijgen
  • Hoe Pandas DataFrame-kolom verwijderen
  • Gerelateerde Artikelen - Pandas DataFrame Column

  • Hoe Pandas DataFrame-kolomkoppen als een lijst te krijgen
  • Hoe Pandas DataFrame-kolom verwijderen
  • Hoe Pandas DataFrame-kolomkoppen als een lijst te krijgen
  • Gerelateerde Artikelen - Python DateTime

  • Hoe Pandas DataFrame-kolomkoppen als een lijst te krijgen
  • Hoe Pandas DataFrame-kolom verwijderen
  • Hoe Pandas DataFrame-kolomkoppen als een lijst te krijgen