프로그래밍/Python

데이터 과학을 위한 Pandas 완벽 가이드

shimdh 2025. 2. 28. 09:20
728x90

데이터 과학 및 분석에서 가장 중요한 작업 중 하나는 데이터를 효과적으로 관리하고 가공하는 것입니다. Python의 Pandas 라이브러리는 데이터 조작 및 분석을 위한 강력한 도구를 제공하며, 대량의 데이터를 쉽게 처리하고 변환할 수 있도록 설계되었습니다.

Pandas를 활용하면 엑셀(Excel)과 유사한 방식으로 데이터프레임을 조작할 수 있으며, SQL과 유사한 필터링, 정렬, 그룹화 및 집계 연산도 손쉽게 수행할 수 있습니다.

이번 글에서는 Pandas의 핵심 개념, 데이터 조작, 결측치 처리, 그룹화 및 파일 입출력 등 실무에서 유용한 기능을 자세히 살펴보겠습니다.


1. Pandas란 무엇인가?

🔹 Pandas의 핵심 개념

Pandas는 Python의 데이터 분석을 위한 핵심 라이브러리로, 표 형태(테이블 형식)의 데이터를 쉽고 직관적으로 다룰 수 있도록 지원합니다. Pandas의 핵심 데이터 구조는 Series(일차원 데이터)DataFrame(이차원 테이블 데이터) 입니다.

  • Series: 리스트와 유사한 구조로, 인덱스를 갖는 1차원 데이터 구조.
  • DataFrame: 엑셀 시트처럼 행과 열로 이루어진 2차원 테이블 형태의 데이터 구조.

Pandas의 주요 기능
✔️ 엑셀과 같은 테이블 데이터 처리
✔️ 대량의 데이터 빠르게 조작
✔️ 데이터 필터링 및 정렬
✔️ 그룹화 및 집계 연산
✔️ 결측치 처리
✔️ 다양한 포맷(CSV, Excel, SQL 등)으로 데이터 입출력


2. Pandas 설치 및 기본 사용법

🔹 Pandas 설치

Pandas는 Python의 기본 라이브러리가 아니므로 먼저 설치해야 합니다.

pip install pandas

설치 후, Pandas를 불러올 수 있습니다.

import pandas as pd

3. Pandas 데이터 구조: Series & DataFrame

🔹 Series 생성 (1차원 데이터)

import pandas as pd

data = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(data)

결과

a    10
b    20
c    30
d    40
dtype: int64

Series는 인덱스를 지정할 수 있으며, 리스트처럼 개별 값에 접근 가능합니다.


🔹 DataFrame 생성 (2차원 데이터)

data = {
    '이름': ['김철수', '이영희', '박민수'],
    '나이': [25, 30, 22],
    '도시': ['서울', '부산', '대구']
}

df = pd.DataFrame(data)
print(df)

결과

    이름  나이   도시
0  김철수  25  서울
1  이영희  30  부산
2  박민수  22  대구

DataFrame은 엑셀의 표처럼 행과 열로 구성된 구조입니다.


4. 데이터 조작 및 필터링

🔹 특정 행 선택

print(df.loc[0])  # 인덱스 0번 행 선택
print(df[df['나이'] > 25])  # 나이가 25 이상인 행 선택

결과

이름     김철수
나이      25
도시      서울
Name: 0, dtype: object
    이름  나이   도시
1  이영희  30  부산

🔹 열 추가 및 삭제

df['성별'] = ['남자', '여자', '남자']  # 새로운 열 추가
df.drop(columns=['도시'], inplace=True)  # 특정 열 삭제

print(df)

결과

    이름  나이  성별
0  김철수  25  남자
1  이영희  30  여자
2  박민수  22  남자

5. 데이터 그룹화 및 집계 연산

Pandas를 활용하면 데이터를 그룹화하여 평균, 합계 등의 통계를 계산할 수 있습니다.

🔹 성별별 평균 나이 계산

grouped = df.groupby('성별')['나이'].mean()
print(grouped)

결과

성별
남자    23.5
여자    30.0
Name: 나이, dtype: float64

6. 결측치 처리

데이터에는 종종 결측치(NaN, Null 값) 가 존재하며, 이를 적절히 처리해야 합니다.

🔹 결측치 확인 및 처리

df.loc[2, '나이'] = None  # 결측치 추가

print(df.isnull().sum())  # 결측치 개수 확인
df.fillna(df['나이'].mean(), inplace=True)  # 평균값으로 채우기
df.dropna(inplace=True)  # 결측치가 있는 행 제거

print(df)

결과

이름      0
나이      1
성별      0
dtype: int64

7. 데이터 저장 및 불러오기

Pandas는 CSV, Excel, JSON, SQL 등 다양한 형식으로 데이터를 저장하고 불러올 수 있습니다.

🔹 CSV 파일 읽기 및 저장

# CSV 파일 읽기
df = pd.read_csv('data.csv')

# CSV 파일로 저장
df.to_csv('output.csv', index=False)

🔹 Excel 파일 읽기 및 저장

# 엑셀 파일 읽기
df = pd.read_excel('data.xlsx')

# 엑셀 파일 저장
df.to_excel('output.xlsx', index=False)

🔥 결론: Pandas를 활용한 데이터 분석

Pandas는 데이터 분석 및 과학적 연구에서 필수적인 라이브러리로, 엑셀과 같은 친숙한 인터페이스를 제공하면서도 강력한 데이터 처리 기능을 지원합니다.

🎯 핵심 정리

  • Pandas는 데이터 조작 및 분석을 위한 필수 라이브러리
  • Series(1차원)와 DataFrame(2차원) 구조를 기반으로 데이터 관리
  • 데이터 필터링, 정렬, 그룹화, 집계 연산을 손쉽게 수행 가능
  • 결측치 처리 및 다양한 파일 형식(CSV, Excel, JSON) 지원

Pandas를 활용하면 데이터 분석과 머신러닝을 위한 전처리 작업을 더욱 쉽게 수행할 수 있으며, 실제 프로젝트에서도 효율적으로 데이터를 다룰 수 있습니다! 🚀

728x90