개발 창고/AI

실전 EDA 튜토리얼: 삼성전자 주가 데이터 분석하기

로이제로 2025. 7. 3. 22:00
반응형

실전 EDA 튜토리얼: 삼성전자 주가 데이터 분석하기

데이터 분석 입문자에게 가장 좋은 학습법은 실제 데이터로 직접 분석해보는 것입니다. 이번 포스트에서는 삼성전자 주가 데이터를 이용한 EDA(탐색적 데이터 분석) 튜토리얼을 소개합니다.

Pandas와 Seaborn을 활용해 데이터 구조 파악부터 시각화, 인사이트 도출까지 단계별로 살펴봅니다.


1. 데이터 불러오기

import pandas as pd

df = pd.read_csv("samsung_stock.csv", encoding='utf-8')
df.head()

데이터셋 예시 컬럼

날짜 시가 고가 저가 종가 거래량

2. 기본 정보 확인

df.info()
df.describe()
df.isnull().sum()
  • 날짜를 datetime으로 변환해줍니다.
df['날짜'] = pd.to_datetime(df['날짜'])
df = df.sort_values('날짜')

3. 주가 흐름 시각화

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(12,6))
sns.lineplot(x='날짜', y='종가', data=df)
plt.title("삼성전자 종가 추이")
plt.xlabel("날짜")
plt.ylabel("종가")
plt.show()
  • 주가의 전반적인 추세를 확인할 수 있습니다.
  • 연말/연초나 특정 이슈 시점에 급변한 시기를 눈으로 볼 수 있어요.

4. 거래량 분석

sns.lineplot(x='날짜', y='거래량', data=df)
plt.title("삼성전자 거래량 추이")
  • 거래량 급증 = 시장 관심 집중 시기
  • 거래량이 주가와 함께 움직이는지 비교해볼 수 있습니다.

5. 월별 평균 주가

df['연도'] = df['날짜'].dt.year
df['월'] = df['날짜'].dt.month

monthly_avg = df.groupby(['연도', '월'])['종가'].mean().reset_index()
monthly_avg['날짜'] = pd.to_datetime(monthly_avg['연도'].astype(str) + '-' + monthly_avg['월'].astype(str))

sns.lineplot(x='날짜', y='종가', data=monthly_avg)
plt.title("월별 평균 종가 추이")
  • 계절성(Seasonality)이나 분기별 흐름을 파악할 수 있습니다.

6. 상관관계 분석

sns.heatmap(df[['시가', '고가', '저가', '종가', '거래량']].corr(), annot=True, cmap='coolwarm')
plt.title("가격 관련 변수 간 상관관계")
  • 시가, 고가, 저가, 종가 간의 관계를 수치적으로 파악 가능

7. 간단한 인사이트 요약

  • 삼성전자 주가는 전반적으로 상승/하락 추세가 있었나?
  • 특정 시점의 급등/급락은 뉴스나 공시 등 외부 요인과 연결될 수 있음
  • 거래량 급증 시점은 투자자 관심도 변화를 반영함
  • 가격 변수 간 상관관계가 매우 높기 때문에 예측 모델 시 feature selection에 주의

마무리

이번 튜토리얼에서는 삼성전자 주가 데이터를 통해 Pandas와 Seaborn을 활용한 실전 EDA를 경험해봤습니다.
금융 데이터 외에도 부동산, 쇼핑몰 로그, 센서 데이터 등 다양한 분야에 동일한 접근법을 적용할 수 있습니다.


추천 제목

  • "삼성전자 주가 데이터로 배우는 EDA 실전 튜토리얼"
  • "Pandas + Seaborn으로 주가 흐름 분석해보기"
  • "데이터 분석 입문자를 위한 삼성전자 주가 시각화"

반응형