본문 바로가기
Challange

패스트캠퍼스 환급챌린지 33일차 미션 (3월 4일) : 데이터 분석 Master Class 강의 후기

by @0-0 2024. 3. 4.
반응형

 

33일차!

 

데이터 가공의 마지막 수업! 이제 데이터 분석 전처리 과정도 얼마 남지 않았다구😁

오늘은 어제보다 조금 업그레이드 된 내용을 배웠다.

마지막 부분이었던 데이터 결합에 대한 내용은 SQL의 JOIN과 동일한 내용이었다!

그 개념을 잘 기억해두고 있다면 하나도 어렵지 않은 내용이고

JOIN을 파이썬으로 수행하는 방법을 기억해두면 된다!

나머지 두 파트는 처음 안 내용이었다.

 

일단 첫번째 파트는 날짜를 다루는 내용이었다!

날짜의 형식변환은 익히 알고 있던 내용이었지만

날짜의 요소를 추출하는 새로운 방법을 배웠다!

또한 날짜를 구간으로 나누고, 구간별로 계산하는 방법을 배웠다!

일일이 했었는데 배운 방법을 통해 앞으로 잘 활용할 수 있을 것 같다.

또한 apply를 통해 함수를 컬럼에 적용하는 방법이나

map과 딕셔너리를 함께 활용하는 새로운 방법을 배울 수 있었던 강의였다!

 

 

 


 

Part 3. PYTHON _ 데이터 전처리

 

 

 

 

 

03. 파이썬을 이용한 데이터 분석 - 데이터 전처리

 

4. 데이터 가공

 

4) 날짜 다루기

 

(1) 문자형 → 날짜형

: 날짜형으로 변경해야 날짜 계산이 가능

pd.to_datetime(컬럼, format='날짜 형식')

 

- 형식

   · %Y : 0을 채운 4자리 연도

   · %y : 0을 채운 2자리 연도

   · %m : 0을 채운 월

   · %d : 0을 채운 일

   · %H : 0을 채운 시간

   · %M : 0을 채운 분

   · %S : 0을 채운 초

 

 

(2) 날짜형을 원하는 형식으로

- 날짜형을 원하는 형식으로 변경하고 싶다면 타입 확인 후 미리 타입 변경!

데이터컬럼.dt.strftime(날짜형식)

- 입력되어 있지 데이터의 경우 00:00으로 출력

 

(3) dt 연산자

- year : 연도

- month : 월

- day : 일

- dayofweek : 요일(0-월요일 ~ 6-일요일)

- day_name() : 요일을 문자열로

- 날짜의 요소를 추출하여 컬럼으로 만들기

 

(4) 날짜 계산

- day 연산 : pd.Timedelta(day=숫자)

- month 연산 : DateOffset(months=숫자)

- year 연산 : DateOffset(years=숫자)

→ 하루 뒤, 일주일 뒤와 같이 연산 가능 이때 from pandas.tseries.offsets import DateOffset 미리 선언!

 

 

(5) 날짜 구간 데이터 만들기

pd.date_range(start=시작일자, end=종료일자, periods=기간수, freq=주기)

D - 일별

W - 주별

M - 월별 말일

MS - 월별 시작일

A - 연도별 말일

AS - 연도별 시작일

→ 날짜별 for loop를 해야할 때 많이 사용

 

(6) 기간 이동 계산

컬럼.rolling().집계함수

- 이동평균선을 구할 때

- 이동하면서 구간별로 뭔가 연산을 해야할 때

7일 이동평균

 

(7) 행 이동

컬럼.shift(이동할 행의 수)

 

 

 

5) 고급 기능

 

(1) apply 함수: 사용자 정의 함수를 데이터에 적용

.apply(함수, axis=0/1)

 

- 간단한 함수는 lambda로도 구현 가능(위의 예제와 같은 결과 리턴)

df1['pclass_sibsp_lambda'] = df1.apply(lambda x: 1 if x['Pclass'] == 1 and x['SibSp'] == 1 else 0, axis=1)

 

 

(2) map 함수: 값을 특정값으로 치환

데이터명[컬럼명].map(매핑 딕셔너리)

 

- 아래와 같이 값을 입력받을 때도 사용할 수 있음

 

 

(3) 문자열 다루기

메소드 설명
.str.contains(문자열) 문자열을 포함하고 있는지 유무
.str.replace(기존 문자열, 대치 문자열) 문자열 대치
.str.split(문자열, expand=True/False, n=개수) 특정 문자열을 기준으로 쪼개기
.str.lower / .str.upper 소문자 / 대문자로 바꾸기

 

- .str.contains(문자열)은 결과값을 True/False로 반환 → 특정 문자열을 포함한 데이터 추출 가능

 

- .str.split()의 expand 인자를 True로 지정해주면 열을 쪼개어 펼쳐주게 됨

 

 

 

6) 데이터 결합(JOIN)

pd.merge(데이터1, 데이터2, on=기준컬럼, how=결합방법)

# 두 데이터 기준 컬럼명이 다른 경우
pd.merge(데이터1, 데이터2, left_on=데이터1의 기준컬럼, right_on=데이터2의 기준컬럼, how=결합방법)

-  결합 방법

 

 

 

 

 

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 

 

 

 

:: https://bit.ly/48sS29N

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

반응형