У меня есть следующий DataFrame:
клиент item1 item2 item3 1 помидор с яблочным молоком 2 воды апельсиновый картофель 3 сока чипсов манго
который я хочу перевести в список словарей в строке
rows = [{'customer': 1, 'item1': 'apple', 'item2': 'milk', 'item3': 'tomato'},
{'customer': 2, 'item1': 'water', 'item2': 'orange', 'item3': 'potato'},
{'customer': 3, 'item1': 'juice', 'item2': 'mango', 'item3': 'chips'}]
Ответы:
редактировать
Как упоминает Джон Галт в своем ответе , вы должны вместо этого использовать
df.to_dict('records')
. Это быстрее, чем переносить вручную.Оригинальный ответ
Используйте
df.T.to_dict().values()
, как показано ниже:источник
df.T.to_dict().values()
, яunicodecsv.DictReader
Использование
df.to_dict('records')
- дает вывод без необходимости транспонирования извне.источник
i.e. is the nth entry in the resulting list always also the nth column?
n-й столбец или n-й ряд?Как продолжение ответа Джона Галта -
Для следующего DataFrame,
Если вы хотите получить список словарей, включающих значения индекса, вы можете сделать что-то вроде:
Который выводит словарь словарей, где ключи родительского словаря являются индексными значениями. В этом конкретном случае
источник
Если вы заинтересованы в выборе только одного столбца, это будет работать.
Нижеследующее НЕ будет работать и выдает ошибку TypeError: неподдерживаемый тип:. Я считаю, что это потому, что он пытается преобразовать серию в диктовку, а не в фрейм данных в диктовку.
У меня было требование выбрать только один столбец и преобразовать его в список диктовок с именем столбца в качестве ключа, и я застрял на нем немного, так что решил поделиться.
источник