Как преобразовать OrderedDict с кортежами в фрейм данных Pandas

#python #python-3.x #pandas #dataframe

#python #python-3.x #pandas #фрейм данных

Вопрос:

У меня есть следующий OrderedDict:

 OrderedDict(
[
 ("2021-01-01" , {"name" : "John",    "age" : 25}),
 ("2021-05-05" , {"name" : "Max",     "age" : 15}),
 ("2021-09-09" , {"name" : "Michael", "age" : 35})
]
)
 

Мне нужно преобразовать его в фрейм данных Pandas, где каждый ключ в каждом dict будет именем столбца, а даты будут индексом фрейма данных. Как я могу этого добиться?

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

введите описание изображения здесь

где date столбец является индексом этого фрейма данных.

Ответ №1:

Мы можем получить ожидаемый результат, используя transpose метод из Pandas :

 >>> df = pd.DataFrame(data, columns=data.keys()).T
>>> df
            name    age
2021-01-01  John    25
2021-05-05  Max     15
2021-09-09  Michael 35
 

Комментарии:

1. Спасибо, @tlentali !!!

Ответ №2:

Попробуйте с from_dict

 out = pd.DataFrame.from_dict(d, 'index')
Out[484]: 
               name  age
2021-01-01     John   25
2021-05-05      Max   15
2021-09-09  Michael   35
 

Комментарии:

1. Вау, это тоже сработало! Большое тебе спасибо, @BENY!

Ответ №3:

Возможно, я был избит здесь, но вот решение:

 from collections import OrderedDict
x1 = OrderedDict(
[
 ("2021-01-01" , {"name" : "John",    "age" : 25}),
 ("2021-05-05" , {"name" : "Max",     "age" : 15}),
 ("2021-09-09" , {"name" : "Michael", "age" : 35})
]
)

pd.DataFrame.from_dict(x1).T.rename_axis('date').reset_index()
 

Комментарии:

1. Спасибо, @Quixotic22 !! Действительно ценится.