취준일기/에이블스쿨

KT 에이블스쿨 3기 DX반 3주차 - 데이터 다듬기, 미니프로젝트 1차

모코코마을 2023. 2. 18.

에이블스쿨 3기 DX반 3주차

에이블스쿨
3주차: 2월 13일(월) ~ 2월 17일(금)
화요일까지 데이터 다듬기, 수요일부터 1차 미니프로젝트 시작
+ 파일 정리, 코랩 기본 설정, 전역변수



첫 번째 미니프로젝트가 있는 주간이다.
처음으로 반 에이블러들과 소통할 수 있다는 것에 기대했으나.. 자기소개 마저 못한 우리 조.. 엣헴


대면으로 만난 다른 조 이야기를 들어보면 이미 스터디그룹을 통해 아는 사람들도 몇 있고 같은 학교사람들도 꽤 있는 것 같다고 들었다. 나,, 다음 조원들과는 친해질 수 있겠지?(소심한 잇티제의 소심한 외침)



화요일까지 데이터 다듬기를 하고 종합실습을 통해 배운 코드를 적용해 보는 시간을 가졌다.
정말 귀찮을정도로 반복하고 있다. 내 머리보다는 손가락이 코드를 외운 것 같다.


수요일부턴 새로운 강사님과 미니프로젝트에 들어갔다.
데이터랑 기본적인 가이드라인은 주어진 상태로 개인이 직접 코드를 작성해 보았다.
그전에 pandas cheat sheet를 같이 만들어보고 진행을 해서 많이 도움을 받았다.



목요일부턴 조원들이랑 같이 코드를 보완했는데 우리는 한 명씩 화면공유를 하고 이야기하는 식으로 했다.
나는 데스크톱으로 작성해서 부랴부랴 데스크톱으로도 줌을 들어가서 화면공유를 했다.

kt 에이블스쿨 3기 dx반
갑분 조장



그리고 미프끝나기 2시간 전에 조장 뽑아야 한다길래 사다리 타기로 조장도 되어봤고... 그렇게 셀테치고 우리 조는 흩어졌다..ㅋㅋㅋㅋㅋㅋ



 

파일 정리

 

kt 에이블스쿨 DX 파일정리 kt 에이블스쿨 DX 파일정리


만족



코랩 기본 설정

 

1. 구글 드라이브 폴더 연결해주기

from google.colab import drive
drive.mount('/content/drive') 

%cd /content/drive/MyDrive/AIVLE



2. 그래프에서 한글 쓰는 법

# 해당 셀 실행후 런타임 다시 실행
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf


위의 셀 실행 후 런타임 다시 실행해야지 나눔 글꼴 사용가능


import seaborn as sns # seaborn 시각화 패키지 

# os에 따른 Font 깨짐 제거를 위해 Font 지정 
import os 
if os.name == 'nt' :  # Windows OS 
    font_family = "Malgun Gothic"
elif os.name == 'posix' : # colab
    font_family ='NanumBarunGothic'
else: # MAC OS 
    font_family = "AppleGothic"
    
# - 값이 깨지는 문제 해결을 위해 파라미터 값 설정 
sns.set(font=font_family, rc ={"axes.unicode_minus" : False})


이건 윈도우, 코랩, 맥에서도 문제없이 돌아갈 수 있게 운영체제별로 if 문 적용



코랩에서 간단하게 쓰고 싶다면 이것만 써도 됨.

sns.set(font='NanumBarunGothic', rc ={"axes.unicode_minus" : False})

 





전역변수

STATA에서 매크로를 한번 배운 이후, Python에서도 global 전역 변수가 있다길래 적용해 보았다.
아직까진 실습시간이 남는 터라 이렇게 시간을 보내고 있다.
그리고.. 어떻게 파이썬식으로 효율적으로 코딩하는지 까먹어버림
+ 알트 드래그가 된다는 사실을 나중에 알았다. 그렇다면 같은 코드 20번 쓰는게 효율적ㅋㅋㅋ


* 미니프로젝트 1차 - 1일차 데이터 셋

import matplotlib.pyplot as plt
%config InlineBackend.figure_format = 'retina'
plt.rcParams['font.family'] = 'Malgun Gothic'
plt.rcParams['axes.unicode_minus'] = False

fig, ax = plt.subplots(6, figsize=(10, 10)) 
pd.set_option('mode.chained_assignment',  None)

k = 0

for i in range(2017,2023):
    
    # 연도별 데이터 프레임 생성
    globals()["test{}".format(i)] = test[test['year']==i]
    df = globals()["test{}".format(i)]

    # 연도별 요약 출력
    print(i, '(변수 명) 요약 출력')
    print(df['(변수 명)'].describe())
    f = df[(df['(변수 명)'] ==0) & (df['month'] ==8)] # 하나밖에 없음
    df.drop(f.index, inplace=True)
    print('*****'*10)

    # min-max scaled 출력
    df['scaled'] = (df['(변수 명)'] - df['(변수 명)'].min())/(df['(변수 명)'].max()-df['(변수 명)'].min()) * 100
    
    # 플랏
    df.plot(x = 'x 축', y = 'scaled', subplots=True, ax=ax[k])
    
    k += 1

 

kt 에이블스쿨 3기 dx반
미니프로젝트 1차 그래프



그래프 만족!

근데 왜 20년 21년은 x축이 영어로 뜨지? 이유를 못 찾았다.




* 미니프로젝트 1차 - 3일차 첫 번째 데이터 셋

for i in range(5,24):
    i_str = str(i)
    globals()["df_{}".format(i)] = pd.read_csv('./data/파일명_2022.12_'+i_str.zfill(2)+'파일명.csv', sep=",", encoding = 'cp949')
    
df_total = pd.concat([df_0, df_5, df_6, df_7, df_8, df_9, df_10, df_11, df_12, df_13, df_14, df_15, df_16, df_17, df_18, df_19, df_20, df_21, df_22, df_23])
df_total


이건 시간대별로 csv 파일이 있었는데 for문으로 불러와서 concat 한 것




 

kt 에이블스쿨 dx 3기
강사님 메세지

 


실습하시느라 고생하셨어요

 

728x90

댓글