Pandas DataFrame DataFrame.query() Fonction

Suraj Joshi 30 janvier 2023
  1. Syntaxe de pandas.DataFrame.query():
  2. Exemples de codes: méthode DataFrame.query() avec condition unique
  3. Exemples de codes: méthode DataFrame.query() lorsque le nom de la colonne a un espace
  4. Exemples de codes: méthode DataFrame.query() avec plusieurs conditions
Pandas DataFrame DataFrame.query() Fonction

La méthode pandas.DataFrame.query() filtre les lignes de l’appelant DataFrame à l’aide de la méthode expression de requête donnée.

Syntaxe de pandas.DataFrame.query():

DataFrame.query(expr, inplace=False, **kwargs)

Paramètres

expr Expression de requête basée sur les lignes filtrées
inplace Booléen. Si True, modifiez l’appelant DataFrame sur place
**kwargs Arguments de mot-clé pour la méthode

Revenir

Si inplace vaut True, il retourne le DataFrame filtré; sinon None.

Exemples de codes: méthode DataFrame.query() avec condition unique

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

filtered_df=df.query('X>1')
print("Filtered DataFrame:")
print(filtered_df)

Production:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Filtered DataFrame:
   X  Y
1  2  1
2  3  8

Il retourne le DataFrame avec uniquement les lignes qui satisfont l’expression de requête donnée, c’est-à-dire uniquement les lignes dont la valeur dans la colonne X est supérieure à 1.

Exemples de codes: méthode DataFrame.query() lorsque le nom de la colonne a un espace

Nous devons nous assurer que les noms de colonnes à interroger n’ont pas d’espaces blancs avant d’appliquer cette méthode à DataFrame.

Si nous avons des noms de colonnes contenant des espaces, nous pourrions utiliser des guillemets inversés (`).

import pandas as pd

df = pd.DataFrame(
    {
        "X": [
            1,
            2,
            3,
        ],
        "Y": [4, 1, 8],
        "A B": [3, 5, 7],
    }
)
print("Original DataFrame:")
print(df)
filtered_df = df.query("`A B`>5")
print("Filtered DataFrame:")
print(filtered_df)

Production:

Original DataFrame:
   X  Y  A B
0  1  4    3
1  2  1    5
2  3  8    7
Filtered DataFrame:
   X  Y  A B
2  3  8    7

Ici, la colonne A B a un espace dans son nom. Pour créer une expression de requête pour la colonne, nous mettons le nom de la colonne entre guillemets; sinon, cela générera une erreur.

Exemples de codes: méthode DataFrame.query() avec plusieurs conditions

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

filtered_df=df.query('X>1' and 'Y==1')
print("Filtered DataFrame:")
print(filtered_df)

Production:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Filtered DataFrame:
   X  Y
1  2  1

Si nous souhaitons filtrer DataFrame en fonction de plusieurs conditions, nous combinons les multiples expressions de requête à l’aide de l’opérateur and pour créer une seule expression de requête composite.

Il donne le DataFrame avec des lignes dont la valeur de la colonne X est supérieure à 1, et la valeur de la colonne Y est égale à 1.

Nous pouvons modifier le DataFrame d’origine après avoir appelé la méthode query() en définissant inplace = True.

import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
filtered_df=df.query('X>1' and 'Y==1',inplace=True)
print(df)

Production:

   X  Y
1  2  1
Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Pandas DataFrame