Photo by Jonathan Greenaway on Unsplash

Como jogar dados fora com Pandas?

Francisco Foz

--

Na fase de limpeza e organização de dados é necessário realizar diversas transformações e em alguns casos, jogar fora os não necessários.

Sejam eles casos específicos, duplicados ou em dados NAN (do inglês “not a number”, que é a representação simbólica de um dado indefinido, nulo, inexistente).

É necessário entender como lidar com cada caso em específico, de acordo com o contexto da análise.

Não vem aqui o caso de definir qual é a melhor estratégia, porque apenas você saberá de acordo com o contexto.

Nesse artigo trarei as diferentes formas de como você poderá tirar esses dados com o Pandas.

Borá lá!?

Sumário:

Drop

Excluindo linhas com drop

Series.drop

Index.drop

Drop_duplicates

Dropna

DROP

Olhe esse DataFrame denominado arts_df.

Se quisesse excluir a coluna “Artist”, como faria?

Você pode usar o .drop() , passando o parâmentro columns com o nome da coluna.

E pronto!

Também poderíamos utilizar apenas o nome da coluna e o eixo (axis) respectivo.

Eixo 0 = Linha

Eixo 1 = Coluna

Excluindo linhas com drop

Agora e se quisesses excluir linhas ao invés de colunas?

Passo a quantidade de linhas específicas que quero excluir e seu eixo:

Fácil né?

Você ainda poderia passar apenas com as linhas, porque por padrão o .drop irá “dropar” as linhas.

Series.drop

Ainda com estas mesmas utilidades você poderia utilizar não apenas com DataFrames, mas com Series e índices também.

Com esta Series criada da quantidade de cada item pela sua classificação:

Caso quiséssemos excluir o “(not assigned)”, como faria?

Uso o Series.drop() e pronto!

Poderia utilizar o axis também.

Para exemplificar outro parâmetro, existe o inplace:

Que nada mais é do que já fixar a modificação no objeto original, sem que você precise modificar novamente.

Por exemplo:

Passo o inplace como True e quando verifico o objeto original, ele já foi modificado.

Muito tranquilo né?

Index.drop

Ainda tem o index.drop() que nada mais é do que tirar valores do índice.

Vamos para o exemplo:

Precisamos entender quais são os departamentos que possuem uma quantidade significativa (acima de 1%) de obras de arte (do nosso conjunto de dados).

Crio a tabela com os percentuais e… Pintura e escultura (“Painting and Sculpture”) deverá ser retirado.

Pronto!

Ele te devolve um Index.array() com apenas os demais índices.

DROP_DUPLICATES

Com alguma frequência você precisará retirar valores duplicados.

Para isso, você poderá utilizar o drop_duplicate()

Por exemplo, ao visualizar esse conjunto de dados e gênero de cada artista que produziu esta obra de arte:

Ao passarmos o drop_duplicates()

A função irá excluir todas as linhas que possuam os mesmos valores, neste caso a mesma nacionalidade e gênero.

Agora, se quisermos excluir todos os valores duplicados dentro da coluna da nacionalidade. Podemos apenas passar o parâmetro subset com o nome da coluna.

Não apenas com DataFrames, mas também como o anterior. Você pode usar o Series.drop_duplicates e o index.drop_duplicates().

DROPNA

Valores NAN (do inglês “not a number”) podem estar no seu conjunto de dados e atrapalharem as análises.

Para isso, você poderá retirá-los.

Não que essa seja a estratégia ideal, pois dependerá do seu contexto.

Ao visualizarmos esse pedaço do DataFrame com as medidas de cada obra de arte:

Podemos ver diversos NAN.

Para isso, passo o dropna()

E ele me retorna um conjunto vazio.

Por que?

Porque todas as linhas contém ao menos um NAN e por padrão ele irá excluir todas que tiverem.

Se passarmos o “axis”:

Nos retornará apenas o índice do DataFrame.

Para isso, usaremos o parâmetro how=’all’

E ele irá excluir todas as linhas que tenham TODOS (‘all’) os valores nulos.

Que nesse caso foi igual a 6101:

Agora e se quiséssemos manter as linhas que tivessem apenas 4 valores não nulos?

Ele também tem um parâmetro chamado thresh, que você poderá configurar quantos valores quiser:

Ou se quiser passar por colunas, apenas configurar o axis:

Outro parâmetro interessante seria o subset, no qual você poderia passar em qual coluna gostaria que fosse permanecido todos os valores não nulos:

Como os demais também tem sua versão para Series e Index mas com menos parâmetros.

Massa né?!

Agora me diga: você já conhecia essas funcionalidades do Pandas?

Se não, deixe nos comentários e diga o que você aprendeu.

Se você chegou até aqui e curtiu, dê palmas, compartilhe e se inscreva para me acompanhar.

Ainda há muito a se explorar…

--

--

Francisco Foz

Bibliotecário | Analista de dados | Disseminando informações para produzir conhecimento.