Построить фрейм данных из значений во вложенном словаре - PullRequest
0 голосов
/ 25 октября 2018

У меня есть список списков словарей, которые я пытаюсь преобразовать в pandas DataFrame, но я не могу использовать pandas.DataFrame.from_dict(), потому что я хочу, чтобы значение ключа name было заголовком столбца изначение ключа «duration», которое будет значением строки.Любые предложения о том, как я могу сделать эту работу?

[[{'duration': 21.82, 'name': 'ABC'},
{'duration': 3.9, 'name': 'DEF'},
{'duration': 105.78, 'name': 'GHI'},
{'duration': 63.14, 'name': 'JKL'}],
[{'duration': 18.9, 'name': 'ABC'},
{'duration': 56.01, 'name': 'DEF'},
{'duration': 38.36, 'name': 'GHI'},
{'duration': 34.16, 'name': 'JKL'}]]

Желаемый результат:

    ABC    DEF    GHI     JKL
0  21.82   3.9   105.78   63.14
1  18.9   56.01  38.36    34.16

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете сгладить свой список списков с помощью itertools.chain, затем pivot вашего фрейма данных.Хитрость здесь в том, чтобы использовать индекс, который подсчитывает ваш группировщик.

from itertools import chain

df = pd.DataFrame(list(chain.from_iterable(L)))

res = df.pivot(index=df.groupby('name').cumcount(), columns='name')
res.columns = res.columns.droplevel(0)  # remove unwanted column level

print(res)

name    ABC    DEF     GHI    JKL
0     21.82   3.90  105.78  63.14
1     18.90  56.01   38.36  34.16
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...