Entenda o método explode do Pandas, uma ferramenta que vai te ajudar bastante na hora de fazer suas análises de dados no Python!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Entendendo o Método Explode do Pandas
Na aula de hoje, vamos falar sobre o método explode do Pandas, que é muito útil para análises de dados em Python.
É muito comum recebermos bases de dados em que uma coluna contém dados dispostos em estruturas semelhantes as listas do Python.
Para lidar com esses casos, podemos utilizar o método explode para transformar esses dados agrupados em uma única célula em várias linhas.
Visualizando a Base de Dados
No material disponível para download, você encontrará a base de dados que utilizaremos ao longo desta aula.
Nela, temos informações fictícias que simulam como uma empresa de desenvolvimento de software organiza seus contratos, com detalhes sobre o cliente, as fases (planejamento, desenvolvimento e teste), as horas contratadas e as taxas para cada fase.
Podemos visualizar esses dados gerando o DataFrame com o Pandas e verificando as informações presentes.
import pandas as pd BASE = "./dados/dados.csv" dados = pd.read_csv(BASE) dados
Observe que as fases de desenvolvimento, assim como as horas gastas em cada uma e as taxas cobradas, estão organizadas em estruturas semelhantes as listas do Python.
Essas informações seriam melhor compreendidas e visualizadas se estivessem em linhas distintas.
Analisando as Informações Iniciais
Antes de partirmos para o método explode, que é o foco principal desta aula, precisamos analisar as informações iniciais presentes no DataFrame e verificar quais ajustes podem ser necessários antes de aplicarmos o método.
dados.info()
A princípio, podemos destacar alguns problemas. O primeiro deles é que a coluna data_pedido está sendo reconhecida como um object (texto) e não como um tipo data.
Além disso, as colunas horas e taxas_horarias também estão sendo reconhecidas como texto e não como valores numéricos. Dessa forma, não conseguimos usar esses dados para realizar operações numéricas e agregações.
Portanto, antes de utilizarmos o método explode, precisaremos fazer alguns ajustes no nosso DataFrame.
Transformando Strings em Listas
Apesar da disposição e estrutura muito semelhante às listas do Python, os dados apresentados nas colunas fases, horas e taxas_horarias não são uma lista, mas sim uma string.
Podemos confirmar isso exibindo a primeira linha da coluna fases e o tipo dessa coluna:
print(dados.loc[0, "fases"]) type(dados.loc[0, "fases"])
Ou seja, por mais que pareçam listas, esses dados estão sendo reconhecidos pelo Pandas como strings, o que impacta diretamente na aplicabilidade de certos métodos, como o explode.
Para solucionar esse problema, vamos criar um loop for que irá percorrer cada uma dessas colunas: fases, horas e taxas_horarias.
Para cada coluna, o código definirá uma lista chamada remover contendo os símbolos [, ], ‘ e um espaço em branco.
Em seguida, para cada um desses símbolos, utilizaremos o método str.replace para remover o símbolo da coluna.
Após remover os caracteres indesejados, o código dividirá o conteúdo da coluna em listas, usando o método split e a vírgula como delimitador.
# transformando as colunas fases, horas e taxas_horarias em listas para explode for coluna in ["fases", "horas", "taxas_horarias"]: # remover colchetes e aspas remover = ["[", "]", "'", " "] # substituir os caracteres por vazio for simbolo in remover: dados[coluna] = dados[coluna].str.replace(simbolo, "") # transformar a coluna em lista dados[coluna] = dados[coluna].str.split(",") dados
Ao final, o DataFrame resultante será visualmente semelhante ao que tínhamos, mas as colunas fases, horas e taxas_horarias serão listas de strings e estarão prontas para aplicarmos o método explode.
dados.info()
print(dados.loc[0, "fases"]) type(dados.loc[0, "fases"])
Observe que agora temos nossos dados efetivamente transformados em listas e podemos aplicar o método explode.
Método Explode no Pandas
O método explode é utilizado para realizar a expansão das informações nas colunas designadas. Ou seja, podemos transformar as colunas em que temos listas como valores e dividir os elementos dessas listas em linhas separadas.
Para esse método, basta informarmos as colunas que desejamos expandir, nesse caso as colunas fases, horas e taxas_horarias.
dados_expandido = dados.explode(["fases", "horas", "taxas_horarias"]) dados_expandido
Com isso, temos os resultados da lista separados em diversas linhas, repetindo os dados das outras colunas que não continham listas, para que o DataFrame fique completo com todas as informações.
Para mais detalhes sobre o método explode, você pode conferir a documentação oficial aqui:
Ajustando os Tipos de Dados
Se verificarmos as informações desse DataFrame resultante, veremos que, apesar de toda a transformação feita, os dados presentes nele ainda são reconhecidos como objects, ou seja, textos.
dados_expandido.info()
Como vimos na aula sobre Otimizar DataFrames, um dos principais pontos é ajustarmos os dados para que eles sejam reconhecidos e utilizados de forma correta.
Por isso, usaremos a função to_datetime para converter a coluna data_pedido em uma coluna de data.
# transformando a coluna data_pedido em datetime dados_expandido["data_pedido"] = pd.to_datetime(dados_expandido["data_pedido"], format="%Y-%m")
Além disso, podemos utilizar a função to_numeric para converter os dados das colunas horas e taxas_horarias em valores numéricos.
# transformando as colunas horas e taxas_horarias em numéricas for coluna in ["horas", "taxas_horarias"]: dados_expandido[coluna] = pd.to_numeric(dados_expandido[coluna]) dados_expandido
dados_expandido.info()
Converter esses dados de object para datetime e int nos permite uma manipulação mais eficiente e assertiva dos dados. A partir disso, você pode construir e realizar suas análises normalmente.
Conclusão – Entendendo o Método Explode do Pandas
Nessa aula, você aprendeu como utilizar o método explode do Pandas, uma ferramenta muito útil para fazer análises de dados com Python.
Para utilizar esse método, é necessário que os dados contidos na coluna sejam uma lista, tupla ou array. Caso contrário, será preciso primeiro fazer a conversão desses dados.
Com isso, você aprendeu todos os procedimentos necessários para transformar os dados em listas no seu DataFrame e aplicar o método explode. Isso te proporcionará uma manipulação e análise mais efetiva das informações.
Hashtag Treinamentos
Para acessar outras publicações de Ciência de Dados, clique aqui!
Posts mais recentes da Hashtag Treinamentos
- 5 Boas Práticas de SQL para Iniciantes: Otimize Suas Consultas e Organize Seu CódigoSe você está começando com MySQL ou busca melhorar suas habilidades em SQL, este post traz cinco boas práticas de escrita de SQL para iniciantes.
- Função SE Excel: Exemplos e Dicas para Uso [Guia]A função SE Excel é muito útil para definir condições e criar uma planilha mais completa e funcional. Confira nesta aula!
- Exercícios de Listening em Inglês – Como Melhorar sua CompreensãoFaça estes exercícios de listening em inglês e melhore sua compreensão! Descubra técnicas e estratégias para praticar e evoluir no aprendizado do idioma!
- TCP e UDP: o que são, diferenças e quando usarEntenda o que é TCP e UDP, as diferenças entre os protocolos, suas vantagens e quando usar cada um. Aprenda com exemplos práticos e linguagem acessível.
- Biblioteca NumPy: o que é, vantagens e como usarAprenda como usar a biblioteca NumPy no Python para otimizar o processamento de dados e melhorar sua eficiência em projetos de ciência de dados.
- Power Apps: o que é, benefícios e como usarDescubra o que é Power Apps, como a ferramenta revoluciona a criação de aplicativos e como você pode começar a usá-la hoje mesmo!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.