23년 이전 글/python

Pandas 주가 데이터 cheat sheet

import pandas as pd
from pandas_datareader import data

#삼성전자 주가 데이터
df = data.get_data_yahoo('005930.KS',start = '2020-01-01',end='2021-02-11')

# 데이터프레임 평균, 표준편차, 사분위수
df.describe()

# 종가 기준 최대값
df.Close.max()

# 종가 기준 최소값
df.Close.min()

# 종가 기준 평균값
df.Close.mean()

# 총 데이터 개수
df.shape[0]

# 특정 컬럼 선택
df.Close

# 상위 3개의 로우만 선택
df.iloc[:3]

# 시작가 대비 종가가 높았던 날 데이터
df[df.Open < df.Close]

# 종가 기준 가장 주가가 높았던 날의 데이터 선택
df[df.Close == df.Close.max()]

# 종가 기준 주가가 90000원 이상이었던 날짜 반환
df[df.Close >= 90000].index

# 2021년 1월 15일 데이터 반환
df.loc['2021-01-15']

# 2021년 1월 11일의 고가와 저가 반환
df.loc['2021-01-11'].High, df.loc['2021-01-11'].Low

# 데이터프레임 100번째 데이터 선택
df.iloc[100]

# 데이터 날짜 역순으로 정렬
df.sort_index(ascending=False)

# 종가 데이터를 가격이 높은 순서대로 정렬
df.Close.sort_values(ascending=False)

# 인덱스 컬럼을 0부터 순차적으로 증가하는 정수로 변경
df = df.reset_index()

# 컬럼명을 Date는 날짜로, High는 고가로, Low는 저가로
df.rename(columns={"Date":"날짜","High":"고가","Low":"저가"})

# 날짜 컬럼을 삭제
df.drop('Date',axis=1)

# diff 컬럼을 생성하고 종가와 시가의 차이를 계산
df['diff'] = df.Close - df.Open

# Date 필드에 저장된 값을 파싱하여 year, month, day 필드에 저장
n_df = df.reset_index()
n_df['year'] = n_df['Date'].apply(lambda x: x.year)
n_df['month'] = n_df['Date'].apply(lambda x: x.month)
n_df['day'] = n_df['Date'].apply(lambda x: x.day)

# 모든 데이터를 소수점 둘째자리까지 표시
df.drop('Date',axis=1).applymap(lambda x: round(x,2))

# 거래량 필드를 생성하고 세 자릿수마다 콤마가 들어가도록 변경
df.drop('Date',axis=1).applymap(lambda x: "{:,}".format(x))

# 주가 데이터 월별로 그룹핑하고 거래량의 평균값 표시
n_df.groupby('month').mean()['Volume']

# 결측치 확인하고 있을 경우 처리
df.isna().sum()
df.isnull().sum()
# 12월 데이터와 11월 데이터를 별도로 만들고 두 데이터프레임을 하나로
df12 = df[df.Date.between('2020-12-01','2020-12-31')]
df11 = df[df.Date.between('2020-11-01','2020-11-30')]
pd.concat([df11,df12])
반응형