Pandas json normalizar

Pandas json normalizar

El "JSON" básicamente representa la "notación del objeto JavaScript".

Pandas tiene el "marco de procesamiento de datos" más popular en Python, que es la característica "JSON" Normalize ". Es una característica incorporada de Pandas. Es la forma más sencilla de hacer la normalización Pandas JSON () usando los módulos de solicitud "Python".

En este artículo, veremos diferentes niveles de normalización.

Sintaxis

pandas.json_normalize (data, max_level = none, registro_prefix = none)

Aquí:

  1. Los datos pueden ser un diccionario o una lista de diccionarios.
  2. Max_level se usa para especificar niveles máximos para normalizar. Si no se especifica, normalizará todos los niveles. Se necesita un entero como parámetro; Por defecto, no es ninguno.
  3. Si desea agregar algún prefijo a la etiqueta después de la normalización, puede agregarlo pasando el prefijo al parámetro registro_prefix. Por defecto, no es ninguno.

Ejemplo 1: con datos como parámetro

Aquí, solo pasaremos los datos de JSON. Entonces normalizará todos los niveles. Creemos cinco diccionarios dentro de una lista (lista de diccionarios) y lo normalicemos.

importación de pandas
# Considere los datos de JSON
real_json_data = [
"Estado": "AP", "Código": "APH456",
"Estado": "TS", "Código": "SCVH456",
"Estado": "Mum", "Código": "Tyh4543",
"Estado": "Pun", "Código": "Ayu78bn6",
"Estado": "BNG", "Código": "RE456",
]
print (real_json_data)
# Normalizar los datos anteriores
normalizado = pandas.json_normalize (real_json_data)
# Muestra los datos normalizados
Imprimir (normalizado)

Producción

['estado': 'ap', 'código': 'APH456', 'Estado': 'TS', 'Código': 'SCVH456', 'Estado': 'Mum', 'Código': 'Tyh4543', 'state': 'Pun', 'Code': 'Ayu78bn6', 'State': 'bng', 'código': 're456']
código del estado
0 AP APH456
1 TS SCVH456
2 mamá tyh4543
3 Pun Ayu78bn6
4 BNG RE456

Explicación

Los datos de JSON se convierten en pandas con un nivel máximo de normalización.

Ejemplo 2

Creemos cinco diccionarios dentro de una lista (lista de diccionarios) con algunos valores vacíos y lo normalicen.

importación de pandas
# Considere los datos de JSON
real_json_data = [
"Estado": "AP", "Código": "APH456", "Longitud": 100,
"Estado": "TS", "Código": "SCVH456",
"Estado": "Mum", "Longitud": 200,
"Estado": "Pun", "Código": "Ayu78bn6",
"estado": "bng", "longitud": 300,
]
print (real_json_data)
# Normalizar los datos anteriores
normalizado = pandas.json_normalize (real_json_data)
# Muestra los datos normalizados
Imprimir (normalizado)

Producción

['estado': 'ap', 'código': 'aph456', 'longitud': 100, 'estado': 'ts', 'código': 'scvh456', 'estado': 'mamá ',' longitud ': 200, ' Estado ':' Pun ',' Código ':' Ayu78bn6 ', ' estado ':' bng ',' longitud ': 300]
Longitud del código de estado
0 AP APH456 100.0
1 TS SCVH456 NAN
2 mamá nan 200.0
3 Pun Ayu78bn6 Nan
4 bng nan 300.0

Explicación

Los datos de JSON se convierten en pandas con un nivel máximo de normalización. Si el valor está vacío, entonces NAN se devuelve en posiciones vacías.

Ejemplo 3: con el parámetro max_level

Creemos cinco diccionarios dentro de una lista (lista de diccionarios) y lo normalicemos al nivel 0.

