Pandas filtre par date

Pandas filtre par date
Le format des dates varie dans différentes régions (dd / mm / yy, yyyy-mm-dd, yyyy-dd-mm, etc.). Travailler avec des valeurs de chaîne de date dans l'ensemble de données est difficile. L'heure et la date au format de chaîne peuvent être converties en DateTime64 à l'aide de la méthode Pandas 'to_datetime (). Ce type de données nous permet d'extraction des caractéristiques de temps et de date allant des «microsecondes» à «l'année». Tout d'abord, convertissez les valeurs de date dans le type de données donné en type DateTime64 avant de filtrer les lignes en fonction des dates. Ensuite, définissez une condition de filtre à l'aide du package de pandas.loc et dataframe.Fonctions de requête. Obtenez le Filtory DataFrame qui est le sous-ensemble de données.

Comment extraire les valeurs du Pandas DataFrame en fonction des valeurs de date

Dans les exemples suivants, nous utiliserons les différentes méthodes pour filtrer les colonnes du dataframe par valeurs de date. Avant de filtrer les données, les dates doivent être converties dans le type de données «« datetime64 ».

Exemple 1: Extraire les données à l'aide de DataFrame.Fonction loc [] basée sur les valeurs de date

À l'aide des noms de colonnes ou d'un tableau booléen, la fonction loc [] peut être utilisée pour récupérer un groupe de colonnes et de lignes dans un dataframe. Un tableau (booléen) avec une vraie valeur si la ligne répond à l'exigence et une fausse valeur dans tous les autres cas est renvoyée par l'expression conditionnelle dans la méthode loc []. La fonction loc [] renvoie uniquement les lignes avec de vraies valeurs. Pour créer notre DataFrame, nous utilisons le PD.Fonction DataFrame (). La bibliothèque Pandas doit être importée en premier.


Nous avons passé un dictionnaire Python à l'intérieur du PD.Fonction DataFrame () pour créer notre DataFrame «DF». Imprimons-le pour visualiser son contenu.


Il y a deux colonnes dans le «nom» de données de données précédent et «posting_date». La colonne «Nom» est constituée de noms d'employés d'une entreprise («Leo», «Bruce», «Robert», «Clay», «Martin», «Henry», «Lana», «Becky», «Alexa» , "Dustin"). La colonne «Posting_Date» contient l'enregistrement de la date d'affichage de chaque employé («2022-08-01», «2022-08-20», «2022-09-05», «2022-09-25», «2022 -09-30 ”,« 2022-10-10 »,« 2022-11-10 »,« 2022-12-01 »,« 2022-12-10 »,« 2022-12-30 »). Vérifions les données des colonnes dans le DataFrame «DF» à l'aide de l'attribut DTYPES.


On peut oberser que le type de données actuel des colonnes «Posting_Date» soit «objet». Pour filtrer les données en fonction des valeurs de date, nous les convertissons en «DateTime64».


Pour convertir le type de données en datetime64, nous avons utilisé le PD.Fonction DateTime () et a passé la colonne "Posting_Date" comme argument à l'intérieur de la fonction. Le format est spécifié. Maintenant, le type de données de la colonne avec les valeurs de date est modifié en «TimeDate64». Encore une fois, vous pouvez utiliser l'attribut DTypes pour déterminer le type de données des colonnes.


Le type de données de Posting_Date est passé de l'objet à DateTime64. Comme le type de données est modifié maintenant, nous pouvons utiliser notre fonction loc [] avec des conditions à l'intérieur pour filtrer les lignes.


Nous avons appliqué deux conditions à l'intérieur de la fonction loc [] pour extraire les lignes de la dataframe où la date dans le «posting_date» est égale ou supérieure à «22-09-05» et la valeur de «posting_date» est inférieure à 22- 12-01.


Les lignes précédentes du dataframe remplissent les conditions à l'intérieur de la fonction loc [].

Exemple 2: Extraire les données à l'aide du DateTimeIndex (DT) dans DataFrame.fonction loc []

Plusieurs propriétés peuvent être renvoyées à l'aide de DT pour obtenir les valeurs de la série en tant que valeurs Datetimelike. Par exemple, la «série.dt.Date ”L'attribut renvoie un tableau Numpy Python Datetime. Créons une autre dataframe pour cet exemple.


Le DataFrame est créé à l'aide du côté dictionnaire du PD.Fonction DataFrame ().


