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

Как управлять вложенными объектами JSON как DataFrame в Pandas?

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

How to Manage Nested JSON Objects as a DataFrame in Pandas?

Чтение вложенного JSON с вложенными объектами в виде фрейма данных Pandas

При работе с данными JSON, содержащими вложенные объекты, эффективное манипулирование ими в Python имеет решающее значение . Pandas предоставляет мощный инструмент для достижения этой цели — json_normalize.

Развертывание массива по столбцам

Чтобы разложить массив местоположений на отдельные столбцы, используйте json_normalize следующим образом:

import json
import pandas as pd

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

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

print(df)

Это создаст фрейм данных с расширенными столбцами:

  locations_arrTime locations_arrTimeDiffMin locations_depTime  \
0                                                        06:32   
1             06:37                        1             06:40   
2             08:24                        1                     

  locations_depTimeDiffMin           locations_name locations_platform  \
0                        0  Spital am Pyhrn Bahnhof                  2   
1                        0  Windischgarsten Bahnhof                  2   
2                                    Linz/Donau Hbf               1A-B   

  locations_stationIdx locations_track number    name        date  
0                    0          R 3932         R 3932  01.10.2016  
1                    1                         R 3932  01.10.2016  
2                   22                         R 3932  01.10.2016 

Обработка нескольких объектов JSON

Для файлов JSON, содержащих несколько объектов, подход зависит от желаемой структуры данных.

Сохранить отдельные столбцы

Чтобы сохранить отдельные столбцы (дата, номер, имя, местоположение) используйте следующее:

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()

print(df)

Это сгруппирует данные и объединит местоположения:

        date    name number                                          locations
0  2016-01-10  R 3932         Spital am Pyhrn Bahnhof,Windischgarsten Bahnho...

Сглаживание структуры данных

Если вы предпочитаете плоскую структуру данных, вы можете используйте json_normalize со следующими настройками:

df = pd.read_json('myJson.json', orient='records', convert_dates=['date'])

print(df)

Это выведет данные в одну таблицу:

  number    date                   name  ... locations.arrTimeDiffMin locations.depTimeDiffMin locations.platform
0             R 3932  2016-01-10  R 3932  ...                       0                         0                  2
1             R 3932  2016-01-10  R 3932  ...                       1                         0                  2
2             R 3932  2016-01-10  R 3932  ...                       1                         -                  1A-B
Заявление о выпуске Эта статья перепечатана по адресу: 1729739643. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3