У меня есть DataFrame с четырьмя столбцами. Я хочу преобразовать этот DataFrame в словарь Python. Я хочу, чтобы элементы первого столбца были, keys
а элементы других столбцов в той же строке были values
.
DataFrame:
ID A B C
0 p 1 3 2
1 q 4 3 2
2 r 4 0 9
Вывод должен быть таким:
Словарь:
{'p': [1,3,2], 'q': [4,3,2], 'r': [4,0,9]}
python
pandas
dictionary
dataframe
Принц бхатти
источник
источник
Dataframe.to_dict()
?Dataframe.to_dict()
A,B,C
вместо ключей сделаю ключиp,q,r
Ответы:
to_dict()
Метод устанавливает имена столбцов в качестве ключей словаря так что вам нужно немного изменить свой DataFrame. Установка столбца «ID» в качестве индекса, а затем транспонирование DataFrame - один из способов достижения этого.to_dict()
также принимает аргумент 'orient', который вам понадобится для вывода списка значений для каждого столбца. В противном случае словарь формы{index: value}
будет возвращен для каждого столбца.Эти шаги можно выполнить с помощью следующей строки:
Если нужен другой формат словаря, вот примеры возможных аргументов orient. Рассмотрим следующий простой DataFrame:
Тогда варианты следующие.
dict - по умолчанию: имена столбцов являются ключами, значения - словарями индекса: пары данных
list - ключи - это имена столбцов, значения - списки данных столбцов
серия - как «список», но значения - серия
split - разделяет столбцы / данные / индекс как ключи со значениями, являющимися именами столбцов, значениями данных по меткам строк и индексам соответственно
записи - каждая строка становится словарем, где ключ - это имя столбца, а значение - данные в ячейке.
index - как «records», но словарь словарей с ключами в качестве меток индекса (а не списка)
источник
df.set_index('ID').T.to_dict('list')
Попробуй использовать
Zip
Вывод:
источник
Следуй этим шагам:
Предположим, ваш фрейм данных выглядит следующим образом:
1. Используйте
set_index
для установкиID
столбцов в качестве индекса данных.2. Используйте
orient=index
параметр, чтобы индекс был ключом словаря.Результаты будут следующими:
3. Если вам нужно иметь каждый образец в виде списка, запустите следующий код. Определить порядок столбцов
источник
Если вы не возражаете против значений словаря, являющихся кортежами, вы можете использовать itertuples:
источник
должен словарь, как:
быть обязательным из кадра данных, как:
Простейшим способом было бы сделать:
рабочий фрагмент ниже:
источник
Для моего использования (имена узлов с позициями xy) я нашел ответ @ user4179775 на наиболее полезный / интуитивно понятный:
добавление
Позже я вернулся к этой проблеме, для другой, но связанной работы. Вот подход, который более близко отражает [превосходный] принятый ответ.
Конвертировать кадр данных Pandas в [list], {dict}, {dict of {dict}}, ...
За принятый ответ:
В моем случае я хотел сделать то же самое, но с выбранными столбцами из кадра данных Pandas, поэтому мне нужно было разделить столбцы. Есть два подхода.
(см .: Преобразование панд в словарь, определяющий столбцы, используемые для ключевых значений )
или
которые затем могут быть использованы для создания словаря словарей
источник
DataFrame.to_dict()
преобразует DataFrame в словарь.пример
Смотрите эту документацию для деталей
источник