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 직렬화나 다른 라이브러리와의 연동 시 유용하게 활용할 수 있습니다.