본문 바로가기

python24

[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.
[TIBCO Spotfire] Spotfire 고급 활용법 7. Spotfire 고급 활용법 Spotfire는 나름 Enterprize급(?) 제품인지라 다양한 3rd Party 제품군들과의 연동이 가능하며 시각화 툴인 것치고는 자체적으로 연동할 수 있는 다양한 방법들을 제공하고 있습니다. 실제 업무에서 활용하면서 유용했던 것들은 몇가지 소개해보려고 합니다. 외부 시각화 차트 연동 R Chart 연동 3rd Party : JSVIZ 활용 Javascript Chart 연동 Python 활용 Javascript Chart 연동 Data Loading 없는 시각화 장표 운영 (with Scheduled Update) 시각화 장표 자동화 메일 IronPython을 활용한 능동적 시각화 구성 외부시각화 차트 연동 Spotfire는 다양한 Chart들을 제공하고는 있지만.. 2019. 12. 27.
[Python] 다중 회귀 분석(Multiple Linear Regression) 안녕하세요 불탄오징어입니다. Python 공부도 할 겸 틈틈히 통계 분석 모형들을 하나씩 수행해보려고 합니다. Python이 대세라서 한다기보다는 순수한 재미로 해볼려고 합니다. 현재는 업무에 Python을 활용하는 경우가 거의 없기도 하구요. 새로운 언어를 배우는 건 매우 재미있는 일이기도 해서요. 처음으로 다중 회귀분석을 정리해보려는데 사실 이미 Python으로 다중 회귀 분석을 수행하는 예제는 올린 적이 있습니다만 너무 정리 되지 않은 형태여서.... 고치자니 귀찮고 새로 만들어진 마크다운 형식으로 써보고 싶어서 새로 정리해 봅니다. 여기서 굳이 통계적 이론부분은 다루지 않으려고 합니다. 워낙 오래됐지만 유명한 통계모형이고 쉽게 수행할 수 있는 모형이다 보디 웹상에 이미 많은 정보들이 공유되고 있어.. 2019. 5. 19.
[TIBCO Spotfire] Barchart 응용 2-3. Bar Chart 고급응용 저번 글에서 Barchart의 일반적인 기능을 활용하여 구성해보는 예제를 진행했습니다. 이번 글에서는 저번 글의 데이터를 활용해서 Animaiton처럼 자동으로 년도를 변경하는 예제를 만들어보려고 합니다. 본 예제를 진행하게 된 이유는 아래의 글을 봤기 때문인데요. [데이터의 아름다움: 역사상 최고로 꼽히는 10가지 데이터 시각화의 예] : https://www.tableau.com/ko-kr/learn/articles/best-beautiful-data-visualization-examples Next America라는 이름으로 소개된 차트인데 향후 미국의 인구 분포 및 베이비붐 세대의 변화가 어떻게 되는지를 보여주고 있습니다. 저번에 만든 Barchart와 동일하며.. 2019. 4. 22.
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.
Python : 다중 회귀 분석 심심해서 해보는 틈틈이 Python으로 하는 통계 분석을 정리해볼까 한다. 첫번째는 다중회귀분석을 아래와 같이 수행했다. 데이터는 아래의 주소를 참조했다. http://college.cengage.com/mathematics/brase/understandable_statistics/7e/students/datasets/mlr/frames/frame.html Data for multiple linear regression college.cengage.com import pandas as pd import statsmodels.formula.api as sm from statsmodels.sandbox.regression.predstd import wls_prediction_std # csv 파일을 가져옴 .. 2015. 12. 2.
Spotfire & Python : 특정일자를 Input Field에 설정하기 Spotfire에서는 Text Area를 활용해서 다양한 필터를 생성하여 조회 조건으로 사용할 수 있다. Input Field를 사용해서 특정 값을 입력 받을 수 있는데 예를 들면 날짜 같은 것을 말한다. 다만 아쉽지만 Default 값을 설정할 수 가 없으므로 가끔 버튼을 통해 특정일자를 입력하도록 할 수 있다. (물론 Trick을 이용하면 Default값을 줄 수 도 있다) import datetime from datetime import timedelta today = datetime.datetime.now() # 월 이동 계산 함수 def addMonth(date, num): return datetime.datetime(date.year + ((date.month + num)/12), (date... 2015. 8. 30.