Como converter o Python Dictionary em Pandas DataFrame
-
Método para converter o
dicionárioem PandasDataFame -
Método para converter
keyspara serem ascolumnse osvaluespara serem osrowem PandasDataFrame -
pandas.DataFrame().from_dict()Método para converterdictemDataFrame
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
- Como obter os cabeçalhos da coluna Pandas DataFrame como uma lista
- Como eliminar a coluna Pandas DataFrame
- Como Converter a Coluna DataFrame para DataTempo em Pandas
- Como Converter um Flutuador em um Inteiro em Pandas DataFrame
- Como Classificar Pandas DataFrame pelos Valores de uma Coluna
- Como Obter o Agregado de Pandas Group-By e Sum