Pandas a diccionario

Pandas a diccionario

En Python, una estructura de datos llamada diccionario se utiliza para almacenar información como pares de valor clave. Los objetos del diccionario están optimizados para extraer datos/valores cuando se conocen la clave o las teclas. Para encontrar valores de manera eficiente utilizando el índice relacionado, podemos convertir una serie PANDAS o un marco de datos con un índice relevante en un objeto de diccionario con pares de valor clave "Valor" de valor "Valor". Para lograr esta tarea, se puede utilizar el método "to_dict ()". Esta función es una función incorporada que se encuentra en la clase de la serie del módulo Pandas.

Un cuadro de datos se convierte en un diccionario de datos de la lista de Python en forma de lista utilizando los pandas.método to_dict () dependiendo del valor especificado del parámetro Orient."

Usaremos el método to_dict () en pandas. Podemos orientar los pares de valor clave del diccionario devuelto de varias maneras usando la función To_Dict (). La sintaxis de la función es la siguiente:

Sintaxis:

pandas.DataFrame_Object.to_dict (orient = "dict", en =)

Parámetros:

    1. orientar: El tipo de datos para convertir las columnas (series en) se especifica mediante el valor de cadena ("dict", "lista", "registros", "índice", "serie", "dividir"). Por ejemplo, la "lista" de palabras clave daría un diccionario de Python de los objetos de la lista con las teclas "Nombre de la columna" y "Lista" (Serie convertida) como salida.
    2. en: La clase se puede aprobar como instancia o clase real. Por ejemplo, se puede aprobar una instancia de clase en el caso de un DICT predeterminado. El valor predeterminado del parámetro es DICT.

Tipo de retorno:

Diccionario convertido de DataFrame o serie.

Datos:

En todos los ejemplos, utilizaremos el siguiente marco de datos llamado "Observaciones" que contienen 2 filas y 4 columnas. Aquí las etiquetas de la columna son: ['id', 'nombre', 'estado', 'tarifa'].

importación de pandas
# Crear el marco de datos utilizando listas
Observaciones = pandas.DataFrame ([[23, 'sravan', 'pase', 1000],
[21, 'Sravan', 'Fail', 400],
], columnas = ['id', 'nombre', 'estado', 'tarifa'])
# Muestra DataFrame - Observaciones
Imprimir (Observaciones)

Producción:

Tarifa de estado del nombre de identificación
0 23 Sravan Pass 1000
1 21 Sravan Fail 400

Ejemplo 1: to_dict () sin parámetros

Convertiremos las observaciones DataFrame a un diccionario sin pasar ningún parámetro al método to_dict ().

importación de pandas
# Crear el marco de datos utilizando listas
Observaciones = pandas.DataFrame ([[23, 'sravan', 'pase', 1000],
[21, 'Sravan', 'Fail', 400],
], columnas = ['id', 'nombre', 'estado', 'tarifa'])
# Convertir al diccionario
Imprimir (Observaciones.to_dict ())

Producción:

'id': 0: 23, 1: 21, 'nombre': 0: 'sravan', 1: 'sravan', 'status': 0: 'pase', 1: 'fail' , 'Fee': 0: 1000, 1: 400

Explicación

El marco de datos se convierte en un diccionario.

Aquí, las columnas en el marco de datos original se convirtieron como claves en un diccionario y cada columna almacenará dos valores nuevamente en un formato de diccionario. Las teclas para estos valores comienzan desde 0.

Ejemplo 2: to_dict () con 'series'

Convertiremos los comentarios DataFrame en un diccionario en formato de serie al pasar el parámetro 'Serie' al método to_dict ().

Formato:

importación de pandas
# Crear el marco de datos utilizando listas
Observaciones = pandas.DataFrame ([[23, 'sravan', 'pase', 1000],
[21, 'Sravan', 'Fail', 400],
], columnas = ['id', 'nombre', 'estado', 'tarifa'])
# Convertir al diccionario con una serie de valores
Imprimir (Observaciones.to_dict ('series'))

Producción:

'id': 0 23
1 21
Nombre: ID, Dtype: int64, 'Nombre': 0 Sravan
1 Sravan
Nombre: nombre, dtype: objeto, 'estado': 0 pase
1 falla
Nombre: Estado, dtype: objeto, 'tarifa': 0 1000
1 400
Nombre: tarifa, dtype: int64

Explicación

DataFrame se convierte en un diccionario con formato 'Serie'.

Aquí, las columnas en el marco de datos original se convirtieron como claves en un diccionario y cada columna almacenará filas junto con el tipo de datos de la columna. El tipo de datos de la columna 'id' es int64 y otras dos columnas son 'objeto'.

