본문 바로가기
오픈소스를 위한 기초 상식

당분간 파이썬? Pandas 관련 정리하기

by 지나가는 프로도 2025. 2. 18.

데이터프레임 기본 조작

 

데이터 분석에서 Pandas와 시각화 도구는 필수적인 요소입니다. Pandas는 데이터 조작과 분석을 용이하게 하는 라이브러리이며, Matplotlib과 Seaborn을 활용하면 데이터를 효과적으로 시각화할 수 있습니다. 본 문서에서는 Pandas의 주요 기능과 데이터 시각화 방법을 단계별로 설명합니다.

데이터 필터링

Pandas에서는 다양한 방법으로 데이터를 필터링할 수 있습니다.

# 조건을 사용한 필터링
df[df['column'] > 5]

# 다중 조건 필터링
df[(df['column1'] > 5) & (df['column2'] < 10)]

# isin을 사용한 필터링
df[df['column'].isin(['A', 'B', 'C'])]

# 문자열 필터링
df[df['column'].str.contains('pattern')]

그룹화와 집계

그룹화를 통해 데이터의 통계적 특성을 쉽게 분석할 수 있습니다.

# 기본 그룹화
df.groupby('column').mean()

# 다중 컬럼 그룹화
df.groupby(['column1', 'column2']).agg({
    'column3': 'mean',
    'column4': 'sum',
    'column5': ['min', 'max']
})

# 사용자 정의 집계 함수
df.groupby('column').agg(lambda x: x.max() - x.min())

결측치 처리

결측치는 데이터 분석에서 중요한 문제 중 하나이며, 적절한 처리가 필요합니다.

# 결측치 확인
df.isna().sum()

# 결측치 제거
df.dropna()

# 결측치 채우기
df.fillna(0)  # 특정 값으로 채우기
df.fillna(method='ffill')  # 이전 값으로 채우기
df.fillna(df.mean())  # 평균값으로 채우기

 

데이터 시각화

Matplotlib 기본 사용법

Matplotlib을 이용하면 다양한 유형의 차트를 그릴 수 있습니다.

import matplotlib.pyplot as plt

# 기본 선 그래프
plt.figure(figsize=(10, 6))
plt.plot(x, y)
plt.title('제목')
plt.xlabel('x축 레이블')
plt.ylabel('y축 레이블')
plt.grid(True)
plt.show()

# 서브플롯
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))
ax1.plot(x1, y1)
ax2.scatter(x2, y2)

Seaborn을 활용한 고급 시각화

Seaborn을 활용하면 더욱 직관적인 그래프를 만들 수 있습니다.

import seaborn as sns

# 테마 설정
sns.set_theme(style="whitegrid")

# 고급 분포도
sns.displot(data=df, x="column", hue="category", kind="kde")

# 상관관계 히트맵
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')

# 페어플롯
sns.pairplot(df, hue="category")

차트 커스터마이징

시각적 효과를 높이기 위해 다양한 커스터마이징이 가능합니다.

# 스타일 커스터마이징
plt.style.use('seaborn')

# 상세 커스터마이징 예시
fig, ax = plt.subplots(figsize=(10, 6))
sns.barplot(data=df, x="category", y="value", ax=ax)

# 축 레이블 회전
plt.xticks(rotation=45)

# 폰트 설정
plt.rcParams['font.family'] = 'NanumGothic'
plt.rcParams['font.size'] = 12

# 컬러 팔레트 커스터마이징
custom_palette = sns.color_palette("husl", 8)
sns.set_palette(custom_palette)

# 범례 위치 조정
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')

# 그리드 스타일 설정
plt.grid(True, linestyle='--', alpha=0.7)

고급 시각화 테크닉

보다 전문적인 시각화를 위해 다양한 기술을 활용할 수 있습니다.

# 다중 축 그래프
fig, ax1 = plt.subplots(figsize=(10, 6))
ax2 = ax1.twinx()
ax1.plot(x, y1, 'g-')
ax2.plot(x, y2, 'b-')

# 애니메이션 차트
from matplotlib.animation import FuncAnimation
ani = FuncAnimation(fig, update, frames=100, interval=50)

# 인터랙티브 차트
import plotly.express as px
fig = px.line(df, x='date', y='value', title='인터랙티브 차트')
fig.show()

 

데이터 분석과 시각화의 최적화 팁

 

  1. 데이터 탐색을 먼저 수행: df.info(), df.describe()를 활용하여 데이터를 먼저 파악하세요.
  2. 필요한 컬럼만 선택하여 처리: 그룹화 작업 시 성능을 최적화하기 위해 사용하지 않는 컬럼을 배제하세요.
  3. 시각화는 목적에 맞게 선택: 데이터를 직관적으로 표현할 수 있는 최적의 차트를 선택하세요.
  4. 대용량 데이터 처리 시 효율적인 방법 고려: Dask, Vaex와 같은 라이브러리를 활용하거나 chunk 단위로 데이터를 처리하세요.

Pandas와 데이터 시각화를 효과적으로 활용하면 데이터 분석의 정확성과 효율성을 높일 수 있습니다.