python - 数据框中的字典字典
问题描述
我已经根据从数据库中获取的数据创建了一个数据框。我需要将数据框转换为下面提到的格式的字典。
{ 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))}
但我没有得到预期的输出。字典理解如何做到这一点?
解决方案
尝试这个:
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'}}
推荐阅读
- javascript - 如果不等待承诺,如何抛出错误?
- ruby-on-rails - How to update a specific field in Mongodb knowing it's name?
- python - python 3上的numba库安装问题
- javascript - 从 JavaScript 中的 math.matrix 获取元素
- php - 产品图片不显示我
- angular - MatBottomSheet 的自定义位置/父级
- javascript - 简单的内联 require
- r - 条形ggplot中的渐变颜色
- django - 测试和验证 AWS Redis 与 Django 项目的集成
- python - 无法使用 ctrl + C 强制停止 python 脚本