Convierte el Pandas DataFrame en JSON

Manav Narula 30 enero 2023
  1. orient = 'columns'
  2. orient = 'records'
  3. orient = 'index'
  4. orient = 'split'
  5. orient = 'table'
Convierte el Pandas DataFrame en JSON

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.

En este artículo presentaremos cómo convertir un DataFrame en una cadena JSON.

Trabajaremos con el siguiente DataFrame:

import pandas as pd

df = pd.DataFrame(
    [["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
    columns=["Name", "Age", "Course"],
)

print(df)

Producción :

   Name  Age Course
0   Jay   16    BBA
1  Jack   19  BTech
2  Mark   18    BSc

El DataFrame de Pandas tiene un método dataframe.to_json() que convierte un DataFrame en una cadena JSON o lo almacena como un archivo JSON externo. El formato final de JSON depende del valor del parámetro orient, que es 'columns' por defecto pero puede ser especificado como 'records', 'index', 'split', 'table', y 'values'.

Todos los formatos están cubiertos a continuación:

orient = 'columns'

import pandas as pd

df = pd.DataFrame(
    [["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
    columns=["Name", "Age", "Course"],
)

js = df.to_json(orient="columns")

print(js)

Producción :

{"Name":{"0":"Jay","1":"Jack","2":"Mark"},
 "Age":{"0":16,"1":19,"2":18},
 "Course":{"0":"BBA","1":"BTech","2":"BSc"}}

orient = 'records'

import pandas as pd

df = pd.DataFrame(
    [["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
    columns=["Name", "Age", "Course"],
)

js = df.to_json(orient="records")

print(js)

Producción :

[{"Name":"Jay","Age":16,"Course":"BBA"},{"Name":"Jack","Age":19,"Course":"BTech"},{"Name":"Mark","Age":18,"Course":"BSc"}]

orient = 'index'

import pandas as pd

df = pd.DataFrame(
    [["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
    columns=["Name", "Age", "Course"],
)

js = df.to_json(orient="index")

print(js)

Producción :

{"0":{"Name":"Jay","Age":16,"Course":"BBA"},
 "1":{"Name":"Jack","Age":19,"Course":"BTech"},
 "2":{"Name":"Mark","Age":18,"Course":"BSc"}}

orient = 'split'

import pandas as pd

df = pd.DataFrame(
    [["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
    columns=["Name", "Age", "Course"],
)

js = df.to_json(orient="split")

print(js)

Producción :

{"columns":["Name","Age","Course"],
 "index":[0,1,2],
 "data":[["Jay",16,"BBA"],["Jack",19,"BTech"],["Mark",18,"BSc"]]}

orient = 'table'

import pandas as pd

df = pd.DataFrame(
    [["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
    columns=["Name", "Age", "Course"],
)

js = df.to_json(orient="table")

print(js)

Producción :

{"schema": {"fields":[{"name":"index","type":"integer"},{"name":"Name","type":"string"},{"name":"Age","type":"integer"},{"name":"Course","type":"string"}],"primaryKey":["index"],"pandas_version":"0.20.0"}, "data": [{"index":0,"Name":"Jay","Age":16,"Course":"BBA"},{"index":1,"Name":"Jack","Age":19,"Course":"BTech"},{"index":2,"Name":"Mark","Age":18,"Course":"BSc"}]}

Como ya se ha dicho, también podemos exportar el JSON directamente a un archivo externo. Se puede hacer como se muestra a continuación, proporcionando la ruta del archivo en la función dataframe.to_json().

import pandas as pd

df = pd.DataFrame(
    [["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
    columns=["Name", "Age", "Course"],
)

df.to_json("path\example.json", orient="table")

El código anterior exporta un archivo JSON a la ruta especificada.

Manav Narula avatar Manav Narula avatar

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.

LinkedIn

Artículo relacionado - Pandas DataFrame

Artículo relacionado - Pandas JSON