Pandas entre les dates

Pandas entre les dates
«Le format des dates varie dans différentes régions (yyyy-dd-mm, yyyy-mm-dd, dd / mm / yy, etc.). Travailler avec de telles chaînes contenant des dates et du temps est difficile. La fonction pandas «to_datetime ()» peut être utilisée pour modifier la date ou l'heure du type de données «String» en datetime64. Le type de données «DateTime64» aide à l'extraction des propriétés de temps et de date allant de «l'année» aux «microsecondes». Pour filtrer les lignes en fonction des dates, nous convertirons le type de données de la date à DateTime64 dans notre DataFrame. Ensuite, une condition de filtre sera spécifiée à l'aide du package de Pandas DataFrame.requête [] et dataframe.Fonctions loc []. Enfin, nous acquérons le Filtory DataFrame, qui est le sous-ensemble de données."

Comment sélectionner ou filtrer les lignes de dataframe basées sur les dattes en pandas?

Tout d'abord, nous convertirons le type de données des valeurs basées sur les données en DateTime64; Ensuite, nous utiliserons d'autres méthodes (comme Datafame.loc []) pour sélectionner ou filtrer les dates basées entre deux dates. Initialement, le type de données des dates peut être donné ou représenté de diverses manières, comme les chaînes, NP.DateTime64 et DateTime.DateTime. En utilisant le PD.À DateTime () Méthode dans Pandas, nous pouvons manipuler les dates en convertissant le type de données de date au format DateTime64.

Syntaxe:


Paramètres:

Arg: Il peut être flottant, liste, chaîne, entier ou dataframe à convertir en datetime.

les erreurs: La valeur peut être spécifiée comme augmenter, contraindre ou ignorer. Lorsqu'un dictionnaire comme un mappeur, des colonnes ou des lignes contient des étiquettes absentes de l'indice en cours de converti, soulevez une serre de clé si «augmenter» est utilisée. Défini sur ignorer par défaut.

DayFirst: Définir comme faux par défaut. Si c'est vrai, la valeur booléenne place la journée.

Année Si c'est vrai, la valeur booléenne place l'année. False est la valeur par défaut;

UTC: Valeur bornée. Affichez la norme de temps primaire de l'heure actuelle (UTC) si vrai.

format: La position de l'année, du mois et du jour est déterminée via une entrée de chaîne. Ce n'est pas par défaut

inférieur_datetime_formatbool: Si TRUE et aucun format n'est spécifié, essayez de déduire le format de date de date / heure du premier élément qui n'est pas nul. False est la valeur par défaut.

Dans les exemples du didacticiel, nous utiliserons la stratégie suivante pour choisir les informations parmi les lignes basées sur les dates dans le dataframe entre deux dates:

    • Importer des modules Pandas.
    • Création ou chargement de données pour créer un dataframe.
    • Créer un dataframe.
    • Convertir le type de données des colonnes avec des dates en datetime64.
    • Spécifiez une date de début et de fin.
    • DataFrame mis à jour sera stocké et affiché après avoir utilisé un filtre.
    • Afficher DataFrame.

Exemple n ° 1: Valeurs basées sur les dates de filtre à l'aide de DataFrame.fonction loc []

Nous filtrerons les données basées sur les dates en utilisant le «DataFrame.Fonction loc [] ”. Pour accéder à un groupe de colonnes et de lignes d'un dataframe via le nom des colonnes, des index ou un tableau booléen, la fonction «loc []» est utilisée. L'expression conditionnelle dans la variable loc [] dans cet exemple renvoie un tableau booléen avec une vraie valeur si la ligne satisfait la condition et une fausse si la condition ne satisfait pas. Seules les lignes avec de vraies valeurs sont renvoyées en utilisant la méthode loc []. Créons d'abord un dataframe pour comprendre clairement cet exemple.


Nous avons créé un dataframe en passant un dictionnaire à l'intérieur du PD.Fonction DataFrame () après l'importation des modules Pandas. Dans notre DataFrame, il y a deux colonnes dont les noms sont spécifiés sous forme de «tâches» et de «date». La colonne «Tâche» se compose de données entières (3, 2, 6, 1, 4, 5, 2, 1, 3, 4), et la colonne «Date» se compose de valeurs de chaîne basées sur les dates («2022-01- 05 ”,« 2022-01-15 »,« 2022-02-01 »,« 2022-02-10 »,« 2022-03-20 »,« 2022-03-30 »,« 2022-04-12 » , «2022-04-24», «2022-05-15», «2022-05-25»). Pour voir notre DataFrame, nous utiliserons la fonction print ().


Vérifions maintenant le type de données de nos colonnes en utilisant l'attribut «dtypes».


