Data Wrangling

JSON nach Pandas DataFrame: Die Meisterklasse

Spread the love

Pandas ist eine leistungsstarke Python-Bibliothek zur Datenmanipulation und -analyse. Häufig liegen Daten im JSON-Format vor und müssen zur effizienten Verarbeitung in ein Pandas DataFrame konvertiert werden. Dieser Artikel untersucht zwei Hauptmethoden für diese Konvertierung: die Verwendung von json_normalize() und read_json(), wobei deren Stärken und Schwächen hervorgehoben werden.

Inhaltsverzeichnis

Effizientes Verarbeiten von verschachteltem JSON mit json_normalize()

Die Funktion json_normalize() eignet sich hervorragend für die Verarbeitung verschachtelter JSON-Strukturen. Sie wandelt diese hierarchischen Daten in ein tabellarisches Format um, das ideal für Pandas DataFrames ist. Obwohl ein tieferes Verständnis der JSON-Struktur erforderlich ist, bietet sie eine granulare Kontrolle über das resultierende DataFrame.

Betrachten Sie dieses Beispiel:


import pandas as pd
import json

json_data = """
[
  {"id": 1, "name": "Alice", "address": {"street": "123 Main St", "city": "Anytown"}},
  {"id": 2, "name": "Bob", "address": {"street": "456 Oak Ave", "city": "Otherville"}}
]
"""

data = json.loads(json_data)

df = pd.json_normalize(data, record_path=['address'], meta=['id', 'name'])

print(df)

Dieser Code lädt das JSON und verwendet dann json_normalize(). record_path=['address'] gibt das verschachtelte Feld ‚address‘ zum Flatten an, während meta=['id', 'name'] ‚id‘ und ’name‘ als Metadatenspalten einschließt. Das ausgegebene DataFrame enthält die Spalten ’street‘, ‚city‘, ‚id‘ und ’name‘.

Vorteile von json_normalize():

  • Verarbeitet verschachteltes JSON: Ideal für komplexes, hierarchisches JSON.
  • Kontrolliertes Flatten: Präzise Kontrolle über die enthaltenen Felder und das Flatten.

Nachteile von json_normalize():

  • Kenntnisse der JSON-Struktur erforderlich: Die effektive Verwendung erfordert das Verständnis der JSON-Struktur.
  • Komplexität bei stark verschachteltem JSON: Extrem komplexe Strukturen können umständlich sein.

Vereinfachung von einfachem JSON mit read_json()

Die Funktion read_json() bietet einen direkteren Ansatz, insbesondere für einfachere JSON-Strukturen. Sie liest JSON-Daten direkt in ein Pandas DataFrame ein, was oft bei einfacheren JSON-Objekten oder bei der Arbeit mit JSON-Dateien bevorzugt wird.

Hier ist ein Beispiel:


import pandas as pd
import json

json_data = """
[
  {"id": 1, "name": "Alice", "age": 30},
  {"id": 2, "name": "Bob", "age": 25}
]
"""

df = pd.read_json(json_data)

print(df)

Dieser Code liest die JSON-Zeichenkette direkt in ein DataFrame ein und spiegelt die JSON-Struktur in den DataFrame-Spalten wider.

Vorteile von read_json():

  • Einfach und intuitiv: Einfach zu verwenden für einfachere JSON-Strukturen.
  • Direkte JSON-Dateiverarbeitung: Liest JSON-Daten effizient aus Dateien mithilfe von Dateipfaden.

Nachteile von read_json():

  • Eingeschränkte Verarbeitung von verschachteltem JSON: Kann mit stark verschachteltem JSON zu kämpfen haben, möglicherweise ist eine Vorverarbeitung erforderlich.
  • Weniger Kontrolle über das Flatten: Bietet im Vergleich zu json_normalize() weniger Kontrolle über die endgültige DataFrame-Struktur.

Fazit:

Sowohl json_normalize() als auch read_json() sind wertvolle Werkzeuge zur Konvertierung von JSON in Pandas DataFrames. Die beste Wahl hängt von der Komplexität Ihres JSON und der gewünschten Kontrolle über das resultierende DataFrame ab. Für einfacheres JSON reicht read_json() aus; für verschachteltes JSON bietet json_normalize() die Flexibilität, ein verwendbares DataFrame zu erstellen. Denken Sie daran, pandas mit pip install pandas zu installieren, bevor Sie diese Beispiele ausführen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert