【发布时间】:2021-09-27 23:02:30
【问题描述】:
我正在尝试创建一个熊猫数据框表单 json 文件。我已经看到了这个问题的多种解决方案,它使用了 from_dict/json_normalize 的内置函数,但我无法将它应用到我的代码中。以下是我的数据在 json 文件中的结构:
"data": [
{
"groups": {
"data": [
{
"group": "Math",
"year_joined": "2009"
},
{
"group_name": "History",
"year_joined": "2011"
},
{
"group_name": "Biology",
"year_joined": "2010"
}
]
},
"id": "12512"
},
当我尝试使用这样的 pandas 函数来规范化这些数据时:
path = 'mypath'
f = open(path)
data = json.load(f)
test = pd.json_normalize(
data['data'],
errors='ignore')
我刚收到这样的东西:
id groups.data
0 12512 [{'group_name': 'Math', 'year_joined': '2009', 'gr...
1 23172 [{'group_name': 'Chemistry', 'year_joined': '2005'...
我希望这些数据看起来像这样(解决方案 1):
id group year_joined
0 12512 group1 year1
1 12512 group2 year2
2 12512 group3 year3
或者像这样(解决方案2):
id group year_joined
0 12512 group1,group2,group3 year1,year2,year3
1 23172 group4,group5 year4,year5
我怎样才能实现它?我尝试将“record_path”参数传递给“json_normalize”函数,但它没有任何改变。我尝试使用 'DataFrame.from_dict' 函数来解决这个问题,但我失败了。我能够获得解决方案 1 的唯一方法是创建多个循环,遍历 json 文件中的所有内容并将其添加到单独的列表中。它有点工作,但在更大的数据集上需要很多时间。
如何使用内置的 pandas 工具来处理嵌套在文件第 3 层中的字典作为上述文件?
提前感谢您的所有回复
【问题讨论】: