Heim >Backend-Entwicklung >Python-Tutorial >Wie verwalte ich verschachtelte JSON-Objekte als DataFrame in Pandas?
Lesen von verschachteltem JSON mit verschachtelten Objekten als Pandas-DataFrame
Beim Umgang mit JSON-Daten, die verschachtelte Objekte enthalten, ist deren effiziente Bearbeitung in Python von entscheidender Bedeutung . Pandas bietet ein leistungsstarkes Tool, um dies zu erreichen – json_normalize.
Erweitern des Arrays in Spalten
Um das Standortarray in separate Spalten zu erweitern, verwenden Sie json_normalize wie folgt:
<code class="python">import json import pandas as pd with open('myJson.json') as data_file: data = json.load(data_file) df = pd.json_normalize(data, 'locations', ['date', 'number', 'name'], record_prefix='locations_') print(df)</code>
Dadurch wird ein Datenrahmen mit erweiterten Spalten erstellt:
locations_arrTime locations_arrTimeDiffMin locations_depTime \ 0 06:32 1 06:37 1 06:40 2 08:24 1 locations_depTimeDiffMin locations_name locations_platform \ 0 0 Spital am Pyhrn Bahnhof 2 1 0 Windischgarsten Bahnhof 2 2 Linz/Donau Hbf 1A-B locations_stationIdx locations_track number name date 0 0 R 3932 R 3932 01.10.2016 1 1 R 3932 01.10.2016 2 22 R 3932 01.10.2016
Verarbeitung mehrerer JSON-Objekte
Für JSON-Dateien, die mehrere Objekte enthalten, gilt der Ansatz hängt von der gewünschten Datenstruktur ab.
Einzelne Spalten behalten
Um einzelne Spalten (Datum, Nummer, Name, Orte) beizubehalten, verwenden Sie Folgendes:
<code class="python">df = pd.read_json('myJson.json') df.locations = pd.DataFrame(df.locations.values.tolist())['name'] df = df.groupby(['date', 'name', 'number'])['locations'].apply(','.join).reset_index() print(df)</code>
Dadurch werden die Daten gruppiert und die Standorte verkettet:
date name number locations 0 2016-01-10 R 3932 Spital am Pyhrn Bahnhof,Windischgarsten Bahnho...
Datenstruktur abflachen
Wenn Sie eine abgeflachte Datenstruktur bevorzugen, können Sie dies tun Verwenden Sie json_normalize mit den folgenden Einstellungen:
<code class="python">df = pd.read_json('myJson.json', orient='records', convert_dates=['date']) print(df)</code>
Dadurch werden die Daten in einer einzelnen Tabelle ausgegeben:
number date name ... locations.arrTimeDiffMin locations.depTimeDiffMin locations.platform 0 R 3932 2016-01-10 R 3932 ... 0 0 2 1 R 3932 2016-01-10 R 3932 ... 1 0 2 2 R 3932 2016-01-10 R 3932 ... 1 - 1A-B
Das obige ist der detaillierte Inhalt vonWie verwalte ich verschachtelte JSON-Objekte als DataFrame in Pandas?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!