Maison > développement back-end > Tutoriel Python > Comment sélectionner efficacement des lignes DataFrame dans une plage de dates spécifique en Python ?

Comment sélectionner efficacement des lignes DataFrame dans une plage de dates spécifique en Python ?

Patricia Arquette
Libérer: 2024-12-13 13:11:09
original
300 Les gens l'ont consulté

How to Efficiently Select DataFrame Rows Within a Specific Date Range in Python?

Sélection de lignes DataFrame dans une plage de dates

En Python, les DataFrames sont un outil puissant pour stocker et manipuler des données tabulaires. Une tâche courante consiste à filtrer les lignes en fonction d'une plage de dates spécifiée. Pour ce faire, nous disposons des options suivantes :

Méthode 1 : Utiliser un masque booléen

Si votre DataFrame contient une colonne de date avec le type de données datetime64[ns], vous pouvez créer un masque booléen pour sélectionner les lignes qui se situent dans la plage souhaitée :

# Ensure date column is a datetime64 series
df['date'] = pd.to_datetime(df['date']) 

# Create a boolean mask
mask = (df['date'] > start_date) & (df['date'] <= end_date)

# Select the sub-DataFrame
sub_df = df.loc[mask]
Copier après la connexion

Méthode 2 : Définir un DatetimeIndex

Une autre approche efficace consiste à définir la colonne de date comme index du DataFrame, en créant un DatetimeIndex :

df = df.set_index(['date'])

# Select rows using index slicing
sub_df = df.loc[start_date:end_date]
Copier après la connexion

Cette méthode est particulièrement utile pour les sélections basées sur la date, car elles offrent des performances plus rapides par rapport à l'utilisation d'un booléen masque.

Exemple :

Considérez le DataFrame suivant :

>>> df
            value  date
0          0.2   2021-06-01
1          0.3   2021-06-05
2          0.4   2021-06-10
3          0.5   2021-06-15
Copier après la connexion

Pour sélectionner des lignes pour le mois de juin 2021, nous pouvons utiliser soit méthode :

Méthode 1 : Booléenne Mask

mask = (df['date'] > '2021-06-01') & (df['date'] <= '2021-06-30')
sub_df = df.loc[mask]
Copier après la connexion

Méthode 2 : DatetimeIndex

df = df.set_index(['date'])
sub_df = df.loc['2021-06-01':'2021-06-30']
Copier après la connexion

Les deux méthodes renverront le sous-DataFrame suivant :

>>> sub_df
            value  date
0          0.2   2021-06-01
1          0.3   2021-06-05
2          0.4   2021-06-10
3          0.5   2021-06-15
Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal