Pandas DataFrame DataFrame.query() Função

Suraj Joshi 30 janeiro 2023
  1. A sintaxe de pandas.DataFrame.query():
  2. Códigos de exemplo: DataFrame.query() Método com condição única
  3. Códigos de exemplo: DataFrame.query() Método quando o nome da coluna tem espaço em branco
  4. Códigos de exemplo: DataFrame.query() Método com múltiplas condições
Pandas DataFrame DataFrame.query() Função

O método pandas.DataFrame.query() filtra as filas do DataFrame do chamador utilizando a expressão de consulta dada.

A sintaxe de pandas.DataFrame.query():

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

Parâmetros

expr Expressão de consulta com base em quais linhas são filtradas
inplace Booleano. Se True, modificar no local a opção de chamada DataFrame.
**kwargs Argumentos por palavra-chave para o método

Retornar

Se inplace for True, ele devolve o DataFrame filtrado; caso contrário, “Ninguém”.

Códigos de exemplo: DataFrame.query() Método com condição única

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)

Resultado:

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

Retorna o DataFrame com apenas as linhas que satisfazem a expressão da consulta dada, ou seja, apenas as linhas cujo valor na coluna X é maior que 1.

Códigos de exemplo: DataFrame.query() Método quando o nome da coluna tem espaço em branco

Devemos garantir que os nomes das colunas a serem consultadas não tenham espaços em branco antes de aplicar este método ao DataFrame.

Se tivermos nomes de colunas com espaços nelas, podemos utilizar a citação de backtick (`).

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)

Resultado:

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

Aqui, a coluna A B tem espaço em seu nome. Para fazer a expressão de consulta para a coluna, nós incluímos o nome da coluna em backticks; caso contrário, ele levantará um erro.

Códigos de exemplo: DataFrame.query() Método com múltiplas condições

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)

Resultado:

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

Se desejarmos filtrar DataFrame com base em múltiplas condições, combinamos as múltiplas expressões de consulta utilizando e operador para fazer uma única expressão de consulta composta.

Ele dá a DataFrame com linhas cujo valor da coluna X é maior que 1, e o valor da coluna Y é igual a 1.

Podemos modificar o DataFrame original depois de chamar o método query(), definindo 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)

Resultado:

   X  Y
1  2  1
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Artigo relacionado - Pandas DataFrame