#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 !! Действительно ценится.