Convertir JSON en un DataFrame de Pandas
-
JSON a un DataFrame de Pandas usando
json_normalize()
-
JSON al DataFrame de Pandas usando
read_json()
Este artículo presentará cómo convertir JSON en un DataFrame de Pandas.
JSON son las siglas de JavaScript Object Notation. Se basa en el formato de los objetos en JavaScript y es una técnica de codificación para representar datos estructurados. Se utiliza mucho hoy en día, especialmente para compartir datos entre servidores y aplicaciones web.
Debido a su simplicidad e influencia de las estructuras de datos del lenguaje de programación, JSON se está volviendo inmensamente popular. Es relativamente fácil de entender, y a continuación se presenta un ejemplo sencillo de una respuesta JSON de una API.
{
"Results":
[
{ "id": "01", "Name": "Jay" },
{ "id": "02", "Name": "Mark" },
{ "id": "03", "Name": "Jack" }
],
"status": ["ok"]
}
Como se puede ver en nuestro ejemplo, JSON parece ser algo así como una combinación de listas anidadas y diccionarios; por lo tanto, es relativamente fácil extraer datos de los archivos JSON e incluso almacenarlos como un Pandas DataFrame.
Las bibliotecas de Pandas y JSON en Python pueden ayudar a conseguirlo. Tenemos dos funciones read_json()
y json_normalize()
que pueden ayudar a convertir una cadena JSON en un DataFrame.
JSON a un DataFrame de Pandas usando json_normalize()
La función json_normalize()
es muy utilizada para leer la cadena anidada de JSON y devolver un DataFrame. Para usar esta función, necesitamos primero leer la cadena JSON usando la función json.loads()
en la biblioteca JSON en Python. Luego pasamos este objeto JSON a la json_normalize()
, que devolverá un DataFrame de Pandas con los datos necesarios.
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 al DataFrame de Pandas usando read_json()
Otra función de Pandas para convertir JSON en un DataFrame es read_json()
para cadenas JSON más simples. Podemos pasar directamente la ruta de un fichero JSON o la cadena JSON a la función para almacenar datos en un DataFrame de Pandas. read_json()
tiene muchos parámetros, entre los cuales orient
especifica el formato de la cadena JSON.
La desventaja es que es difícil de usar con cadenas JSON anidadas. Así que para usar read_json()
, usaremos un ejemplo mucho más simple como se muestra a continuación:
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
Establecemos como orient
el 'index'
porque la cadena JSON fromat coincide con el patrón 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.
LinkedInArtículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma