python:datafram的嵌套字典

2024-09-29 17:19:26 发布

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

我想将嵌套的dic传输到数据帧(数据帧不应嵌套,只有来自dic的最高层应转换为数据帧)

dic =  {'Key1': 
                  {'Key1_1': [],
                   'Key1_2': 
                            {'Key1_2_1':
                                    {'Key1_2_1_1': 'value1_2_1_1'},
                              'Key1_2_2': ['listelement1value1_2_2']}},
        'Key2': 'value2', 
        'Key3': 'value3', 
        'Key4': 'value4'}

df = pd.DataFrame(dic, index=[0])

我得到:

+----+--------+--------+--------+--------+
|    |   Key1 | Key2   | Key3   | Key4   |
|----+--------+--------+--------+--------|
|  0 |    nan | value2 | value3 | value4 |
+----+--------+--------+--------+--------+

series = pd.Series(dic)
df = series.to_frame().T

+----+----------------------------------------------------------------------------------------------------------------+--------+--------+--------+
|    | Key1                                                                                                           | Key2   | Key3   | Key4   |
|----+----------------------------------------------------------------------------------------------------------------+--------+--------+--------|
|  0 | {'Key1_1': [], 'Key1_2': {'Key1_2_1': {'Key1_2_1_1': 'value1_2_1_1'}, 'Key1_2_2': ['listelement1value1_2_2']}} | value2 | value3 | value4 |
+----+----------------------------------------------------------------------------------------------------------------+--------+--------+--------+

第二个结果就是我想要的。 有没有更好的方法来获得第二个结果而不首先使用序列


Tags: 数据dataframedfseriespdkey2key1value1

热门问题