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