如何使用字典从嵌套的JSON创建pandas数据帧。

25 浏览
0 Comments

如何使用字典从嵌套的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工具来处理嵌套在文件的第三层的字典形式的文件?

0