Maison >développement back-end >Tutoriel Python >Comment filtrer les lignes Pandas DataFrame par plage de dates ?

Comment filtrer les lignes Pandas DataFrame par plage de dates ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-29 10:03:09383parcourir

How to Filter Pandas DataFrame Rows by Date Range?

Récupération des lignes DataFrame dans les plages de dates spécifiées

Problème :

Un DataFrame Pandas est créé à partir d'un fichier CSV contenant un colonne de date. La tâche consiste à extraire uniquement les lignes dont les valeurs de date se situent dans une plage de dates spécifiée ou entre deux dates spécifiées.

Solution :

Il existe deux approches pour y parvenir :

Option 1 : Masquage booléen

  1. Assurer la date La colonne est au format datetime64[ns].
  2. Créez un masque booléen en utilisant des conditions de plage de dates.
  3. Sélectionnez les lignes souhaitées à l'aide de df.loc[mask].

Exemple :

import pandas as pd

df = pd.read_csv('data.csv', parse_dates=['date'])

start_date = '2022-01-01'
end_date = '2022-02-28'

mask = (df['date'] >= start_date) & (df['date'] <= end_date)
df_filtered = df.loc[mask]

Option 2 : DatetimeIndex

  1. Définissez la colonne de date comme index du DataFrame.
  2. Utilisez df.loc[start_date : end_date] pour récupérer le lignes.

Exemple :

df = pd.read_csv('data.csv', parse_dates=['date'])
df = df.set_index(['date'])

df_filtered = df.loc[start_date : end_date]

Remarque : Si parse_dates a été utilisé lors de la lecture du CSV, la conversion de la colonne de date en datetime64 n'est pas nécessaire.

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