Преобразование списка словарей в Pandas DataFrame
В этом уроке вы узнаете, как преобразовать список словарей Python в Pandas DataFrame. Pandas предоставляет несколько различных способов преобразования словарей в DataFrame. Вы узнаете, как использовать метод from_dict, конструктор DataFrame и функцию json
К концу этого руководства вы научитесь следующему:
Как преобразовать список словарей в DataFrame Pandas
Как работать с разными наборами столбцов в словарях
Как установить индекс при преобразовании списка словарей в DataFrame
Как преобразовать вложенные словари в DataFrame Pandas
Содержание
Краткое изложение методов
Таблица ниже описывает различные способы чтения списка словарей в Pandas DataFrame. Каждое из этих методов подробно рассмотрено в учебнике:
DataFrame()
Да
Да
Да
No
from_dict()
Да
Да
Только используя .set_index()
No
from_records()
Да
Да
Да
No
json_normalize()
Да
Да
Да
Да
В этом разделе вы узнаете, как преобразовать список словарей в DataFrame с использованием класса Pandas DataFrame
. Передав список словарей, вы сможете легко создать DataFrame.
Преобразование списка словарей в фрейм данных Pandas
Каждый словарь будет представлять собой запись в DataFrame, в то время как ключи станут столбцами. Давайте рассмотрим пример, где каждый словарь содержит каждый ключ:
Поскольку каждый словарь в списке содержит одни и те же ключи, мы можем использовать несколько различных методов для достижения этой цели. Следующие методы также будут работать:
Работа с отсутствующими ключами при преобразовании списка словарей в Pandas DataFrame
Теперь давайте рассмотрим более сложный пример. В примере ниже мы предоставим словари, где в одном словаре будет отсутствовать ключ. Давайте используем метод .from_dict()
, чтобы прочитать список и увидеть, как данные будут прочитаны:
Этот метод возвращает ту же версию, даже если вы используете конструктор pd.DataFrame()
, метод .from_dict()
или метод .from_records()
. Любой словарь, в котором отсутствует ключ, вернет пропущенное значение, NaN
.
Чтение только некоторых столбцов при конвертации списка словарей в Pandas DataFrame
Иногда вам нужно загрузить словари в Pandas DataFrame, но при этом вы хотите прочитать только подмножество столбцов. В этом случае вы можете использовать параметр columns=
. Обратите внимание, что этот параметр **доступен только в конструкторе pd.DataFrame()
и методе pd.DataFrame.from_records()
. Использование этого параметра в методе pd.DataFrame.from_dict()
вызовет ошибку ValueError
.
Загрузим тот же список словарей, но будем читать только два столбца:
Установка индекса при преобразовании списка словарей в DataFrame Pandas
Есть два разных типа индексов, которые вы можете установить при создании DataFrame:
Индекс DataFrame, который не является частью данных, которые вы читаете (например, 1, 2, 3), или
Индекс DataFrame из данных, которые вы читаете (например, один из столбцов)
Рассмотрим первый случай использования. Для этого мы можем рассчитывать только на конструктор pd.DataFrame()
и метод pd.DataFrame.from_records()
. Чтобы передать произвольный индекс, мы можем использовать параметр index=
, передав список значений.
Давайте посмотрим, как это делается в Pandas:
Чтобы прочитать список словарей и установить индекс на основе одного из ключей, мы можем использовать любой из методов, описанных выше. Хотя Pandas не предоставляет параметр для этого напрямую, мы можем использовать метод .set_index()
для достижения этой цели.
Давайте прочитаем наши данные и используем столбец 'Name'
в качестве индекса:
В последнем разделе вы узнаете, как использовать функцию json_normalize()
, чтобы прочитать список вложенных словарей в Pandas DataFrame.
json_normalize: Чтение Вложенных Словарей в Pandas DataFrame
При загрузке данных из разных источников, таких как веб-API, вы можете получить список вложенных словарей. При чтении этих списков словарей с использованием методов, показанных выше, вложенные словари будут просто возвращены как словари в столбце.
Однако во многих случаях вы захотите, чтобы каждое из этих полей возвращало свой собственный столбец. Для этого мы можем использовать функцию pd.json_normalize()
Давайте рассмотрим пример, где словари в нашем списке вложены, и используем функцию json_normalize
, чтобы преобразовать его в DataFrame:
Заключение
В этом уроке вы узнали, как прочитать список словарей в Pandas DataFrame. Вы узнали четыре разных способа для этого. Вы также узнали, как читать только подмножество столбцов, работать с отсутствующими данными и устанавливать индекс. Наконец, вы узнали, как прочитать список вложенных словарей в ваш Pandas DataFrame.
Дополнительные ресурсы
Чтобы узнать больше по смежным темам, ознакомьтесь с руководствами ниже:
Словари Python: полный обзор
Индекс сброса Pandas: как сбросить индекс Pandas
Индекс переименования Pandas: как переименовать индекс Dataframe Pandas
Last updated