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