Сортировав объект dict_items
(a.items()
), вы создали список.
Вы можете проверить это с помощью type(sorted_by_value)
. Затем, когда вы пытаетесь использовать метод pd.DataFrame.from_dict()
, он терпит неудачу, потому что он ожидает словарь, который имеет «значения», но вместо этого получает список.
Возможно, самое маленькое исправление, которое вы можете внести в код, это заменить строку:
dataframe=pd.DataFrame.from_dict(sorted_by_value)
с:
dataframe = pd.DataFrame(dict(sorted_by_value), index=[0])
.
(Аргумент index=[0]
требуется здесь, потому что pd.DataFrame
ожидает, что словарь будет иметь форму {'key1': [list1, of, values], 'key2': [list2, of, values]}
, но вместо этого sorted_by_value
преобразуется в форму {'key1': value1, 'key2': value2}
.)
Другой вариант - использовать pd.DataFrame(sorted_by_value)
для создания кадра данных непосредственно из отсортированных элементов, хотя вам может потребоваться настроить sorted_by_value
или результат, чтобы получить нужный формат данных.
В качестве альтернативы посмотрите на collections.OrderedDict
(документация для которого здесь ), чтобы избежать сортировки по списку и последующего преобразования обратно в словарь.
Редактировать
Относительно именования столбцов и индекса, не видя данных / желаемого результата, сложно дать конкретный совет. Приведенные выше параметры позволят удалить ошибку и позволят вам создать информационный кадр, столбцы которого затем можно переименовать с помощью dataframe.columns = [list, of, column, headings]
. Для индекса посмотрите pd.DataFrame.set_index(drop=True)
( документы ) и pd.DataFrame.reset_index()
( документы ).