Como tratar valores inconsistentes em um dataset usando o Pandas

Como tratar valores inconsistentes em um dataset usando o Pandas

Nesse post você vai aprender como tratar valores inconsistentes usnado o pandas. Para isso o primeiro passo é identificar dentro do dataset quais são as restrições que devem ser aplicadas a um determinado dado. Por exemplo, se em um dataset você possui uma coluna chamada “peso”, sabemos que esse peso não pode ser negativo.    Após identificadas as restrições e problemas que um dataset apresenta podemos realizar uma limpeza nos dados. Essa limpeza irá remover todos os valores inconsistentes do dataset evitando distorções na aplicação dos algoritmos de Machine Learning.  
A base que iremos utilizar é de clientes de um cartão de crédito e está disponível nesse link:

Clique aqui para acessar o dataset

Nesse exemplo iremos realizar o tratamento da coluna IDADE ou ‘age’. 

Técnica 01 – Remover a coluna


Pode parecer estranho, mas remover uma coluna pode ser algo interessante quando você não se importa com aqueles dados. Ou seja, na sua análise você não precisará daqueles dados para conseguir o resultado que você pensou. Então o pensamento é simples, remova a coluna e tudo ficará bem. 


Para realizar essa operação você deverá usar o método drop passando como argumento o label da coluna (‘age’). O segundo parâmetro indica que você está querendo excluir uma coluna e não uma linha (0 – linhas; 1 – colunas). Já o terceiro parâmetro diz que o pandas deverá fazer a operação dentro da variável alterando-a diretamente (não sendo necessário pegar o seu retorno em uma nova variável).

data.drop('age', 1 , inplace=True)

Técnica 02 – Remover as linhas problemáticas

É uma boa ideia também remover apenas aquelas linhas que possuem idade negativa. A remoção desses dados poderá causar uma distorção no resultado final caso a quantidade de dados removidos seja muito grande.

Para realizar essa operação usando o pandas você deverá usar o método drop e passar como argumento os indexes dos registros problemáticos.

# pegando os indices problemáticos
indexesProblematicos = data[data.age < 0].index
# Removendo os índices:
data.drop(indexesProblematicos, inplace=true)

Técnica 03 – Substituir as linhas problemáticas pela média das idades

Essa técnica é interessante, pois se você substitui pela média o resultado final não será impactado. Outro benefício é que se você não remove a linha ou a coluna, não são perdidas as demais informações e você poderá usa-las livremente.

  Para realizar essa operação você primeiro precisará extrair a média da coluna idade desconsiderando os valores negativos.  

print(base['age'][base.age > 0].mean()) 
data.loc[base.age < 0, 'age'] = 40.9  

Para tratar valores inconsistentes usando o pandas pode seguir várias técnicas que vão além dessas mostradas. Vale a pena ressaltar que qual você vai utilizar vai depender muito do seu conjunto de dados e a técnica que terá menos impacto nos seus resultados finais.

Vinicius dos Santos

Apenas um apaixonado por Ciência da Computação e forma com que ela pode transformar vidas!

Deixe uma resposta