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

У меня есть словарь как таковой:

{1:{'name':'john', 'age':26,'salary':50000},11:{'name':'peter', 'age':34, 'salary':70000},14:{'name': 'david', 'age': 21, 'salary': 15000}}

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

name  age  salary
john  26   50000
peter 34   70000
david 21   15000

Ответы [ 4 ]

0 голосов
/ 19 ноября 2018

Используйте from_dict с orient='index':

pd.DataFrame.from_dict(d, orient='index')

     name  age  salary
1    john   26   50000
11  peter   34   70000
14  david   21   15000
0 голосов
/ 19 ноября 2018

Создайте фрейм данных из значений вашего dict.

>>> d = {1:{'name':'john', 'age':26,'salary':50000},11:{'name':'peter', 'age':34, 'salary':70000},14:{'name': 'david', 'age': 21, 'salary': 15000}}
>>> pd.DataFrame(list(d.values()))
   age   name  salary
0   26   john   50000
1   34  peter   70000
2   21  david   15000

С переставленными столбцами:

>>> pd.DataFrame(list(d.values()), columns=['name', 'age', 'salary'])
    name  age  salary
0   john   26   50000
1  peter   34   70000
2  david   21   15000
0 голосов
/ 19 ноября 2018

Вы можете загрузить словарь непосредственно в фрейм данных и затем транспонировать его:

d = {1:{'name':'john', 'age':26,'salary':50000},11:{'name':'peter', 'age':34, 'salary':70000},14:{'name': 'david', 'age': 21, 'salary': 15000}}

df = pd.DataFrame(d).T

   age   name salary
1   26   john  50000
11  34  peter  70000
14  21  david  15000
0 голосов
/ 19 ноября 2018

Сделайте это:

pd.DataFrame(list(d.values()))

Если вы используете Python2, вы можете напрямую вызвать pd.DataFrame с p.values() следующим образом:

pd.DataFrame(d.values())

Это потому, что значения словаря больше не возвращают список в python3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...