Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Pandas DataFrame을 딕셔너리로 변환하는 방법 (to_dict() 완벽 정리)

Pandas DataFrame을 딕셔너리(dict)로 변환하려면 to_dict() 메서드를 사용하면 됩니다. 이 메서드는 DataFrame의 데이터를 파이썬 딕셔너리 형태로 간편하게 변환해 주며, orient 옵션을 활용하면 다양한 구조로 출력할 수도 있습니다.

예제를 통해 실제 변환 과정을 살펴보겠습니다.

변환 단계

  • 2차원 표 형태이면서 크기가 가변적이고 서로 다른 데이터 타입을 담을 수 있는 데이터(DataFrame)를 생성합니다.
  • 입력 DataFrame인 df를 출력합니다.
  • to_dict() 메서드를 사용해 DataFrame을 딕셔너리로 변환한 뒤 결과를 출력합니다.

예제 코드

import pandas as pd

df = pd.DataFrame(
   {
      "x": [5, 2, 7, 0],
      "y": [4, 7, 5, 1],
      "z": [9, 3, 5, 1]
   }
)
print("Input DataFrame is:\n", df)
print("Convert DataFrame into dictionary:\n", df.to_dict())

실행 결과

Input DataFrame is:
   x  y  z
0  5  4  9
1  2  7  3
2  7  5  5
3  0  1  1

Convert DataFrame into dictionary:
{'x': {0: 5, 1: 2, 2: 7, 3: 0}, 'y': {0: 4, 1: 7, 2: 5, 3: 1}, 'z': {0: 9, 1: 3, 2: 5, 3: 1}}

to_dict()의 주요 orient 옵션

to_dict()는 기본적으로 열 이름을 키로, 행 인덱스와 값을 값으로 갖는 중첩 딕셔너리를 반환합니다. 필요에 따라 아래와 같은 orient 옵션을 지정해 출력 구조를 바꿀 수 있습니다.

  • 'dict' (기본값): {열 이름 → {행 인덱스 → 값}} 구조
  • 'list': {열 이름 → [값 목록]} 구조
  • 'records': [{열 이름 → 값}, ...] 형태의 리스트 구조
  • 'index': {행 인덱스 → {열 이름 → 값}} 구조
  • 'split': {'index' → [...], 'columns' → [...], 'data' → [...]} 구조

예를 들어 df.to_dict('list')를 호출하면 각 열의 값이 리스트 형태로 반환되어, JSON 직렬화나 다른 라이브러리와의 연동 시 유용하게 활용할 수 있습니다.