„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie verwalte ich verschachtelte JSON-Objekte als DataFrame in Pandas?

Wie verwalte ich verschachtelte JSON-Objekte als DataFrame in Pandas?

Veröffentlicht am 08.11.2024
Durchsuche:540

How to Manage Nested JSON Objects as a 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 Standort-Array in separate Spalten zu erweitern, verwenden Sie json_normalize wie folgt:

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)

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 

Umgang mit mehreren JSON-Objekten

Bei JSON-Dateien, die mehrere Objekte enthalten, hängt die Vorgehensweise von der gewünschten Datenstruktur ab.

Einzelne Spalten behalten

Um einzelne Spalten (Datum, Nummer, Name, Orte) beizubehalten, verwenden Sie Folgendes:

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)

Dadurch werden die Daten gruppiert und die Orte 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:

df = pd.read_json('myJson.json', orient='records', convert_dates=['date'])

print(df)

Dies gibt die Daten in einer einzigen Tabelle aus:

  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
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729739643 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3