importación de pandas
# Considere los datos de JSON
real_json_data = [
"Estado": "Estado 1": "AP", "Estado 2": "Ind", "Estado 3": "Cal", "Código": "APH456", "Longitud": 100,
"Estado": "TS", "Código": "SCVH456", "Longitud": 160,
"Estado": "Mum", "Código": "Savh4mo6", "Longitud": 200,
"Estado": "Pun", "Código": "Ayu78bn6", "Longitud": 200,
"Estado": "Estado 1": "Bng", "Estado 2": "Tln", "Código": "Ayu78bn6", "Longitud": 300,
]
# Normalizar los datos anteriores hasta el nivel 0
normalizado = pandas.json_normalize (real_json_data, max_level = 0)
# Muestra los datos normalizados
Imprimir (normalizado)

Producción

Longitud del código de estado
0 'Estado 1': 'AP', 'Estado 2': 'Ind', 'Estado 3': ... APH456 100
1 TS SCVH456 160
2 Mum Savh4mo6 200
3 Pun Ayu78bn6 200
4 'estado 1': 'bng', 'estado 2': 'tln' ayu78bn6 300

Explicación

La normalización se realiza solo hasta el nivel 0. Aún así, podemos normalizar los datos en la columna de estado.

Normalizemos hasta el nivel 1 en el siguiente ejemplo.

Ejemplo 4

Creemos cinco diccionarios dentro de una lista (lista de diccionarios) y lo normalicemos hasta el nivel 1.

importación de pandas
# Considere los datos de JSON
real_json_data = [
"Estado": "Estado 1": "AP", "Estado 2": "Ind", "Estado 3": "Cal", "Código": "APH456", "Longitud": 100,
"Estado": "TS", "Código": "SCVH456", "Longitud": 160,
"Estado": "Mum", "Código": "Savh4mo6", "Longitud": 200,
"Estado": "Pun", "Código": "Ayu78bn6", "Longitud": 200,
"Estado": "Estado 1": "Bng", "Estado 2": "Tln", "Código": "Ayu78bn6", "Longitud": 300,
]
# Normalizar los datos anteriores hasta el nivel 1
normalizado = pandas.json_normaly (real_json_data, max_level = 1)
# Muestra los datos normalizados
Imprimir (normalizado)

Producción

Estado de longitud del código.Estado 1 Estado.Estado 2 Estado.Estado 3 Estado
0 APH456 100 AP Ind Cal Nan
1 SCVH456 160 nan nan nan ts
2 SAVH4MO6 200 nan nan nan mamá
3 AYU78BN6 200 nan nan nan
4 ayu78bn6 300 bng tln nan nan

Explicación

Ahora puede ver que la normalización máxima está realizada.

Ejemplo 5: con registro_prefix como parámetro

Cree datos JSON con un diccionario que posee tres estados y agregue el prefijo "I-" a la etiqueta estatal.

importación de pandas
# Considere los datos de JSON
real_json_data = "estado": ["ap", "ts", "pnu"]
# Normalice los datos anteriores pasando el parámetro RECORD_PREFIX
normalizado = pandas.json_normalize (real_json_data, "estado", registro_prefix = "i-")
# Muestra los datos normalizados
Imprimir (normalizado)

Producción

I-0
0 AP
1 TS
2 PNU

Explicación

Entonces estamos agregando el prefijo al estado. Después de la normalización, el prefijo se agrega a la etiqueta 0.

Conclusión

"Pandas JSON Normalization" es una forma muy efectiva, potente y conveniente de convertir los datos no estructurados en un valioso estado de marco de datos. Aprendimos sobre todas las opciones de normalización de Pandas JSON en este artículo. Como se explicó, hemos hecho la normalización JSON usando el nivel máximo "0" y el nivel máximo "1" para la manera de distribución. También hemos realizado la normalización JSON en DataFrame y varias columnas de DataFrames. El método de normalización JSON de los pandas nos lleva a un rendimiento sostenible del marco de datos en todas las formas posibles.