Skip to content
Tutoriais
Pandas
Converter um dicionário em um DataFrame em Python | Pandas Explicado

Conversão de Dicionário para DataFrame com Pandas em Python

Como Cientista de Dados, trabalhar com dados é um dos aspectos fundamentais do trabalho. Uma das estruturas de dados mais comuns usadas em Python para esse propósito é o dicionário. Um dicionário é uma coleção de pares de chave-valor, onde cada chave é única. Pandas é uma biblioteca popular em Python para análise de dados e fornece uma poderosa capacidade para manipulação de dados. Uma das tarefas mais comuns na análise de dados é a conversão de um dicionário em um DataFrame em Pandas. Neste post de blog, discutiremos o processo de conversão de um dicionário para um DataFrame em Pandas.

Quer criar rapidamente visualizações de dados em Python?

PyGWalker é um projeto Python de código aberto que pode ajudar a acelerar o fluxo de trabalho de análise e visualização de dados diretamente em um ambiente baseado em notebooks Jupyter.

PyGWalker (opens in a new tab) transforma seu DataFrame Pandas (ou DataFrame Polars) em uma IU visual onde você pode arrastar e soltar variáveis para criar gráficos com facilidade. Basta usar o seguinte código:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Você pode executar o PyGWalker agora mesmo com estes notebooks online:

E, não se esqueça de nos dar uma ⭐️ no GitHub!

Execute o PyGWalker no Notebook Kaggle (opens in a new tab)Execute o PyGWalker no Google Colab (opens in a new tab)Dê ao PyGWalker uma ⭐️ no GitHub (opens in a new tab)
Execute o PyGWalker no Notebook Kaggle (opens in a new tab)Execute o PyGWalker no Google Colab (opens in a new tab)Execute o PyGWalker no Google Colab (opens in a new tab)

O que é um Dicionário?

Em Python, um dicionário é uma coleção de pares de chave-valor. Cada chave é única e corresponde a um valor. Dicionários são usados para armazenar e manipular dados que podem ser acessados usando chaves. Os dicionários em Python são definidos usando chaves {} e podem ser aninhados.

O que é um DataFrame?

Um DataFrame é uma estrutura de dados bidimensional em forma de tabela em Pandas. Ele consiste em linhas e colunas, onde cada coluna pode conter dados de um tipo diferente. Os DataFrames são uma excelente maneira de analisar e manipular dados, e o Pandas fornece uma ampla variedade de funções para manipular dados em um DataFrame.

Convertendo um Dicionário em um DataFrame

Pandas fornece um método simples para converter um dicionário em um DataFrame usando a função pd.DataFrame.from_dict(). A função from_dict() recebe um dicionário como entrada e retorna um DataFrame. O comportamento padrão dessa função assume que as chaves no dicionário correspondem aos nomes das colunas e os valores correspondem aos dados das linhas.

Vamos considerar um exemplo em que temos um dicionário contendo informações sobre alunos, suas notas e suas disciplinas:

dados_alunos = {'nome': ['Alice', 'Bob', 'Charlie'], 'nota': [95, 87, 92], 'disciplina': ['Matemática', 'Inglês', 'Ciência']}

Para converter este dicionário em um DataFrame, basta usar a função from_dict():

import pandas as pd
 
df = pd.DataFrame.from_dict(student_data)
print(df)

A saída deste trecho de código será parecida com esta:

       name  grade  subject
0     Alice     95     Math
1       Bob     87  English
2  Charlie     92  Science

Como podemos ver, as chaves do dicionário (nome, nota e matéria) foram usadas como os nomes das colunas no DataFrame resultante, e os valores correspondentes foram usados como dados das linhas.

Usando o parâmetro orient

Em casos em que o dicionário possui uma estrutura diferente, podemos usar o parâmetro orient para especificar como o DataFrame deve ser criado. O parâmetro orient aceita vários valores, como índice, colunas, dividido e valores. O valor padrão é colunas. Vamos considerar um exemplo em que temos um dicionário contendo listas de comprimentos diferentes:

data = {'nome': ['Alice', 'Bob', 'Charlie'], 'nota': [95, 87], 'matéria': ['Matemática', 'Inglês', 'Ciências']}

Se tentarmos converter este dicionário em um DataFrame usando o comportamento padrão, obteremos um ValueError:

df = pd.DataFrame.from_dict(data)
ValueError: as listas devem ter o mesmo tamanho

