중첩된 개체가 포함된 중첩된 JSON을 Pandas DataFrame으로 읽기
중첩된 개체가 포함된 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
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3