Pandas에서 중첩된 JSON 개체를 DataFrame으로 관리하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-10-24 14:07:02
원래의
975명이 탐색했습니다.

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

중첩 객체가 포함된 중첩 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