[Machine Learning] Pandas: 데이터 분석을 위한 필수 라이브러리
카테고리: Machine Learning
태그: AI data analysis data science pandas python machine learning
🎯 Pandas: 데이터 분석의 핵심
Pandas는 파이썬의 데이터 분석 라이브러리로, 데이터 조작과 분석을 위한 강력한 도구를 제공한다. AI/ML 프로젝트에서 데이터 전처리와 탐색적 데이터 분석(EDA)에 필수적으로 사용된다.
1. Pandas의 역할
데이터 분석에서의 중요성
- 구조화된 데이터 처리를 위한 직관적인 도구 제공
- 대용량 데이터셋의 효율적인 처리
- 다양한 파일 형식(CSV, Excel, SQL 등)과의 호환성
- 강력한 데이터 전처리 및 변환 기능
실제 사용 사례
- 데이터 전처리
- 결측치 처리
- 이상치 탐지
- 데이터 정제
- 형식 변환
- 데이터 분석
- 기술 통계 분석
- 그룹화 및 집계
- 시계열 데이터 분석
2. Pandas의 핵심 기능
DataFrame과 Series
import pandas as pd
# Series 생성 (1차원 데이터)
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
# DataFrame 생성 (2차원 데이터)
data = {
'name': ['John', 'Anna', 'Peter'],
'age': [28, 22, 35],
'city': ['New York', 'Paris', 'London']
}
df = pd.DataFrame(data)
데이터 조작
# 데이터 선택
subset = df[['name', 'age']] # 열 선택
filtered = df[df['age'] > 25] # 조건부 필터링
# 결측치 처리
df.fillna(0) # 결측치를 0으로 채우기
df.dropna() # 결측치가 있는 행 제거
# 데이터 그룹화 및 집계
grouped = df.groupby('city').agg({
'age': ['mean', 'max', 'min']
})
3. 데이터 분석 예제
기본적인 데이터 분석
# 데이터 불러오기
df = pd.read_csv('data.csv')
# 기술 통계량 확인
print(df.describe())
# 결측치 확인
print(df.isnull().sum())
# 상관관계 분석
correlation = df.corr()
시계열 데이터 분석
# 날짜 데이터 처리
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
# 시계열 리샘플링
monthly = df.resample('M').mean()
# 이동평균 계산
rolling_mean = df['value'].rolling(window=7).mean()
4. 데이터 전처리 기법
범주형 데이터 처리
# One-Hot 인코딩
encoded = pd.get_dummies(df['category'])
# Label 인코딩
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['encoded_category'] = le.fit_transform(df['category'])
데이터 정규화
# Min-Max 스케일링
def min_max_scaling(series):
return (series - series.min()) / (series.max() - series.min())
# Z-score 정규화
def standardization(series):
return (series - series.mean()) / series.std()
df['scaled_value'] = min_max_scaling(df['value'])
5. 실전 팁
성능 최적화
- 적절한 데이터 타입 사용
# 메모리 사용량 줄이기 df['integer_col'] = df['integer_col'].astype('int32') df['float_col'] = df['float_col'].astype('float32')
- 효율적인 연산
# apply 대신 벡터화된 연산 사용 # Bad df['new_col'] = df['col'].apply(lambda x: x * 2) # Good df['new_col'] = df['col'] * 2
메모리 관리
- 불필요한 열 제거
# 필요없는 열 삭제 df.drop(['unused_col1', 'unused_col2'], axis=1, inplace=True)
- 청크 단위 처리
# 대용량 CSV 파일 청크 단위로 읽기 chunks = pd.read_csv('large_file.csv', chunksize=10000) for chunk in chunks: # 청크 단위로 처리 process_chunk(chunk)
🎯 결론
Pandas는 데이터 분석과 전처리에 있어 필수적인 도구이다. 특히 AI/ML 프로젝트에서 데이터 준비 단계에서 매우 중요한 역할을 한다. 효율적인 데이터 처리와 분석을 위해서는 Pandas의 기능을 잘 이해하고 활용하는 것이 중요하다.
이번 포스팅은 간략한 소개 포스팅이고 다음 포스팅에서는 머신러닝, 딥러닝에서 데이터 준비 단계에서 어떻게 활용하는지 자세히 다룰 예정이다.