Конвертация списка словарей в Pandas DataFrame
В этом руководстве вы узнаете, как преобразовать список словарей Python в Pandas DataFrame. Pandas предоставляет несколько способов для преобразования словарей в DataFrame. Вы узнаете, как использовать метод Pandas from_dict, конструктор DataFrame и функцию json
К концу этого урока вы изучите:
Как преобразовать список словарей в DataFrame Pandas
Как работать с разными наборами столбцов в словарях
Как установить индекс при преобразовании списка словарей в DataFrame
Как преобразовать вложенные словари в DataFrame Pandas
Оглавление
Краткое изложение методов
Ниже приведена таблица, в которой рассматриваются различные способы чтения списка словарей в DataFrame Pandas. Каждый из них подробно рассматривается в учебнике:
DataFrame()
Да
Да
Да
Нет
from_dict()
Да
Да
Только используя.set_index()
Нет
from_records()
Да
Да
Да
Нет
json_normalize()
Да
Да
Да
Да
В этом разделе вы узнаете, как преобразовать список словарей в DataFrame с использованием класса Pandas DataFrame
. Передавая список словарей, вы легко можете создать DataFrame.
Преобразование списка словарей в фрейм данных Pandas
Каждый словарь будет представлять собой запись в DataFrame, а ключи станут столбцами. Давайте рассмотрим пример, где каждый словарь содержит каждый ключ:
Поскольку каждый словарь в списке содержит одинаковые ключи, мы можем использовать множество различных методов для достижения этой задачи. Следующие методы также будут работать:
Работа с отсутствующими ключами при преобразовании списка словарей в таблицу данных Pandas
Давайте теперь рассмотрим более сложный пример. В примере ниже мы предоставим словари, где в одном словаре будет отсутствовать ключ. Используем метод .from_dict()
, чтобы прочитать список и увидеть, как будут считываться данные:
Этот метод возвращает ту же версию, даже если вы используете конструктор pd.DataFrame()
, метод .from_dict()
или метод .from_records()
. Любой словарь, в котором отсутствует ключ, вернет значение NaN
.
Чтение только некоторых столбцов при преобразовании списка словарей в таблицу данных Pandas
Могут быть случаи, когда вы хотите преобразовать словари в DataFrame Pandas, но при этом загрузить только подмножество столбцов. В этом случае можно использовать параметр columns=
. Обратите внимание, что этот параметр доступен только в конструкторе pd.DataFrame()
и методе pd.DataFrame.from_records()
. Использование этого параметра в методе pd.DataFrame.from_dict()
приведет к ошибке ValueError
.
Давайте загрузим тот же список словарей, но будем считывать только два столбца:
Установка индекса при преобразовании списка словарей в кадр данных 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
При загрузке данных из разных источников, таких как веб-API, вы можете получить список вложенных словарей. При чтении этих списков словарей с использованием приведенных выше методов, вложенные словари будут просто возвращены как словари в колонке.
Тем не менее, во многих случаях, вы захотите, чтобы каждое из этих полей возвращалось в собственный столбец. Для этого мы можем использовать функцию pd.json_normalize()
Рассмотрим пример, где словари в нашем списке вложены и используются функции json_normalize для преобразования его в DataFrame:
Заключение
В этом учебном пособии вы научились считывать список словарей в Pandas DataFrame. Вы узнали, как использовать четыре разных способа для этого. Также вы узнали, как считывать только подмножество столбцов, работать с отсутствующими данными и как установить индекс. Наконец, вы узнали, как считывать список вложенных словарей в Pandas DataFrame.
Дополнительные ресурсы
Чтобы узнать больше по связанным темам, ознакомьтесь с уроками ниже:
Last updated