gpt4 book ai didi

python - Pandas Dataframe 到嵌套 JSON

转载 作者:太空狗 更新时间:2023-10-29 20:53:15 25 4
gpt4 key购买 nike

我正在尝试将 Pandas Dataframe 转换为 JSON 对象。我的数据框包含以下格式的数据:

         student      date    grade         course
0 Student_1 2017-06-25 93 ENGLISH
1 Student_2 2017-06-25 83 ENGLISH
2 Student_1 2017-06-25 93 MATH
3 Student_2 2017-06-25 83 MATH
4 Student_1 2017-06-26 90 MATH
5 Student_2 2017-06-26 85 MATH
6 Student_1 2017-06-26 96 ENGLISH
7 Student_2 2017-06-26 99 ENGLISH

我想将其转换为以下格式的 JSON 对象:

[
{'ENGLISH': [
{
'date' : '2017-06-25',
'Student_1' : 93,
'Student_2' : 83
},

{
'date' : '2017-06-26',
'Student_1' : 96,
'Student_2' : 89
}]
},

{'MATH': [
{
'date' : '2017-06-25',
'Student_1' : 93,
'Student_2' : 83
},

{
'date' : '2017-06-26',
'Student_1' : 90,
'Student_2' : 85
}]
}
]

一个简单的 .to_json() 调用对我来说没有用。无论如何我可以在 Pandas 中创建所需格式的 JSON 对象吗?

最佳答案

你可以先定义一个函数将子组转换为json,然后将这个函数应用到每个组,然后将子组的jsons合并为一个json对象。

def f(x):
return (dict({'date':x.date.iloc[0]},**{k:v for k,v in zip(x.student,x.grade)}))

(
df.groupby(['course','date'])
.apply(f)
.groupby(level=0)
.apply(lambda x: x.tolist())
.to_dict()
)
Out[1006]:
{'ENGLISH': [{'Student_1': 93, 'Student_2': 83, 'date': '2017-06-25'},
{'Student_1': 96, 'Student_2': 99, 'date': '2017-06-26'}],
'MATH': [{'Student_1': 93, 'Student_2': 83, 'date': '2017-06-25'},
{'Student_1': 90, 'Student_2': 85, 'date': '2017-06-26'}]}

关于python - Pandas Dataframe 到嵌套 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44750514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com