계층적 인덱스를 사용하여 중첩 사전에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!