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

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

Patricia Arquette
Libérer: 2024-12-14 08:36:16
original
328 Les gens l'ont consulté

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

Sélectionner des lignes DataFrame entre deux dates

Introduction

Lorsque vous travaillez avec des données de séries chronologiques , il est souvent nécessaire de sélectionner des lignes spécifiques en fonction de plages de dates. Cet article explore deux méthodes pour y parvenir dans les DataFrames pandas.

Méthode 1 : Masque booléen

  1. Assurez-vous que la colonne de date est une série avec un type datetime64[ns] :

    df['date'] = pd.to_datetime(df['date'])
    Copier après la connexion
  2. Créer un masque booléen utilisant des opérateurs de comparaison avec les dates de début et de fin :

    mask = (df['date'] > start_date) & (df['date'] <= end_date)
    Copier après la connexion
  3. Sélectionnez le sous-DataFrame à l'aide du masque :

    df.loc[mask]
    Copier après la connexion
  4. Facultativement , réattribuez le sous-DataFrame à df.

Méthode 2 : DatetimeIndex

  1. Définissez la colonne de date comme index :

    df = df.set_index(['date'])
    Copier après la connexion
  2. Découpez le DataFrame en utilisant la date plages :

    df.loc[start_date:end_date]
    Copier après la connexion

Exemple

Considérons un DataFrame avec une colonne de date. Le code suivant utilise la méthode du masque booléen pour sélectionner les lignes entre '2000-06-01' et '2000-06-10' :

import pandas as pd

df = pd.DataFrame({
    'date': pd.date_range('2000-1-1', periods=200, freq='D'),
    'value': np.random.rand(200)
})

mask = (df['date'] > '2000-06-01') & (df['date'] <= '2000-06-10')
result_df = df[mask]
Copier après la connexion

Le résultat inclut les lignes du 1er au 10 juin, 2000.

Comparaison

  • La méthode du masque booléen est plus flexible et permet des comparaisons de dates plus complexes.
  • La méthode DatetimeIndex est plus rapide pour les sélections de plages de dates répétitives.
  • Utilisation de parse_dates dans pd.read_csv peut éviter d'avoir à convertir la colonne de date en datetime64s.

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