Konvertieren von JSON in einen Pandas DataFrame
In diesem Artikel wird gezeigt, wie man JSON in einen Pandas DataFrame konvertiert.
JSON steht für JavaScript Object Notation. Es 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.
Aufgrund seiner Einfachheit und des Einflusses von Datenstrukturen aus Programmiersprachen erfreut sich JSON einer großen Beliebtheit. Es ist relativ einfach zu verstehen, und im Folgenden sehen Sie ein einfaches Beispiel für eine JSON-Antwort von einer API.
{
"Results":
[
{ "id": "01", "Name": "Jay" },
{ "id": "02", "Name": "Mark" },
{ "id": "03", "Name": "Jack" }
],
"status": ["ok"]
}
Wie Sie in unserem Beispiel sehen können, scheint JSON eher eine Kombination aus verschachtelten Listen und Dictionaries zu sein; daher ist es relativ einfach, Daten aus JSON-Dateien zu extrahieren und sogar als Pandas DataFrame zu speichern.
Pandas und JSON-Bibliotheken in Python können dabei helfen. Wir haben zwei Funktionen read_json()
und json_normalize()
, die bei der Umwandlung von JSON-Strings in einen DataFrame helfen können.
JSON zu Pandas DataFrame mit json_normalize()
Die Funktion json_normalize()
wird sehr häufig verwendet, um den verschachtelten JSON-String zu lesen und einen DataFrame zurückzugeben. Um diese Funktion zu verwenden, müssen wir zuerst den JSON-String mit der Funktion json.loads()
aus der JSON-Bibliothek in Python lesen. Dann übergeben wir dieses JSON-Objekt an die Funktion json_normalize()
, die einen Pandas DataFrame zurückgibt, der die benötigten Daten enthält.
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)
Ausgabe:
id Name
0 1 Jay
1 2 Mark
2 3 Jack
JSON zu Pandas DataFrame mit read_json()
Eine weitere Pandas-Funktion zur Umwandlung von JSON in einen DataFrame ist read_json()
für einfachere JSON-Strings. Wir können den Pfad einer JSON-Datei oder den JSON-String direkt an die Funktion übergeben, um Daten in einem Pandas DataFrame zu speichern. read_json()
hat viele Parameter, von denen orient
das Format des JSON-Strings angibt.
Der Nachteil ist, dass es schwierig ist, mit verschachtelten JSON-Strings zu arbeiten. Daher werden wir für die Verwendung von read_json()
ein viel einfacheres Beispiel wie unten gezeigt verwenden:
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)
Ausgabe:
Name Age
0 Jay 17
1 Mark 15
2 Jack 16
Wir setzen orient
auf 'index'
, weil der JSON-String vonat mit dem Muster als {index : {column: value}}
übereinstimmt.
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.
LinkedInVerwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum