Come convertire un dataframe pandas in json


Spesso potresti essere interessato a convertire un DataFrame Panda in formato JSON.

Fortunatamente, questo è facile da fare utilizzando la funzione to_json() , che consente di convertire un DataFrame in una stringa JSON con uno dei seguenti formati:

  • ‘dividi’: dict come {‘indice’ -> [indice], ‘colonne’ -> [colonne], ‘dati’ -> [valori]}
  • ‘record’: elenco come [{colonna -> valore}, …, {colonna -> valore}]
  • ‘indice’: dict come {indice -> {colonna -> valore}}
  • ‘colonne’: dict come {colonna -> {indice -> valore}}
  • ‘valori’: solo l’array di valori
  • ‘tabella’: dict come {‘schema’: {schema}, ‘dati’: {dati}}

Questo tutorial mostra come convertire un DataFrame in ciascuno dei sei formati utilizzando il seguente DataFrame panda:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 19],
                   'assists': [5, 7, 7, 12]})  

#view DataFrame
df

        assist points
0 25 5
1 12 7
2 15 7
3 19 12

Metodo 1: “Dividi”

 df. to_json (orient=' split ')

{
   "columns": [
      "points",
      "assists"
   ],
   "index": [
      0,
      1,
      2,
      3
   ],
   "data": [
      [
         25,
         5
      ],
      [
         12,
         7
      ],
      [
         15,
         7
      ],
      [
         19,
         12
      ]
   ]
}

Metodo 2: “Registrazioni”

 df. to_json (orient=' records ')

[
   {
      "points": 25,
      “assists”: 5
   },
   {
      "points": 12,
      “assists”: 7
   },
   {
      "points": 15,
      “assists”: 7
   },
   {
      "points": 19,
      “assists”: 12
   }
]

Metodo 3: “Indice”

 df. to_json (orient=' index ') 

{
   "0": {
      "points": 25,
      “assists”: 5
   },
   "1": {
      "points": 12,
      “assists”: 7
   },
   "2": {
      "points": 15,
      “assists”: 7
   },
   "3": {
      "points": 19,
      “assists”: 12
   }
}

Metodo 4: “Colonne”

 df. to_json (orient=' columns ') 

{
   "dots": {
      "0": 25,
      "1": 12,
      "2": 15,
      "3": 19
   },
   "assists": {
      "0": 5,
      "1": 7,
      "2": 7,
      "3": 12
   }
}

Metodo 5: “Valori”

 df. to_json (orient=' values ') 

[
   [
      25,
      5
   ],
   [
      12,
      7
   ],
   [
      15,
      7
   ],
   [
      19,
      12
   ]
]

Metodo 6: “Tabella”

 df. to_json (orient=' table ') 

{
   "plan": {
      "fields": [
         {
            "name": "index",
            "type": "integer"
         },
         {
            "name": "points",
            "type": "integer"
         },
         {
            "name": "assists",
            "type": "integer"
         }
      ],
      "primaryKey": [
         "index"
      ],
      "pandas_version": "0.20.0"
   },
   "data": [
      {
         "index": 0,
         "points": 25,
         “assists”: 5
      },
      {
         "index": 1,
         "points": 12,
         “assists”: 7
      },
      {
         "index": 2,
         "points": 15,
         “assists”: 7
      },
      {
         "index": 3,
         "points": 19,
         “assists”: 12
      }
   ]
}

Come esportare un file JSON

Puoi utilizzare la seguente sintassi per esportare un file JSON in un percorso file specifico sul tuo computer:

 #create JSON file 
json_file = df. to_json (orient=' records ') 

#export JSON file
with open('my_data.json', 'w') as f:
    f.write(json_file)

Puoi trovare la documentazione completa della funzione panda to_json() qui .

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *