Maison  >  Article  >  développement back-end  >  Comment convertir des structures JSON imbriquées en DataFrames Pandas structurés ?

Comment convertir des structures JSON imbriquées en DataFrames Pandas structurés ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-24 11:41:29701parcourir

How to Convert Nested JSON Structures into Structured Pandas DataFrames?

Démêler les mystères du JSON imbriqué : se transformer en DataFrames Pandas

Le voyage pour convertir des structures JSON imbriquées en DataFrames Pandas structurés peut être intimidant, mais avec les bons outils et techniques, cela devient une tâche transparente. Explorons les options disponibles pour cette transformation.

Normalisation JSON : une approche simple

json_normalize fournit une solution puissante pour aplatir les objets JSON imbriqués. Alors que nous nous lançons dans cette approche :

<code class="python">import json

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>

Sortie :

  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 

Analyse du nom et regroupement pour la concaténation

Cependant, si l'aplatissement n'est pas votre objectif ultime, vous pouvez adopter une approche alternative :

<code class="python">df = pd.read_json(&quot;myJson.json&quot;)
df.locations = pd.DataFrame(df.locations.values.tolist())['name']
df = df.groupby(['date','name','number'])['locations'].apply(','.join).reset_index()
print (df)</code>

Sortie :

        date    name                                          locations
0 2016-01-10  R 3932         Spital am Pyhrn Bahnhof,Windischgarsten Bahnho... 

Cette technique vous permet de concaténer les emplacements sans compromettre la structure de nidification.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn