将数据帧转换为所需的字典格式

Posted

技术标签:

【中文标题】将数据帧转换为所需的字典格式【英文标题】:Conversion of dataframe to required dictionary format 【发布时间】:2021-01-01 21:05:04 【问题描述】:

我正在尝试将以下数据框转换为字典

数据框:

import pandas as pd
df = pd.DataFrame('a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6], 'c':[4,3,5,5,5,3], 'd':[3,4,5,5,7,8])
print(df)

示例数据框:

   a  b  c  d
0  A  1  4  3
1  A  2  3  4
2  B  5  5  5
3  B  5  5  5
4  B  4  5  7
5  C  6  3  8

我需要下面提到的字典格式的这个数据框

["a":"A","data_values":["b":1,"c":4,"d":3,"b":2,"c":3,"d":4], 
 "a":"B","data_values":["b":5,"c":5,"d":5,"b":5,"c":5,"d":5, 
 "b":4,"c":5,"d":7],"a":"C","data_values":["b":6,"c":3,"d":8]]

【问题讨论】:

【参考方案1】:

使用 DataFrame.groupby 和自定义 lambda 函数,通过 DataFrame.to_dict 将值转换为字典:

L = (df.set_index('a')
       .groupby('a')
       .apply(lambda x: x.to_dict('records'))
       .reset_index(name='data_values')
       .to_dict('records')
       )
print (L)
['a': 'A', 'data_values': ['b': 1, 'c': 4, 'd': 3, 
                            'b': 2, 'c': 3, 'd': 4], 
 'a': 'B', 'data_values': ['b': 5, 'c': 5, 'd': 5, 
                            'b': 5, 'c': 5, 'd': 5,
                            'b': 4, 'c': 5, 'd': 7], 
 'a': 'C', 'data_values': ['b': 6, 'c': 3, 'd': 8]]

【讨论】:

以上是关于将数据帧转换为所需的字典格式的主要内容,如果未能解决你的问题,请参考以下文章

如何将python字典转换为所需的数据框输出? [复制]

如何查询/将数据转换为所需的格式

如何将熊猫系列转换为所需的 JSON 格式?

我应该如何在 Spring Boot 中配置 httpMessageConverters 以将消息转换为所需的格式?

将python中的LIST转换为所需的输出

当我将此数据帧转换为字典时,为啥索引设置不正确?