Oi Ceilton, tudo certinho?
Você está indo bem com a sua compreensão dos métodos pd.json_normalize()
e df.explode()
. Vou explicar a diferença entre os dois:
Esse método é usado para converter estruturas JSON complexas (com várias camadas) em uma tabela simples (DataFrame). Ele é usado quando temos dados em formato de dicionário dentro de outro dicionário e quer que cada chave desses dicionários vire uma coluna na tabela. Por exemplo:
```python
import pandas as pd
json_data = {
'id_cliente': '1399-UBQIU',
'Churn': 'nao',
'cliente': {'genero': 'masculino', 'idoso': 0, 'parceiro': 'nao'},
'Telefone': {'servico_telefone': 'sim', 'varias_linhas': 'nao'},
'Internet': {'servico_internet': 'DSL', 'Seguranca_online': 'nao'}
}
df = pd.json_normalize(json_data)
print(df)
```
Isso vai criar uma tabela onde cada detalhe do JSON vira uma coluna:
```
id_cliente Churn cliente.genero cliente.idoso cliente.parceiro Telefone.servico_telefone Telefone.varias_linhas Internet.servico_internet Internet.Seguranca_online
0 1399-UBQIU nao masculino 0 nao sim nao DSL nao
```
df.explode()
Esse método é usado quando você tem listas dentro de colunas e quer transformar cada item da lista em uma linha nova. Por exemplo:
import pandas as pd
data = {
'id_cliente': ['1399-UBQIU', '0002-ORFBO'],
'Churn': ['nao', 'sim'],
'servicos': [['internet', 'telefone'], ['internet']]
}
df = pd.DataFrame(data)
df_exploded = df.explode('servicos')
print(df_exploded)
Isso vai criar uma tabela onde cada serviço da lista vira uma linha separada:
```
id_cliente Churn servicos
0 1399-UBQIU nao internet
0 1399-UBQIU nao telefone
1 0002-ORFBO sim internet
```
Portanto, o método pd.json_normalize()
é utilizado para transformar dicionários aninhados em colunas de uma tabela, facilitando a manipulação e análise dos dados. Já o método df.explode()
é usado para transformar itens de uma lista em linhas separadas, permitindo que cada elemento da lista ocupe uma linha individual no DataFrame.
Espero ter ajudado.
Qualquer dúvida, compartilhe no fórum.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!