Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwalte ich verschachtelte JSON-Objekte als DataFrame in Pandas?

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

DDD
DDDOriginal
2024-10-24 14:07:02874Durchsuche

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 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn