«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как Pandas обрабатывают вложенные объекты JSON?

Как Pandas обрабатывают вложенные объекты JSON?

Опубликовано 7 ноября 2024 г.
Просматривать:975

How Do Pandas Handle Nested JSON Objects?

Как обрабатывать вложенные объекты JSON с помощью Pandas

В этой статье мы рассмотрим, как эффективно манипулировать структурами данных JSON с вложенными объектами с помощью Pandas.

Вложенная структура JSON

Рассмотрим следующий JSON структура:

{
    "number": "",
    "date": "01.10.2016",
    "name": "R 3932",
    "locations": [
        {
            "depTimeDiffMin": "0",
            "name": "Spital am Pyhrn Bahnhof",
            "arrTime": "",
            "depTime": "06:32",
            "platform": "2",
            "stationIdx": "0",
            "arrTimeDiffMin": "",
            "track": "R 3932"
        },
        {
            "depTimeDiffMin": "0",
            "name": "Windischgarsten Bahnhof",
            "arrTime": "06:37",
            "depTime": "06:40",
            "platform": "2",
            "stationIdx": "1",
            "arrTimeDiffMin": "1",
            "track": ""
        },
        {
            "depTimeDiffMin": "",
            "name": "Linz/Donau Hbf",
            "arrTime": "08:24",
            "depTime": "",
            "platform": "1A-B",
            "stationIdx": "22",
            "arrTimeDiffMin": "1",
            "track": ""
        }
    ]
}

Сведение с помощью json_normalize

функция pandas json_normalize позволяет нам сводить вложенные объекты в табличный формат:

import json

with open('myJson.json') as data_file:    
    data = json.load(data_file)  

df = pd.json_normalize(data, 'locations', ['date', 'number', 'name'], 
                    record_prefix='locations_')

В результате создается DataFrame со столбцами для каждого ключа во вложенном объекте "locations".

Групповая конкатенация без сглаживания

Если сведение не выполняется при желании вы можете использовать возможности группировки и конкатенации Pandas:

df = pd.read_json("myJson.json")
df.locations = pd.DataFrame(df.locations.values.tolist())['name']
df = df.groupby(['date', 'name', 'number'])['locations'].apply(','.join).reset_index()

Этот подход объединяет "местоположения" " значения в виде строки, разделенной запятыми, для каждой уникальной комбинации "даты", "имени" и "число".

Заключение

Используя функции pandas json_normalize и группировки/объединения, мы можем эффективно обрабатывать вложенные структуры JSON, что позволяет нам извлекать и манипулировать данными в табличном формате.

Заявление о выпуске Эта статья перепечатана по адресу: 1729739820. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3