오픈소스를 위한 기초 상식

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

지나가는 프로도 2025. 2. 18. 18:10

데이터프레임 기본 조작

 

데이터 분석에서 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와 데이터 시각화를 효과적으로 활용하면 데이터 분석의 정확성과 효율성을 높일 수 있습니다.