A análise de dados requer muitas operações de filtragem. O pandas fornece muitos métodos para filtrar um DataFrame e Dataframe.query
é um deles.
Sintaxe: DataFrame.query(expr, inplace=False, **kwargs)
Parâmetros:
- expr: Expressão em forma de string para filtrar dados.
- inplace: Faz alterações no dataframe original se o valor True for passado.
- kwargs: Outros argumentos de palavra-chave.
Tipo de retorno: Um DataFrame filtrado.
Para baixar o arquivo CSV utilizado, clique aqui.
Observação: o método Dataframe.query()
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 ‘_’.
Conforme mostrado na abaixo, os dados agora têm apenas linhas em que Senior Management é True.
Saída:
First_Name Gender Start_Date Last_Login_Time Salary Bonus_% Senior_Management Team 0 Douglas Male 8/6/1993 12:42 PM 97308 6.945 True Marketing 1 Thomas Male 3/31/1996 6:53 AM 61933 4.170 True NaN 3 Jerry Male 3/4/2005 1:00 PM 138705 9.340 True Finance 4 Larry Male 1/24/1998 4:47 PM 101004 1.389 True Client Services 6 Ruby Female 8/17/1987 4:20 PM 65476 10.012 True Product .. ... ... ... ... ... ... ... ... 991 Rose Female 8/25/2002 5:12 AM 134505 11.051 True Marketing 992 Anthony Male 10/16/2011 8:35 AM 112769 11.625 True Finance 993 Tina Female 5/15/1997 3:53 PM 56450 19.040 True Engineering 994 George Male 6/21/2013 5:47 PM 98874 4.479 True Marketing 999 Albert Male 5/15/2012 6:24 PM 129949 10.169 True Sales [468 rows x 8 columns]
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 ‘_’.
# importando o pacote pandas import pandas as pd # Criando um DataFrame a partir de um arquivo csv data = pd.read_csv("employees.csv") # Substituindo os espaços por '_' data.columns =[column.replace(" ", "_") for column in data.columns] # Filtrando com o método query data.query('Senior_Management == True \ and Gender =="Male" and Team =="Marketing" \ and First_Name =="Johnny"', inplace = True) print(data)
Conforme mostrado abaixo, apenas duas linhas foram retornadas com base nos filtros aplicados.
Saída:
First_Name Gender Start_Date Last_Login_Time Salary Bonus_% Senior_Management Team 413 Johnny Male 9/14/1992 8:21 AM 115194 5.861 True Marketing 496 Johnny Male 2/26/2016 7:39 PM 76394 5.437 True Marketing
Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Filtering data with Pandas .query() method.
0 comentários:
Postar um comentário