본문 바로가기

Python

Pandas _ Category using .loc & cut Method 이번 포스팅도 데이터를 전처리 하는데 있어 중요하다고 할 수 있는 부분이다. 이것도 마찬가지로 해당 메소드의 사용법을 모르면 반복문 혹은 조건문들을 조합해 작성해야 하는 수고로움이 있다 """ 0. 수익률 구하기 1. Category준비(PER값에 따라 group number 부여하기) 2. Cut 메소드 사용 """ #%% import numpy as np import pandas as pd from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all" pd.set_option('display.float_format', lambda x: '%.3f' % x) pd.set_op.. 더보기
Pandas _ About Nan 데이터 전처리에서 중요하다고 할 수 있는 부분이다. 이 부빈을 간과하고 데이터 분석을 시작하면 클래스나 함수를 만들때 꼬이는 경우가 발생한다. 특히나 다 만들고 나서 데이터를 불러와 무언가를 하려고 할때 오류가 발생하고, 해당 오류가 Nan 때문인 경우가 대다수였다 그래서 무언가를 하기 전에 해당 작업을 통해 Nan이 있는지 없는지 파악하는것이 정말 중요하다 #1. Nan Checking df['순이익률(%)'].hasnans # Series에 nan 값이 있는지 없는지 확인 df['순이익률(%)'].isnull() # 어느 Index에 Nan값이 있는지 없는지 확인 df['순이익률(%)'].isnull().any() df['순이익률(%)'].isnull().sum() #Nan값이 총 몇개 있는지 확인(.. 더보기
Pandas _ 1. 추출(정렬) _ 2. Boolean Selection _ 3. isin() 파이썬으로 데이터를 가공하는데 있어 판다스 모듈에서 가장 많이 필요하는 세개의 항목 1.추출 2.Boolean Selection 3. isin()이다 해당 모듈들의 있는지와 그리고 활용법을 몰라 함수를 구현해 데이터를 가공한 적이 있다. 하지만 그렇게 하지 않고 아래의 코드 예시만 잘 파악해도 쉽고 빠르게 데이터 핸들링이 가능할 것 같다. #%% import pandas as pd df = pd.read_csv() # Set index by Company name df_set = df.set_index('ticker') #Index 설정하는 방법 df_set = df_set.drop('Unnamed: 0', axis = 1) # 불필요한 Columns를 제거하는 방법 # 추출하기 # 1. By Colum.. 더보기
Pandas _ Sort Pandas에서 칼럼별 분류를 할때 가장 많이 사용하는 메소드 두가지를 소개한다. 보통은 sort_values를 가장 많이 사용하는데, 금융 데이터에 있어서 칼럼별 우선순위별로 분석을 많이 하기 때문에 해당 메소드를 포스팅한다 메소드 : nsmallest, nlargest, sort_values import pandas as pd df = pd.read_csv() df.nsmallest(5, 'per') #per 순으로 가장 작은 5개 df.nsmallest(100,'per').nlargest(5, 'earings') # per가 가장 작은순으로 100개 를 추출하고 다음에 당기순이익으로 가장 큰 5개 df.sort_values('eps') # eps기준으로 정렬 df.sort_values('EPS(원).. 더보기
Pandas _ describe, rename, unique, value_counts 메소드 엑셀로 전체 데이터를 받아와 pandas로 분석하기 전에 해야할 것들을 정리해 놓았다. 물론 넘어가도 되지만, 그래도 내가 분석할 데이터의 분포도나 타입 혹은 Nan값이 있는지 확인하는 절차들은 필요하다고 생각한다. 만약 이러한 절차들을 넘어가고 함수나 클래스 작업을 진행할 경우 오류가 발생하며, 그러한 경우 다시 처음부터 작업하는 경우가 종종있다. 따라서 해당 메소들을 이용해 어느정도 분포도를 파악하며, 어느 Column의 값이 이상한지를 파악하는 작업이 필요하다고 생각하기에 본 포스팅을 작성한다. import pandas as pd df = pd.read_csv() df = df.rename(columns={'ticker':'종목명'}) # 컬럼명을 바꿀 경우 pd.set_option('display.. 더보기
Pandas _ Reindex 금융 데이터를 다루다 보면 많이 직면하는 문제 중 하나가 Index이다. 예를들어 'A'와 'B'라는 종목이 있다면, 2020-12-05 날짜에 'A'라는 데이터에는 값이 존재하지만 'B'라는 데이터에는 값이 존재하지 않는 경우가 발생한다. 우선 파이썬으로 불러오기 전에 엑셀로 해당 작업을 하다는 것은 비효율적이다. 그래서 파이썬으로 불러와서 데이터를 수정하는 경우가 대다수이다. 데이터를 수정하려고 나 같은 경우 Pandas의 reindex 관련 모듈의 사용법을 몰랐을 때는 하나의 빈 Array를 만들고 for Iteration을 이용해 날짜를 돌면서 A Series와 B Series에 값이 존재하면 빈 Array에 데이터를 첨부하는 식으로 하는 방법을 많이 사용했다. 하지만 이번 포스팅의 예제처럼 Pa.. 더보기
Python _ DataFrame 정보 확인 & 결측치 확인 & 결측치 시각화 파이썬을 사용하다보면 가장 많이하는 작업이 엑셀이나 CSV 데이터를 pandas의 DataFrame으로 만든 후 그것을 정제하는 작업들이다 DataFrame을 만들어서 해당 데이터가 어떻게 구성되어 있고, 그리고 결측치를 어떻게 확인하는지 알아본다 코드는 단순하지만 작업을 시작하기 전에 한번쯤은 꼭 해야될 작업이기에 포스팅을 한다. # 설정 1. DataFrame의 전체적인 모습을 보고 싶을때 Column의 Display 갯수를 정하는 방법 import pandas as pd df.shape pd.options.display.max_columns = df.shape[1] df.head?? # head라는 메소드의 소스코드를 보는 방법 df.info #df의 전반적인 정보를 확인하는 방법 df.dtypes.. 더보기
Python _ Matplotlib 한글폰트 & 마이너스 부호 파이썬으로 프로그래밍 시각화를 하다보면 항상 부딪히는 문제가 한글폰트 및 마이너스 부호이다 항상 결과물을 시각화 하면서 한글폰트 및 마이너스 부호가 필요한데 설정을 해주지 않으면 에러가 발생한다 그래서 기억을 하려고 해도 까먹으니 본 포스팅에 올려놓고 필요할때마다 참고하면 될 것 같다. 차라리 파이썬 스크립을 작성하기전에 해당 사항들을 미리 작성해놓으면 편할 것 같다. # 라이브러리 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt plt.rc("font", family = "Malgun Gothic") plt.rc("axes", unicode_minus = False) #레티나 디스플레이로 폰트가 선명하게 표시 from .. 더보기