Python, 딕셔너리, Pandas를 사용하여 딕셔너리 목록을 Pandas DataFrame으로 변환하는 방법
Python, 딕셔너리, Pandas를 사용하여 딕셔너리 목록을 Pandas DataFrame으로 변환하는 방법
다음은 딕셔너리 목록을 Pandas DataFrame으로 변환하는 두 가지 일반적인 방법입니다.
pandas.DataFrame() 함수 사용:
import pandas as pd
# 딕셔너리 목록 준비
data = [{'name': 'Alice', 'age': 30, 'city': 'Seattle'},
{'name': 'Bob', 'age': 25, 'city': 'New York'},
{'name': 'Charlie', 'age': 32, 'city': 'Chicago'}]
# 딕셔너리 목록을 Pandas DataFrame으로 변환
df = pd.DataFrame(data)
# 결과 출력
print(df)
위 코드는 다음과 같은 결과를 출력합니다.
name age city
0 Alice 30 Seattle
1 Bob 25 New York
2 Charlie 32 Chicago
dict() 함수와 keys() 메서드 사용:
import pandas as pd
# 딕셔너리 목록 준비
data = [{'name': 'Alice', 'age': 30, 'city': 'Seattle'},
{'name': 'Bob', 'age': 25, 'city': 'New York'},
{'name': 'Charlie', 'age': 32, 'city': 'Chicago'}]
# 첫 번째 딕셔너리의 키를 사용하여 열 이름 지정
columns = list(data[0].keys())
# 딕셔너리 목록을 Pandas DataFrame으로 변환
df = pd.DataFrame([dict(row) for row in data], columns=columns)
# 결과 출력
print(df)
주의 사항:
- 모든 딕셔너리가 동일한 키를 가지고 있는지 확인해야 합니다. 키가 다르면 오류가 발생할 수 있습니다.
- 딕셔너리의 값 유형이 서로 호환되는지 확인해야 합니다. 예를 들어, 모든 'age' 값이 숫자형인지 확인해야 합니다.
예제 코드: 딕셔너리 목록을 Pandas DataFrame으로 변환하기
import pandas as pd
# 딕셔너리 목록 준비
data = [{'name': 'Alice', 'age': 30, 'city': 'Seattle'},
{'name': 'Bob', 'age': 25, 'city': 'New York'},
{'name': 'Charlie', 'age': 32, 'city': 'Chicago'}]
# 딕셔너리 목록을 Pandas DataFrame으로 변환
df = pd.DataFrame(data)
# 결과 출력
print(df)
import pandas as pd
# 딕셔너리 목록 준비
data = [{'name': 'Alice', 'age': 30, 'city': 'Seattle'},
{'name': 'Bob', 'age': 25, 'city': 'New York'},
{'name': 'Charlie', 'age': 32, 'city': 'Chicago'}]
# 첫 번째 딕셔너리의 키를 사용하여 열 이름 지정
columns = list(data[0].keys())
# 딕셔너리 목록을 Pandas DataFrame으로 변환
df = pd.DataFrame([dict(row) for row in data], columns=columns)
# 결과 출력
print(df)
설명:
- 두 예제 모두
data
라는 딕셔너리 목록을 사용합니다. 이 목록은 세 개의 딕셔너리로 구성되며 각 딕셔너리는 'name', 'age', 'city'라는 키를 가집니다. pandas.DataFrame()
함수는 딕셔너리 목록을 Pandas DataFrame으로 변환하는 가장 간단한 방법입니다. 첫 번째 인수로 딕셔너리 목록을 전달하면 됩니다.dict()
함수와keys()
메서드를 사용하면 더 많은 제어력을 제공합니다. 첫 번째 딕셔너리의 키를 사용하여 열 이름을 지정하고dict()
함수를 사용하여 각 딕셔너리를 행으로 변환합니다.
딕셔너리 목록을 Pandas DataFrame으로 변환하는 대체 방법
pd.from_records() 함수 사용:
import pandas as pd
# 딕셔너리 목록 준비
data = [{'name': 'Alice', 'age': 30, 'city': 'Seattle'},
{'name': 'Bob', 'age': 25, 'city': 'New York'},
{'name': 'Charlie', 'age': 32, 'city': 'Chicago'}]
# 딕셔너리 목록을 Pandas DataFrame으로 변환
df = pd.from_records(data)
# 결과 출력
print(df)
zip() 함수와 list() 함수 사용:
import pandas as pd
# 딕셔너리 목록 준비
data = [{'name': 'Alice', 'age': 30, 'city': 'Seattle'},
{'name': 'Bob', 'age': 25, 'city': 'New York'},
{'name': 'Charlie', 'age': 32, 'city': 'Chicago'}]
# 딕셔너리 목록의 키를 언패킹
keys = list(data[0].keys())
# 딕셔너리 목록의 값을 언패킹
values = list(zip(*data))
# 딕셔너리 목록을 Pandas DataFrame으로 변환
df = pd.DataFrame(dict(zip(keys, values)))
# 결과 출력
print(df)
numpy.array() 함수와 pd.DataFrame() 함수 사용:
import pandas as pd
import numpy as np
# 딕셔너리 목록 준비
data = [{'name': 'Alice', 'age': 30, 'city': 'Seattle'},
{'name': 'Bob', 'age': 25, 'city': 'New York'},
{'name': 'Charlie', 'age': 32, 'city': 'Chicago'}]
# 딕셔너리 목록을 NumPy 배열로 변환
data_array = np.array(data)
# NumPy 배열을 Pandas DataFrame으로 변환
df = pd.DataFrame(data_array)
# 결과 출력
print(df)
- 각 방법마다 성능 및 메모리 사용량이 다를 수 있습니다. 대규모 딕셔너리 목록을 처리하는 경우 성능을 고려해야 합니다.
python dictionary pandas