Python: procesamiento de datos JSON

En un archivo JSON, los datos se almacenan como texto en un formato legible por humanos. JSON son las siglas de JavaScript Object Notation. Los pandas pueden leer archivos JSON con read_json función.

Los datos de entrada

Cree un archivo JSON copiando la información a continuación en un editor de texto como el bloc de notas. Guarde el archivo con .json extensión y elegir el tipo de archivo como todos los archivos(*.*)

{ 
   "ID":["1","2","3","4","5","6","7","8" ],
   "Name":["Rick","Dan","Michelle","Ryan","Gary","Nina","Simon","Guru" ]
   "Salary":["623.3","515.2","611","729","843.25","578","632.8","722.5" ],
   
   "StartDate":[ "1/1/2012","9/23/2013","11/15/2014","5/11/2014","3/27/2015","5/21/2013",
      "7/30/2013","6/17/2014"],
   "Dept":[ "IT","Operations","IT","HR","Finance","IT","Operations","Finance"]
}

Leer el archivo JSON

EN read_json La función de la biblioteca de pandas se puede usar para leer un archivo JSON en un DataFrame de pandas.

import pandas as pd

data = pd.read_json('path/input.json')
print (data)

Cuando ejecutamos el código anterior, da el siguiente resultado.

         Dept  ID    Name  Salary   StartDate
0          IT   1    Rick  623.30    1/1/2012
1  Operations   2     Dan  515.20   9/23/2013
2          IT   3   Tusar  611.00  11/15/2014
3          HR   4    Ryan  729.00   5/11/2014
4     Finance   5    Gary  843.25   3/27/2015
5          IT   6   Rasmi  578.00   5/21/2013
6  Operations   7  Pranab  632.80   7/30/2013
7     Finance   8    Guru  722.50   6/17/2014

Leer columnas y filas específicas

Similar a lo que vimos en el capítulo anterior, para leer un archivo CSV, read_json La función de la biblioteca de pandas también se puede usar para leer algunas columnas y filas específicas después de leer un archivo JSON en un DataFrame. Usamos una técnica de indexación de múltiples ejes llamada .loc () para esto. Hemos optado por mostrar las columnas Salario y Nombre para algunas de las filas.

import pandas as pd
data = pd.read_json('path/input.xlsx')

# Use the multi-axes indexing funtion
print (data.loc[[1,3,5],['salary','name']])

Cuando ejecutamos el código anterior, da el siguiente resultado.

   salary   name
1   515.2    Dan
3   729.0   Ryan
5   578.0  Rasmi

Leyendo archivos JSON como registros

También podemos aplicar to_json una función junto con parámetros para leer el contenido del archivo JSON en registros separados.

import pandas as pd
data = pd.read_json('path/input.xlsx')

print(data.to_json(orient="records", lines=True))

Cuando ejecutamos el código anterior, da el siguiente resultado.

{"Dept":"IT","ID":1,"Name":"Rick","Salary":623.3,"StartDate":"1/1/2012"}
{"Dept":"Operations","ID":2,"Name":"Dan","Salary":515.2,"StartDate":"9/23/2013"}
{"Dept":"IT","ID":3,"Name":"Tusar","Salary":611.0,"StartDate":"11/15/2014"}
{"Dept":"HR","ID":4,"Name":"Ryan","Salary":729.0,"StartDate":"5/11/2014"}
{"Dept":"Finance","ID":5,"Name":"Gary","Salary":843.25,"StartDate":"3/27/2015"}
{"Dept":"IT","ID":6,"Name":"Rasmi","Salary":578.0,"StartDate":"5/21/2013"}
{"Dept":"Operations","ID":7,"Name":"Pranab","Salary":632.8,"StartDate":"7/30/2013"}
{"Dept":"Finance","ID":8,"Name":"Guru","Salary":722.5,"StartDate":"6/17/2014"}

🚫