Pandas DataFrame을 List of Dictionaries로 변환하는 방법
Pandas DataFrame을 List of Dictionaries로 변환하는 방법
to_dict() 메서드 사용
to_dict()
메서드는 DataFrame을 딕셔너리로 변환하는 데 사용됩니다.
# DataFrame을 딕셔너리로 변환
df.to_dict()
list() comprehension 사용
list()
comprehension을 사용하여 DataFrame을 List of Dictionaries로 변환할 수 있습니다.
# DataFrame을 List of Dictionaries로 변환
[dict(zip(df.columns, row)) for row in df.values]
map() 함수 사용
# DataFrame을 List of Dictionaries로 변환
df.apply(lambda x: x.to_dict(), axis=1).tolist()
itertuples() 메서드 사용
# DataFrame을 List of Dictionaries로 변환
[dict(zip(row._fields, row)) for row in df.itertuples()]
orient="records" 옵션 사용
to_dict()
메서드의 orient
옵션을 "records"
로 설정하여 DataFrame을 List of Dictionaries로 변환할 수 있습니다.
# DataFrame을 List of Dictionaries로 변환
df.to_dict(orient="records")
예시
다음은 Pandas DataFrame을 List of Dictionaries로 변환하는 예시입니다.
import pandas as pd
# DataFrame 생성
df = pd.DataFrame({"Name": ["Alice", "Bob", "Carol"], "Age": [25, 30, 35]})
# DataFrame을 List of Dictionaries로 변환
list_of_dicts = df.to_dict(orient="records")
# 결과 출력
print(list_of_dicts)
결과
[{'Name': 'Alice', 'Age': 25}, {'Name': 'Bob', 'Age': 30}, {'Name': 'Carol', 'Age': 35}]
참고
예제 코드: Pandas DataFrame을 List of Dictionaries로 변환
import pandas as pd
# DataFrame 생성
df = pd.DataFrame({"Name": ["Alice", "Bob", "Carol"], "Age": [25, 30, 35]})
# **1. `to_dict()` 메서드 사용**
list_of_dicts_1 = df.to_dict()
# **2. `list()` comprehension 사용**
list_of_dicts_2 = [dict(zip(df.columns, row)) for row in df.values]
# **3. `map()` 함수 사용**
list_of_dicts_3 = df.apply(lambda x: x.to_dict(), axis=1).tolist()
# **4. `itertuples()` 메서드 사용**
list_of_dicts_4 = [dict(zip(row._fields, row)) for row in df.itertuples()]
# **5. `orient="records"` 옵션 사용**
list_of_dicts_5 = df.to_dict(orient="records")
# 결과 출력
print("**1. `to_dict()` 메서드 사용**")
print(list_of_dicts_1)
print("**2. `list()` comprehension 사용**")
print(list_of_dicts_2)
print("**3. `map()` 함수 사용**")
print(list_of_dicts_3)
print("**4. `itertuples()` 메서드 사용**")
print(list_of_dicts_4)
print("**5. `orient="records"` 옵션 사용**")
print(list_of_dicts_5)
**1. `to_dict()` 메서드 사용**
{'Name': {'Alice': 'Alice', 'Bob': 'Bob', 'Carol': 'Carol'}, 'Age': {'Alice': 25, 'Bob': 30, 'Carol': 35}}
**2. `list()` comprehension 사용**
[{'Name': 'Alice', 'Age': 25}, {'Name': 'Bob', 'Age': 30}, {'Name': 'Carol', 'Age': 35}]
**3. `map()` 함수 사용**
[{'Name': 'Alice', 'Age': 25}, {'Name': 'Bob', 'Age': 30}, {'Name': 'Carol', 'Age': 35}]
**4. `itertuples()` 메서드 사용**
[{'Name': 'Alice', 'Age': 25}, {'Name': 'Bob', 'Age': 30}, {'Name': 'Carol', 'Age': 35}]
**5. `orient="records"` 옵션 사용**
[{'Name': 'Alice', 'Age': 25}, {'Name': 'Bob', 'Age': 30}, {'Name': 'Carol', 'Age': 35}]
참고
- 각 방법은 동일한 결과를 생성합니다.
- 자신에게 가장 적합한 방법을 선택하십시오.
Pandas DataFrame을 List of Dictionaries로 변환하는 대체 방법
DataFrame.to_json() 메서드 사용
DataFrame.to_json()
메서드는 DataFrame을 JSON 문자열로 변환합니다. JSON 문자열을 Python 딕셔너리로 변환하는 라이브러리를 사용하여 List of Dictionaries를 얻을 수 있습니다.
import json
# DataFrame을 JSON 문자열로 변환
json_string = df.to_json()
# JSON 문자열을 List of Dictionaries로 변환
list_of_dicts = json.loads(json_string)
DataFrame.to_csv()
메서드는 DataFrame을 CSV 파일로 변환합니다. CSV 파일을 읽고 List of Dictionaries를 얻는 Python 코드를 작성할 수 있습니다.
# DataFrame을 CSV 파일로 변환
df.to_csv("data.csv")
# CSV 파일을 읽고 List of Dictionaries를 얻는 코드
with open("data.csv", "r") as f:
reader = csv.reader(f)
list_of_dicts = [row for row in reader]
numpy.array 사용
DataFrame.values
속성을 사용하여 DataFrame을 NumPy 배열로 변환할 수 있습니다. NumPy 배열을 List of Dictionaries로 변환하는 코드를 작성할 수 있습니다.
import numpy as np
# DataFrame을 NumPy 배열로 변환
np_array = df.values
# NumPy 배열을 List of Dictionaries로 변환
list_of_dicts = [dict(zip(df.columns, row)) for row in np_array]
collections.defaultdict 사용
collections.defaultdict
객체를 사용하여 List of Dictionaries를 만들 수 있습니다.
from collections import defaultdict
# defaultdict 객체 생성
list_of_dicts = defaultdict(list)
# DataFrame의 각 행을 List of Dictionaries에 추가
for row in df.itertuples():
list_of_dicts[row.Name].append(dict(zip(df.columns[1:], row[1:])))
참고
- 각 방법은 장단점이 있습니다.
to_json()
메서드는 JSON 라이브러리에 대한 의존성을 추가합니다.to_csv()
메서드는 CSV 파일을 읽고 쓰는 코드를 작성해야 합니다.numpy.array
사용은 NumPy 라이브러리에 대한 의존성을 추가합니다.collections.defaultdict
사용은 코드를 더 복잡하게 만들 수 있습니다.
결론
python list dictionary