Maison > développement back-end > Tutoriel Python > Comment importer et traiter des données JSON imbriquées dans des DataFrames Pandas ?

Comment importer et traiter des données JSON imbriquées dans des DataFrames Pandas ?

Linda Hamilton
Libérer: 2024-10-24 11:40:02
original
904 Les gens l'ont consulté

How to Import and Process Nested JSON Data into Pandas DataFrames?

Lecture de fichiers JSON imbriqués en tant que DataFrames Pandas

Lorsque vous travaillez avec des données JSON contenant des objets imbriqués, il peut être nécessaire de les convertir en un fichier plus format structuré pour l’analyse ou la manipulation. Pandas fournit des outils utiles pour gérer efficacement ces données.

Scénario :

Considérons un fichier JSON avec la structure suivante :

<code class="json">{
    "number": "",
    "date": "01.10.2016",
    "name": "R 3932",
    "locations": [
        { ... },
        { ... },
        { ... }
    ]
}</code>
Copier après la connexion

Utilisation de json_normalize :

La fonction json_normalize vous permet d'aplatir le JSON imbriqué dans un DataFrame. Pour le JSON donné, vous pouvez procéder comme suit :

<code class="python">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>
Copier après la connexion

Cela créera un DataFrame avec les colonnes suivantes :

Extension pour conserver les données imbriquées :

Si vous préférez garder le tableau imbriqué intact, vous pouvez utiliser read_json avec le paramètre d'analyse. Cela analysera le JSON dans un DataFrame avec la colonne des emplacements sous forme de liste de dictionnaires.

<code class="python">df = pd.read_json("myJson.json", orient='records', parsing = True)</code>
Copier après la connexion

Vous pouvez également analyser la colonne des emplacements à l'aide du paramètre constructeur :

<code class="python">df = pd.read_json("myJson.json", orient='records',
                  constructor=lambda x: pd.DataFrame(x['locations']))</code>
Copier après la connexion

Concaténation des valeurs imbriquées :

Si vous souhaitez joindre les valeurs de la colonne des emplacements en une seule chaîne, vous pouvez utiliser les fonctions groupby et apply :

<code class="python">df = df.groupby(['date', 'name', 'number'])['locations'].apply(','.join).reset_index()</code>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal