>백엔드 개발 >파이썬 튜토리얼 >중첩된 사전의 계층적 인덱스를 사용하여 Pandas DataFrame을 어떻게 만들 수 있나요?

중첩된 사전의 계층적 인덱스를 사용하여 Pandas DataFrame을 어떻게 만들 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-12-02 18:52:12261검색

How Can I Create a Pandas DataFrame with a Hierarchical Index from a Nested Dictionary?

계층적 인덱스를 사용하여 중첩 사전에서 pandas DataFrame 생성

이 문서에서는 다음을 사용하여 중첩 사전을 pandas DataFrame으로 변환해야 하는 필요성을 설명합니다. 계층적 인덱스. UserIds를 첫 번째 수준으로, Category를 두 번째 수준으로, 다양한 속성을 세 번째 수준으로 구성한 사전은 원하는 DataFrame 구조를 생성하는 데 어려움을 겪습니다.

의도한 계층적 인덱스를 사용하여 DataFrame을 구성하려면 , 첫 번째 해결 방법은 중첩된 사전의 모양을 바꾸는 것입니다. 딕셔너리의 각 키는 다중 인덱스 값에 해당하는 튜플이어야 합니다. pd.DataFrame.from_dict를 사용하고 orient='index'를 설정하면 DataFrame을 생성할 수 있습니다.

user_dict = {12: {'Category 1': {'att_1': 1, 'att_2': 'whatever'},
                  'Category 2': {'att_1': 23, 'att_2': 'another'}},
             15: {'Category 1': {'att_1': 10, 'att_2': 'foo'},
                  'Category 2': {'att_1': 30, 'att_2': 'bar'}}}

pd.DataFrame.from_dict({(i,j): user_dict[i][j] 
                           for i in user_dict.keys() 
                           for j in user_dict[i].keys()},
                       orient='index')

대체 접근 방식은 구성 요소 데이터 프레임을 연결하여 DataFrame을 구성하는 것입니다. 이 방법은 다음과 같이 각 UserId에 대한 DataFrame을 추가합니다.

user_ids = []
frames = []

for user_id, d in user_dict.iteritems():
    user_ids.append(user_id)
    frames.append(pd.DataFrame.from_dict(d, orient='index'))

pd.concat(frames, keys=user_ids)

이러한 방법 중 하나를 구현하면 중첩된 사전에서 계층적 인덱스가 있는 pandas DataFrame을 구성하여 데이터 구성 및 분석을 단순화할 수 있습니다. .

위 내용은 중첩된 사전의 계층적 인덱스를 사용하여 Pandas DataFrame을 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.