Pandas DataFrame in JSON konvertieren
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.