티스토리 뷰
안녕하세요, 오늘은 파이썬을 이용하여 TSLA 주식 가격 데이터를 분석하는 방법에 대해 살펴보겠습니다. 이 예제에서는 pandas와 matplotlib 라이브러리를 사용하여 주식 데이터를 처리하고 시각화하겠습니다.
먼저, pandas를 이용하여 CSV 파일을 읽어 DataFrame으로 저장하겠습니다.
df = pd.read_csv('dataset/TSLA.csv')
그 다음, 'Date' 열의 데이터 타입을 datetime으로 변환하고, 필요한 열들만 선택합니다.
df['Date'] = pd.to_datetime(df['Date'])
df = df[['Date', 'Close']]
이제 데이터 프레임의 처음 5개 행을 출력해봅니다.
print(df.head())
다음으로, 주어진 데이터를 이용해 이동평균을 계산해야 합니다. 주석 처리된 코드는 다음과 같이 주어진 데이터에서 특정한 열들을 시프트하는 함수입니다.
# shifted = df_shift(df, lag=3, rejected_columns=[['High']])
# print(shifted.head())
이 코드를 이용하여 데이터 프레임에 대한 교차 상관 계수를 계산하겠습니다. 여기에서는 lag=10으로 설정하여 10일 간격의 데이터를 추출하고, start=1로 시작하며, skip=2로 설정하여 두 날짜 간격을 두고 데이터를 추출합니다. 마지막으로, 'Date' 열을 제외한 나머지 열들을 사용합니다.
df_crosscorrelated = df_shift(df, lag=10, start=1, skip=2, rejected_columns=['Date'])
이제 각 이동평균을 계산합니다. 7일, 14일, 25일 이동평균을 계산하여 각각 'ma7', 'ma14', 'ma25' 열에 저장합니다.
df_crosscorrelated['ma7'] = df_crosscorrelated['Close'].rolling(7).mean()
df_crosscorrelated['ma14'] = df_crosscorrelated['Close'].rolling(14).mean()
df_crosscorrelated['ma25'] = df_crosscorrelated['Close'].rolling(25).mean()
마지막으로, matplotlib을 사용하여 히스토그램을 그립니다. 이 히스토그램에서는 'Close', 'ma7', 'Close_3' 값을 비교합니다.
fig, ax = plt.subplots(figsize=(10, 5))
df_crosscorrelated['Close'].hist(alpha=0.6, ax=ax, label="Close")
df_crosscorrelated['ma7'].hist(alpha=0.6, ax=ax, label='ma7')
df_crosscorrelated['Close_3'].hist(alpha=0.6, ax=ax, label='Close_3')
plt.legend()
plt.show()
이제 코드를 실행하면, 크기가 10x5인 그래프가 생성되고, 각각의 값들을 서로 다른 색으로 구분하여 히스토그램이 그려집니다. 'Close' 값은 원래의 종가 데이터를 나타내며, 'ma7'은 7일 이동평균, 'Close_3'은 3일 전의 종가 데이터를 나타냅니다.
그래프를 통해, 각 이동평균 값들이 어떻게 분포되어 있는지 한 눈에 확인할 수 있습니다. 이를 통해 주식 가격의 변동 추이를 분석할 수 있습니다.
이 예제를 통해, 파이썬을 사용하여 주식 데이터를 처리하고 분석하는 방법을 간단하게 살펴보았습니다. 이를 바탕으로, 다양한 금융 데이터 분석 작업을 수행할 수 있습니다. 향후에는 더 다양한 기술 지표와 시각화 방법을 적용하여 더욱 세밀한 분석을 수행해 볼 수 있습니다.
'머신러닝 파이썬' 카테고리의 다른 글
matplotlib.pyplot 을 이용하여 dataframe 을 출력하는 다양한 방법 (0) | 2023.04.05 |
---|---|
주식 데이터를 사용하여 K-means 클러스터링을 구현하는 방법(feat. 파이썬, 3D 시각화, Elbow curve) (0) | 2023.04.04 |
주가 데이터를 heatmap 으로 시각화하기 (0) | 2023.03.31 |
주어진 IPython Notebook(ipynb) 파일의 모든 코드 셀을 하나로 합치거나 하나의 Python 파일로 변환하는 방법 (0) | 2023.03.28 |
캔들스틱 차트로 이동평균 주가 그래프 그리기: 파이썬 (0) | 2023.03.27 |