Создать Dataframe из вложенного словаря - PullRequest
2 голосов
/ 17 апреля 2020

Я пытаюсь создать фрейм данных из списка значений с вложенными словарями. Таковы мои данные

 d=[{'user': 200,
 'p_val': {'a': 10, 'b': 200},
 'f_val': {'a': 20, 'b': 300},
 'life': 8},
  {'user': 202,
 'p_val': {'a': 100, 'b': 200},
 'f_val': {'a': 200, 'b': 300},
 'life': 8}]

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

user new_col f_val   p_val life
200   a        20     10    8
200   b        300    200   8
202   a        200    100   8
202   b        300    200   8

Я посмотрел другие ответы, но ни один из них не соответствовал моему требованию. Ближайшее, что я мог найти, было это , и все равно не работало. Любая помощь приветствуется! Спасибо

1 Ответ

2 голосов
/ 17 апреля 2020

Try

df = pd.concat([pd.DataFrame(e) for e in d])
df.reset_index().rename(columns={'index': 'newcol'})

newcol  user    p_val   f_val   life
0   a   200 10  20  8
1   b   200 200 300 8
2   a   202 100 200 8
3   b   202 200 300 8

Первая строка создает DataFrame с индексом, равным значениям a и b. Вторая строка делает этот столбец newcol.

...