Maison  >  Article  >  développement back-end  >  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
Linda Hamiltonoriginal
2024-10-24 11:40:02803parcourir

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>

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>

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>

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>

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>

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