Maison > développement back-end > Tutoriel Python > Comment combiner efficacement les colonnes de date et d'heure dans Pandas avec pd.to_datetime() ?

Comment combiner efficacement les colonnes de date et d'heure dans Pandas avec pd.to_datetime() ?

DDD
Libérer: 2024-11-16 14:01:03
original
403 Les gens l'ont consulté

How to efficiently combine date and time columns in Pandas with pd.to_datetime()?

Combiner des colonnes de date et d'heure dans Pandas avec pd.to_datetime()

Lorsque vous travaillez avec des données de date et d'heure dans Pandas, cela est souvent nécessaire pour combiner des colonnes distinctes en un seul objet datetime. Une façon de procéder consiste à utiliser la fonction pd.to_datetime().

Énoncé du problème

Considérez une trame de données avec des colonnes « Date » et « Heure », comme illustré ci-dessous :

Date      Time
01-06-2013  23:00:00
02-06-2013  01:00:00
02-06-2013  21:00:00
02-06-2013  22:00:00
02-06-2013  23:00:00
03-06-2013  01:00:00
03-06-2013  21:00:00
03-06-2013  22:00:00
03-06-2013  23:00:00
04-06-2013  01:00:00
Copier après la connexion

Notre objectif est de combiner ces deux colonnes en une seule colonne « Date et heure ».

Solution utilisant la concaténation de chaînes

Une approche consiste à concaténer les colonnes « Date » et « Heure » ​​sous forme de chaînes, puis à convertir la chaîne résultante en un objet datetime à l'aide de pd.to_datetime() :

result = pd.to_datetime(df['Date'] + ' ' + df['Time'])
Copier après la connexion

Cela convertit la chaîne concaténée en une série d'objets datetime.

Solution utilisant le paramètre de format

Vous pouvez également utiliser le paramètre de format de pd.to_datetime() pour spécifier le format exact du combiné string :

result = pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y %H:%M:%S')
Copier après la connexion

Cette approche est plus rapide que la précédente, en particulier lorsqu'il s'agit de grands ensembles de données.

Comparaison des performances

Utilisation du % Commande magique %timeit, nous pouvons comparer les performances des deux approches :

df = pd.concat([df for _ in range(1000000)]).reset_index(drop=True)

%timeit pd.to_datetime(df['Date'] + ' ' + df['Time'])

%timeit pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y %H:%M:%S')
Copier après la connexion

La deuxième approche avec le paramètre format est nettement plus rapide pour les grands ensembles de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal