Pandas로 데이터 다루기

2장에서는 NumPy와 Python에서 고밀도 배열을 효율적으로 저장하고 조작하는 ‘ndarray’ 객체를 자세히 살펴보았습니다. 이번 장에서는 Pandas 라이브러리가 제공하는 데이터 구조를 심층적으로 살펴보며 관련 지식을 확장해 보겠습니다. Pandas는 NumPy를 기반으로 구축된 최신 패키지로, DataFrame을 효율적으로 구현합니다. DataFrame은 행과 열에 레이블이 붙은 다차원 배열이며, 데이터 타입이 서로 다르거나 누락된 데이터가 포함되는 경우가 많습니다. Pandas는 레이블이 붙은 데이터를 저장하는 편리한 인터페이스뿐만 아니라, 데이터베이스 프레임워크나 스프레드시트 사용자에게 익숙하고 강력한 데이터 연산 기능을 제공합니다.

앞서 보았듯이 NumPy의 ‘ndarray’ 데이터 구조는 수치 계산 작업에 흔히 쓰이는 정제되고 잘 구성된 데이터 타입에는 필수적입니다. 이러한 목적은 훌륭하게 수행하지만, 데이터에 레이블을 붙이거나 누락된 데이터를 처리하는 등 더 높은 유연성이 필요할 때는 한계가 드러납니다. 또한 그룹화나 피벗 등 요소별 브로드캐스팅에 잘 어울리지 않는 작업을 시도할 때도 어려움이 있습니다. 이러한 작업은 우리 주변에 산재한 비정형 데이터를 분석하는 데 매우 중요한 과정입니다. Pandas, 특히 ‘Series’와 ’DataFrame’ 객체는 NumPy 배열 구조를 기반으로 하며, 데이터 과학자가 많은 시간을 할애하는 “데이터 정리” 작업을 효율적으로 수행하도록 돕습니다.

이번 부에서는 Series, DataFrame 및 관련 구조의 효과적인 활용법에 중점을 두겠습니다. 필요한 경우 실제 데이터셋에서 가져온 예제를 사용하겠지만, 예제 자체가 주요 목적은 아닙니다.

Pandas 설치 및 사용

시스템에 Pandas를 설치하려면 NumPy가 먼저 설치되어 있어야 합니다. 소스에서 라이브러리를 직접 빌드하는 경우 Pandas의 C 및 Cython 소스를 컴파일할 도구가 필요합니다. 설치 과정에 관한 자세한 내용은 Pandas 문서에서 확인합니다. 서문의 조언대로 Anaconda 스택을 사용 중이라면 이미 Pandas가 설치되어 있을 것입니다.

Pandas가 설치되었다면 이를 임포트하여 버전을 확인합니다. 이 책에서 사용한 버전은 다음과 같습니다.

import pandas

pandas.__version__
'1.3.5'

일반적으로 NumPy를 np 별칭으로 임포트하는 것처럼, Pandas도 pd라는 별칭으로 임포트합니다.

이 임포트 규칙은 책의 나머지 부분에서도 계속 사용됩니다.

내장 문서 활용하기

이 부분을 읽으면서 IPython이 제공하는 패키지 내용 탐색 기능(탭 완성)과 문서 확인 기능(? 문자 사용)을 잊지 마세요. 관련 내용은 IPython 도움말 및 문서를 참고하시기 바랍니다.

예를 들어 Pandas 네임스페이스의 모든 내용을 표시하려면 다음과 같이 입력하면 됩니다.

``ipython [3] In: pd.


내장된 Pandas 문서를 보려면 다음을 사용합니다.

``ipython
[4] In: pd?

튜토리얼과 기타 리소스를 포함한 더 자세한 문서는 http://pandas.pydata.org/에서 찾을 수 있습니다.