Cómo convertir el diccionario Python en Pandas DataFrame

Asad Riaz 30 enero 2023
  1. Método para convertir el diccionario en Pandas DataFrame
  2. Método para convertir las claves en las columns y los valores en las filas del Pandas DataFrame
  3. pandas.DataFrame().from_dict() método para convertir el dict en DataFrame
Cómo convertir el diccionario Python en Pandas DataFrame

Introduciremos el método para convertir el diccionario de Python en el datafarme de Pandas, y opciones como tener values para las columns y values para los valores de las filas. También podríamos convertir el diccionario anidado en un DataFrame.

También introduciremos otra aproximación usando pandas.DataFrame.from_dict, y lo encadenaremos con cualquier método de rename para establecer los nombres del índice y las columnas de una sola vez.

Método para convertir el diccionario en Pandas DataFrame

Pandas DataFrame constructor pd.DataFrame() convierte el diccionario en DataFrame si los elementos del diccionario se dan como argumento del constructor, pero no el diccionario en sí.

# python 3.x
import pandas as pd

fruit_dict = {3: "apple", 2: "banana", 6: "mango", 4: "apricot", 1: "kiwi", 8: "orange"}

print(pd.DataFrame(list(fruit_dict.items()), columns=["Quantity", "FruitName"]))

Las claves y los valores del diccionario se convierten en dos columnas del DataFrame con los nombres de las columnas como se indica en las opciones columns.

   Quantity FruitName
0         3     apple
1         2    banana
2         6     mango
3         4   apricot
4         1      kiwi
5         8    orange

Método para convertir las claves en las columns y los valores en las filas del Pandas DataFrame

Podemos simplemente poner corchetes alrededor del diccionario y quitar el nombre de la columna del código anterior de esta manera:

import pandas as pd

fruit_dict = {1: "apple", 2: "banana", 3: "mango", 4: "apricot", 5: "kiwi", 6: "orange"}

print(pd.DataFrame([fruit_dict]))

Producción :

       1       2      3        4     5       6
0  apple  banana  mango  apricot  kiwi  orange

Usaremos pandas comprensión de diccionario con concat para combinar todos los diccionarios y luego pasaremos la lista para dar nuevos nombres de columna.

Considere el siguiente código,

import pandas as pd

data = {"1": {"apple": 11, "banana": 18}, "2": {"apple": 16, "banana": 12}}
df = pd.concat({k: pd.Series(v) for k, v in data.items()}).reset_index()
df.columns = ["dict_index", "name", "quantity"]
print(df)

Producción :

  dict_index    name  quantity
0          1   apple        11
1          1  banana        18
2          2   apple        16
3          2  banana        12

pandas.DataFrame().from_dict() método para convertir el dict en DataFrame

Usaremos from_dict para convertir dict en DataFrame, aquí establecemos orient='index' para usar las claves del diccionario como filas y aplicar el método rename() para cambiar el nombre de la columna.

Considere el siguiente código,

import pandas as pd

print(
    pd.DataFrame.from_dict(
        {"apple": 3, "banana": 5, "mango": 7, "apricot": 1, "kiwi": 8, "orange": 3},
        orient="index",
    ).rename(columns={0: "Qunatity"})
)

Producción :

         Quantity
apple           3
banana          5
mango           7
apricot         1
kiwi            8
orange          3

Artículo relacionado - Pandas DataFrame