Работа с данными в формате JSON требует умения правильно преобразовать информацию из одного формата в другой. Библиотека Pandas в Python предоставляет удобные инструменты для таких преобразований, включая разложение вложенного словаря в рамках одной ячейки DataFrame на несколько отдельных столбцов.
Как это сделать?
Представление данных
Рассмотрим, что у нас есть DataFrame с колонкой, содержащей JSON-подобные словари. Каждый словарь может содержать разнообразные ключи и значения, которые могут быть разложены по разным столбцам.
Использование метода json_normalize()
Pandas предоставляет метод json_normalize()
, который позволяет 'развернуть' вложенные структуры в JSON и создать DataFrame с отдельными колонками для каждого ключа.
import pandas as pd
from pandas import json_normalize
data = {'id': [1, 2], 'info': [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}]}
df = pd.DataFrame(data)
df_normalized = json_normalize(df['info'])
result = pd.concat([df.drop(columns=['info']), df_normalized], axis=1)
print(result)
В этом примере словари из колонки 'info' разложены на отдельные колонки 'name' и 'age'.
Обработка отсутствующих значений
Иногда некоторые ключи могут отсутствовать в некоторых словарях. json_normalize()
автоматически заполняет такие места значениями NaN
, что позволяет избежать ошибок при обработке.
Учет вложенной структуры
Если ваши данные имеют более сложную, вложенную структуру, вы можете использовать параметр record_path
для более сложного развертывания данных.
Преобразование словарей в отдельные столбцы облегчает анализ и манипуляции с данными, что делает эту задачу важной при работе с большим объемом информации.
Категория: Информатика
Теги: Pandas, обработка данных, Python