본문 바로가기

Data Analysis/Python19

[Python] 증권사 데이터 수집 (with CYBOS plus) 일부 증권사에서는 주식 데이터 및 거래를 위해서 API를 제공하고 있습니다. 그 중에 제가 사용하고 있는 증권사는 대신증권이며 여기서 제공하는 API, CYBOS Plus를 사용하고 있습니다. 대신증권을 이용하게 된 이유는 여러가지가 있겠지만 CYBOS Plus API의 자료실에서 유용한 자료들을 제공하고 있기 때문입니다. 특히나 프로그램 별 API 연동 과제를 올려주거든요. 이 예제들을 활용하면 그래도 쉽게 API를 활용하여 데이터 수집 및 매매를 해볼 수 있는 프로그램을 제작할 수 있습니다. 참고로 CYBOS Plus API를 이용하기 위해서는 다음과 같은 제약/환경이 필요합니다. 대신증권 계좌 증권사 공동인증서 크레온 HTS/PLUS설치 python 32bit 환경 구축에 대해서는 다음기회에 한번 .. 2021. 3. 23.
[Python] Google Colaboratory 진짜 요즘 세상이 좋다는걸 느끼는데 그 중에 하나가 "Google Colaboratory" 입니다. 어렴풋이 생각은 했었지만 이걸 무료로 쓸 수 있다는 점에서 구글의 위대함을 다시 느끼고 있습니다. 공식 페이지에 설명에 따르면 Colaboratory는 브라우저에서 Python을 작성하고 실행할 수 있다고 설명하고 있습니다. 실제 실행화면을 보면 Python 사용자라면 익히 아는 노트북 환경을 제공하고 있습니다. 당연히 마크다운 문서도 작성이 가능하며 Python 스크립트를 실행해볼 수 도 있습니다. 필요하다면 데이터를 Google driver에 업로드하여 분석도 가능하겠죠. 무엇보다도 장점은 공식 페이지에 나와있는 것처럼 구성이 필요하지 않음 : 파이선 버전관리, 패키지 설치 및 버전관리가 필요하지 않습.. 2021. 3. 11.
[Python] 일원배치분산분석 (1-Way ANOVA) ANOVA 하면 학부 시절 실험계획법 시간 때 집중적으로 들었던 기억이 있습니다. 물론 수리통계학 시간이나 기초 통계학 시간 때도 훝고 지나갔던 기억이 있지만 실상 정확하게 용도나 활용에 대해 사용해본 것은 한참 뒤였네요. 그 쯤에서야 정확하게 이해를 했던 것 같습니다. 분산분석은 말 그대로 분산/변동을 분석합니다. 간단하게 집단간 변동(분산)과 집단내 변동(분산)의 비는 F분포를 따르기 때문에 이를 이용하여 가설 검정을 합니다. 이때 독립변인, 종속변인의 수에 따라서 일원배치분산분석, 이원배치 분산분석, 다원변량분산분석 등으로 구분하여 부릅니다. 일원배치분산분석(1-Way ANOVA) 일원배치분산분석은 종속변인이 1개, 독립변인도 하나인 경우입니다. 하나의 독립변인으로 구분되는 집단간 비교가 되므로 통.. 2020. 10. 13.
[Python] 업무 자동화 - 2 : Python으로 Naver 이메일 보내기 전번 포스트에서는 간단하게 Python으로 메일을 보내는 예제를 진행했습니다. 이번에는 간단한 데이터를 표로 변환하여 메일을 보내봅니다. Python 코드 작성 # -*- coding:utf-8 -*- import pandas as pd import pyodbc import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText # Database 접속 conn = pyodbc.connect("DSN=[DSN]; uid=[데이터베이스접속계정]; pwd=[데이터베이스접속비번]") # 데이터를 가져올 쿼리 query = "SELECT DT, CLOSE_PRC, LOW_PRC FROM " \ "(" \.. 2020. 7. 29.
[Python] 업무자동화 - 1 : Python으로 Naver 이메일 보내기 데이터 분석 관련 업무를 하다보면 매일 모니터링해야할 지표가 있고 경우에 따라서는 팀내에 공유해야할 일들이 자주 있습니다. 간단한일이라도 쌓이면 시간을 소요하게 되고 반복적으로 해야할 공유 업무를 놓치거나 주요업무에 배분할 시간이 부족할 경우가 생깁니다. 저같은 경우는 Spotfire의 scheduled update 기능과 automation service를 이용해서 모니터링 화면을 만들고 이를 메일을 통해서 팀내 공유하도록 설정했습니다. 매일매일 주요 지표와 누적 진척 현황등을 공유하고 있는데 만약 Spotfire가 없다면 그리고 좀더 간단하고 쉽게 구성할 수 있는 방법이 없을지 찾아보던 중 Python을 통해서 이를 구현해보려합니다. 첫번째 단게로 Python을 통해 메일을 보내봅니다. 메일 설정 먼.. 2020. 7. 17.
[Python] 정규성 검정 정규성 검증이란? 정규성 검정은 말 그대로 정규 분포를 따르는지를 검정하는 방법입니다. 통계학에 있어서 가장 처음 배우는 분포이자 가장 많이 들으며 가장 많이 사용하는 분포가 정규 분포인 만큼 기초 통게학의 근간을 이룬다고해도 과언이 아닌데요. 그만큼 통계학의 분석방법에 있어서 정규분포를 가정하는 경우가 많습니다. 회귀분석을 예로 들면 대부분이 언급하지 않거나 또는 무시하는 부분이 잔차에대한 정규성 검증입니다. 회귀분석에서 잔차의 검증이 필요한 이유는 모형식을 보면 알 수 있습니다. 모형식에서 오차항에 대한 몇가지 가정이 있습니다. 오차항은 서로 독립 오차항은 정규분포 오차항의 분포는 일정 위의 가정은 모두 검증해야 회귀분석이 의미있다고 보통 이야기 하는데 그 중 오차항의 정규분포의 가정을 만족하는지 확.. 2020. 1. 27.
[Python] K-means Clustering Kmeans Clustering은 Unsupervised learning에 속하는 분류 기법으로 데이터와 그룹의 갯수(K)를 지정하면 알아서 데이터를 분류해줍니다. 간단하고 아주 빠르고 (주어진 데이터 기준으로) 잘 분류해주기 때문에 많이 사용하며 사랑 받는 기법 중 하나입니다. 다만 k를 결정하는데 있어서 어떻게 나눠야할지는 수치적으로 명확하게 정의되지 않기 때문에 분석자의 주관이 다소 들어가는 부분이 있습니다. 그럼 간단하게 kmeans Clustering을 수행해보겠습니다. 사용할 예제는 유명한 iris 데이터입니다. # package를 가져옵니다. from sklearn.cluster import KMeans import numpy as np from sklearn.datasets import l.. 2020. 1. 23.
[Python] 다중 회귀 분석(Multiple Linear Regression) 안녕하세요 불탄오징어입니다. Python 공부도 할 겸 틈틈히 통계 분석 모형들을 하나씩 수행해보려고 합니다. Python이 대세라서 한다기보다는 순수한 재미로 해볼려고 합니다. 현재는 업무에 Python을 활용하는 경우가 거의 없기도 하구요. 새로운 언어를 배우는 건 매우 재미있는 일이기도 해서요. 처음으로 다중 회귀분석을 정리해보려는데 사실 이미 Python으로 다중 회귀 분석을 수행하는 예제는 올린 적이 있습니다만 너무 정리 되지 않은 형태여서.... 고치자니 귀찮고 새로 만들어진 마크다운 형식으로 써보고 싶어서 새로 정리해 봅니다. 여기서 굳이 통계적 이론부분은 다루지 않으려고 합니다. 워낙 오래됐지만 유명한 통계모형이고 쉽게 수행할 수 있는 모형이다 보디 웹상에 이미 많은 정보들이 공유되고 있어.. 2019. 5. 19.
Python : Data Handling(수정) R이야 워낙 많이 써서 익숙한데 Python은 아직 익숙치가 않아서 매번 쓸때마다 찾아봐야하네. 공부겸 정리를 틈틈히 할 필요가 있다. R에서는 Data.table과 같은 훌륭한 패키지가 있는 것처럼 Python도 pandas가 있다. 나름 고감자님 블로그에서 R로 분석하던 것을 Python으로 조금씩 해볼까 한다. import pandas as pd df = pd.read_csv('C:/temp/titanic.csv') print df.head() df['isminor'] = 'adult' df.loc[df.age < 15, 'isminor'] = 'child' # 과연 이렇게 복잡하게 써야하는 것인가... 공부가 필요하네 그려 df.loc[df.survived == 1,('pclass','surviv.. 2015. 12. 10.
[Python] jdbc로 Database(Oracle) 접근하기 데이터 분석을 하다보면 당연히 다양한 데이터 소스에 접근하게됩니다. 파일, 엑셀, 그리고 데이터베이스 까지... 이번에는 JDBC 로 데이터를 가져온 후 하여 pandas의 Dataframe로 변경해보았습니다. import os import sys import jpype import jaydebeapi as jp import pandas.io.sql as pd_sql from pandas import DataFrame # JAVA_HOME이 설정되어 있지 않을 경우 if("JAVA_HOME" not in os.environ): os.environ["JAVA_HOME"] = "[JAVA_HOME path]" # oracle jdbc 파일 경로 및 class 경로 설정 JDBC_Driver = '[jdbc .. 2015. 12. 3.