首页 > 解决方案 > 数据框中的字典字典

问题描述

我已经根据从数据库中获取的数据创建了一个数据框。我需要将数据框转换为下面提到的格式的字典。

{ 0 : {'column1': 'value', 'column2' : 'value',....},
1 : {'column1': 'value', 'column2' : 'value',....},....

我试过了

data_list = [tuple(r) for r in data_df.to_numpy().tolist()]#convert df to list of tuples

data_dict = [dict(zip(ag_titles, x)) for x in data_list]
data_final = {i:{k:v for k,v in dict(data_dict).items}for i in range(len(data_dict))}

但我没有得到预期的输出。字典理解如何做到这一点?

标签: pythondictionarytkintertable

解决方案


尝试这个:

df.to_dict('index')

例子:

df = pd.DataFrame({
    'Year': ['a1', 'a2', 'a3', 'a4', 'a5'],
    'Company': ['b1', 'b2', 'b3', 'b4', 'b5'],
    'Number': ['c1', 'c2', 'c3', 'c4', 'c5']})


df.to_dict('index')

输出:

{0: {'Year': 'a1', 'Company': 'b1', 'Number': 'c1'},
 1: {'Year': 'a2', 'Company': 'b2', 'Number': 'c2'},
 2: {'Year': 'a3', 'Company': 'b3', 'Number': 'c3'},
 3: {'Year': 'a4', 'Company': 'b4', 'Number': 'c4'},
 4: {'Year': 'a5', 'Company': 'b5', 'Number': 'c5'}}

根据您的评论更新: 显示另一个列表作为索引。

df = pd.DataFrame({
    'Year': ['a1', 'a2', 'a3', 'a4', 'a5'],
    'Company': ['b1', 'b2', 'b3', 'b4', 'b5'],
    'Number': ['c1', 'c2', 'c3', 'c4', 'c5']})


list_index = ['a', 'b','c','d','e']

df.index = list_index

df.to_dict('index')

输出:

{'a': {'Year': 'a1', 'Company': 'b1', 'Number': 'c1'},
 'b': {'Year': 'a2', 'Company': 'b2', 'Number': 'c2'},
 'c': {'Year': 'a3', 'Company': 'b3', 'Number': 'c3'},
 'd': {'Year': 'a4', 'Company': 'b4', 'Number': 'c4'},
 'e': {'Year': 'a5', 'Company': 'b5', 'Number': 'c5'}}

推荐阅读