Converter o JSON em Pandas DataFrame
-
JSON para Pandas DataFrame utilizando
json_normalize()
-
JSON para Pandas DataFrame utilizando a função
read_json()
Este artigo irá introduzir como converter o JSON a uma Pandas DataFrame.
JSON significa JavaScript Object Notation (Notação de Objecto JavaScript). É baseado no formato de objectos em JavaScript e é uma técnica de codificação para representar dados estruturados. É amplamente utilizada hoje em dia, especialmente para a partilha de dados entre servidores e aplicações web.
Devido à sua simplicidade e influência das estruturas de dados da linguagem de programação, o JSON está a tornar-se imensamente popular. É relativamente fácil de compreender, e o seguinte é um exemplo simples de uma resposta JSON de uma API.
{
"Results":
[
{ "id": "01", "Name": "Jay" },
{ "id": "02", "Name": "Mark" },
{ "id": "03", "Name": "Jack" }
],
"status": ["ok"]
}
Como se pode ver no nosso exemplo, JSON parece ser de certa forma uma combinação de listas e dicionários aninhados; portanto, é relativamente fácil extrair dados de ficheiros JSON e até armazená-los como um Pandas DataFrame.
As bibliotecas de Pandas e JSON em Python podem ajudar a conseguir isto. Temos duas funções read_json()
e json_normalize()
que podem ajudar na conversão da string JSON para uma DataFrame.
JSON para Pandas DataFrame utilizando json_normalize()
A função json_normalize()
é muito utilizada para ler a string JSON aninhada e devolver um DataFrame. Para utilizar esta função, precisamos primeiro de ler a string JSON utilizando a função json.loads()
na biblioteca JSON em Python. Depois passamos este objecto JSON para a função json_normalize()
, que retornará um Pandas DataFrame contendo os dados necessários.
import pandas as pd
import json
from pandas import json_normalize
data = """
{
"Results":
[
{ "id": "1", "Name": "Jay" },
{ "id": "2", "Name": "Mark" },
{ "id": "3", "Name": "Jack" }
],
"status": ["ok"]
}
"""
info = json.loads(data)
df = json_normalize(info["Results"]) # Results contain the required data
print(df)
Resultado:
id Name
0 1 Jay
1 2 Mark
2 3 Jack
JSON para Pandas DataFrame utilizando a função read_json()
Outra função Pandas para converter o JSON para uma DataFrame é read_json()
para strings JSON mais simples. Podemos passar directamente o caminho de um ficheiro JSON ou da string JSON para a função de armazenamento de dados numa DataFrame Pandas. O read_json()
tem muitos parâmetros, entre os quais orient
especifica o formato da string JSON.
A desvantagem é que é difícil de utilizar com strings JSON aninhadas. Assim, para utilizar read_json()
, vamos utilizar um exemplo muito mais simples, como se mostra abaixo:
import pandas as pd
data = """
{
"0":{
"Name": "Jay",
"Age": "17"
},
"1":{
"Name": "Mark",
"Age": "15"
},
"2":{
"Name": "Jack",
"Age":"16"
}
}
"""
df = pd.read_json(data, orient="index")
print(df)
Resultado:
Name Age
0 Jay 17
1 Mark 15
2 Jack 16
Definimos orient
para ser 'index'
porque a string JSON da string JSON corresponde ao padrão como {index : {column: value}}
.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedInArtigo relacionado - Pandas DataFrame
- Como obter os cabeçalhos da coluna Pandas DataFrame como uma lista
- Como eliminar a coluna Pandas DataFrame
- Como Converter a Coluna DataFrame para DataTempo em Pandas
- Como Converter um Flutuador em um Inteiro em Pandas DataFrame
- Como Classificar Pandas DataFrame pelos Valores de uma Coluna
- Como Obter o Agregado de Pandas Group-By e Sum