Convertir Pandas DataFrame en JSON

  1. orient = 'columns'
  2. orient = 'records'
  3. orient = 'index'
  4. orient = 'split'
  5. orient = 'table'

JSON signifie JavaScript Object Notation. Il est basé sur le format des objets en JavaScript et est une technique de codage pour représenter des données structurées. Elle est largement utilisée de nos jours, notamment pour le partage de données entre serveurs et applications web.

Nous présenterons dans cet article comment convertir une DataFrame en chaîne JSON.

Nous travaillerons avec la DataFrame suivante :

import pandas as pd

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

print(df)

Production :

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

Pandas DataFrame a une méthode dataframe.to_json() qui convertit une DataFrame en une chaîne JSON ou la stocke dans un fichier JSON externe. Le format JSON final dépend de la valeur du paramètre orient, qui est 'columns' par défaut mais peut être spécifié comme 'records', 'index', 'split', 'table', et 'values'.

Tous les formats sont couverts ci-dessous :

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)

Production :

{"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)

Production :

[{"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)

Production :

{"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)

Production :

{"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)

Production :

{"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"}]}

Comme nous l’avons déjà mentionné, nous pouvons également exporter le JSON directement vers un fichier externe. Cela peut être fait comme indiqué ci-dessous en fournissant le chemin du fichier dans la fonction 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')

Le code ci-dessus exporte un fichier JSON vers le chemin spécifié.

Article connexe - Pandas DataFrame

  • Comment obtenir l'agrégat des Pandas par groupe et par somme
  • Article connexe - Pandas JSON

  • Convertir JSON en un Pandas DataFrame
  • Comment définir la valeur d'une cellule particulière dans Pandas DataFrame à l'aide de l'index