파이썬 40

pandas - forward fill

df.ffill() reference: pandas.DataFrame.ffill(pandas.pydata.org) Python pandas - 결측값 채우기 ... Python | Pandas dataframe.ffill() Pandas DataFrame ffill() Method 머신러닝 모델은 결측치가 존재하는 데이터프레임을 받아들이지 못한다. 따라서 데이터 전처리 과정에서는 반드시 NaN 값을 체크하고 해당 결측치를 특정 값으로 대체하거나 해당 결측치가 포함된 열 혹은 행을 제거해야 한다. 그러나 열 혹은 행을 제거한다면 중요한 데이터 소스를 잃어버리게 된다. 이를 감수할 만큼 해당 데이터 열 혹은 행이 유의미하지 않다면 무관하나 유의미하다면 제거하기보다 새로운 값으로 대체하는 것이 좋겠다. 결측치..

파이썬을 활용한 코스피, 달러 환율정보 수집부터 차트 시각화까지

Step 0. XHR 이란 XHR은 XMLHttpRequest의 약자로, Ajax처럼 페이지 리로드 없이 서버의 데이터를 불러올 수 있는 통신 방식이다. 브라우저 상에서 제공하는 객체 형태의 API라고 이해하면 좀 더 와닿겠다. 그래서 이 XHR은 기본적으로 브라우저가 웹서버와 통신하기 위한 수단이지만, 우리가 직접 사용해 웹 서버에서 직접 원하는 데이터를 호출할 수도 있다. 방식은 크게 2가지로, POST와 GET 방식이 있다. 여기서 두 케이스를 모두 경험해보기 위해 코스피 정보는 krx정보데이터시스템에서, 달러 정보는 yahoofinance에서 긁어보도록 하겠다. 참고로 이렇게 사이트마다 데이터를 호출하는 방식이 다르기 때문에 데이터를 수집하고자 한다면 어떤 형태로 서버와 통신하는지 사전에 확인해야..

sklearn - confusion_matrix()

