Maison >développement back-end >Tutoriel Python >Comment les Pandas gèrent-ils les objets JSON imbriqués ?
Dans cet article, nous explorerons comment manipuler efficacement les structures de données JSON avec des objets imbriqués à l'aide de pandas.
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>
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>
Cela donne un DataFrame avec des colonnes pour chaque clé dans l'objet "locations" imbriqué.
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>
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". .
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!