Coding Practice/Python

Data Frame - to_list(), tolist()

LazyHand 2024. 7. 13. 11:44

데이터 프레임(Data Frame)을 사용하면서 많이 사용하는 부분 중 하나인 List 변환에 대해서 알아보고자 한다.

to_list() and tolist()

데이터 프레임을 List로 변환하는 것은 to_list() 함수 혹은 tolist() 함수를 통해 변환할 수 있다.

코드는 다음과 같다.

import pandas as pd

df = pd.read_csv("./서울특별시 은평구_원룸 및 오피스텔 현황_20240704.csv", encoding='cp949')

#대지위치={Column name}
df.대지위치.to_list()
df.대지위치.tolist()

그렇다면 to_list()tolist() 함수의 차이점은 무엇일까?

사실 데이터 프레임의 Series 객체에서 두 함수는 동일한 기능을 한다.

to_list() vs tolist()

동일한 기능을 한다면 왜 2가지 함수가 존재하는 것일까?

그건 to_list()는 Pandas 라이브러리에서 tolist()는 Numpy 라이브러리에서 제공되는 함수이기 때문이다.

여기서 의문이 들어야할 부분이 있는데, 바로 위 코드에서 Numpy 라이브러리를 import하지 않았는데 어떻게 코드가 작동할 수 있는가이다.

그건 바로, Pandas 라이브러리가 Numpy 라이브러리를 기반으로 하고 있기 때문이다.

Pandas vs Numpy

밑에 그림은, 파이썬에서 사용하는 대표적인 라이브러리들 간의 기반 관계를 표현하는 그림이다.

해당 그림에서도 Pandas가 Numpy를 기반으로 하는 것을 확인할 수 있다.

두 함수의 차이는 나도 이번에 정리하면서 알게된 부분이다.

그 전까지는, 동일한 함수여서 그때그때 원하는 것을 사용했는데 이번에 알아보게 되면서 Pandas와 Numpy 라이브러리의 차이도 함께 알아보았다.

특징 pandas NumPy
주요 데이터 구조 DataFrame (2D), Series (1D) 다차원 배열 (ndarray)
데이터 타입 다양한 데이터 타입 지원 동일한 데이터 타입만 지원
주요 용도 데이터 분석, 정제, 변환 수치 연산, 과학 계산
메모리 효율성 상대적으로 낮음 높음 (동일 타입 데이터)
속도 복잡한 데이터 조작에 효율적 대규모 수치 연산에 빠름
결측치 처리 내장 기능 제공 제한적 지원
인덱싱 레이블 기반, 다중 인덱스 지원 정수 기반 인덱싱
데이터 정렬/병합 강력한 기능 제공 기본적인 지원
시계열 데이터 처리 전문화된 기능 제공 제한적 지원
파일 입출력 다양한 형식 지원 (CSV, Excel, SQL 등) 기본적인 텍스트 파일 지원
데이터 시각화 기본적인 플로팅 기능 내장 시각화 기능 없음
학습 곡선 상대적으로 가파름 상대적으로 완만함
메모리 사용량 상대적으로 높음 낮음
대규모 데이터 처리 중간 규모까지 효과적 대규모 데이터에 더 적합
데이터베이스 연동 직접적인 지원 제한적 지원
그룹 연산 강력한 groupby 기능 기본적인 지원