Como filtrar e tratar dados ausentes no Pandas

Se você já trabalha ou está iniciando sua jornada na área de análise de dados sabe o quanto o tratamento de dados faltantes pode afetar seu modelo ou sua análise inicial sobre os dados.

Ainda mais se estiver trabalhando com dados referentes à bolsa de valores. Neste tipo de situação todo e qualquer erro irá penalizar de forma muito forte o seu bolso. 

Digo isso com a propriedade de quem a mais de três anos opera somente com base em estatística.  

Não são raros os casos onde eu treino um modelo de machine learning e ele me mostra resultados extraordinários, só que quando vai para o ambiente de produção, acabo perdendo grana. 

Pensando em te poupar alguns milhares de reais resolvi escrever este post. 

Como identificar os dados ausentes?

Não é por acaso que o Pandas é a biblioteca mais utilizada na fase de análise de dados. Ele traz nativamente vários métodos que tem justamente esta finalidade.

Você pode aplicar o isnull() que irá retornar uma matriz com valores True ou False. Isso é um pouco confuso de ver, mas se você aplicar o método sum() as coisas ficam bem mais fáceis de interpretar.

Como Filtrar os Dados Faltantes?

Depois de ver que o Data Frame possui dados vazios, o próximo passo é ver onde estes dados estão para entender o contexto geral. 

Algumas vezes, estes dados não afetarão nossos estudos, mas isso não é a regra. De forma geral podemos ter resultados bastante enviesados por conta destes dados faltantes. 

Uma base desbalanceada pode facilmente confundir um modelo de machine learning e muito facilmente um humano. 

Para filtrar os dados faltantes o processo é bastante simples: 

Veja que neste caso estamos filtrando os dados faltantes na coluna Age deste Data Frame. 

Você pode aplicar esta abordagem para todas as colunas que possuem dados faltantes. 

Como tratar os dados faltantes?

Existem três formas bastante empregadas no tratamento de dados faltantes.

A primeira delas é a mais simples, porém a mais perigosa. 

Você pode simplesmente excluir as linhas onde existam dados faltantes, porém dependendo do contexto, isso pode acabar te penalizando muito, uma vez que ficará com um quantidade de dados muito menor para trabalhar. 

Isso pode ser feito através do método dropna()

Fique muito esperto com este método, pois ele pode acabar mais atrapalhando do que ajudando. 

A segunda alternativa é preencher os dados com o método fillna(). Com este método você irá preencher os dados faltantes com um valor fixo ou resultado de algum cálculo, por exemplo. Você também pode optar por preencher os dados com o valor mais frequente em caso de variáveis categóricas. 

Só preste atenção para preencher os dados de acordo com a coluna, eventualmente podemos aplicar um valor errada em todos os dados faltantes, sempre faça filtros para que isso não aconteça.

Por último, podemos preencher os dados faltantes com o último valor válido. 

Esta também é uma abordagem que é muito útil e pode nos ajudar bastante.

Este procedimento é executado com o método ffill().

Conclusão

Dados faltantes podem representar um problema bastante sério quando estamos trabalhando com análise de dados. 

É muito importante entendermos muito bem o contexto destes dados para que possamos avaliar qual a melhor forma de tratá-los. As ferramentas existem e estão disponíveis, porém, cada situação irá exigir uma abordagem diferente e cabe a você empregar solução que melhor se adeque a seus dados.

Deixe um comentário