如何将嵌套的父子层次结构json转换为数据帧?

2024-10-01 09:35:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个父母:

id  parentTerm isLeaf  children
0     A          F     [{'_id': 'A1', 'parentTerm': 'B', 'isLeaf': F, 'children': [{'_id': 'A11', 'parentTerm': 'B', 'isLeaf': T, 'children':[]}]}] 

对于其他parentdf数据帧,children列中的子级数不同

我想在父df.children中的每个字典中循环,并将其附加到数据帧中。不确定如何编写通过任意数量字典的循环

我尝试了pd.json_normalize,但由于子项在字典列表中,因此它不会返回平坦的输出

期望输出:

id    parentTerm isLeaf 
0        A         F    
A1       B         F
A11      B         T

请帮忙

我尝试了下面的代码,它是有效的:

def test_iterate(parent_df):
    global total_data
    total_data = total_data.append(parent_df[['_id', 'parentTerm','isLeaf']])
     try:
        parent_df['children'].apply(lambda x:test_iterate(pd.DataFrame(x)))
     except Exception as inst:
    #print(inst)
        pass
total_data = pd.DataFrame()
test_iterate(parent_df) 

但是我在调用aws lambda中的函数,它无法识别全局变量


Tags: 数据testiddfdata字典a1parent