我正在尝试从JSON文件创建一个Pandas数据框。我看到了很多解决方案,它们使用了from_dict/json_normalize的内置函数,但是我无法将其应用到我的代码中。这是我的JSON文件中数据的结构:
我刚刚收到了这样的东西:
我希望这些数据呈现如下(解决方案1):
如何实现呢?我尝试将'record_path'参数传递给'json_normalize'函数,但没有任何变化。我还尝试使用'DataFrame.from_dict'函数来解决这个问题,但失败了。我唯一能够找到解决方案1的方法是创建多个循环,遍历json文件中的所有内容,并将其添加到单独的列表中。这种方法有点有效,但在处理大型数据集时需要花费很长时间。
我应该如何使用内置的pandas工具来处理文件,这些文件在上述示例中嵌套为第三层的字典结构?
"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工具来处理文件,这些文件在上述示例中嵌套为第三层的字典结构?