El análisis de datos es una herramienta extremadamente importante en el mundo actual. Un aspecto clave de Data Analytics es una representación organizada de datos. Existen numerosas estructuras de datos en informática para lograr esta tarea. En este artículo, hablamos de dos estructuras de datos de este tipo, a saber. pandas DataFrames y JSON . Además, vemos cómo convertir DataFrames a formato JSON.
Pandas DataFrames son representaciones tabulares de datos donde las columnas representan los diversos puntos de datos en una sola entrada de datos y cada fila es una entrada de datos única. Mientras que JSON es un texto escrito en notaciones de objetos JavaScript.
Nota: Para obtener más información, consulte Python | Marco de datos de pandas
Convierte pandas DataFrame en JSON
Para convertir pandas DataFrames a formato JSON usamos la función DataFrame.to_json()
de la biblioteca pandas en Python. Hay varias personalizaciones disponibles en la función to_json para lograr los formatos deseados de JSON. Veamos los parámetros aceptados por las funciones y luego exploremos la personalización.
Parámetros:
Parámetro | Valor | Usar |
---|---|---|
camino_o_buf | string o nombre de archivo, opcional | Ruta de archivo u objeto. Si no se especifica, el resultado se devuelve como una string. |
orientar | ‘dividir’, ‘registros’, ‘índice’, ‘columnas’, ‘valores’, ‘tabla’, predeterminado=’índice’ | Indicación del formato de string JSON esperado. |
formato de fecha | Ninguno, ‘época’, ‘iso’, predeterminado=’época’ | Tipo de conversión de fecha. ‘época’ = milisegundos de época, ‘iso’ = ISO8601. El valor predeterminado depende de la orientación. Para orient=’table’, el valor predeterminado es ‘iso’. Para el resto de orientaciones, el valor predeterminado es ‘época’. |
Precisión doble | valor entero, por defecto=10 | El número de lugares decimales que se usarán al codificar valores de punto flotante. |
fuerza_ascii | valor booleano, por defecto=Verdadero | Forzar la string codificada para que sea ASCII. |
fecha_unidad | ‘s’, ‘ms’, ‘nosotros’, ‘ns’, predeterminado=’ms’ | La unidad de tiempo para codificar rige la marca de tiempo y la precisión ISO8601. Los valores representan segundos, milisegundos, microsegundos y nanosegundos respectivamente. |
controlador_predeterminado | función invocable | Controlador para llamar si el objeto no se puede convertir de otro modo a un formato adecuado para JSON. Debería recibir un único argumento que es el objeto a convertir y devolver un objeto serializable. |
líneas | valor booleano, predeterminado=Falso | Si ‘orientar’ es ‘registros’, escriba el formato json delimitado por líneas. Lanzará ValueError si la ‘orientación’ es incorrecta, ya que otros no están en la lista. |
compresión | ‘inferir’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, Ninguno, predeterminado=’inferir’ | Una string que representa la compresión que se usará en el archivo de salida, solo se usa cuando el primer argumento es un nombre de archivo. De forma predeterminada, la compresión se deduce del nombre del archivo. |
índice | valor booleano, por defecto=Verdadero | Si incluir los valores de índice en la string JSON. No incluir el índice (índice = Falso) solo se admite cuando la orientación es ‘dividida’ o ‘tabla’. |
sangrar | valor entero | Longitud del espacio en blanco utilizado para sangrar cada registro. No es necesario mencionar el argumento opcional. |
Ahora veremos algunos ejemplos para comprender el uso de la función DataFrame.to_json.
Ejemplo 1: uso básico
import numpy as np import pandas as pd data = np.array([['1', '2'], ['3', '4']]) dataFrame = pd.DataFrame(data, columns = ['col1', 'col2']) json = dataFrame.to_json() print(json)
Producción :
{"col1":{"0":"1", "1":"3"}, "col2":{"0":"2", "1":"4"}}
Ejemplo 2: exploración del atributo ‘orientar’ de la función DataFrame.to_json
import numpy as np import pandas as pd data = np.array([['1', '2'], ['3', '4']]) dataFrame = pd.DataFrame(data, columns = ['col1', 'col2']) json = dataFrame.to_json() print(json) json_split = dataFrame.to_json(orient ='split') print("json_split = ", json_split, "\n") json_records = dataFrame.to_json(orient ='records') print("json_records = ", json_records, "\n") json_index = dataFrame.to_json(orient ='index') print("json_index = ", json_index, "\n") json_columns = dataFrame.to_json(orient ='columns') print("json_columns = ", json_columns, "\n") json_values = dataFrame.to_json(orient ='values') print("json_values = ", json_values, "\n") json_table = dataFrame.to_json(orient ='table') print("json_table = ", json_table, "\n")
Producción :
json_split = {“columnas”:[“col1”, “col2”], “índice”:[0, 1], “datos”:[[“1”, “2”], [“3”, “4” ]]}
json_records = [{“col1″:”1”, “col2″:”2”}, {“col1″:”3”, “col2″:”4”}]
json_index = {“0”:{“col1″:”1”, “col2″:”2”}, “1”:{“col1″:”3”, “col2″:”4”}}
json_columns = {“col1”:{“0″:”1”, “1”:”3″}, “col2”:{“0″:”2”, “1”:”4″}}
valores_json = [[“1”, “2”], [“3”, “4”]]
json_table = {“esquema”:{“campos”:[{“nombre”:”índice”, “tipo”:”entero”}, {“nombre”:”col1″, “tipo”:”string”}, { “name”:”col2″, “type”:”string”}], “primaryKey”:[“index”], “pandas_version”:”0.20.0″}, “data”:[{“index”:0 , “col1″:”1”, “col2″:”2”}, {“índice”:1, “col1″:”3”, “col2″:”4”}]}
Publicación traducida automáticamente
Artículo escrito por shantanudas4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA