API · Pandas

Pandas DataFrame DataFrame.query() Fonction

La méthode DataFrame.query filtre les lignes de l'appelant DataFrame qui remplissent une certaine condition.

Sur cette page

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