Utilização e Aplicação do `json_normalize()` no Pandas
Tags: programming, pandas, python, datascience
Published: 2023-07-21 23:12:01

O pandas é uma biblioteca popular para análise de dados em Python. Entre suas diversas funcionalidades, o método `json_normalize()` destaca-se por sua capacidade de transformar dados aninhados em formato JSON em uma estrutura tabular, facilitando o trabalho com dados complexos. Neste artigo, vamos explorar o `json_normalize()` em detalhes, entender sua sintaxe e exemplos de aplicação para que você possa aproveitar ao máximo essa poderosa função no processamento de dados JSON.

Dados em formato JSON são frequentemente utilizados para representar informações estruturadas, especialmente quando tratamos de dados de APIs web ou armazenamento de informações hierárquicas. No entanto, para realizar análises e manipulações mais avançadas, é mais conveniente trabalhar com dados em formato tabular. O método `json_normalize()` do pandas é uma ferramenta útil para realizar essa transformação de dados JSON em uma estrutura tabular, permitindo que você manipule e explore os dados de forma mais eficiente.

**Propósito do Método `json_normalize()` no Pandas:**
O método `json_normalize()` é utilizado para transformar dados aninhados em formato JSON em um DataFrame tabular. Ele expande as informações aninhadas em diferentes níveis de profundidade do JSON e cria uma representação tabular que torna os dados mais acessíveis e fáceis de analisar. Isso é especialmente útil quando você tem dados JSON complexos, contendo listas e objetos aninhados.

**Sintaxe do Método `json_normalize()` no Pandas:**
A sintaxe do método `json_normalize()` é a seguinte:

```python
pandas.json_normalize(data, record_path=None, meta=None, sep='_', max_level=None)
```

- **data:** O objeto JSON que será normalizado.
- **record_path:** Caminho para as listas aninhadas que deseja desnormalizar (usado quando há listas dentro de listas).
- **meta:** Dicionário de metadados adicionais para incluir no DataFrame resultante.
- **sep:** Caractere ou string para separar colunas aninhadas.
- **max_level:** Nível máximo de profundidade que será normalizado.

**Exemplos de Utilização do Método `json_normalize()` no Pandas:**

Vamos utilizar exemplos para ilustrar o uso do método `json_normalize()`.

**Exemplo 1: JSON Simples**

Considere o seguinte JSON com informações sobre livros:

```python
data = {
    "livros": [
        {
            "titulo": "Aprendendo Pandas",
            "autor": "João Silva",
            "ano": 2020
        },
        {
            "titulo": "Python para Iniciantes",
            "autor": "Maria Souza",
            "ano": 2019
        }
    ]
}
```

Podemos normalizar esse JSON usando `json_normalize()`:

```python
import pandas as pd

df = pd.json_normalize(data, 'livros')
print(df)
```

A saída será:

```
                 titulo        autor   ano
0      Aprendendo Pandas   João Silva  2020
1  Python para Iniciantes  Maria Souza  2019
```

**Exemplo 2: JSON com Dados Aninhados**

Agora, considere o seguinte JSON com dados aninhados:

```python
data_aninhado = {
    "alunos": [
        {
            "nome": "João",
            "notas": {
                "matematica": 80,
                "historia": 70,
                "geografia": 85
            }
        },
        {
            "nome": "Maria",
            "notas": {
                "matematica": 90,
                "historia": 65,
                "geografia": 75
            }
        }
    ]
}
```

Podemos normalizar esse JSON usando `json_normalize()` e especificando o caminho para as notas:

```python
df_aninhado = pd.json_normalize(data_aninhado, 'alunos', record_path='notas', meta='nome')
print(df_aninhado)
```

A saída será:

```
   matematica  historia  geografia   nome
0          80        70         85   João
1          90        65         75  Maria
```

O método `json_normalize()` no pandas é uma ferramenta poderosa para transformar dados aninhados em formato JSON em uma estrutura tabular, tornando os dados mais acessíveis e fáceis de analisar. É especialmente útil quando você trabalha com dados complexos provenientes de APIs web ou outros serviços que retornam informações hierárquicas. Através de exemplos práticos, vimos como aplicar o `json_normalize()` para melhorar a organização e manipulação de dados JSON em DataFrames do pandas.

O pandas é uma biblioteca extremamente versátil e o `json_normalize()` é apenas uma das muitas funcionalidades poderosas disponíveis. Com o conhecimento adequado dessa função, você poderá extrair informações valiosas de dados JSON complexos e realizar análises avançadas de maneira eficiente.