Pandas DataFrame in JSON konvertieren

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

JSON steht für JavaScript Object Notation. Sie basiert auf dem Format von Objekten in JavaScript und ist eine Kodierungstechnik zur Darstellung strukturierter Daten. Es ist heutzutage weit verbreitet, insbesondere für den Austausch von Daten zwischen Servern und Webanwendungen.

In diesem Artikel werden wir vorstellen, wie ein DataFrame in einen JSON-String konvertiert wird.

Wir werden mit dem folgenden DataFrame arbeiten:

import pandas as pd

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

print(df)

Ausgabe:

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

Pandas DataFrame hat eine Methode dataframe.to_json(), die einen DataFrame in einen JSON-String konvertiert oder als externe JSON-Datei speichert. Das endgültige JSON-Format hängt vom Wert des Parameters orient ab, der standardmäßig 'columns' ist, aber als 'records', 'index', 'split', 'table' und 'values' angegeben werden kann.

Alle Formate werden im Folgenden behandelt:

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)

Ausgabe:

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

Ausgabe:

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

Ausgabe:

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

Ausgabe:

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

Ausgabe:

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

Wie bereits erwähnt, können wir das JSON auch direkt in eine externe Datei exportieren. Dies kann wie unten gezeigt geschehen, indem der Pfad der Datei in der Funktion dataframe.to_json() angegeben wird.

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')

Der obige Code exportiert eine JSON-Datei in den angegebenen Pfad.

Verwandter Artikel - Pandas DataFrame

  • Zählen Sie eindeutige Werte pro Gruppe(n) in Pandas
  • Pandas in CSV ohne Index konvertieren
  • Verwandter Artikel - Pandas JSON

  • Wie man eine leere Spalte in Pandas DataFrame erstellt
  • Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame