Comment les Pandas gèrent-ils les objets JSON imbriqués ?

Barbara Streisand
Libérer: 2024-10-24 18:28:05
original
590 Les gens l'ont consulté

How Do Pandas Handle Nested JSON Objects?

Comment gérer les objets JSON imbriqués avec des pandas

Dans cet article, nous explorerons comment manipuler efficacement les structures de données JSON avec des objets imbriqués à l'aide de pandas.

Structure JSON imbriquée

Considérez la structure JSON suivante :

<code class="json">{
    "number": "",
    "date": "01.10.2016",
    "name": "R 3932",
    "locations": [
        {
            "depTimeDiffMin": "0",
            "name": "Spital am Pyhrn Bahnhof",
            "arrTime": "",
            "depTime": "06:32",
            "platform": "2",
            "stationIdx": "0",
            "arrTimeDiffMin": "",
            "track": "R 3932"
        },
        {
            "depTimeDiffMin": "0",
            "name": "Windischgarsten Bahnhof",
            "arrTime": "06:37",
            "depTime": "06:40",
            "platform": "2",
            "stationIdx": "1",
            "arrTimeDiffMin": "1",
            "track": ""
        },
        {
            "depTimeDiffMin": "",
            "name": "Linz/Donau Hbf",
            "arrTime": "08:24",
            "depTime": "",
            "platform": "1A-B",
            "stationIdx": "22",
            "arrTimeDiffMin": "1",
            "track": ""
        }
    ]
}</code>
Copier après la connexion

Aplatissement avec json_normalize

La fonction json_normalize de pandas nous permet d'aplatir les objets imbriqués dans un format tabulaire :

<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_')</code>
Copier après la connexion

Cela donne un DataFrame avec des colonnes pour chaque clé dans l'objet "locations" imbriqué.

Concaténation groupée sans aplatissement

Si l'aplatissement n'est pas souhaité, vous pouvez utiliser les capacités de regroupement et de concaténation de Pandas :

<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()</code>
Copier après la connexion

Cette approche concatène les valeurs "emplacements" sous la forme d'une chaîne séparée par des virgules pour chaque combinaison unique de "date", "nom" et "numéro". .

Conclusion

En utilisant les fonctionnalités json_normalize et de regroupement/concaténation de pandas, nous pouvons gérer efficacement les structures JSON imbriquées, nous permettant d'extraire et de manipuler des données dans un format tabulaire.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!