파이썬으로 데이터 분석을 시작하는 초보자를 위한 친절한 Pandas 입문
데이터 분석을 시작하려는 사람들이라면 한 번쯤은 들어봤을 Pandas. 하지만 처음 접하면 복잡한 함수들과 개념들에 겁을 먹기 쉽다. 나도 처음엔 막막했지만, Pandas가 데이터 처리를 얼마나 편리하게 해주는지 알고 나서는 생각이 달라졌다. 이번 글에서는 처음 Pandas를 접하는 사람도 쉽게 따라올 수 있도록 기초 개념부터 실제 사용 예제까지 설명해 보려고 한다. 내가 직접 운영하는 커뮤니티에서도 자주 나오는 질문들을 기반으로 작성했으니, 천천히 따라오면서 익혀보자.
데이터를 자유롭게 다루기 위한 Pandas의 기본 개념
Pandas는 기본적으로 데이터를 쉽게 다룰 수 있도록 도와주는 라이브러리이다. 데이터를 불러오고, 정리하고, 분석하는 과정에서 필수적으로 사용되며, 파이썬의 강력한 데이터 처리 도구 중 하나로 꼽힌다. 핵심이 되는 데이터 구조로는 Series와 DataFrame이 있는데, 이 둘을 제대로 이해하는 것이 Pandas를 다루는 첫걸음이다.
먼저 Series는 일종의 1차원 배열이라고 생각하면 된다. 인덱스와 값으로 구성되어 있으며, 리스트나 딕셔너리와 유사한 점이 많다. 예를 들어 볼까?
import pandas as pd
s = pd.Series([10, 20, 30, 40])
print(s)
위 코드를 실행하면 인덱스와 함께 값이 출력된다. 리스트와는 다르게 각 값이 고유한 인덱스를 가지고 있으며, 이를 활용하면 원하는 값을 쉽게 찾거나 수정할 수 있다.
다음으로 DataFrame을 살펴보자. DataFrame은 여러 개의 Series가 모여 있는 형태로, 엑셀의 표와 비슷한 구조를 가지고 있다. 행과 열로 이루어져 있으며, 데이터 분석에서 가장 많이 사용되는 구조이다.
data = {'이름': ['철수', '영희', '민수'], '나이': [20, 21, 19], '점수': [85, 90, 88]}
df = pd.DataFrame(data)
print(df)
이제 DataFrame을 보면 좀 더 친숙한 느낌이 들지 않을까? 데이터를 테이블 형태로 정리하고, 원하는 정보를 쉽게 추출할 수 있다. 실제 데이터 분석에서는 CSV 파일을 불러와 다루는 경우가 많기 때문에, CSV 파일을 읽는 방법도 알아두는 것이 좋다.
df = pd.read_csv('data.csv')
print(df.head()) # 처음 5개의 행 출력
이제 Pandas의 기본 개념을 이해했으니, 실전에서 어떻게 활용되는지 좀 더 자세히 알아보자.
Pandas로 데이터 가공과 분석을 손쉽게 하는 방법
데이터를 불러온 후에는 다양한 방법으로 가공해야 한다. 예를 들어, 데이터를 필터링하거나, 특정 열을 추가하고 수정하는 일이 빈번하게 발생한다. Pandas는 이런 작업을 매우 간단하게 만들어 준다.
가장 기본적인 데이터 필터링 방법부터 살펴보자. 특정 조건을 만족하는 행만 선택하고 싶다면 어떻게 하면 될까?
filtered_df = df[df['점수'] > 85]
print(filtered_df)
이렇게 하면 점수가 85점 이상인 학생들만 추려낼 수 있다. 데이터 분석에서는 특정 조건을 적용해 필요한 데이터만 걸러내는 작업이 정말 중요하다.
또한, 새로운 열을 추가하는 것도 어렵지 않다. 예를 들어, 점수에 10점을 더한 새로운 컬럼을 추가해 보자.
df['조정된 점수'] = df['점수'] + 10
print(df)
이처럼 기존 데이터를 바탕으로 새로운 열을 추가할 수 있다. 실제 데이터 분석에서는 이러한 방식으로 다양한 파생 변수를 만들어 더 깊은 분석을 진행한다.
그렇다면 데이터의 통계를 빠르게 확인하는 방법은 없을까? Pandas는 describe() 함수를 제공하여 기본적인 통계 정보를 한눈에 볼 수 있도록 한다.
print(df.describe())
평균, 표준편차, 최솟값, 최댓값 등을 확인할 수 있으며, 데이터를 빠르게 요약하는 데 유용하다. 이런 기능이 있기에 Pandas가 데이터 분석에서 필수적인 도구로 자리 잡은 것이 아닐까 싶다.
데이터를 다루다 보면 결측값이 포함된 경우도 많다. 이를 확인하고 처리하는 것도 중요하다. 예를 들어, NaN 값을 가진 데이터를 찾아보려면 다음과 같이 하면 된다.
print(df.isnull().sum())
결측값이 많다면 삭제하거나 특정 값으로 채우는 방식으로 처리할 수 있다.
df.fillna(0, inplace=True) # 결측값을 0으로 채우기
df.dropna(inplace=True) # 결측값이 포함된 행 삭제
이처럼 Pandas를 활용하면 데이터를 쉽게 정리하고 분석할 수 있다. 데이터 정리는 번거로운 작업이지만, Pandas가 있다면 훨씬 효율적으로 처리할 수 있다.
Pandas는 데이터 분석을 하는 사람들에게 필수적인 도구이다. 처음에는 생소하고 복잡해 보일 수 있지만, 몇 가지 기본 개념을 익히고 직접 데이터를 다뤄보면 금방 익숙해진다. 내 경험상, 처음부터 너무 많은 내용을 한 번에 공부하려고 하기보다는, 간단한 예제부터 하나씩 실행해 보는 것이 좋다. 예제를 따라 하다 보면 자연스럽게 Pandas의 기능과 문법이 익숙해질 것이다.
데이터 분석을 시작하려는가? 그렇다면 Pandas부터 익혀보는 것이 가장 좋은 첫걸음이다. 이 글이 도움이 되길 바라며, 앞으로도 데이터 분석과 관련된 다양한 내용을 공유해 볼 예정이다.