Python: procesamiento de datos JSON

El archivo JSON almacena datos como texto en formato legible por humanos. JSON son las siglas de JavaScript Object Notation. Pandas puede leer archivos JSON usando elread_json función.

Los datos de entrada

Cree un archivo JSON copiando los datos 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 all files(*.*).

{ 
   "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

los read_json La función de la biblioteca de pandas se puede usar para leer el 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, produce 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

Lectura de filas y columnas específicas

Similar a lo que ya hemos visto en el capítulo anterior para leer el archivo CSV, el read_jsonLa función de la biblioteca de pandas también se puede usar para leer algunas columnas específicas y filas específicas después de que el archivo JSON se lea en un DataFrame. Usamos el método de indexación de múltiples ejes llamado.loc()para este propósito. Elegimos mostrar la columna 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, produce el siguiente resultado.

salary   name
1   515.2    Dan
3   729.0   Ryan
5   578.0  Rasmi

Lectura de archivos JSON como registros

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

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, produce 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"}