Преобразование DataFrame Pandas в Словарь
В этом посте вы узнаете, как использовать Python для преобразования Pandas DataFrame в словарь. Так как Pandas DataFrames являются сложными структурами данных, существует множество различных способов это сделать. Этот пост исследует все различные опции, которые предлагает Pandas! Например, Pandas позволяет вам преобразовать DataFrame в список словарей или словарь сопоставлений столбцов и значений.
К концу этого урока вы узнаете:
Как работает метод Pandas
.to_dict()
Как настроить вывод метода
Как преобразовать в словарь только подмножество столбцов с помощью функции
zip()
Оглавление
Понимание метода Pandas .to_dict()
.to_dict()
Перед тем как погрузиться в применение метода .to_dict()
библиотеки Pandas, давайте рассмотрим, как выглядит этот метод:
The orient=
параметр принимает семь различных аргументов, каждый из которых предлагает вам разные способы настройки результирующего словаря. Это руководство исследует все их! Давайте погрузимся в то, как использовать метод.
Загрузка образца DataFrame Pandas
Если вы хотите следовать за этим учебным пособием шаг за шагом, я предоставил пример Pandas DataFrame в блоке кода ниже. DataFrame намеренно сделан простым, чтобы лучше видеть, что происходит.
Из приведенного выше блока кода видно, что образец DataFrame Pandas содержит три столбца и три записи. Теперь, когда DataFrame был загружен, давайте посмотрим, как вы можете использовать метод .to_dict()
для преобразования DataFrame в словарь.
Преобразование фрейма данных Pandas в словарь
По умолчанию метод .to_dict()
объекта DataFrame в Pandas возвращает словарь, где ключами являются названия столбцов, а значениями — соответствия index:record
. Этот процесс более информативен, когда ваши индексы имеют особое значение, а не являются произвольными числами.
Давайте рассмотрим, что возвращает метод Pandas to_dict()
с аргументами по умолчанию:
В следующих разделах вы узнаете, как настроить метод для возврата словарей с различной структурой.
Преобразование DataFrame Pandas в словарь значений столбцов
Чтобы создать словарь значений столбцов с использованием метода to_dict DataFrame в Pandas, вы можете передать в качестве аргумента 'list'. Это создаст пары ключ-значение из названий столбцов и упорядоченный список значений столбцов.
Let’s see what this looks like:
В следующем разделе вы научитесь создавать очень похожий словарь, используя объекты Series из библиотеки Pandas, вместо списков.
Преобразование фрейма данных Pandas в словарь значений рядов
Аналогичным образом можно преобразовать Pandas DataFrame в словарь, где ключами будут названия столбцов, а значениями - Pandas Series. Это можно сделать, передав строку 'series'
в качестве аргумента orient в метод.
Это может быть полезно, если вы хотите сохранить структуры данных Pandas для использования в других местах. Давайте посмотрим, как это выглядит:
В следующем разделе вы узнаете, как разделить индексы, имена столбцов и данные на словарь.
Преобразование таблицы данных Pandas в индекс словаря, столбцы и данные
При использовании аргумента 'split'
в методе to_dict библиотеки Pandas можно создать словарь, который разделяет индекс, столбцы и данные на отдельные ключи в результирующем словаре. Метод вернет следующий словарь:{'index': list, 'columns': list, 'data': list of lists}
.
Это может быть полезно, когда вам нужно передавать элементы между структурами данных, где вы можете подавать заголовки столбцов и индексы отдельно от их данных.
Чтобы расширить эту функциональность, вы также можете передать в метод значение 'tight'
, чтобы получить более подробный словарь. Полученный словарь также включает названия индексов и столбцов, если они были указаны отдельно. Этот аргумент доступен начиная с версии Pandas 1.4.0.
В следующем разделе вы узнаете, как преобразовать Pandas DataFrame в список словарей.
Преобразование фрейма данных Pandas в список словарей
Одна из наиболее распространенных реализаций метода to_dict в Pandas - это преобразование DataFrame в список словарей. Это наилучшим образом соответствует формату JSON, где вы можете легко передавать данные между языками.
При передаче 'records'
в метод создается список, который содержит один словарь для каждой записи в DataFrame. Давайте посмотрим, как это выглядит:
Полученный список будет упорядочен в соответствии с текущим порядком DataFrame. Если вам нужно включить индекс в словари, вы можете сначала сбросить индекс DataFrame. Это позволит включить индекс в список словарей:
В следующем разделе вы узнаете, как преобразовать DataFrame Pandas в словарь с индексами и значениями.
Преобразование фрейма данных Pandas в словарь индексов и значений
В этом разделе вы узнаете, как преобразовать DataFrame Pandas в словарь, где индексы являются ключами, а значения - словарем из имен столбцов и значений записей. Это можно выполнить, передав значение 'index'
в метод to_dict
Этот подход приобретает еще больший смысл, когда индексы содержат более значимые значения.
Преобразование двух серий (столбцов) Pandas в словарь
В этом разделе вы узнаете, как преобразовать два столбца Pandas в словарь. Этот метод работает только в том случае, если столбец, предназначенный для ключей, содержит только уникальные значения. Это связано с тем, что в словарях Python ключи должны быть уникальными.
Для достижения этого цели мы можем использовать мощную функцию zip в Python, которая позволяет последовательно итерировать по нескольким объектам. Давайте посмотрим, как это выглядит:
Мы передаем объект zip между двумя столбцами в функцию-конструктор dict()
. Это позволяет нам легко преобразовать итерируемый объект в словарь.
Заключение
В этом посте вы узнали, как преобразовать DataFrame Pandas в словарь. Pandas предлагает множество различных способов для выполнения этой задачи. Это исчерпывающее руководство покрыло все различные способы, с помощью которых можно осуществить это преобразование. Сначала вы научились использовать метод .to_dict()
. Затем вы также узнали, как создать словарь из двух столбцов Pandas, используя функцию zip()
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь с обучающими материалами ниже:
Преобразование DataFrame Pandas в массив NumPy
Last updated