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
DDDoriginal
2024-11-16 14:01:03444parcourir

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

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'])

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

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

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!

Déclaration:
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