오늘 머신러닝 세션이 끝이 났다. 남은건 다음 프로젝트가 끝나고 있을 태블로 세션이다! 벌써 이만큼이나 달려왔다는 생각이 문득 든다. 오늘은 머신러닝과 통계를 제외하고 전체 복습을 하고, 까먹었던 것들을 블로그에 정리하려고 한다.
파이썬 기초부터 SQL, 판다스까지 모두 다!! 양이 꽤 많지만 한 번 했던 것들이니 훅 훑고 넘어가려고 한다.
내일은 머신러닝과 통계를 전체 복습할 예정이다.
1. 파이썬 기초 총 복습 - 상기할 내용
enumerate(iter) : 반복문에서 iterable 객체의 인덱스, 값을 반환하므로 담아줄 변수가 두 개 필요하다.
zip(iter1, iter2, ...) : iterable 객체(리스트, 튜플 등) 여러 개를 한번에 반복해주는 함수. 튜플로 동일 인덱스의 값끼리 묶어준다.
함수에서 return을 여러값을 하게 되면 튜플로 묶여서 반환된다.
슬라이싱 [start:end] 은 마지막값이 end-1
전역변수는 함수 내에서 읽어올 때는 global 선언이 필요 없지만, 수정할 때는 global 선언을 해야 한다. 실무에서는 함수 내에서 직접 전역변수 값을 수정하는 것을 지양하고, return으로 반환하는 것이 정석이다.
가변인자(*args) : 함수에서 정해지지 않은 수의 여러 값(예: "apple", "lemon") 을 받을 때 유용하다. 함수 본문코드에서는 args로 쓴다.
키워드 가변인자(**kwargs) : 함수에서 정해지지 않은 수의 여러 키워드인자 (예: name="kim", age=21) 를 받을 때 유용하다. 함수 본문코드에서는 kwargs로 쓴다.
파일을 열 때 with open()을 사용하면 마지막에 파일이 자동으로 닫힌다. 습관화 하자.
메서드의 첫번째 인자는 항상 'self' 자기자신이다. 약속이니 외우자.생성자 메서드를 정의할 때 : method(self, 매개변수1, 매개변수2, ...) -> 입력된 값으로 self의 속성값 대입일반 메서드를 정의할 때 : method(self) -> self 객체로 속성에 접근가능 메서드를 호출할 때 : 객체.method() -> 함수의 정의 부분에서 매개변수가 self로 들어가 있기 때문에, 알아서 객체 자기자신이 인자로 인식된다.
2. SQL 총 복습 - 상기할 내용
서브쿼리 : select, from 반드시 명시. ';', order by 사용 불가
3. 데이터 전처리 및 시각화
결측치 제거
열 제거 : df = df.drop('컬럼 이름', axis=1)
행 제거 : df3.dropna() # 디폴트는 axis=0, how= 'any'
df3.dropna(axis=0, how='any') --> how = 'any' 는 결측치가 하나라도 있으면 삭제, how = 'all' 은 전체가 결측치이면 석제. axis=0은 행 삭제, 1은 열 삭제. 열을 삭제하는 행위는 위험하므로 지양한다.
결측치 대체 : df['sw'] = df['sw'].fillna(df['sw'].mean()) --> df['컬럼명'].fillna(대체하고 싶은 값)
이상치 판별
Z-score ( Standard Scaler ): 표준점수. 평균으로부터 얼마나 떨어져 있는가?정규분포를 이루는 데이터에 적용. scikit-learn 라이브러리 적용. +- 3 이상이면 이상치로 간주한다.
IQR : 데이터가 정규분포를 따르지 않을 때 사용. 이상치 : Q3 + 1.5 * IQR보다 높거나 Q1 - 1.5 * IQR보다 낮은 값을 의미
결측치나 이상치를 함부로 제거하거나 대체하지 않고, 새로운 데이터프레임을 만들어서 모아두는게 현업에서 일반적이다.