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

파이썬 23

[그래프] 3D 그래프 그리기

오늘은 3D 그래프를 그려보겠습니다. 3D그래프에 줄 효과는, 색상 변경 산점도 색의 진하기 조정 View Angle 조정 입니다! 다른것은 이미 유사한 내용이겠지만 3번은 3D 그래프에만 존재하는 것이에요. 관련 라이브러리는 아래와 같아요. 1 from mpl_toolkits.mplot3d import Axes3D cs 코드도 아주 간단하답니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 fig = plt.figure(figsize=(10, 10)) ax = fig.add_subplot(111, projection='3d') for i in range(len(['orange', 'blue'])): ax.scatter(np.array(df['xx']), np.array(df['yy']),..

IT/파이썬 2021.02.19

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

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

IT/파이썬 2021.02.09

[그래프] 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

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

applymap 활용하기

오늘은 파이썬을 이용한 데이터 전처리에 잘쓰이는 applymap을 알아보도록 해요. 보통 dataframe을 다루는 경우가 많은데, 그때 유용하게 잘 쓰입니다. 1. 공백제거 & 대소문자 or 소문자로 통일 2. 시간데이터 다루기 3. 소수점 제거하기 를 간단히 해보려고합니다. 1. 공백제거 & 대소문자 or 소문자로 통일 아래와 같은 df 데이터셋이 있다고 해볼게요. inout컬럼에서 주황색으로 표시된 부분은 공백과 대소문자가 통일되지 않은 경우입니다. 1 2 3 4 5 # 공백제거 df['inout']=df[['inout']].applymap(lambda x: x.strip()) # 대소문자로 통일 df[['inout']]=df[['inout']].applymap(lambda x: x.upper())..

IT/파이썬 2021.01.05

Permutation Feature Importance(변수중요도)를 통한 feature selection

오늘은 permutation feature importance에 대해서 알아보려고 해요. 파이썬 코드에 대한 설명에 앞서서, 기본 변수중요도를 파악하는 방법과의 차이를 간단히 설명 드릴게요. stepwise, backward, forward 방식은 변수중요도를 파악하는 가장 간단한 방법이죠. SAS에서 주로 활용하긴 하는데, Forward는 변수를 하나씩 추가하면서 설명력이 높이지는 가장 best feature들을 찾는 것이고, 반대로 Backward는 전체 변수를 다 넣고 시작해서, 하나씩 변수를 제거하는 방식으로 진행합니다. stepwise는 단계별로 변수를 넣었다 제거하는 방식이구요. 파이썬에서 기본적인 feature importance를 구하는 방식도 stepwise와 유사하다고 보시면 됩니다. ..

IT/파이썬 2020.12.24