Para evitar este erro, podemos usar o parâmetro orient com o valor índice para criar um DataFrame onde as chaves do dicionário se tornam os índices das linhas e os valores correspondentes se tornam os dados das linhas:

df = pd.DataFrame.from_dict(data, orient='index')
print(df)

A saída deste trecho de código será parecida com esta:

            0     1        2
nome    Alice   Bob  Charlie
nota       95    87     None
matéria   Matemática  Inglês  Ciências

Usando uma lista de dicionários

Outra maneira de criar um DataFrame a partir de um dicionário é usando uma lista de dicionários. Nesse cenário, cada dicionário na lista corresponderá a uma linha no DataFrame resultante, e as chaves no dicionário corresponderão aos nomes das colunas. Vamos considerar um exemplo em que temos uma lista de dicionários representando alunos e suas notas:

student_data = [{'nome': 'Alice', 'nota': 95, 'matéria': 'Matemática'},
student_data = [{'name': 'Bob', 'grade': 87, 'subject': 'English'},
                {'name': 'Charlie', 'grade': 92, 'subject': 'Science'}]
 

Para converter esta lista de dicionários em um DataFrame, simplesmente usamos a função pd.DataFrame():

df = pd.DataFrame(student_data)
print(df)

A saída deste trecho de código será:

       name  grade  subject
0     Alice     95     Math
1       Bob     87  English
2  Charlie     92  Science

Como podemos ver, o DataFrame resultante é o mesmo que o criado a partir do dicionário no exemplo anterior.

Usando as chaves como colunas

Por padrão, a função from_dict() usa as chaves do dicionário como os nomes das colunas no DataFrame resultante. Em casos em que desejamos usar um conjunto diferente de chaves, podemos usar o parâmetro columns. Por exemplo, se tivermos um dicionário com chaves a, b e c, mas quisermos usar x, y e z como os nomes das colunas, podemos fazer o seguinte:

data = {'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]}
df = pd.DataFrame.from_dict(data, columns=['x', 'y', 'z'])
print(df)

A saída deste trecho de código será:

   x  y  z
0  1  4  7
1  2  5  8
2  3  6  9

Usando uma orientação detalhada

A função from_dict() também pode ser usada para criar um DataFrame de um dicionário com uma orientação detalhada. Uma orientação detalhada significa que cada chave do dicionário contém um dicionário com o mesmo conjunto de chaves. Considere o seguinte exemplo:

data = {'a': {'x': 1, 'y': 2, 'z': 3}, 'b': {'x': 4, 'y': 5, 'z': 6}, 'c': {'x': 7, 'y': 8, 'z': 9}}

Para criar um DataFrame a partir deste dicionário com uma orientação detalhada, podemos usar o parâmetro orient e definir seu valor como index:

df = pd.DataFrame.from_dict(data, orient='index')
print(df)

A saída deste trecho de código será:

   x  y  z
a  1  2  3
b  4  5  6
c  7  8  9

a 1 2 3 b 4 5 6 c 7 8 9


### Nomes de Índice e Coluna

Ao converter um dicionário em DataFrame, também podemos especificar os nomes de índice e coluna. Vamos considerar o seguinte exemplo:

```python
data = {'name': ['Alice', 'Bob', 'Charlie'], 'grade': [95, 87, 92], 'subject': ['Math', 'English', 'Science']}

df = pd.DataFrame.from_dict(data, orient='columns', columns=['name', 'subject', 'grade'], index=['student1', 'student2', 'student3'])
print(df)

A saída deste trecho de código ficará assim:

             name  subject  grade
student1    Alice     Math     95
student2      Bob  English     87
student3  Charlie  Science     92

Como podemos ver neste exemplo, podemos especificar os nomes de coluna usando o parâmetro columns e os nomes de índice usando o parâmetro index.

Conclusão

Neste post do blog, aprendemos como converter facilmente um dicionário em um DataFrame usando a função pd.DataFrame.from_dict() do Pandas. Também aprendemos como especificar a orientação do dicionário e personalizar os nomes de coluna e índice. A capacidade de converter facilmente dicionários em quadros de dados torna a manipulação de dados em Python mais fácil, permitindo que os cientistas de dados realizem várias tarefas de análise de dados, como manipulação de dados e aprendizado de máquina, que podem ser úteis em sua profissão. As habilidades aprendidas na manipulação de dicionários em quadros de dados também podem ser transferidas para a linguagem R, outra ferramenta popular em ciência de dados e no campo geral de análise e manipulação de dados em Python.