La colonne «Date» dans notre dataframe est constituée de valeurs de date sous forme de chaînes («2021-06-09», «2021-06-25», «2021-07-05», «2021-07-12», «2021 -08-29 ”,« 2021-09-15 »,« 2021-10-21 »,« 2021-11-02 »,« 2021-11-10 »,« 2021-11-18 »). Nous vérifions maintenant le type de données du DataFrame à l'aide de l'attribut DTYPES.


Le type de données des colonnes «tâche» et «date» sont respectivement int64 et objet. Nous modifions la colonne «Date» en type de données «datetime64». Pour changer son type de données, nous utilisons la fonction to_datetime ().


Maintenant, nous pouvons filtrer les données à l'aide de la méthode loc []. Tout d'abord, nous filtrons les données sans utiliser l'attribut DT pour filtrer les données pour des dates spécifiques.


Le script précédent récupère les lignes avec les dates entre novembre car la condition est spécifiée car la date doit être égale ou supérieure à 2021-11-01 et inférieure à 2021-11-30.


Nous pouvons également récupérer les lignes avec des dates ou des heures spécifiques en utilisant l'attribut DT. Supposons que nous récupérons la ligne pour un jour de semaine spécifique. L'indexation des jours de semaine commence de 1 à 7 où 1 est le lundi et 7 est dimanche. Si nous spécifions lundi, nous utilisons la valeur de l'index 1.

Exemple 3: extraire les données en utilisant .Requête [] fonction basée sur les valeurs de date

La méthode Query () peut également être utilisée pour filtrer les données en fonction des valeurs de date à partir du dataframe. Vous pouvez interroger le DataFrame à l'aide de la méthode Query (). Une expression de requête est transmise en tant qu'entrée de chaîne à la méthode Query (), et elle doit retourner vrai ou faux. Le DataFrame est renvoyé lorsque la sortie est vraie par l'instruction de requête. Créons un DataFrame où nous utilisons la fonction Query () pour filtrer les données.


Maintenant, changeons le type de données de la colonne «Arrivée» vers DateTime64 en utilisant la fonction to_datetime ().


À l'aide de l'attribut dTypes, vérifions si le type de données de la colonne «Arrivée» est modifié en DateTime64 ou non.


Au fur et à mesure que le type de données est modifié, nous utilisons la fonction Query () pour filtrer les données de la DataFrame «DF».


Vous pouvez observer que la condition à l'intérieur de la fonction Query () est passée comme une chaîne, je.e. «Arrivée> = '2022-02-05' et arrivée < '2022-05-15'”. The function returns the rows where the date values in the “arrival” column are equal to or greater than 2022-02-05 and less than 2022-05-15.


Les lignes précédentes de la dataframe «DF» satisfont la condition à l'intérieur de la fonction Query ().

Exemple 4: Filtrez les lignes entre deux dates à l'aide de la fonction isin ()

La méthode isin () aide à récupérer les lignes avec une seule (ou multiple) valeur dans une colonne spécifique. Les «pandas.Trame de données.iSin () »Renvoie un dataframe de booléens qui indique si un élément est inclus ou non dans la plage donnée. Cette technique nous permet de filtrer les rangées de dataframe dans les pandas en fonction de la date. Nous créons maintenant un nouvel exemple de données de données pour démontrer l'utilisation de la fonction isin () pour filtrer les lignes après l'importation des modules Pandas et Numpy.


Au moment où nous avons créé notre DataFrame, nous modifions maintenant le type de données de la colonne «Date» vers DateTime64 comme nous l'avons fait dans les exemples précédents.


Après avoir modifié le type de données en DateTime 64, nous filtrons les lignes à l'aide des lignes de la fonction de données «DF» à l'aide de la fonction isin ().


Nous avons passé le PD.Fonction Date_range () à côté de la fonction isin (). Nous avons spécifié le paramètre de démarrage de la date_range () comme 2021-12-01 et le paramètre final comme 2022-02-01. Le code précédent renvoie les lignes de la dataframe qui se trouvent dans la plage.

Conclusion

Dans ce tutoriel, nous avons essayé de vous apprendre à filtrer les lignes par les valeurs de date. Nous avons appris que nous convertissons les valeurs de date dans le dataframe donné en type DateTime64 avant de filtrer les lignes en fonction des dates. Nous avons mis en œuvre quelques exemples dans cet article pour vous apprendre comment vous pouvez utiliser le DataFrame.fonction loc [], .Fonction de requête [], et la fonction isin () pour filtrer les données par des dates en pandas. Maintenant, après avoir passé ce tutoriel, vous devriez pouvoir filtrer les lignes par vous-même.