Comme on peut le remarquer, le type de données de la colonne «Tâches» est INT64, mais la colonne «Date» a le type de données de «Objet». Comme mentionné ci-dessus, nous devons convertir le type de données des colonnes avec des dates à DateTime64. Pour modifier le type de données de la colonne «Dates», la méthode TO_DATEtime () sera utilisée.


Nous avons passé la colonne «Date» dans la fonction TO_DATETime () comme un argument et spécifié le format comme des années-mois. Après avoir modifié le type de données de la colonne «Date», nous l'avons attribué à la colonne «Date» de notre DataFrame «DF». En utilisant l'attribut dTypes, nous pouvons vérifier si le type de données est modifié en «datetime64» ou non.


Comme le type de données a été modifié maintenant, nous pouvons utiliser la méthode loc [] pour filtrer les lignes requises.


À l'intérieur du DF.Méthode loc [], nous avons créé une expression / condition pour sélectionner uniquement les lignes où la date est supérieure ou égale à «22-02-01» et inférieure à «2022-04-24». Ainsi, les lignes de l'index 2 à 6 sont satisfaites par la condition comme indiqué dans la sortie.

Exemple # 2: Valeurs basées sur les dates de filtre à l'aide de différents attributs avec DataFrame.fonction loc []

Dans l'exemple n ° 1, nous avons filtré les lignes basées sur les dates à l'aide de la fonction loc []. Dans cet exemple, nous utiliserons différents attributs avec la fonction loc [] pour sélectionner des lignes basées sur des dates spécifiques.


La première étape sera la même; Nous allons convertir le type de données de la colonne «Date» en «DateTime64» en utilisant la fonction to_datetime ().


Après avoir modifié le type de données en «DateTime64», nous utiliserons la fonction loc [] pour sélectionner les lignes entre deux dates.


Nous avons créé une condition pour sélectionner les données dans les dates qui sont égales ou supérieures à «2022-04-10» et inférieures à «2022-06-15». Nous avons obtenu quatre rangées ayant des dates («2022-04-12», «2022-04-24», «2022-05-15» et «2022-05-25») qui satisfaisait la condition. Nous pouvons filtrer davantage la sortie à une heure spécifique, date, semaine, mois, année, etc., En utilisant le DateTime ".Attribut dt ”avec le dataframe.Méthode loc []. Supposons que nous devions sélectionner la ligne avec la date «15» dans la sortie récemment générée du «DF» DataFrame avec quatre lignes.


Nous avons spécifié le DT.jour == 15 pour récupérer les données stockées dans la rangée ayant la date «15». Nous avons obtenu la ligne «Index 8» comme sortie car la date est de 15 dans cette ligne. Maintenant, utilisons le ".Entre »Attribut pour sélectionner des lignes spécifiques entre deux dates dans notre DataFrame (créé dans l'exemple # 1).


En utilisant le «.Entre () ”Fonction, nous avons spécifié les dates entre« 2022-01-15 »et« 2022-03-30 »pour générer la sortie.

Exemple n ° 3: Valeurs basées sur les dates de filtre à l'aide du .Fonction Query ()

Maintenant, nous verrons comment le dataframe.La fonction Query () fonctionne pour sélectionner des lignes basées sur des dates spécifiques dans le dataframe. Dans cet exemple, le même «DF» DataFrame sera utilisé, que nous avons créé dans l'exemple # 1. Tout d'abord, nous convertirons le type de données de la colonne «Date» en «DateTime64» comme nous l'avons fait dans les exemples précédents.


Nous allons maintenant utiliser la fonction Query () pour sélectionner les lignes entre les dates.


La condition à l'intérieur de la requête (), comme indiqué ci-dessus, consiste à sélectionner des données dans les dates qui sont égales ou supérieures à «2021-12-30» et inférieures à «2022-01-15». Par défaut, les colonnes de DataFrame sont placées dans l'espace de noms de requête, permettant l'accès à la colonne de date sans spécifier le nom de la colonne.


Ce sont les lignes ayant des données dans les dates qui satisfont la condition.

Conclusion

Dans ce tutoriel, nous avons discuté de la façon de sélectionner les lignes basées sur les dates entre les dates dans Pandas. Nous avons vu la syntaxe des pandas.Fonction vers_dateTime (), que nous avons utilisée pour convertir le type de données de la colonne basée sur les dates en DateTime64. Nous avons mis en œuvre des exemples pour vous apprendre à utiliser DataFrame.Fonction loc [], comment utiliser différents attributs avec DataFrame.fonction loc [], et comment utiliser le .Fonction Query () Pour sélectionner les données des lignes basées sur les dates entre deux dates.