df 来自结构化列表;以嵌套字典列表作为值的字典列表

问题描述 投票:0回答:1

尝试将其转换为

DataFrame
list
结构:

[
    {'Name': '#NAME',
     'Business Unit': '#UNIT',
     'Managed': 'Yes',
     'Date': '01/30/2023 3:37 AM',
     'Permissions': 
        [
            {'Group Name': '#NAME1','Table Name': '#TABLE1',...},
            {'Group Name': '#NAME1','Table Name': '#TABLE2',...},
            {'Group Name': '#NAME2','Table Name': '#TABLE3',...},
            {'Group Name': '#NAME2','Table Name': '#TABLE4',...},
            ...
        ]
    },
    {'Name': '#NAME',
     'Business Unit': '#UNIT',
     'Managed': 'Yes',
     'Date': '01/30/2023 3:37 AM',
     'Permissions': 
        [
            {'Group Name': '#NAME1','Table Name': '#TABLE1',...},
            {'Group Name': '#NAME1','Table Name': '#TABLE2',...},
            {'Group Name': '#NAME2','Table Name': '#TABLE3',...},
            {'Group Name': '#NAME2','Table Name': '#TABLE4',...},
            ...
        ]
    },
    ...
]
     

哪里

  • 底层的每个键
    dict
    都是一列
  • 每个“表名称”都是一个新行

在结果中

DataFrame
。我尝试使用
from_dict
json_normalize
from_records
,但它们将单个
Permissions
列作为
list
dict

pandas data-structures
1个回答
0
投票

假设

lst
输入并使用
json_normalize
:

df = pd.json_normalize(lst, 'Permissions',
                       meta=['Name', 'Business Unit', 'Managed', 'Date'])

输出:

  Group Name Table Name   Name Business Unit Managed                Date
0     #NAME1    #TABLE1  #NAME         #UNIT     Yes  01/30/2023 3:37 AM
1     #NAME1    #TABLE2  #NAME         #UNIT     Yes  01/30/2023 3:37 AM
2     #NAME2    #TABLE3  #NAME         #UNIT     Yes  01/30/2023 3:37 AM
3     #NAME2    #TABLE4  #NAME         #UNIT     Yes  01/30/2023 3:37 AM
4     #NAME1    #TABLE1  #NAME         #UNIT     Yes  01/30/2023 3:37 AM
5     #NAME1    #TABLE2  #NAME         #UNIT     Yes  01/30/2023 3:37 AM
6     #NAME2    #TABLE3  #NAME         #UNIT     Yes  01/30/2023 3:37 AM
7     #NAME2    #TABLE4  #NAME         #UNIT     Yes  01/30/2023 3:37 AM
© www.soinside.com 2019 - 2024. All rights reserved.