Ejemplo 3: To_Dict () con 'Split'

Si desea separar las etiquetas de fila, las etiquetas y los valores de la columna en el diccionario convertido, puede usar el parámetro 'dividido'. Aquí, la clave 'índice' almacenará una lista de etiquetas índices. La clave de 'columnas' contendrá una lista de nombres y datos de columnas es una lista anidada que almacena cada fila de valores en una lista separada por una coma.

Formato:

importación de pandas
# Crear el marco de datos utilizando listas
Observaciones = pandas.DataFrame ([[23, 'sravan', 'pase', 1000],
[21, 'Sravan', 'Fail', 400],
], columnas = ['id', 'nombre', 'estado', 'tarifa'])
# Convertir al diccionario sin índice y encabezado
Imprimir (Observaciones.to_dict ('dividir'))

Producción:

'índice': [0, 1], 'columnas': ['id', 'nombre', 'estado', 'tarifa'], 'datos': [[23, 'sravan', 'pase', 1000 ], [21, 'Sravan', 'Fail', 400]]

Explicación

Podemos ver que dos índices se almacenaron en una lista como un valor para la clave: 'índice'. Del mismo modo, los nombres de la columna también se almacenan en una lista como un valor para la clave: 'columnas' y cada fila se almacena como una lista en una lista anidada para los 'datos'.

Ejemplo 4: to_dict () con 'registro'

Si convierte su marco de datos en un diccionario con cada fila como un diccionario en una lista, puede usar el parámetro de registro en el método to_dict (). Aquí, cada fila se coloca en un diccionario de modo que la clave sea el nombre y el valor de la columna es el valor real en el marco de datos PANDAS. Todas las filas fueron almacenadas en una lista.

Formato:

importación de pandas
# Crear el marco de datos utilizando listas
Observaciones = pandas.DataFrame ([[23, 'sravan', 'pase', 1000],
[21, 'Sravan', 'Fail', 400],
], columnas = ['id', 'nombre', 'estado', 'tarifa'])
# Convertir al diccionario por registro
Imprimir (Observaciones.to_dict ('registro'))

Producción:

['id': 23, 'nombre': 'sravan', 'status': 'pase', 'tarifa': 1000, 'id': 21, 'nombre': 'sravan', 'status': 'Fail', 'tarifa': 400]

Ejemplo 5: to_dict () con 'índice'

Aquí, cada fila se coloca en un diccionario ya que un valor para la clave comienza desde 0. Todas las filas fueron almacenadas nuevamente en un diccionario.

Formato:

importación de pandas
# Crear el marco de datos utilizando listas
Observaciones = pandas.DataFrame ([[23, 'sravan', 'pase', 1000],
[21, 'Sravan', 'Fail', 400],
], columnas = ['id', 'nombre', 'estado', 'tarifa'])
# Convertir al diccionario con índice
Imprimir (Observaciones.to_dict ('índice'))

Producción:

[0: 'id': 23, 'nombre': 'sravan', 'status': 'pase', 'tarifa': 1000, 1: 'id': 21, 'nombre': 'sravan' , 'status': 'fail', 'tarifa': 400

Ejemplo 6: ordeneddict ()

Utilizemos el parámetro 'In' 'que tomará Orden de orden, que convierte el Pandas DataFrame en un diccionario ordenado.

importación de pandas
de la importación de colecciones *
# Crear el marco de datos utilizando listas
Observaciones = pandas.DataFrame ([[23, 'sravan', 'pase', 1000],
[21, 'Sravan', 'Fail', 400],
], columnas = ['id', 'nombre', 'estado', 'tarifa'])
# Convertir a orden de orden
Imprimir (Observaciones.to_dict (en = ordeneddict))

Producción:

OrdenedDict ([(('id', OrderedDict (((0, 23), (1, 21)])), ('Nombre', OrdenedDict ([(0, 'Sravan'), (1, 'Sravan')]]] )), ('status', ordeneddict ([((0, 'pase'), (1, 'fail')])), ('tarifa', ordeneddict ([(0, 1000), (1, 400)] ))])

Conclusión

Hemos discutido cómo podemos convertir los objetos de DataFrame o Pandas en un diccionario de Python. Hemos visto la sintaxis de la función to_dict () para comprender los parámetros de esta función y cómo puede modificar la salida de la función especificando la función con diferentes parámetros. En los ejemplos de este tutorial, hemos utilizado el método To_dict (), una función de pandas incorporada, para cambiar los objetos de pandas al diccionario Python.