Как создать фрейм данных из вложенного словаря с помощью pandas?

#python #pandas #dictionary #nested

Вопрос:

У меня есть следующий вложенный словарь:

 dict1 = {'a': 1,'b': 2,'remaining': {'c': 3,'d': 4}}
 

Я хочу создать фрейм данных с использованием панд, чтобы достичь следующего

 df = pd.DataFrame(columns=list('abcd'))
df.loc[0] = [1,2,3,4]
 

Ответ №1:

Вы можете вставить 'remaining' диктант для обновления dict1 , а затем преобразовать значения в векторы (например, в списки).

 nested = dict1.pop('remaining')
dict1.update(nested)

pd.DataFrame({k: [v] for k, v in dict1.items()})
 
     a   b   c   d
0   1   2   3   4
 

Ответ №2:

Вы можете использовать pandas.json_normalize :

 dict1 = {'a': 1,'b': 2,'remaining': {'c': 3,'d': 4}}

df = pd.json_normalize(dict1)
df.columns = list('abcd')
 

Результат:

    a  b  c  d
0  1  2  3  4