将数据帧转换为所需的字典格式
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]]
【讨论】:
以上是关于将数据帧转换为所需的字典格式的主要内容,如果未能解决你的问题,请参考以下文章