10월 7일. 드디어 오늘 개강을 했다. 첫 날이라서 OT만하고 끝나려나 했는데 아니였다. python책 안훑고 들었으면 진짜 처음부터 눈물 났을 거 같다. 그래도 pandas라이브러리는 처음 써봐서 머리가 나름 아팠다. SQL책도 끝내야하는데 그럴 시간이 있을까 의문이긴 하다.
그래서 일단 목표는 부트캠프 기간동안은 다른 잡다한 거는 좀 치워두고 일단 부트캠프에 집중하려고 한다. 목표는 매일 배운 내용 간단하게 정리와 회고글 작성인데 1주일은 지켰으면 좋겠다. 제발...
성격 상 정리할 내용을 압축해 놓고 시작안하면, 하루 종일 처음부터 끝가지 정리한다고 시간 보낼 거 같아서 무엇을 어떤 식으로 정리할건지 여기서 정하고 넘어가야겠다.
- 핵심 개념만 정리한다.
- 처음 사용한 명령어는 그 사용법과 주의사항만 간결하게 정리
- 발생한 Error와 그 해결 방법을 간결하게 작성
-> 만약 해결 못한 Error의 경우 미해결이라 작성 후 넘어간다.
EDA
란 Exploratory Data Analysis(탐색적 데이터 분석)
의 줄임말로 데이터를 분석하고 결과를 내는 과정에 있어서 지속적으로 해당 데이터에 대한 '탐색과 이해'를 기본으로 가져야 한다는 것을 의미한다. 다른 말로는 본격적인 데이터 분석에 들어가기 앞 서 데이터를 뜯어보는 과정이라 할 수 있다.
실제로 많은 데이터들은 매우 지저분한 상태로 존재한다. 이런 데이터는 머신러닝과 같은 모델에서 제대로 작동하지 않는다.
따라서 세세한 분석과 모델의 성능을 높이기 위하여 feature
를 재조합하여 의미있는 데이터를 추가적으로 만들어 줄 수 있다. 이러한 과정을 Feature Engineering (특성공학)
이라고 한다.
즉, 수학적인 연산과 도메인 지식을 이용하여 Raw data로부터 유용한 Feature
를 도출해내는 것이다.
전 세계의 파이썬 사용자들이 만든 유용한 프로그램을 모아 놓은 것이 라이브러리이다. 라이브러리는 크게 두가지의 이유로 사용한다.
- 모든 기능을 직접 코딩하지는 못하기 때문에
- 시간 절약을 위해서
부트캠프에서는 주로 데이터 분석을 위하여 pandas
, numpy
, matplotlib.pyplot
과 같은 라이브러리를 사용한다.
클래스 내부에서 정의되어 사용된다. 함수와 비슷한 개념이지만 함수가 더 포괄적인 의미를 담고있다. 주로 소스코드의 가독성과 재사용성 때문에 사용된다.
[출처] https://sightsee.tistory.com/73
다양한 에러가 존재하지만 흔히 볼 수 있는 error 3가지에 대해 정리하겠다.
부적절한 값을 가진 인자를 받았을 때 발생하는 에러이다. int()
의 괄호 안에 문자를 입력한다던지, 참조값이 없는 인자를 입력으로 주었을 때 발생한다.
지역변수, 전역변수 이름을 찾을 수 없는 경우에 발생하는 에러이다. 주로 선언하지 않은 변수를 그대로 사용하려 할 때 발생하는 에러이다.
파이썬 문법에 오류가 발생하면 발생하는 에러이다. if문과 같은 조건문이나 반복문을 실행할 때 콜론(:)을 빼먹는 것이 가장 흔한 예시이다.
EDA를 시행하기 위해서는 데이터가 필요하다. .read_(파일확장자)
는 pandas 라이브러리의 메서드이다. 각각 파일확장자에 해당하는 데이터 파일을 불러온다.
- csv: comma separated value로 콤마로 구분되는 데이터 파일을 불러온다.
- exel: 엑셀 파일을 불러온다.
만일, csv파일을 불러올 때 콤마(,)로 구분되어 있는 것이 아닌 다른 문자로 구분되어 있을 경우 다음과 같은 양식으로 불러온다.
example = example.read_csv('파일명', sep = '(구분 문자)')
데이터의 Row와 Column의 개수를 확인할 때 사용한다.
print(example.shape)
위와 같은 양식으로 입력하며 (Row, columns)
의 형태로 출력된다.
example.info()
위와 같은 형식으로 실행하며 출력결과는 각 열의 인덱스와 이름, Non-null Count, data type을 출력한다.
example.describe()
info()
와 달리 describe()
는 출력으로 각 열의 평균, 표준편차, 사분위값 등 통계적 값을 출력한다.
중복 데이터 유무를 확인하고 싶을 때 duplicated()
를 사용한다. 이때 단독으로 사용하지는 않고, 중복 데이터의 수를 확인하고 싶으면 sum
, 중복된 데이터 제거를 위해서는 drop
과 함께 사용한다.
example.duplicated().sum() # 중복 데이터 개수 확인
example = example.drop_duplicates() # 중복 데이터 제거
중복 데이터를 제거할 경우 index는 자동으로 정렬되지 않으므로 인덱스를 다시 재 정렬 해주어야한다. 그럴 경우 .reset_index(drop = True)
를 사용한다.
example = example.reset_index(drop = True)
여기서 drop = True로 설정하면 인덱스 열을 보통의 자료열로 올리는 것이 아닌 그냥 버리게 된다.
example = np.repeat('(반복하고 싶은 내용)',len(example))
반복하고 싶은 내용
를 나타내는 len()
만큼의 길이를 가지는 array를 생성한다.
dataframe을 합칠 때 주로 사용한다. 양식은 다음과 같다.
example = example1.append(example2, ignore_index = '(True or False)`)
True
를 입력하면 기존의 index열의 내용이 숫자로 대체된다.
이제 시작이다. 진짜 컨디션 관리 잘해야될 거 같은 일정이라고 느꼈다. 그리고 실제로 많은 것을 알려주지 않는다. 내가 얼만큼 찾아서 주워먹냐가 제일 중요한 수업인거 같다.