Как преобразовать dict в фрейм данных со значениями в виде заголовков и строк?

#python #pandas #dataframe

#python #pandas #dataframe

Вопрос:

Итак, недавно я столкнулся с возвратом из вызова API, где формат возврата представляет собой список словарей, но форматирование приводит к неправильному отображению pd.DataFrame() . Я получаю возвращаемый формат:

 {'name': 'a1', 'value': 'b1'}
{'name': 'a2', 'value': 'b2'}
{'name': 'a3', 'value': 'b3'}
{'name': 'a4', 'value': 'b4'}
{'name': 'a5', 'value': 'b5'}
  

Когда я запускаю pd.DataFrames, это превращается в:

 name    value
a1      b1
a2      b2
a3      b3
a4      b4
a5      b5
  

Я пытался использовать df.pivot(column=’name’, values=’value’), но это приводит к 5 x 5 df вместо 1 строки.
В идеале я хотел бы получить его там, где имена столбцов = dictionary[name] и значение строки =dictionary[value]:

 index a1  a2  a3  a4  a5
0     b1  b2  b3  b4  b5
  

Любая помощь и предложения приветствуются, спасибо!

Ответ №1:

Установите индекс в столбец «имя», а затем транспонируйте фрейм данных (для переключения строк и столбцов)

 df = pd.DataFrame(api_result)
df = df.set_index("name").T
  

Вы также можете сделать это непосредственно при создании фрейма данных, используя from_records метод:

 df = pd.DataFrame.from_records(api_result, index="name").T