Como converter o Python Dictionary em Pandas DataFrame

Asad Riaz 30 janeiro 2023 1 novembro 2020
  1. Método para converter o dicionário em Pandas DataFame
  2. Método para converter keys para serem as columns e os values para serem os row em Pandas DataFrame
  3. pandas.DataFrame().from_dict() Método para converter dict em DataFrame
Como converter o Python Dictionary em Pandas DataFrame

Apresentaremos o método para converter o dicionário Python para Pandas datafarme, e opções como ter chaves para serem as colunas e os valores para serem os valores de linha. Poderíamos também converter o dicionário aninhado para o DataFrame.

Introduziremos também outra abordagem utilizando pandas.DataFrame.from_dict, e encadearemos isto com qualquer método de renome para definir tanto o índice quanto os nomes das colunas de uma só vez.

Método para converter o dicionário em Pandas DataFame

Pandas DataFrame construtor pd.DataFrame() converte o dicionário em DataFrame se os itens do dicionário forem dados como argumento do construtor, mas não o dicionário em si.

# 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']))

As chaves e valores do dicionário são convertidas em duas colunas do DataFrame com os nomes das colunas dados nas opções colunas.

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

Método para converter keys para serem as columns e os values para serem os row em Pandas DataFrame

Podemos simplesmente colocar parênteses ao redor do dicionário e remover o nome da coluna do código acima desta forma:

import pandas as pd

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

print(pd.DataFrame([fruit_dict]))

Resultado:

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

Vamos utilizar pandas compreensão do dicionário com cat para combinar todos os dicionários e depois passar a lista para dar novos nomes de colunas.

Considere o seguinte 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)

Resultado:

  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 converter dict em DataFrame

Utilizaremos from_dict para converter dict em DataFrame, aqui definimos orient='index' para utilizar chaves de dicionário como linhas e aplicamos rename() método para mudar o nome da coluna.

Considere o seguinte 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'}))

Resultado:

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

Artigo relacionado - Pandas DataFrame