구글 시트 : bit.ly/3wQdZ1e
🌎 python라이브러리
1. 데이터구조
- 분석을 위한 데이터
- 데이터 구조: 변수(열), 분석단위(행)
2. Numpy
- 배열 만들고 조회하기
- 배열 연산 및 집계
2. Pandas
- Series와 DataFrame
- DataFrame 불러오기 및 조건 조회하기
1. 데이터구조
- 범주형 (질적 데이터 / 정성적 데이터)
- 명목형 데이터: 성별, 시도, 흡연여부
- 순서형 데이터: 연령대, 매출등급
- 수치형 (양적 데이터 / 정량적 데이터)
- 이산형 데이터: 판매량, 매출액, 나이
- 연속형 데이터: 온도
기본이 2차원
- 열, 정보, 변수, 요인 (독립변수)
- 행, 분석단위, 샘플, 관측치, 데이터 건수 (종속변수)
1차원 배열
np.array([])
2차원 배열
np.array([[],[]])
3차원 배열
np.array([[[],[]].[[],[]]])
함수와 메서드
- 메서드: 메서드는 딱 그 자료형이여야만 사용할 수 있다. -> 리스트. sum(), array. numpy
- 함수: 자료형 상관없이 모두에 범용적으로 사용할 수 있다. ->np.sum(리스트, array 등등)
2. Numpy
import numpy as np
↳ numpy 라이브러리 불러오기
- axis: 배열의 각 축
- rank: 축의 개수 (차원)
- shape: 축의 길이
a = np.array([배열])
a.ndim -> 차원
a.shape -> 배열의 모양
a.dtype -> 데이터 형식
- 리스트, 튜플은 직접 배열로 변환 가능하다.
- 문자역, 딕셔너리, 집합은 다른 자료형으로 변환 후 배열로 변화 가능하다.
🎨 3차원 배열읽기
(2차원 배열의 갯수, 행의 크기, 열의 크기)
🎨 2차원 배열 조회 방법
- arr1[행 인덱스, 열 인덱스]
- arr1[행 인덱스][열 인엑스]
- arr1[행 인덱스] : 특정 행 전체
- arr1[:, 열 인덱스] : 특정 열 전체
- arr1[[행1, 행2],[열1, 열2]] -> (행1,열1), (행2, 열2)
🎨 배열을 만드는 여러 함수들
np.reshape(배열이름, (바꿀 shape모양))
- np.reshape(a, (6,1))
- a.reshape(3,2) -> 3x2형태로 된 배열로 변환
- a.reshape(3, -1) -> 3행으로 된 배열로 변환
- a.reshape(-1, 2) -> 2열로 된 배열로 변환
np.zeros((배열범위))
0으로 채워진 배열
np.ones((배열범위))
1로 채워진 배열
np.full((배열범위), (채울내용).)
특정 값으로 채워진 배열
np.eye(숫자) -> 적은 숫자 * 숫자 범위로 배열이 만들어진다.
정방향 행렬
np.random.random((배열범위))
랜덤 값으로 채운 배열
🎨 함수와 메서드
np.mean(리스트 또는 튜플)
np array로 변환해서 평균을 구해줌
변수(데이터).mean()
np array만 사용 가능.
np.sum()
- np.sum(a) -> 전체 합계
- np.sum(a, axis = 0) -> 행 방향 (열 기준) 합계
- np.sum(a, axis = 1) -> 열 방향 (행 기준) 합계
np.where(조건문, 참일 때 값, 거짓일 때 값)
np.argmax()
- np.argmax(a) -> 전체 중에서 가장 큰 값의 인덱스
- np.argmax(a, axis = 0) -> 열 기준 큰 값의 인덱스 (가로로 길다)
- np.argmax(a, axis = 1) -> 행 기준 큰 값의 인덱스 (세로로 길다)
2. Pandas
🎨 데이터프레임이란?
- 데이터 분석에서 가장 중요한 데이터 구조
- 테이블 또는 엑셀 시트같은 형태 (2차원 구조)
- 변수들의 집합
- 행 : 분석 단위 (관측치, 샘플)
- 열 : 정보 (변수)
🎨 시리즈란?
- 하나의 정보에 대한 데이터들의 집합
- 데이터 프레임에서 하나의 열을 떼어낸 것 (1차원 구조)
🎨 데이터 읽어오기 함수
pd.read_csv(파일경로 및 이름)
🎨 데이터프레임 정보 확인 메소드
df.head()
- df.head() -> 상위 5개
- df.head(3) -> 상위 3개
df.tail()
- df.tail() -> 하위 5개
- df.tail(3) -> 하위 3개
df.columns
- df.columns -> 열 이름 확인
- df.columns() -> 열 정보 확인
- df.dtypes() -> 열 확인
df.info()
df.describe()
🎨 데이터 정렬 메소드
sort_values()
- tip.sort_values(by='total_bill', ascending=False)
- tip.sort_values(by=['total_bill', 'tip'], ascending=[False, False])
- ascending = True -> 오름차순 정렬
- ascending = False -> 내림차순 정렬'
🎨 고유 값 확인 메소드
unique()
- tip[열이름].unique() -> 열의 고유값 확인
value_counts()
- tip[열이름].value_counts() -> 고유 값과 그 개수 확인
- dropna = True -> NaN값 제외한다.
🎨 조건 조회 메소드
.loc[행 조건, 열 이름]
- 행조건: 조건에 만족하는 데이터만 조회
- 열 이름 : 생략가능, 1개 시리즈, 여려개 리스트
- & 와 |를 사용할 때 각 조건은 소괄호로 묶어야 함.
- isin([값1, 값2, ..., 값n]): 값1또는 값2또는 값n인 데이터만 조회
- tip.loc[tip['day'].isin(['Sat', 'Sun'])]
- between(값1,값2): 값1~값2까지 범위 안의 데이터만 조회
- tip.loc[tip['size'].between(1, 3)]
🎨 집계함수
- sum() -> 합
- mean() -> 평균
- max() -> 최댓값
- min() -> 최솟값
- count() -> 개수
groupby('a', as_index=True)['b'].집계함수
- a별 b의 집계함수 결과
- as_index = True 집계기준함수(a)를 인덱스로 사용
- as_index = False 집계기준함수(a)를 인덱스가 아닌 열로 사용.
- 집계 대상 열(b) 생략시에는 기준 열 이외의 모든 열에 대한 집계 수행
- agg() : 열 하나에 대해 합계, 평균 등의 집계를 한번에 수행 가능하다.
- tip.groupby('a')[['b1', 'b2']].agg(['sum', 'mean', 'max', 'min'])
groupby() -> 칼럼을 여러개 지정해준다.
agg() -> 집계 함수를 여러개 지정해준다.