Combiner des colonnes de date et d'heure à l'aide de Pandas
Lorsque vous travaillez avec des données temporelles, il est souvent nécessaire de combiner des colonnes de date et d'heure pour obtenir une seule valeur d'horodatage. Pandas propose diverses options pour y parvenir, y compris la fonction pd.to_datetime().
Concaténation de chaînes et utilisation de pd.to_datetime()
Dans certains scénarios, votre date et les colonnes de temps sont stockées sous forme de chaînes. Pour les combiner, vous pouvez simplement les concaténer avec un espace comme suit :
df['Date'] + ' ' + df['Time']
Une fois les chaînes concaténées, vous pouvez utiliser pd.to_datetime() pour les convertir en un objet DatetimeIndex :
pd.to_datetime(df['Date'] + ' ' + df['Time'])
Cette approche vous permet d'utiliser le format déduit de la chaîne concaténée, qui est généralement une combinaison des formats de date et d'heure de l'individu. colonnes.
Utilisation du paramètre format=
Cependant, si vos chaînes de date et d'heure ne sont pas dans un format standardisé, ou si vous souhaitez spécifier explicitement le format, vous pouvez utiliser le paramètre format= comme suit :
pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y%H:%M:%S')
Ici, vous spécifiez le format exact de la chaîne concaténée, garantissant ainsi une précision conversion.
Analyse directe des dates
Au lieu de concaténer des chaînes, vous pouvez également analyser les informations de date et d'heure directement en utilisant pd.read_csv() avec le paramètre parse_dates . Ce paramètre vous permet de spécifier une liste de colonnes à analyser en tant qu'objets datetime.
Par exemple, si vos données sont stockées dans un fichier CSV nommé "data.csv":
import pandas as pd df = pd.read_csv("data.csv", parse_dates=[['Date', 'Time']])
Dans ce cas, Pandas analysera automatiquement les colonnes spécifiées dans un DatetimeIndex.
Performance Considérations
Lorsque vous travaillez avec de grands ensembles de données, les performances deviennent cruciales. La concaténation de chaînes, puis leur conversion en datetime prend beaucoup plus de temps que l'analyse directe des informations de date et d'heure. Comme le montrent les résultats de synchronisation suivants à l'aide de la commande magique %timeit :
# Sample dataframe with 10 million rows df = pd.concat([df for _ in range(1000000)]).reset_index(drop=True) # Time to combine strings and convert to datetime %timeit pd.to_datetime(df['Date'] + ' ' + df['Time']) # Time to parse dates directly %timeit pd.to_datetime(df['Date'] + df['Time'], format='%m-%d-%Y%H:%M:%S')
Les résultats indiquent que l'analyse directe est nettement plus rapide, en particulier 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!