Como jogar dados fora com Pandas?
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…