let us not love with words or tongue but actions and truth.

IT/파이썬 36

GridSearchCV 2탄 (for문 활용)

지난번과 동일한 GridSearchCV이지만 약간은 다른 방식으로 진행해보려고 합니다. sarah0518.tistory.com/50?category=984180 GridSearchCV 그리드서치 1탄 모델별로 best성능을 만들어 줄수있는 hyper parameter값을 찾아야 될 경우가 있을텐데요. 그때 유용하게 사용되는 Grid Search CV에 대해서 알아보도록 할게요. 우선 각 모델별로 가장 기본적인 모델을 sarah0518.tistory.com 지난번 내용을 잠깐 복습해보면, GridSearchCV를 통해 best_estimator_를 출력 하는 것으로 끝났습니다. 오늘은 GridSearchCV가 어떤 과정을 거쳐 best estimator를 도출하는지 그 과정을 살펴보는 코드를 짜려고 합니다..

IT/파이썬 2021.02.18

[그래프] pivot_table을 활용한 heatmap 그래프 그리기

아래 그래프는 수학과 영어점수 백분율에 따른 학생수입니다. 가장 진한 곳을 보면 수학점수가 하위(75%초과 100%이하)에 속하는 학생들은 영어점수가 나름 상위쪽인 50%해당에 분포하고 있네요. 이 부분에 속하고 있는 학생수가 가장 많기 때문에 색상은 진한색으로 표현이 된 것입니다. 파이썬으로 위와같은 히트맵 그래프를 그리는 법을 알아보려고 합니다. 하지만 그전에 pivot_table을 만드는 법을 잠깐 알아보려고 합니다. 아래와 같은 각 반별 수학점수 백분율그룹에 속하는 인원수를 나타내는 표가 있다고 하죠. 여기서는 그냥 백분율그룹별 인원수의 합계를 구하는 pivot table을 만들고자 합니다. 즉, 아래와 같은 테이블을 만들고 싶은 것이죠! 코드는 간단합니다. 1 math.pivot_table(va..

IT/파이썬 2021.02.09

Stack과 melt로 데이터 Transpose하기

오늘은 sas의 proc transpose와 유사하게 파이썬에서 stack / melt를 사용해서 동일한 효과를 내는 방법을 배워보려고합니다. 1. Stack 사용하기 보통 data를 Transpose하는 것으로는 pivot이나, melt를 쓰지만 set_index과 stack으로도 간단하게 transpose할 수 있어요. 아래와 같이 간단한 데이터가 있다고 볼게요. [원본데이터] 목표는 컬럼에 있는 v1-v4까지의 값들이 컬럼으로 들어가고 그에 해당하는 값들이 한 컬럼으로 들어가는 것입니다. id1=a인 값으로 예를 들어볼게요. 아래와 같이 id1=a인 값에서, 각 v1-v4가 하나의 컬럼, 그에 해당하는 값도 하나의 컬럼으로 들어가는 거죠. [output으로 만들고 싶은 데이터 형태] 1 stack[..

IT/파이썬 2021.02.06

[그래프] Bar 그래프 그리기

위의 그림처럼 Bar그래프를 그리는 방법을 소개하려고 해요. 지난번과 같이 한글을 사용하기 위해서는 꼭 나눔고딕체를 받아서 seabon set환경에 넣어주시면 됩니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import matplotlib.pyplot as plt import seaborn as sns sns.set(font="NanumGothic", rc={"axes.unicode_minus":False, 'figure.figsize':(5,5)}, style='whitegrid') counter = df.groupby('class')['prize'].value_counts().unstack() percentage_dist = 100 * coun..

IT/파이썬 2021.02.02

[그래프] box-plot 그리기

오늘은 간단하게 box-plot그래프를 그리고, 색깔을 변경하고 그래프를 저장하는 방법을 간단히 알아볼게요. 위에 그림에서는 box-plot 개수가 2개이지만 만약 여러개라면, 그만큼 다양한 색상을 아래 color_dict에 추가해주면 됩니다. (단, '합격여부'라는 컬럼에 있는 컬럼명 그대로 넣어주기) for i in range(0,2):에서도 만약 여러개의 box-plot을 추가하실 거라면 뒤에 range 끝 값을 더 늘려주세요. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #색상 정의 color_dict = dict({False: "grey", True: "blue"}) import matplotlib.pyplot as plt import seaborn as sn..

IT/파이썬 2021.01.27

if문과 map함수로 파생변수 만들기

보통 SQL에 익숙하신 분들은 파생변수 만들때 case, when, then 문이 자동으로 생각나실거에요. 파이썬에서는 간단하게는 map함수를 쓰거나, 아니면 if문으로 파생변수를 새로 만들어서 컬럼으로 활용할 수 있습니다. 아래와 같은 예시 데이터가 있다고 할때, 우리는 mon라는 컬럼을 활용해서 new_col이라는 컬럼을 생성해볼게요. 방법1. if문으로 파생변수 만들기 코드 복사하시라고 아래 편집해놨어요. 실제 test.shape[0]의 값은 6이니, 0~5까지의 range로 list의 length가 정해지게 해뒀어요. 또, def함수를 써서, new_col_creating이라는 함수를 선언했습니다. 1 2 3 4 5 6 7 8 9 10 11 12 temp=list(range(test.shape[0..

IT/파이썬 2021.01.25

[시간 데이터 다루기] rsub활용하여 시간차이 구하기

시간차이를 구하는 일은 시간데이터를 다루다 보면 정말 빈번하게 있는 일이죠. 꼭 기억하자는 측면에서 오늘 기록해보고자 합니다. 아래와 같은 데이터가 있습니다. 오늘일자가 2021-01-08인 상황에서 "등록기간(년)"이라는 컬럼을 채워야 하는 상황이에요. id 등록일 등록기간(년) ka234 2020.07.08 ?? ka212 2019.08.30 sa934 2020.09.01 sa712 2020.02.01 이 컬럼을 채우기 위해서는 아래와 같이 간단한 코드면 된답니다. 1 2 3 4 5 6 7 8 9 10 11 import datetime import math # 오늘 날짜를 입력받음 now = datetime.date.today() today = pd.Timestamp(now) # 등록일 컬럼을 dat..

IT/파이썬 2021.01.08

[시간 데이터 다루기] to_datetime활용하기

간단히 pandas를 활용해서 시간데이터를 다루는 법을 정리하려고 합니다. 1. datetime으로 형변환하기 2. 날짜, 시간, 분 추출하기 3. 값 변경하기 4. 시간 조건 걸기 1. datetime으로 형변환하기 우리에게 아래와 같은 dataset이 있다고 할게요. start_date_time 지금은 string 타입으로 있는데, 이걸 datetime형으로 바꿔주려고 합니다. 1 df['dt2'] = pd.to_datetime(df['start_date_time'], format='%Y-%m-%d %H:%M', errors='raise') cs [output] 2. 날짜/시간/시/분으로 추출하기 이제 dt2 값을 날짜/시간/시/분으로 쪼개 보려고 합니다. 코드는 더 간단해요. 이미 dt2가 date..

IT/파이썬 2021.01.06