如何使用字典从嵌套的JSON创建pandas数据帧。
如何使用字典从嵌套的JSON创建pandas数据帧。
我正在尝试从JSON文件创建一个pandas数据框。我看到了多个解决方案,其中使用了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工具来处理嵌套在文件的第三层的字典形式的文件?