본문 바로가기
Artificial Intelligence/60. Python

[PYTHON] Pandas 완벽 가이드 : 데이터 분석의 핵심 도구

by Papa Martino V 2025. 7. 20.
728x90

데이터 분석의 핵심 도구
[PYTHON] Pandas

 

파이썬(Python)은 데이터 분석 분야에서 가장 널리 사용되는 언어이며, 그 중심에는 바로 Pandas 라이브러리가 있습니다. Pandas는 구조화된 데이터를 쉽게 다루고 조작할 수 있게 도와주는 강력한 툴로, 데이터 과학자, 엔지니어, 연구원 모두에게 필수적인 도구입니다. 이 글에서는 Pandas의 핵심 개념과 실제 적용 방법을 체계적으로 정리합니다.


1. Pandas란 무엇인가?

Pandas는 Python Data Analysis Library의 줄임말로, 표 형식의 데이터 구조(DataFrame, Series)를 효율적으로 처리할 수 있는 기능을 제공합니다. SQL, Excel, CSV 등 다양한 포맷과의 호환성도 뛰어나며, Numpy 기반으로 동작하여 고속 처리도 가능합니다.

설치 방법

pip install pandas

2. Pandas의 기본 자료 구조

자료구조 설명 예시
Series 1차원 배열 형태. 인덱스를 가진 데이터 pd.Series([10, 20, 30])
DataFrame 2차원 테이블 형식의 데이터 pd.DataFrame({'이름': ['홍길동'], '나이': [30]})

기본 예제


import pandas as pd

data = {
    '이름': ['철수', '영희', '민수'],
    '나이': [25, 30, 28]
}
df = pd.DataFrame(data)
print(df)

3. 데이터 불러오기와 저장

작업 함수 예시
CSV 불러오기 read_csv() pd.read_csv('data.csv')
Excel 불러오기 read_excel() pd.read_excel('data.xlsx')
데이터 저장 to_csv(), to_excel() df.to_csv('save.csv', index=False)

4. 데이터 조회 및 조작

기초 조회


df.head()  # 처음 5행
df.tail(3) # 마지막 3행
df.info()  # 데이터 타입 및 개요
df.describe()  # 수치 요약 통계

인덱싱과 필터링


df['이름']               # 단일 열
df[['이름', '나이']]     # 여러 열
df[df['나이'] > 27]      # 조건 필터

정렬과 변경


df.sort_values(by='나이', ascending=False)
df.rename(columns={'이름': 'Name'}, inplace=True)

5. 결측치 처리 및 데이터 정제


df.isnull().sum()            # 결측치 개수 확인
df.dropna()                  # 결측치 제거
df.fillna(0)                 # 결측치를 0으로 대체

결측치 처리는 데이터 분석의 품질을 좌우하는 핵심 단계입니다.


6. 그룹화 및 집계

Pandas는 SQL의 GROUP BY와 유사한 기능을 제공합니다.


df.groupby('성별')['나이'].mean()
df.groupby(['성별', '도시']).size()

집계 함수는 mean(), sum(), count(), max(), min() 등이 있습니다.


7. Pandas 주요 함수 요약

기능 함수명 설명
데이터 확인 head(), info(), describe() 데이터 개요 및 요약 보기
결측치 처리 isnull(), dropna(), fillna() 결측값 탐지 및 처리
데이터 정렬 sort_values() 열 기준 정렬
열 이름 변경 rename() 열/행 이름 바꾸기
그룹화 groupby() 집계 및 분할 처리

8. 실전 예제: 지역별 인구 평균 계산


data = {
    '도시': ['서울', '부산', '서울', '부산'],
    '인구': [950, 340, 1100, 420]
}
df = pd.DataFrame(data)
avg = df.groupby('도시')['인구'].mean()
print(avg)

위 코드를 통해 도시별 평균 인구를 빠르게 구할 수 있습니다.


9. 시각화를 위한 연동

Pandas는 Matplotlib, Seaborn과 함께 사용하면 시각화까지 한 번에 처리할 수 있습니다.


import matplotlib.pyplot as plt

df['나이'].plot(kind='hist')
plt.title("나이 분포")
plt.show()

10. 결론

Pandas는 파이썬 기반 데이터 분석에 있어 가장 핵심적인 라이브러리입니다. 다양한 형태의 데이터를 불러오고, 조작하며, 통계 및 시각화까지 하나의 도구로 가능하게 해 줍니다. 초보자는 DataFrame과 Series 구조를 철저히 익히고, 실무에서는 그룹화, 조건 필터, 결측치 처리 등을 활용해보세요.


참고 자료

728x90