데이터프레임 기본 조작
데이터 분석에서 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()
데이터 분석과 시각화의 최적화 팁
- 데이터 탐색을 먼저 수행: df.info(), df.describe()를 활용하여 데이터를 먼저 파악하세요.
- 필요한 컬럼만 선택하여 처리: 그룹화 작업 시 성능을 최적화하기 위해 사용하지 않는 컬럼을 배제하세요.
- 시각화는 목적에 맞게 선택: 데이터를 직관적으로 표현할 수 있는 최적의 차트를 선택하세요.
- 대용량 데이터 처리 시 효율적인 방법 고려: Dask, Vaex와 같은 라이브러리를 활용하거나 chunk 단위로 데이터를 처리하세요.
Pandas와 데이터 시각화를 효과적으로 활용하면 데이터 분석의 정확성과 효율성을 높일 수 있습니다.
'오픈소스를 위한 기초 상식' 카테고리의 다른 글
고급 웹 스크래핑 가이드 (0) | 2025.03.22 |
---|---|
XRDP로 원격 세팅 (0) | 2025.03.20 |
실습: 객체지향 프로그래밍을 활용한 다양한 프로그램 구현 (0) | 2025.02.16 |
오랜만에 파이썬: 함수(Function)와 매개변수(Parameter) (0) | 2025.02.14 |
Gemini API: 텍스트, 이미지, 오디오를 활용한 AI 콘텐츠 생성 가이드 (1) | 2025.02.08 |