Skip to content

판다스 데이터프레임을 리스트로 변환하는 방법?

Updated on

데이터 사이언티스트로 일하면 판다스 데이터프레임을 리스트로 변환해야하는 상황이 발생할 수 있습니다. 다행히도, tolist() 함수를 사용하여 이를 쉽게 수행할 수 있습니다. 이 기법을 사용하여 데이터프레임을 리스트로 변환하는 방법을 설명하고, 열을 리스트로 변환하는 방법, 중첩 리스트를 생성하는 방법, 간단한 예제를 제공합니다.

파이썬으로 빠르게 데이터 시각화를 만들고 싶으신가요?

PyGWalker는 Jupyter 노트북 환경에서 데이터 분석 및 시각화 워크플로우를 더 빠르게 수행하는 데 도움이되는 오픈 소스 파이썬 프로젝트입니다.

PyGWalker (opens in a new tab)를 사용하면 판다스 데이터프레임 (또는 Polars 데이터프레임)을 시각적인 UI로 변환하여 변수를 드래그 앤 드롭하면 쉽게 그래프를 생성할 수 있습니다. 다음 코드를 사용하세요:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

이제 PyGWalker로 온라인 노트북을 통해 실행할 수 있습니다:

그리고 깃헙에서 ⭐️를 눌러주세요!

Kaggle 노트북에서 PyGWalker 실행 (opens in a new tab)Google Colab에서 PyGWalker 실행 (opens in a new tab)PyGWalker 깃헙에서 ⭐️ 누르기 (opens in a new tab)
Run PyGWalker in Kaggle Notebook (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)

데이터프레임을 리스트로 변환하는 방법

tolist() 함수는 판다스에 내장된 함수로 데이터프레임을 리스트로 변환합니다. 데이터프레임에 이 함수를 호출하면 리스트가 반환됩니다.

import pandas as pd
 
# 샘플 데이터프레임 생성
df = pd.DataFrame({'numbers': [1, 2, 3], 'letters': ['a', 'b', 'c']})
 
# 데이터프레임을 리스트로 변환
list_from_df = df.values.tolist()
print(list_from_df)

이 코드는 다음 결과를 출력합니다:

[[1, 'a'], [2, 'b'], [3, 'c']]

당신이 볼 수 있듯이, tolist() 함수는 각 내부 리스트가 DataFrame에서의 한 행에 해당하는 리스트의 리스트를 반환합니다. 값들은 열별로 정렬되며, 각 값은 Pandas가 열의 값에서 추론된 유형입니다.

열을 리스트로 변환하기

DataFrame에서 특정 열만 리스트로 변환하는 경우도 있습니다. 다음은 그 작업 방법입니다.

import pandas as pd
 
# 샘플 DataFrame 만들기
df = pd.DataFrame({'numbers': [1, 2, 3], 'letters': ['a', 'b', 'c']})
 
# 'numbers' 열을 리스트로 변환
list_from_column = df['numbers'].tolist()
print(list_from_column)

이 코드는 다음과 같이 출력됩니다.

[1, 2, 3]

당신이 볼 수 있듯이, tolist() 함수는 특정 열에서 사용되며, 해당 열에서 값만 담은 리스트를 반환합니다.

중첩 리스트 만들기

일부 경우, DataFrame에서 중첩 리스트를 만들어야 할 수도 있습니다. 예를 들어, 리스트의 리스트 대신 각 행마다 튜플의 리스트를 원할 수 있습니다. 다음은 그 작업 방법입니다.

import pandas as pd
 
# 샘플 DataFrame 만들기
df = pd.DataFrame({'numbers': [1, 2, 3], 'letters': ['a', 'b', 'c']})
 
# 중첩 리스트 만들기
nested_list = [tuple(x) for x in df.to_records(index=False)]
print(nested_list)

이 코드는 다음과 같이 출력됩니다.

[(1, 'a'), (2, 'b'), (3, 'c')]

당신이 볼 수 있듯이, 리스트 컴프리헨션을 사용하여 DataFrame에서 튜플의 리스트를 만들었습니다. 이는 특정 데이터 구조를 필요로 하는 함수에 데이터를 전달해야 할 때 유용할 수 있습니다.

빠른 예제

DataFrame을 리스트로 변환하는 몇 가지 빠른 예제를 살펴보겠습니다.

import pandas as pd
 
# 샘플 DataFrame 만들기
df = pd.DataFrame({'numbers': [1, 2, 3], 'letters': ['a', 'b', 'c']})
 
# DataFrame을 리스트로 변환하기 (메소드 1)
list_from_df1 = df.values.tolist()
 
# DataFrame을 리스트로 변환하기 (메소드 2)
list_from_df2 = [list(x) for x in df.values]
 
# 'numbers' 열을 리스트로 변환하기
list_from_column = df['numbers'].tolist()
 
# 중첩 리스트 생성하기
nested_list = [tuple(x) for x in df.to_records(index=False)]
 

첫 번째 예제에서는 tolist() 함수를 사용하여 DataFrame을 리스트의 리스트로 변환했습니다.

두 번째 예제에서는 리스트 컴프리헨션을 사용하여 동일한 결과를 얻었습니다.

세 번째 예제에서는 특정 열에 tolist() 함수를 사용하여 해당 열을 리스트로 변환했습니다.

마지막으로 네 번째 예제에서는 리스트 컴프리헨션을 사용하여 튜플의 중첩 리스트를 만들었습니다.

결론

Pandas DataFrame을 리스트로 변환하는 것은 데이터 과학에서 일반적인 작업입니다. 다행히도 tolist() 함수를 사용하면 매우 간단합니다. 전체 DataFrame을 리스트로 변환하거나 특정 열을 리스트로 변환하거나 중첩 리스트를 만들어야 하는 경우 이 함수가 해결책입니다. 이 문서에서 제공한 예제를 사용하면 직접 프로젝트에서 이 작업을 빠르고 쉽게 수행할 수 있습니다.