Blog

Postado em em 11 de julho de 2022

Limpeza de Dados no Python para Projetos de Ciência de Dados

Na aula de hoje eu quero falar sobre a importância da limpeza de dados no Python para projetos de ciência de dados!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Limpeza de dados no Python

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Limpeza de Dados em Python

Você sabe o que é o Data Cleaning em Python e qual o motivo para usar em projetos de ciência de dados?

Hoje eu vou te mostrar isso limpando os dados da nossa base, então vou te mostrar isso em um projeto de análise de dados para que fique mais fácil de entender.

Data Cleaning em Python

Você vai notar que o data cleaning ou limpeza de dados é muito importante, principalmente no tratamento de dados no Python, pois é com essa limpeza que vamos conseguir entender melhor esses dados.

Dessa forma vamos conseguir saber melhor do que se trata, vamos conseguir classificar e até tirar algumas conclusões dessas informações que temos.

Importando a base de dados
Importando a base de dados

Dá só uma olhada nesse nosso exemplo, aqui estamos utilizando a biblioteca pandas para fazer a importação da nossa base de dados.

Só com essa base de dados você vai notar que as informações não estão muito claras e não conseguimos separá-las para facilitar a nossa análise.

Podemos até fazer um agrupamento dessas informações para que você veja a quantidade que temos de cada um para verificar se conseguimos separá-las.

base.groupby(["Pagamento","ChaveSituacao"])["Pagamento"].count()
Verificando a cardinalidade desses dados
Verificando a cardinalidade desses dados

Veja que o número máximo que temos de uma informação é 2. Esse número é muito pequeno para fazer uma classificação, então vamos ter que fazer isso de outra maneira.

Mapeamento das informações
Mapeamento das informações

Aqui é possível verificar que temos uma alta cardinalidade entre as informações e precisamos fazer esse tratamento.

Veja que temos uma descrição do que é cada informação da nossa base de dados, e isso é muito importante para que você consiga fazer essa separação.

Podemos iniciar pela separação da ChaveSituacao do cliente para podermos separar em Idade, Genero e EstadoCivil.

texto = '32FC'

texto[2:3]

base['Idade'] = base.ChaveSituacao.str[:2]
base['Genero'] = base.ChaveSituacao.str[2:3]
base['EstadoCivil'] = base.ChaveSituacao.str[-1]

base.head()

base.groupby(["Pagamento","EstadoCivil"])["Pagamento"].count()
Separando as strings da coluna ChaveSituacao
Separando as strings da coluna ChaveSituacao

Podemos utilizar os métodos de string para pegar uma parte de um texto para poder fazer essa separação.

OBS: Essa separação foi feita dessa forma, pois temos um padrão. Isso quer dizer que as duas primeiras informações são idade, a terceira é o gênero do cliente e por fim temos o estado civil do cliente.

Então já conseguimos criar 3 colunas com essas informações que já facilitam mais a nossa análise.

Veja que ao fazer o agrupamento de pagamento e estado civil é possível notar que todos os viúvos (clientes) pagaram. Então é possível que os clientes viúvos sejam clientes melhores para essa empresa.

texto = 'Basic-Alpha'

texto.split('-')

base['Categoria'] = base.CatCliente.str.splot('-').str.get(0)
base['CatVIP'] = base.CatCliente.str.splot('-').str.get(1)

base.head()
Separando as informações com base em um separador
Separando as informações com base em um separador

Para as informações de CatCliente (que é a categoria do cliente) nós podemos utilizar o método split (divisão).

Isso vai fazer com que você consiga separar as informações dessa coluna sem considerar uma quantidade específica de caracteres, dessa forma vamos poder separar independente do tamanho da palavra.

Se com esses métodos você ainda não conseguir separar suas informações pode utilizar o Regex (regular expressions) para isso.

import re

re.findall('Lucas','meu nome é Lucas')

# Buscando Lucas no texto abaixo
re.findall('Lu*cas','meu nome é Lcas')

# Verificando se começa ou termina com um caracter (usando ^, $)
re.findall('^Lucas','meu nome é Lucas')

# Verificando se existe parte da palavra Lucas (usando *, +, ?)
re.findall('Lu+cas','meu nome é Lucas)

# Buscando por Letra maiúsculas
re.findall('[A-Z]+\w{4}','meu nome é Lucas')
Separação com uso do Regex
Separação com uso do Regex

Aqui não vamos entrar em detalhes sobre esse assunto, mas nós temos uma publicação falando desse assunto, então caso queira entrar mais a fundo pode clicar aqui.

base.head()

# Buscando agora a classificação do cliente dentro da coluna "ClassRisco"
re.findall('^[A-Z][^A-Za-z]?','AAmarelo')

base['Risco'] = base.ClassRisco.apply(lambda x: re.findall('^[A-Z][^A-Za-z]?',x)[0])

base.head()
Limpeza de Dados no Python
Separação com uso do Regex

Então utilizando o regex nós vamos conseguir fazer a separação do Risco do cliente, pois aqui temos letras e os sinais de menos e mais, então só a separação que já fizemos não seria suficiente para essa classificação.

Para finalizar é importante verificar as informações da nossa base para garantir que o tipo das informações está correto.

base.info()
Limpeza de Dados no Python
Verificando as informações dos dados

Veja que a nossa coluna de idade está como objeto e na nossa categoria VIP temos 12 informações vazias, então vamos fazer esses tratamentos.

base['Idade'] = pd.to_numeric(base['Idade'])

base.info()

base.loc[base.CatVIP.isnull(),"CatVIP"] = "Comum"

base.info()
Limpeza de Dados no Python
Tratando os tipos dos dados e os valores vazios

Pronto, com os tipos e os valores vazios tratados nós podemos começar com nossas análises.

Podemos por exemplo criar uma base apenas com as colunas que acabamos de criar para verificar uma análise de risco.

base.groupby(["Pagamento","Risco"])["Pagamento"].count()
Limpeza de Dados no Python
Análise de pagamento e risco por cliente

Você deve ter notado que é importante não só entender os dados como fazer essa limpeza de dados para que fique tudo mais fácil e você consiga fazer suas análises de forma correta.

Conclusão – Limpeza de Dados no Python

Nessa aula eu te mostrei como fazer uma limpeza de dados no Python para que você consiga fazer o seu tratamento de dados de forma correta e fazer sua análise!

Essa parte é muito importante, pois as vezes com os dados iniciais você não consegue identificar as informações que precisa, então é preciso separar e classificá-las para que possa fazer as análises!

Hashtag Treinamentos

Para acessar outras publicações de Ciência de Dados, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador