python pandas: вложенный словарь в dataframe - PullRequest
0 голосов
/ 12 июня 2018

Я хочу перенести вложенный dic на фрейм данных.(Dataframe не должен быть вложенным, только самый высокий слой из dic должен быть преобразован в dataframe).

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 |
+----+----------------------------------------------------------------------------------------------------------------+--------+--------+--------+

и второй результат - это то, что я хочу.Есть ли лучший способ получить второй результат без использования серии сначала?

1 Ответ

0 голосов
/ 12 июня 2018

Использование:

df = pd.DataFrame([dic])
print (df)
                                                Key1    Key2    Key3    Key4
0  {'Key1_1': [], 'Key1_2': {'Key1_2_1': {'Key1_2...  value2  value3  value4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...