sklearn.metrics.confusion_matrix reference : sklearn.metrics.confusion_matrix, scikit-learn.org 분류 성능평가, 데이터사이언스스쿨 Document sklearn.metrics.confusion_matrix(y_true, y_pred, *, labels=None, sample_weight=None, normalize=None) 사용 예시 from sklearn.metrics import confusion_matrix y_true = [2, 0, 2, 2, 0, 1] y_pred = [0, 0, 2, 2, 0, 2] confusion_matrix(y_true, y_pred) array([[2, 0, 0], [0, 0, 1], [1, ..

pandas - reset_index()

reset_index(drop=True) 자꾸 까먹어서 적어놓는다. 데이터전처리가 끝난 후, 혹은 중간에 데이터 정리가 필요한 경우 reset_index()는 유용하게 사용된다. reset_index() 는 마치 엑셀, 구글스프레드시트의 고정된 index 번호처럼 0부터 순서대로 index를 정리해주는 함수다. 아래와 같은 과일의 특징을 정리한 데이터프레임이 있다고 해보자. print(df) x1 x2 x3 x4 Apple 1 1 0 0 Banana 1 0 1 1 Kiwi 0 1 1 0 reset_index() 함수를 사용해보면, 인덱스가 다시 정리되고 기존의 index는 새로운 '열'로 추가된다. print(df.reset_index()) index x1 x2 x3 x4 0 Apple 1 1 0 0 1..

과거 주가 데이터로 미래 주가를 예측할 수 있을까? - 파이썬 시계열 패턴 검색

Step 0. 패턴 검색 이번에는 현재 차트와 유사한 차트를 찾아서 매매에 활용하는 패턴 검색을 파이썬으로 구현해보자. 패턴 검색은 과거 주가에서 현재 주가와 유사한 패턴을 관측한 다음, 과거 주가 이후의 흐름을 확인하는 것을 통해 앞으로의 주가를 예상해보는 방식이다. Step 1. 코스피 종가 가져오기 2010년부터 현재까지의 데이터를 스크리닝한다. 즉, 유사한 패턴을 관측하는 가장 먼 시점은 2010년이다. Step 2. 기준 구간 확인 종가만 추출해서 검색하고자 하는 현재 주가의 패턴을 확인한다. 여기서 현재 주가는 6월 2일까지만 확인한다. 마지막에 6월 2일 이후 주가를 그려보면서 패턴 검색 방식의 예측을 검증해보기 위함이다. 코스피는 올해 1월에 급락 후 횡보하는 모습을 보인다. 이와 유사한 ..

광고 프로모션 효율 증진을 위한 커머스 고객 세분화 - (2) 고객 군집 분석

"분석이 먼저, 머신러닝은 그다음" 분석이 먼저가 된 다음 머신러닝을 조미료처럼 얹어보는 것은 훌륭한 선택이다. 반대로 분석에 대한 이해가 부족한 상태에서 머신러닝을 사용한다면 해석에 오류를 덮어쓰게 되고 데이터 분석이 주는 설득의 이점을 잃게 만든다. 끝에서 한번 더 언급할텐데, 이 점을 유의하고 분석을 따라가다 보면 결론과 함께 앞으로 머신러닝을 어떻게 사용하면 좋을지 가늠할 수 있다. 데이터의 차원(칼럼)이 많을수록 고객을 분류할 기준을 찾기가 복잡해진다. 사람의 머리로는 4차원 이상의 데이터는 상상하기 어렵고 시각화 차트로 분포를 확인할 수도 없다. 이런 상황에서 머신러닝은 차원 수가 많더라도 그들 관계에 대한 가장 설명력이 높은 최적의 패턴을 찾아내는데, X와 Y를 연결하는 복잡한 식을 찾아낼 ..

광고 프로모션 효율 증진을 위한 커머스 고객 세분화 - (1) 문제 상황 가정 및 데이터 전처리

"데이터"가 아니라 "문제"를 먼저 보는 연습 이번 분석은 임의의 문제 상황을 가정하고 데이터를 통해 문제를 해결할 방법을 찾는다. 처음에는 의식적으로 '데이터'에 집중하게 되는데 본문에서 일부러 상황과 문제를 계속해서 강조했다. 그러니 '문제'에 집중해보자. '문제'를 이해하면 데이터는 자연스럽게 눈에 들어온다. 특히 후반부에 집단 군집 분석을 진행할 텐데, 이를 위해 머신러닝도 사용해볼 예정이다. 목차 ___ Step 1. 문제 상황 가정 및 데이터 전처리 1-1. 라이브러리 호출 및 데이터 확인 1-2. 일부 컬럼 제거 1-3. 컬럼명, 데이터타입 형식 통일 1-4. 현재 날짜 가정 1-5. 이상치 처리 1. 문제 상황 가정 및 데이터 전처리 지금부터 우리는 이커머스 스타트업의 데이터 분석가다. 상..

키움증권 API를 활용한 비 실시간 주가 정보 수집 - 파이썬 데이터 수집 자동화

키움 증권 API를 활용한 주식 정보 및 일봉 데이터 수집 자동화 pykiwoom 모듈 활용 : github/sharebook-kr/pykiwoom 코드 참고 : 퀀트투자를 위한 키움증권 API, 조대표 외 1명 1. 개요 1-1. 주식 데이터 수집 방식 비교 주가 정보를 수집하기 위한 방법으로는 주로 금융사에서 제공하는 api방식과 웹스크래핑 방식이 있다. 금융사 api를 활용하면 주가 정보 외에도 일반적으로 주식앱에서 볼 수 있는 다양한 데이터를 불러올 수 있다. 또한, api에서는 실시간 데이터 조회 기능도 제공하기 때문에 매매자동화 등에 활용할 수 있다. 1-2. pykiwoom 일반적으로 파이썬으로 키움 api를 사용하는 경우 Python GUI 패키지인 PyQt5를 활용하게 된다. 그러나 실시..

커머스 연간 지출액을 통한 매출 개선 시뮬레이션 - 파이썬 프로덕트 데이터 분석

웹/앱 접속 시간에 따른 지출 현황 분석 및 매출 개선 전략 수립 분석 목표 : 서비스 내 고객 별 접속 현황과 연간 지출액을 살펴보고, 매출을 높이기 위한 전략을 수립한다. 데이터 출처 : Ecommerce Customers, Kaggle 1. 가설 설정 각 컬럼 정보를 확인하고, 분석 목표에 도달하기 위한 가설을 설정한다. import pandas as pd import numpy as np from scipy import stats import statsmodels.api as sm from sklearn import model_selection from sklearn.linear_model import LinearRegression import seaborn as sns import matplot..

맥(Mac) 터미널 경로설정 - 아나콘다(Anaconda), 2020년 5월 10일 기준 updated

오랜만에 맥에 아나콘다를 설치하고 가상 환경을 띄우려는데, 에러가 발생했다. 구글링 해보면 대부분 export PATH="/Users/username/anaconda/bin:$PATH"로 설정하면 된다 는 내용이 많다. 동일하게 시도했을때, 아래와 같이 에러가 발생한다. 초기화도 해보았으나 No action taken. 이라는 모호한 내용이 출력된다. 구글링 해보니 2019년 말 기준 맥 터미널이 zsh환경이 default로 잡히면서 몇 가지 업데이트로 인해 경로를 다르게 설정해주어야 한단다. 우선 경로는 conda.sh 파일이 있는 폴더로 찾아본다. ~~ anaconda3/etc/profile.d 경로 하위에 conda.sh 가 있기 때문에 아래와 같이 export 해준다. 이제 아래와 같이 작성하고,..

1 2 3 4