Python | Filtrando dados com o método Pandas .query()
Python é uma ótima linguagem para fazer análise de dados, principalmente por causa do fantástico ecossistema de pacotes Python centrados em dados. Pandas é um daqueles pacotes que tornam a importação e análise de dados muito mais fácil.
A análise de dados requer muitas operações de filtragem. O Pandas fornece muitos métodos para filtrar um quadro de dados e Dataframe.query()
é um deles.
Sintaxe: DataFrame.query (expr, inplace = False, ** kwargs)
Parâmetros:
expr: Expressão em formato de string para filtrar dados.
inplace: Faça alterações no quadro de dados original se True
kwargs: Outros argumentos de palavra-chave.Tipo de retorno: quadro de dados filtrado
Para baixar o arquivo CSV utilizado, clique aqui.
Nota: o Dataframe.query()
método só funciona se o nome da coluna não tiver espaços vazios. Portanto, antes de aplicar o método, os espaços nos nomes das colunas são substituídos por '_'
Exemplo # 1: Filtragem de condição única
Neste exemplo, os dados são filtrados com base em uma única condição. Antes de aplicar o método query(), os espaços nos nomes das colunas foram substituídos por '_'.
# importing pandas package
import pandas as pd
# making data frame from csv file
data = pd.read_csv("employees.csv")
# replacing blank spaces with '_'
data.columns =[column.replace(" ", "_") for column in data.columns]
# filtering with query method
data.query('Senior_Management == True', inplace = True)
# display
data
Saída:
conforme mostrado na imagem de saída, os dados agora têm apenas linhas em que a Alta Administração é True.
Exemplo 2: Filtragem de múltiplas condições
Neste exemplo, o dataframe foi filtrado em várias condições. Antes de aplicar o método query(), os espaços nos nomes das colunas foram substituídos por '_'.
# importing pandas package
import pandas as pd
# making data frame from csv file
data = pd.read_csv("employees.csv")
# replacing blank spaces with '_'
data.columns =[column.replace(" ", "_") for column in data.columns]
# filtering with query method
data.query('Senior_Management == True
and Gender =="Male" and Team =="Marketing"
and First_Name =="Johnny"', inplace = True)
# display
data
Saída:
conforme mostrado na imagem de saída, apenas duas linhas foram retornadas com base nos filtros aplicados.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva