Comment convertir la colonne DataFrame en date-heure dans les pandas

  1. Fonction Pandas to_datetime pour convertir la colonne DataFrame en datetime
  2. DataFrame apply Méthode pour convertir une colonne de DataFrame en Datetime
  3. Méthodes de conversion des colonnes de DataFrame en comparaison de performance de date et heure

Nous introduirons des méthodes pour convertir la colonne Pandas DataFrame en Python datetime.

  • Fonction Pandas to_datetime().
  • Méthode DataFrame apply pour opérer sur les éléments en colonne

Nous utiliserons le même DataFrame ci-dessous dans cet article.

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

Fonction Pandas to_datetime pour convertir la colonne DataFrame en datetime

Fonction Pandas to_datetime convertit l’argument donné en datetime.

pandas.to_datetime(param, format="")

Le format spécifie le modèle de la chaîne datetime. C’est la même chose avec le format dans stftime ou strptime dans le module Python datetime.

>>> 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 fonction to_datetime() ne modifie pas les données de la DataFrame en place, donc nous devons assigner la Series de Pandas retournée à la colonne spécifique de la DataFrame.

La fonction to_datetime() est intelligente pour convertir en Datetime

La fonction to_datetime() pourrait faire la conversion en datetime d’une manière intelligente sans donner la chaîne de format datetime. Elle trouvera le motif de la chaîne automatiquement et intelligemment.

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

Bien que to_datetime puisse faire son travail sans donner le format intelligemment, la vitesse de conversion est beaucoup plus basse que celle quand le format est donné.

Nous pourrions mettre l’option infer_datetime_format de to_datetime à True pour passer la conversion à un mode plus rapide si le format de la chaîne datetime pouvait être déduit sans donner la chaîne format.

Cela pourrait augmenter la vitesse d’analyse de 5~6 fois.

DataFrame apply Méthode pour convertir une colonne de DataFrame en Datetime

apply(func, *args, **kwds)

La méthode apply de DataFrame applique la fonction func à chaque colonne ou ligne.

Nous pourrions utiliser la fonction lambda à la place de func pour la simplicité.

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

Méthodes de conversion des colonnes de DataFrame en comparaison de performance de date et heure

Utilisons timeit pour comparer les performances de chronométrage des deux méthodes présentées dans cet article.

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)

La méthode apply est même légèrement meilleure que la méthode native de Pandas to_datetime, avec environ 80% du temps d’exécution de la fonction to_datetime.

Article connexe - Pandas DataFrame

  • Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
  • Comment supprimer une colonne de Pandas DataFrame
  • Comment convertir un flottant en un entier dans Pandas DataFrame
  • Comment trier le DataFrame de Pandas par les valeurs d'une colonne
  • Comment obtenir l'agrégat des Pandas par groupe et par somme
  • Comment convertir le dictionnaire Python en Pandas DataFrame
  • Comment ajouter une ligne d'en-tête à un Pandas DataFrame
  • Comment convertir Pandas Dataframe en Numpy array
  • Comment convertir l'index d'une Dataframe de Pandas en une colonne
  • Comment compter les occurrences de NaN dans une colonne de Pandas Dataframe
  • Comment changer l'ordre des colonnes de Pandas DataFrame
  • Comment ajouter une ligne à Pandas DataFrame
  • Comment supprimer une ligne en fonction de la valeur de la colonne dans Pandas DataFrame
  • Comment obtenir une valeur à partir d'une cellule d'un Pandas DataFrame
  • Comment convertir une colonne de DataFrame en chaîne de caractères dans les pandas
  • Article connexe - Pandas DataFrame Column

  • Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
  • Comment supprimer une colonne de Pandas DataFrame
  • Comment convertir un flottant en un entier dans Pandas DataFrame
  • Comment trier le DataFrame de Pandas par les valeurs d'une colonne
  • Comment obtenir l'agrégat des Pandas par groupe et par somme
  • Comment convertir le dictionnaire Python en Pandas DataFrame
  • Comment ajouter une ligne d'en-tête à un Pandas DataFrame
  • Comment convertir Pandas Dataframe en Numpy array
  • Comment convertir l'index d'une Dataframe de Pandas en une colonne
  • Comment compter les occurrences de NaN dans une colonne de Pandas Dataframe
  • Comment changer l'ordre des colonnes de Pandas DataFrame
  • Comment ajouter une ligne à Pandas DataFrame
  • Comment supprimer une ligne en fonction de la valeur de la colonne dans Pandas DataFrame
  • Comment obtenir une valeur à partir d'une cellule d'un Pandas DataFrame
  • Comment convertir une colonne de DataFrame en chaîne de caractères dans les pandas
  • Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
  • Comment supprimer une colonne de Pandas DataFrame
  • Comment changer l'ordre des colonnes de Pandas DataFrame
  • Comment convertir une colonne de DataFrame en chaîne de caractères dans les pandas
  • Article connexe - Python datetime

  • Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
  • Comment supprimer une colonne de Pandas DataFrame
  • Comment convertir un flottant en un entier dans Pandas DataFrame
  • Comment trier le DataFrame de Pandas par les valeurs d'une colonne
  • Comment obtenir l'agrégat des Pandas par groupe et par somme
  • Comment convertir le dictionnaire Python en Pandas DataFrame
  • Comment ajouter une ligne d'en-tête à un Pandas DataFrame
  • Comment convertir Pandas Dataframe en Numpy array
  • Comment convertir l'index d'une Dataframe de Pandas en une colonne
  • Comment compter les occurrences de NaN dans une colonne de Pandas Dataframe
  • Comment changer l'ordre des colonnes de Pandas DataFrame
  • Comment ajouter une ligne à Pandas DataFrame
  • Comment supprimer une ligne en fonction de la valeur de la colonne dans Pandas DataFrame
  • Comment obtenir une valeur à partir d'une cellule d'un Pandas DataFrame
  • Comment convertir une colonne de DataFrame en chaîne de caractères dans les pandas
  • Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
  • Comment supprimer une colonne de Pandas DataFrame
  • Comment changer l'ordre des colonnes de Pandas DataFrame
  • Comment convertir une colonne de DataFrame en chaîne de caractères dans les pandas
  • Comment obtenir l'heure actuelle en Python
  • Comment convertir une chaîne de caractères en datetime en Python
  • comments powered by Disqus