1
resposta

Curiosidade: Pesquisando Dados do DataFrame

Realizando este curso notei que a quantidade elementos de "Almoço" na coluna hora_do_dia. Sabendo disso procurei formas como "procurar" um elemento específico do banco de dados e admito que tive dificuldades.

Como o fórum também tem o objetivo de engajamento por parte dos alunos, pensei em criar este com a dúvida: *quais ferramentas posso utilizar para buscar informações específicas de uma coluna em um DataFrame? *

Logo, logo eu pesquisarei e postarei o método que eu encontrei. (Pelo menos eu espero que consiga hahahaha!) Como uma das respostas deste tópico.

Vale salientar que este tipo conteúdo já foi abordado em outros cursos, entretanto as vezes acabamos esquecendo vários comandos por falta de prática.

1 resposta

Oi André! Tudo bem com você?

Existem diferentes formas de selecionarmos informações específicas em um dataframes. Alguns métodos muito utilizados para isso são: loc, iloc e o query.

Vamos fazer um pequeno exemplo com cada um deles para entendermos um pouco sobre como eles funcionam.

Para os exemplos a seguir, utilizaremos o seguinte dataframe:

MotorAnoQuilometragemZero_kmValor
JettaMotor 4.0 Turbo20190True88000
PassatMotor Diesel20035712False106000
CrossfoxMotor Diesel V8199137123False72000
DS5Motor Diesel20190True89000
FuscaMotor 1.61990120000False32000

1 - loc() e iloc():

O iloc e o loc são métodos utilizados para selecionar colunas ou linhas específicas de um dataframe. O iloc seleciona por índice, enquanto o loc seleciona por nome da coluna ou linha. Em ambos, passamos os argumentos da seguinte forma:

# iloc
dataframe.iloc[indice_da_linha, indice_da_coluna]

# loc
dataframe.loc[nome_da_linha, nome_da_coluna]

Suponhamos que, no dataframe mostrado anteriormente, queremos selecionar apenas as linhas denominadas “Crossfox” e “DS5”. Para fazer essa seleção, podemos fazer o seguinte:

# Utilizando o loc
df.loc['Crossfox':'DS5', :]

# Utilizando o iloc
df.iloc[2:4, :]

Fazendo de ambas as formas, teremos o seguinte resultado:

MotorAnoQuilometragemZero_kmValor
CrossfoxMotor Diesel V8199137123False72000
DS5Motor Diesel20190True89000

Se quisermos que esses métodos retornem todas as linhas ou todas as colunas, basta utilizarmos os dois pontos (:) conforme utilizei para selecionar as colunas nos exemplos mostrados anteriormente.

Vou deixar aqui alguns outros exemplos utilizando esses métodos

# selecionando apenas a coluna Quilometragem 
df.loc[:, 'Quilometragem']
df.iloc[:, 2]

# selecionando apenas a linha “Jetta”
df.loc['Jetta', :]
df.iloc[0, :]

2 - query()

O método query também é muito utilizado para selecionar informações específicas em um dataframe.

Utilizando o dataframe anterior, suponhamos que queremos selecionar apenas os dados onde a coluna "Zero_km" for igual a True

df.query("Zero_km == True")

Dessa forma, teremos como resultado:

MotorAnoQuilometragemZero_kmValor
JettaMotor 4.0 Turbo20190True88000
DS5Motor Diesel20190True89000

Agora, se quisermos selecionar apenas os dados onde “Zero_km” seja True e o “Valor” seja maior que 88000.0, podemos fazer assim:

df.query("Zero_km == True and Valor > 88000.0")

E o nosso resultado será o seguinte:

MotorAnoQuilometragemZero_kmValor
DS5Motor Diesel20190True89000

Esses são só alguns exemplos simples das aplicações desses métodos, mas pesquisando um pouco mais na documentação do pandas, com certeza você irá se deparar com diferentes formas de selecionar informações específicas em um dataframe.

Vou deixar aqui o link dos métodos que utilizei nos exemplos acima e um guia de usuário interessante do pandas que aborda sobre esse assunto (estão todos em inglês):

Espero ter ajudado! Qualquer dúvida estou por aqui :)

Bons estudos!