본문 바로가기

Python/Pandas

Pandas _ 이상치 제외 방법 df_list = [] for i in range(2015, 2018): df_list.append( pd.read_csv("{}.csv".format(i)) ) df = pd.concat(df_list) df = df.dropna() df['rtn'] = df['price2']/df['price'] - 1 # 이상치 제거 for col in df.columns: if col not in ['ticker', 'price2', 'price', 'trn']: mu = df[col].mean() std = df[col].std() cond1 = mu - 2*std 더보기
Pandas _ 데이터 병합 예시 #%% import numpy as np import pandas as pd #%% product_df = pd.read_csv() review_df = pd.read_csv() flipkart_df = pd.merge( product_df, review_df, left_on="id", right_on='product__id', how='right', # Review에 있는 id, 즉 product__id를 기준으로 데이터를 생성합니다. 만약 "product" 정보가 반드시 존재하는 review들로만 데이터를 구성하고 싶으면 "left"로 하시면 됩니다. ) flipkart_df = flipkart_df.drop(['id', 'product__id', 'author'], axis=1) flipkart_d.. 더보기
Pandas _ join & merge 저번 포스팅에서 concat을 다루었지만, 데이터 프레임을 병합하는데 있어 가장 많이 사용되는 두 메소드인 join과 merge를 소개한다. 이 또한 많이 사용되며 분명 concat과는 다른 방식으로 사용되기에 알아두면 좋다 #%% 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_option('max_columns', None) #%% # 1. Join (2개의 Index가 다.. 더보기
Pandas _ concat & pivot 파이썬 Pandas 메소드 중에서 concat & pivot의 예제를 살펴본다. 판다스에서 데이터를 합치거나 가공할때 주로 사용되며, 이것 또한 알아두면 좋을것 같아 포스팅한다. """ 1. concat 2. pivot """ #%% 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_option('max_columns', None) import FinanceDataReader a.. 더보기
Pandas _ row 추가하기 (loc & append) 파이썬 판다스에서 행을 추가하는 경우가 많았다. 어떻게 해야될지 참 난감했다. 그래서 주로 사용했던 방법은 업데이트가 될 때마다 새로운 dataFrame을 계속해서 만드는 방법을 사용했었는데, 오늘 포스팅하는 방법을 이용한다면 번거롭게 코딩할 필요가 없어질것 같다. #%% 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_option('max_columns', None) #%% .. 더보기
Pandas _ qcut(균할분등) & groupby() 이번 포스팅은 Pandas를 이용한 데이터 분석을 할 때, 균할분등 혹은 그러한 작업 또 다른 그룹을 생성할 때 많이 사용되는 메소드를 소개한다. #%% 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_option('max_columns', None) df = pd.read_csv() #%% #1. qcut 더보기
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값이 총 몇개 있는지 확인(.. 더보기