[TIL] Day 16, 17 - 시각화, 리팩토링
⛺ 𝗕𝗼𝗼𝘁 𝗖𝗮𝗺𝗽/멋쟁이사자처럼 AI 스쿨 6기

[TIL] Day 16, 17 - 시각화, 리팩토링

 

 

 16일차 

  • sns 에서 한글폰트 사용하기
    • plt.rc('font', family)
    • plt.rc('axes', unicode_minus) 를 통해서 마이너스 설정
  • plt.style.use('ggplot') 을 이용해서 style 사용
  • import golb 라이브러리를 사용하여 폴더 내 데이터 확인
  • pd.concat([df1, df2])
  • df.duplicated() 을 이용하여 데이터 프레임 중복 확인하기
  • df.drop_duplicetes() 을 이용하여 중복 제거하기
  • df[].unique() 을 이용하여 고유값 개수 구하기
  • df.set_index(key) 을 이용하여 index 설정하기
  • df.sort_index() 을 이용하여 인덱스로 정렬
  • pd.to_datetime(df[]) 을 이용하여 날짜 데이터 뽑기
    • df[].dt.year etc
    • df[].dt.dayofweek : 요일
    • datetime 타입으로 변경해준다.
  • df[].str 을 이용해서 시리즈에서 문자열 함수 사용하기
    • .str.contains()
    • .str.upper()
    • .str[] 슬라이싱 사용 가능
    • .str.strip()
    • .str.replace() 사용 권장
      • df.replace() 해도 되지만 완전히 똑같아야 변경 가능하다고 함
  • df[].astype().str 로 사용가능
    • 문자열로 변경하고 사용하는 것
  • .map() 은 시리즈만
  • .apply() 은 데이터프레임/시리즈 둘 다 사용 가능
  • pd.date_range(start, end) 을 이용해서 날짜 범위 데이터 프레임 만들기
  • dict.to_frame() 으로 데이터 프레임화
  • 결측치 값이 있는 열은 float 타입을 가진다. 그러니 만약 float 으로 나온다면 결측치가 없는지 의심해보기
  • .cumsum() 으로 누적 합계 구하기
  • pd.crosstab(normalize=True) 로 테이블 엮기
    • normalize 하면 합이 1 (정규화)
  • df.style.bar() 사용 가능
  • pd.pivot_table(data, index, columns, values, aggfunc)
  • 인덱스 변경하려면 df = df[list]

 

 

 

 17일차 

  • 리팩토링 관점 2가지
    • 중복이 있는가 없는가
    • 의도를 어떻게 드러낼 수 있는가
  • 중복이란?
    • 구조적 유사성
    • 바껴야할 이유는 하나, 코드는 여럿
  • 코드의 일반화
  • 지금 필요한 만큼만 개발할 것
  • 필요없는 기능을 굳이 현재에서 리팩토링할 필요는 없음
  • 복붙을 많이 할수록 좋다.
  • 변수 이름 이해하기 쉽게 수정
  • return 문은 웬만하면 간략히
  • 코드는 알아보고 쉽고, 직관적으로
  • sqrt 말고 ** 0.5 사용
  • 함수의 의존성이 있지만 중복을 제거할 수 있다면 괜찮

 

 

 

 회고 

이번 주 시각화도 그렇고, 리팩토링도 그렇고 강사님들 덕분에 유익한 강의를 많이 들었습니다.

흠 미니 프로젝트 어떻게 시각화하면 좋을까요. 시각화는 항상 머릿속에서 뒤죽박죽입니다.

질보단 양으로 승부하는게 좋을까요. ㅠㅠ (?)

어렵습니다. crosstab 이용해서 테이블 보는거는 대충 감을 잡았는데 이걸 어떻게 시각화할지 모르겠어요.

인덱스가 만약에 3개면 어떡해요? 어떻게 시각화해야하는거지

plot 찍어보니까 너무 더럽게 나오던데.. 남은 기간 동안 고민을 해봐야겠습니다.

 

 

 

 

 

 

 


 

728x90