DEV Community

Francisco Júnior
Francisco Júnior

Posted on • Updated on

Utilização e Aplicação do `json_normalize()` no Pandas

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:

pandas.json_normalize(data, record_path=None, meta=None, sep='_', max_level=None)
Enter fullscreen mode Exit fullscreen mode
  • 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:

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

Podemos normalizar esse JSON usando json_normalize():

import pandas as pd

df = pd.json_normalize(data, 'livros')
print(df)
Enter fullscreen mode Exit fullscreen mode

A saída será:

                 titulo        autor   ano
0      Aprendendo Pandas   João Silva  2020
1  Python para Iniciantes  Maria Souza  2019
Enter fullscreen mode Exit fullscreen mode

Exemplo 2: JSON com Dados Aninhados

Agora, considere o seguinte JSON com dados aninhados:

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

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

df_aninhado = pd.json_normalize(data_aninhado, 'alunos', record_path='notas', meta='nome')
print(df_aninhado)
Enter fullscreen mode Exit fullscreen mode

A saída será:

   matematica  historia  geografia   nome
0          80        70         85   João
1          90        65         75  Maria
Enter fullscreen mode Exit fullscreen mode

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.

Top comments (0)