segunda-feira, 19 de abril de 2021

Python - Filtrando dados com o método .query() do pandas

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.

Licença

0 comentários:

Postar um comentário