목차
[Python] 코스피, 코스닥 값 불러와서 분석하기 : 설정
주식에 관심이 많아서 코딩으로 투자에 접목해볼 만한것이 뭐가 있나 생각하던 참에 최근에 사용하고 있던 파이썬의 판다스(pandas)라는 모듈을 가지고 코스피(Kospi), 코스닥(Kosdaq)을 분석 해보려고 합니다.
판다스(Padas)는 최근에 많이 사용되는 라이브러리(Library)로 데이터 분석을 효율적으로 처리해줍니다. 데이터를 엑셀과 같은 테이블에 배치하여 내부 값을 쉽게 처리해줍니다.
가령 최소값(min), 최대값(max), 표준편차(standard deviation), 퍼센트(Percentile)에 따른 값 찾기 등을 명령어 하나로 간단하게 처리 할수 있게 도와 줍니다. 해당 내용에 대해서는 아래에서 다루도록 하겠습니다.
우선 Pandas 를 설치하여야 하는데 저는 Visual Studio를 사용해서 Command prompt 를 사용해서 설치 합니다.
pip install pandas
위 명령어로 간단하게 설치가 완료 됩니다.
[Python] 코스피, 코스닥 값 불러와서 분석하기 : CSV 파일로 저장하기
코스피, 코스닥의 1년 동안의 일별 시세 변화 값을 가져오려고 합니다. 야후 금융(Yahoo finance)에서 CSV 파일 형태로 간단하게 제공합니다. 만일 네이버나 카카오다음 금융에서 코스피, 코스닥 값을 가져오려면 별도의 csv 파일로 제공하지 않기 때문에 BS4와 같은 웹 스크롤링(Web Scrawling) 라이브러리를 사용해서 가져와야 합니다.
BS4 방법을 자세하 알고 싶으시면 아래 링크를 참조 하시길 바랍니다.
하지만 우리는 간단하게 코스피, 코스닥 일일 종가를 받을 수 있으므로 쉬운 길로 가겠습니다. 우선 야후 파이낸스에서 KOSPI를 검색하고 "Historical Data" 탭을 클릭하면 아래와 같은 화면을 들어 갈 수 있습니다. 오른쪽에 Download라고 CSV 파일을 쉽게 받을 수 있게 제공하니 다운 받으시면 됩니다.
KOSDAQ도 마찬가지 방법으로 받으시면 됩니다.
[Python] 코스피, 코스닥 값 불러와서 분석하기 : CSV 파일 읽기, 불러오기
pandas 코딩을 사용해서 csv 파일을 읽어 올 것입니다. 판다스를 이용하면 csv 뿐 아니라 행, 열과 같은 구조를 가진 json, 엑셀(excel) 파일들을 읽을 수 있습니다.
코드>>
import pandas as pd
df = pd.read_csv('kospi.csv')
print(df)
결과>>
Date Open High Low Close Adj Close Volume
0 2020-10-28 2324.179932 2345.459961 2316.469971 2345.260010 2345.260010 705200
1 2020-10-29 2312.340088 2330.169922 2299.909912 2326.669922 2326.669922 509100
2 2020-10-30 2319.560059 2320.199951 2266.929932 2267.149902 2267.149902 795600
3 2020-11-02 2276.610107 2302.639893 2267.949951 2300.159912 2300.159912 678500
4 2020-11-03 2315.810059 2344.770020 2315.300049 2343.310059 2343.310059 887400
.. ... ... ... ... ... ... ...
242 2021-10-21 3012.280029 3025.879883 3002.739990 3007.330078 3007.330078 887000
243 2021-10-22 3005.360107 3018.699951 2996.260010 3006.159912 3006.159912 695000
244 2021-10-25 3001.100098 3025.270020 2983.290039 3020.540039 3020.540039 791500
245 2021-10-26 3039.820068 3051.649902 3030.530029 3049.080078 3049.080078 564100
246 2021-10-27 3045.830078 3049.020020 3019.000000 3025.489990 3025.489990 607875
[247 rows x 7 columns]
주석>>
라인1 : pandas를 import해서 가져옵니다.
라인3 : read_csv 함수를 사용해서 csv파일의 값을 df에 저장합니다.
위처럼 가져온 값을 print 하면 위에 5줄 아래 5줄로 결과가 나옵니다.
만일 모든 값을 다 확인하고 싶다면 아래와 같이 코드를 작성하시면 됩니다.
코드>>
import pandas as pd
df = pd.read_csv('kospi.csv')
print(df.to_string())
결과>>
Date Open High Low Close Adj Close Volume
0 2020-10-28 2324.179932 2345.459961 2316.469971 2345.260010 2345.260010 705200
1 2020-10-29 2312.340088 2330.169922 2299.909912 2326.669922 2326.669922 509100
2 2020-10-30 2319.560059 2320.199951 2266.929932 2267.149902 2267.149902 795600
3 2020-11-02 2276.610107 2302.639893 2267.949951 2300.159912 2300.159912 678500
4 2020-11-03 2315.810059 2344.770020 2315.300049 2343.310059 2343.310059 887400
5 2020-11-04 2361.320068 2371.139893 2339.949951 2357.320068 2357.320068 986800
6 2020-11-05 2373.409912 2413.790039 2370.850098 2413.790039 2413.790039 702000
7 2020-11-06 2421.790039 2431.110107 2404.969971 2416.500000 2416.500000 825600
8 2020-11-09 2438.629883 2459.149902 2434.520020 2447.199951 2447.199951 1354900
9 2020-11-10 2453.949951 2457.939941 2435.590088 2452.830078 2452.830078 1464200
######################생략##################
5번라인의 to_string으로 출력하면 csv 파일 모든 결과 값을 가져 옵니다.
[Python] 코스피, 코스닥 값 불러와서 분석하기 : 개수, 평균, 표준편차, 최소값, 최대값, 퍼센트 값 구하기
다음은 판다스의 강력한 기능 중에 하나인 데이터의 여러가지 특성을 하나의 함수로 표현하는 방법입니다.
해당 함수의 Syntax는 아래와 같습니다.
dataframe.describe(percentiles, include, exclude, datetime_is_numeric)
- percentiles : 몇 퍼센트까지의 특징을 표현할지에 대한 정의 (1이 100퍼센트임)
- include : 결과에 포함시킬 데이터 타입
- exclude : 결과에 배제할 데이터 타입
- datetime_is_numeric : 날짜 시간을 수로 표현할지에 대한 설정으로 True / False 로 정함 (Default 는 false 임)
코드>>
import pandas as pd
df = pd.read_csv('kospi.csv')
print(df.describe())
결과>>
Open High Low Close Adj Close Volume
count 247.000000 247.000000 247.000000 247.000000 247.000000 2.470000e+02
mean 3044.796072 3063.837847 3024.246762 3044.689509 3044.689509 1.144052e+06
std 236.785555 235.246708 235.873980 233.622278 233.622278 4.204797e+05
min 2276.610107 2302.639893 2266.929932 2267.149902 2267.149902 5.091000e+05
25% 2999.635010 3025.574951 2981.599976 3005.449951 3005.449951 8.231500e+05
50% 3127.750000 3145.810059 3106.969971 3127.080078 3127.080078 1.084800e+06
75% 3200.590087 3214.344971 3183.654908 3201.690064 3201.690064 1.359150e+06
max 3305.459961 3316.080078 3295.439941 3305.209961 3305.209961 3.455500e+06
주석>>
5번 라인: describe 함수를 사용해서 default 설정만으로 csv 분석을 가져 옵니다.
결과에서 볼수 있듯이 시작가, 최고가, 종가, 최저가 코스닥 주식의 1년간 개수와 평균(mean), 표준편차(Standard deviation), 최소값, 25%, 50%, 75%에서의 값, 최고값(max)을 짧은 시간만에 분석해서 알려줍니다.
'파이썬(Python) > pandas' 카테고리의 다른 글
[Python] Pandas 이동평균 함수 사용법 (Rolling) (2) | 2021.11.10 |
---|---|
[Python] 코스피 1년 차트 그리기(Pandas, Matplotlib) (0) | 2021.10.30 |
[Python] Pandas DataFrames이란? 선언, 데이터 찾기, 정렬하기 예제(find, sort) (0) | 2021.10.26 |
[Python] Pandas로 네이버 금융 재무분석 항목 가져오기(에러해결 추가) (0) | 2021.10.23 |
[Python] Pandas Series란? 선언방법, 합치기 (append) (0) | 2021.10.23 |