[PYTHON] 10 sélections d'extraction de données par pandas.DataFrame.query

introduction

Cet article présente diverses extractions conditionnelles à l'aide de requête, qui est l'une des fonctions pandas. D'après mon expérience, j'écrirai le code réel basé sur 10 exemples fréquemment rencontrés lors du prétraitement des données.

Environnement d'exécution

!python -V
Python 3.7.3

Module utilisé

La version de pandas utilise la version 1.0.3.

import pandas as pd  #Le rôle principal cette fois
import numpy as np  #Utilisé pour générer des valeurs inf et nan
#Vérifier la version des pandas
print(pd.__version__)
1.0.3

Préparation des données

#Préparation de la trame de données à utiliser cette fois
df = pd.DataFrame({
        'a': range(1, 6),
        'b': range(10, 0, -2),
        'c c' : [1, 3, 5, 7, 9],
        'd' : [2, np.nan, np.inf, None, 10],
        'e' : ['a', 'b', 'c', 'd', 'e'],
        'f' : [False, True, True, False, True]})
#Vérifier la trame de données
df
a b c c d e f
0 1 10 1 2.0 a False
1 2 8 3 NaN b True
2 3 6 5 inf c True
3 4 4 7 NaN d False
4 5 2 9 10.0 e True

10 sélections d'extraction de données

  1. [Extraction de condition dans 1 colonne](Extraction de condition dans la colonne # 1)
  2. [Extraction de conditions avec plusieurs colonnes](# Extraction de conditions avec plusieurs colonnes)
  3. [Extraction de conditions de colonnes contenant des espaces dans les noms de colonnes](# Extraction de conditions de colonnes contenant des espaces dans les noms de colonnes)
  4. [Extraction de condition par spécification de chaîne de caractères](# Extraction de condition par spécification de chaîne de caractères)
  5. [Extraction de conditions par plusieurs conditions](# Extraction de conditions par plusieurs conditions)
  6. [Extraction de condition par spécification inf](Extraction de condition par spécification #inf)
  7. [Extraction de condition en spécifiant une valeur manquante](# Extraction de condition en spécifiant une valeur manquante)
  8. [Extraction de condition en spécifiant une valeur booléenne](# Extraction conditionnelle en spécifiant une valeur booléenne)
  9. [Extraction de condition à l'aide de la liste](# Extraction de la condition à l'aide de la liste)
  10. [Extraction de conditions à l'aide de variables](# Extraction de conditions à l'aide de variables)

Extraction de condition dans une colonne

Extraction conditionnelle de base en utilisant une seule colonne de la trame de données. Des opérateurs de comparaison normaux peuvent être utilisés.

df.query('a == 3')  #Extraire les lignes où la colonne a a une valeur de 3
a b c c d e f
2 3 6 5 inf c True
df.query('a != 3')  #Extrayez les lignes dont la valeur de la colonne a n'est pas 3.
a b c c d e f
0 1 10 1 2.0 a False
1 2 8 3 NaN b True
3 4 4 7 NaN d False
4 5 2 9 10.0 e True
df.query('a > 3')  #Extraire les lignes dont la colonne a une valeur supérieure à 3
a b c c d e f
3 4 4 7 NaN d False
4 5 2 9 10.0 e True

Extraction de conditions dans plusieurs colonnes

Extraction conditionnelle à l'aide de valeurs entre plusieurs colonnes

df.query('a > b')  #Extraire les lignes où la valeur de la colonne a est supérieure à la valeur de la colonne b
a b c c d e f
4 5 2 9 10.0 e True

Extraction conditionnelle de colonnes contenant des espaces dans les noms de colonnes

Si le nom de la colonne contient des espaces, le nom de la colonne doit être placé entre guillemets (\ `). Étant donné que cette fonction a été implémentée dans pandas 0.25.0, une erreur se produira dans la version 0.24.0 ou antérieure. https://pandas-docs.github.io/pandas-docs-travis/whatsnew/v0.25.0.html#other-enhancements

df.query(' `c c` > b')  #c Extraire les lignes où la valeur de la colonne c est supérieure à la valeur de la colonne b
a b c c d e f
3 4 4 7 NaN d False
4 5 2 9 10.0 e True

Extraction de condition en spécifiant une chaîne de caractères

Si la condition est spécifiée sous forme de chaîne, la valeur doit être placée entre guillemets (").

df.query('e == "a" ')  #La valeur de la colonne e est une chaîne"a"Extraire la ligne qui est
a b c c d e f
0 1 10 1 2.0 a False

Extraction de conditions par plusieurs conditions

Extraction de conditions à l'aide de plusieurs conditions et opérateurs logiques tels que et et ou.

df.query('a > 2 and b < 3')  #Extraire les lignes où la valeur de la colonne a est supérieure à 2 et la valeur de la colonne b est inférieure à 3
a b c c d e f
4 5 2 9 10.0 e True
df.query('a > 2 or b < 3')  #Extraire les lignes où la valeur de la colonne a est supérieure à 2 ou la valeur de la colonne b est inférieure à 3
a b c c d e f
2 3 6 5 inf c True
3 4 4 7 NaN d False
4 5 2 9 10.0 e True
df.query('a > 2 or e == "d" ')  #La valeur de la colonne a est supérieure à 2 ou la valeur de la colonne e est une chaîne"d"Extraire la ligne qui est
a b c c d e f
2 3 6 5 inf c True
3 4 4 7 NaN d False
4 5 2 9 10.0 e True
df.query(' 2<= a <= 4')  #Extraire les lignes où la valeur de la colonne a est 2 ou plus et 4 ou moins
a b c c d e f
1 2 8 3 NaN b True
2 3 6 5 inf c True
3 4 4 7 NaN d False

Extraction de condition en spécifiant inf

Si la valeur a inf, extrayez comme suit.

df.query(' d == inf')  #Extraire les lignes où la valeur de la colonne d est inf
a b c c d e f
2 3 6 5 inf c True
df.query(' d != inf')  #Extraire les lignes où la valeur de la colonne d n'est pas inf
a b c c d e f
0 1 10 1 2.0 a False
1 2 8 3 NaN b True
3 4 4 7 NaN d False
4 5 2 9 10.0 e True

Extraction de conditions en spécifiant les valeurs manquantes

Si la valeur a une valeur manquante, extrayez-la comme suit.

df.query(' d != d')  #Extraire les lignes où la valeur de la colonne d est manquante
a b c c d e f
1 2 8 3 NaN b True
3 4 4 7 NaN d False
df.query(' d == d')  #Extraire les lignes où la valeur de la colonne d n'est pas manquante
a b c c d e f
0 1 10 1 2.0 a False
2 3 6 5 inf c True
4 5 2 9 10.0 e True

Extraction de condition en spécifiant une valeur booléenne

Si la valeur a une valeur booléenne telle que True ou False, procédez à l'extraction comme suit.

df.query('f == True')  #Extraire les lignes où la valeur de la colonne f est True
a b c c d e f
1 2 8 3 NaN b True
2 3 6 5 inf c True
4 5 2 9 10.0 e True
df.query('f == False')  #Extraire les lignes où la valeur de la colonne f est False
a b c c d e f
0 1 10 1 2.0 a False
3 4 4 7 NaN d False

Extraction conditionnelle à l'aide d'une liste

L'extraction conditionnelle est possible selon que la valeur est ou non dans la liste.

df.query(' a in (1, 2, 3)')  #La valeur de la colonne a est(1, 2, 3)Extraire une ligne qui est l'une des
a b c c d e f
0 1 10 1 2.0 a False
1 2 8 3 NaN b True
2 3 6 5 inf c True
df.query(' a not in (1, 2, 3)')  #La valeur de la colonne a est(1, 2, 3)Extraire une ligne qui n’est pas
a b c c d e f
3 4 4 7 NaN d False
4 5 2 9 10.0 e True

Extraction conditionnelle à l'aide de variables

Il est possible d'utiliser une variable préparée à l'avance comme valeur de la condition.

x = 2  #Stocker 2 dans la variable x
df.query(' a == @x')  #Extraire les lignes où la valeur de la colonne a est x
a b c c d e f
1 2 8 3 NaN b True
y = [2, 3, 4]  #Enregistrer la liste dans la variable y
df.query('a in @y')  #Extraire les lignes où la valeur de la colonne a est l'une de y
a b c c d e f
1 2 8 3 NaN b True
2 3 6 5 inf c True
3 4 4 7 NaN d False

Recommended Posts

10 sélections d'extraction de données par pandas.DataFrame.query
Visualisation des données par préfecture
Animation des géodonnées par geopandas
Mémorandum d'extraction par requête python bs4
Analyse émotionnelle des données de tweet à grande échelle par NLTK
Analyse des données financières par pandas et leur visualisation (2)
Détection d'anomalies des données de séries chronologiques par LSTM (Keras)
Fractionner les données par seuil
Données de formation par CNN
Histoire de l'analyse d'image du fichier PDF et de l'extraction de données
Corrélation par prétraitement des données
Méthode d'extraction de données par lots à l'aide d'expressions régulières de Series
Comment visualiser les données par variable explicative et variable objective
Pré-traitement des données préfectorales
Sélection des données de mesure
Ce que j'ai vu en analysant les données du marché des ingénieurs
Expérience de réglage des données Tensorflow
Classer les données par la méthode k-means
Gzip compresser les données en streaming
Calcul de similitude par MinHash
Extraction de mots-clés par MeCab (python)
Extraction de dessin au trait de l'illustration
Transformée de Fourier des données brutes
Données acquises par Django reliées
Estimation moyenne des données plafonnées
À propos de la gestion des données d'Anvil-App-Server
Prédiction de probabilité de données déséquilibrées
Acquisition automatique des données de niveau d'expression génique par python et R
Impressions de toucher Dash, un outil de visualisation de données réalisé par python