KT AIVLE [2주차] - Python 라이브러리

김채원·2023년 2월 6일
0

KT_AIVLE

목록 보기
4/18

주말이 지나고 새 일주일이 시작 됐습니다.
이번주도 힘내보겠습니다!!!!
이번주는 끝까지 한기영 강사님께서 맡으셨다.
다음주에 미니 프로젝트의 시작이다.... 아마도 EDA가 될듯하다.


이론 📝

1. 데이터 구조 📌

[ 분석을 위한 데이터 구조 ]

1) CRISP-DM

Cross-Industry Standard Process for Data Mining

1) 비즈니스 이해: 무엇이 문제인가? (문제 정의, 정보 도출)
2) 데이터 이해
3) 데이터 준비: 모델링을 위한 데이터 구조 준비
4) 모델링: 학습, 검증
5) 평가: 문제가 해결되는가?
6) 배포

2) 분석할 수 있는 데이터

⭐ 숫자, 범주

2-1) 범주형 : 질적 데이터 (정성적 데이터)

  • 명목형: grouping (ex. 성별, 지역 등)
  • 순서형: (ex. 연령대, 매출등급 등)

2-2) 수치형 : 양적 데이터 (정량적 데이터)

  • 이산형: countable (ex. 판매량, 매출액 등)
  • 연속형: uncountable (ex. 온도, 몸무게 등 연속적)

ex. 날짜 자체는 아무데도 속하지 않는다. 떼어낸 요소를 분류 가능.

기본 2차원 : table, 2 dim array, data frame
columns: 정보, 변수, 요인 (feature,X,input,독립변수)
rows: 분석단위, 샘플, 관측치, 데이터 건수 (target,y,output,종속변수)

2. Numpy 📌


데이터 구조를 다루는 패키지 : 수치 연산에 강함

1) 리스트

값의 집합(collection)
다른 타입의 데이터도 한꺼번에 저장 가능
요소 변경, 추가, 제거 용이
but, 계산이 느리거나 불가능 할 수 있다.

데이터 분석에서의 필요는 수학적 계산이 가능하고 대량의 데이터 처리가 가능해야 한다.

2) 넘파이 배열

• Axis: 배열의 각 축
• Rank: 축의 개수(차원)
• Shape: 축의 길이 : element의 개수

길이 = 개수

⭐ ex. 3차원 배열 읽기 (2,3,3)
axis = 0의 의미가 중요 : 배열이 몇 개 있는가
= 행이 몇 개 있는가 = 분석단위의 개수
3x3짜리 2차원 배열이 2개 있다는 뜻

reshape에는 원래 데이터 형태(arr.shape으로 확인)의 약수만 가능

함수: np.sum()처럼 다양한 자료구조를 넣을 수 있음
메서드: data.method 하고 . 뒤에 붙는 함수 (자료구조마다 메서드가 다름)

3) 데이터 조회

arr[행,열] (열은 생략 가능)
값, 단일 인덱스 arr[2,3]
값, 여러 인덱스 arr [[2,3]] (2,3번째 행 조회)
범위, 슬라이싱 arr[2:7,]
조건, boolean

np.where(조건문,참 값,거짓 값)
np.argmax(arr, axis=0) : 가장 큰 값의 인덱스 반환

[[1,2,3],
[5,6,7]] 이면

  • axis = 0 : 열축 따라감
    즉, 3개의 인덱스가 나옴

  • axis = 1 : 행축 따라감
    2개의 인덱스가 나옴

3. Pandas 📌

데이터 구조를 다루는 패키지 : 비즈니스 시각에 강함

1) 데이터 프레임

데이터 분석에서 가장 중요한 데이터 구조
2차원 구조, 변수들의 집합

2) 시리즈

하나의 정보에 대한 데이터들의 집합
데이터 프레임에서 하나의 열을 떼어낸 것 (1차원)

데이터 조회하면서 비즈니스 가설들을 일단 주르륵 뽑아내야함
(아무말이라도 하면서....)

3) df.loc[행 조건, 열 이름]

and 대신 &
or 대신 |
조건 여러개 묶으려면 각 조건을 ()안에
열 이름은 생략 가능
인덱스를 넣어서도 검색 가능
⭐but, 인덱스가 아닌 행번호
인덱스는 iloc!

4) df.isin([리스트])

[1,4]면 1~3이 아니라 1 or 4

5) df.between()

(1,5)면 1~5까지
1.3버전 이후로 inclusive 옵션이 생김

6) df.groupby(그룹핑할 기준 열 이름, as_index=True)

as_index=True : 집계 기준 변수를 인덱스로 사용 (F로 하면 같이 열로 나옴)

df.groupby()['열'] : 결과 시리즈
df.groupby()[['열']] : 결과 데이터 프레임

7) df.groupby('열 이름').agg(['함수1','함수2', ...])

여러 함수로 한꺼번에 집계
원하는 집계함수 이름을 리스트 형태로 지정

열 마다 집계 방법을 다르게 하고 싶다면?
'열 이름':'집계 방법' 형태의 key:value를 갖는 딕셔너리 형태로 지정

  • 예외: as_index
    • .agg()를 사용하면 as_index=False가 적용 X
profile
잡다한 공부 기록용

0개의 댓글