중첩 객체가 포함된 중첩 JSON을 Pandas DataFrame으로 읽기
중첩 객체가 포함된 JSON 데이터를 처리할 때 Python에서 효율적으로 조작하는 것이 중요합니다. . Pandas는 이를 달성하기 위한 강력한 도구인 json_normalize를 제공합니다.
배열을 열로 확장
위치 배열을 별도의 열로 확장하려면 다음과 같이 json_normalize를 사용하세요.
<code class="python">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)</code>
이렇게 하면 확장된 열이 있는 데이터 프레임이 생성됩니다.
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 파일의 경우 접근 방식은 다음과 같습니다. 원하는 데이터 구조에 따라 다릅니다.
개별 열 유지
개별 열(날짜, 번호, 이름, 위치)을 유지하려면 다음을 사용하세요.
<code class="python">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)</code>
이렇게 하면 데이터가 그룹화되고 위치가 연결됩니다.
date name number locations 0 2016-01-10 R 3932 Spital am Pyhrn Bahnhof,Windischgarsten Bahnho...
데이터 구조 평면화
평면화된 데이터 구조를 선호하는 경우 다음을 수행할 수 있습니다. 다음 설정으로 json_normalize를 사용하세요.
<code class="python">df = pd.read_json('myJson.json', orient='records', convert_dates=['date']) print(df)</code>
이렇게 하면 단일 테이블에 데이터가 출력됩니다.
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
위 내용은 Pandas에서 중첩된 JSON 개체를 DataFrame으로 관리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!