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!