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

이번 포스팅에서는 판다스에서 데이터프레임을 리스트로 변환 하는 방법에 대해서 알아보겠습니다.
판다스는 데이터 분석을 위한 강력한 파이썬 라이브러리로, 많은 편리한 데이터 구조와 연산을 제공하는데, 데이터프레임을 가장 일반적으로 사용합니다.

데이터프레임은 다양한 유형의 데이터를 저장할 수 있는 2차원 표 형식 데이터 구조이며 인덱싱, 슬라이싱, 집계, 그룹화, 병합 등과 같은 다양한 연산을 지원합니다(데이터프레임에 대한 자세한 설명은 판다스 데이터프레임 이해하기 글을 참고하세요.) .
그러나 추가 처리나 분석을 위해 데이터프레임 형식의 데이터를 리스트나 세트(Set)와 같은 다른 형식으로 변환해야 할 때가 있습니다.


샘플 데이터 생성

다양한 변환 방법을 보여주기 위해 먼저 샘플 데이터프레임을 만들어야 합니다. 판다스의 pd.DataFrame() 함수를 사용하여 딕셔너리를 매개변수로 전달하여 두 개의 열(‘Name’과 ‘Age’)이 있는 데이터프레임을 만들 수 있습니다. 코드는 다음과 같습니다.

import pandas as pd
data = {'Name': ['Tiffany', 'Marsha', 'William', 'John', 'Novee'],
        'Age': [15, 30, 25, 22, 31]}
sampleData = pd.DataFrame(data)
sampleData


데이터프레임에서 리스트로 변환

데이터프레임의 데이터를 리스트로 변환하는 주요 방법은 4가지가 있습니다. 다음은 일반적으로 사용되는 몇 가지 방법입니다.


`values` 속성과 `tolist()` 메서드 사용

데이터프레임 객체에는 데이터프레임의 모든 데이터를 포함하는 2차원 배열(NumPy 배열)을 반환하는 values 속성이 있습니다. 이 배열에서 tolist() 메서드를 호출하여 중첩된 리스트로 변환할 수 있으며, 각 하위 리스트는 데이터 행을 나타냅니다. 코드는 다음과 같습니다.

sampleDataList = sampleData.values.tolist()
sampleDataList
--------------------------------------------------------------------------------
[['Tiffany', 15], ['Marsha', 30], ['William', 25], ['John', 22], ['Novee', 31]]


print(type(sampleDataList))
---------------------------------
<class 'list'>


`to_numpy()` 메서드와 `tolist()` 메서드 사용

values 속성과 유사하게 데이터프레임 객체에도 to_numpy() 메서드가 있는데, 이 메서드는 데이터프레임의 모든 데이터를 포함하는 2차원 배열(NumPy 배열)을 반환합니다.

이 배열에서 tolist() 메서드를 호출하여 중첩된 리스트로 변환할 수도 있는데, 여기서 각 하위 리스트는 데이터 행을 나타냅니다. 코드는 다음과 같습니다.

sampleDataList2 = sampleData.to_numpy().tolist()
sampleDataList2
--------------------------------------------------------------------------------
[['Tiffany', 15], ['Marsha', 30], ['William', 25], ['John', 22], ['Novee', 31]]


print(type(sampleDataList2))
---------------------------------
<class 'list'>


`to_records()` 메서드와 `tolist()` 메서드 사용

데이터프레임 객체에는 to_records() 메서드도 있는데, 이 메서드는 데이터프레임의 모든 데이터를 포함하는 레코드 배열(NumPy 재캐리어)을 반환합니다. 이 배열의 각 요소는 인덱스와 열 이름을 필드 이름으로 포함하는 튜플과 같은 컨테이너입니다.

이 배열에서 tolist() 메서드를 호출하여 각 요소가 데이터 행을 나타내는 리스트로 변환할 수 있습니다. 코드는 다음과 같습니다.

sampleDataList3 = sampleData.to_records().tolist()
sampleDataList3
-----------------------------------------------------------
[(0, 'Tiffany', 15),
 (1, 'Marsha', 30),
 (2, 'William', 25),
 (3, 'John', 22),
 (4, 'Novee', 31)]


print(type(sampleDataList3))
-----------------------------------------------------------
<class 'list'>


`apply()` 메서드와 람다 표현식 사용

데이터프레임의 특정 열 또는 여러 열을 리스트로 변환하려면 람다 표현식과 함께 apply() 메서드를 사용하여 각 요소에 대해 작업할 수 있습니다. 예를 들어 데이터프레임의 Name 열을 리스트로 변환하려면 다음 코드를 사용할 수 있습니다.

nameList = sampleData['Name'].apply(lambda x: x).tolist()
nameList
-----------------------------------------------------------------
['Tiffany', 'Marsha', 'William', 'John', 'Novee']


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다