kt aivle

kt_aivle3

rainsky 2023. 8. 11. 22:38

2023.08.11

어제 배웠던 python 프로그래밍을 이어서 배웠다.

특히 넘파이와 데이터프레임 조회 및 집계에 대해 배웠다.


범주형과 수치형 구분 법

1의 3배가 3이 되는가 - 수치형

1월의 3배가 3월이 되는가 - 범주형

 

자동완성 기능이 있다. 몇 자 적고 Tab을 치면 자동완성이 된다.

오타를 줄일 수 있어서 중요하고, 여러 개일 때는 선택도 가능하다.

 

Axis 0의 의미       =>      데이터의 건수를 의미한다.

Eg) 2차원 데이터 (axis0, axis1) –> (100,10)

10개의 값으로 구성된 데이터가 100건있다.

3차원 데이터 (axis0, axis1, axis2) –> (200,21,8)

218열 크기의 2차원 데이터가 200

 

Reshape

배열을 사용할 때 다양한 형태(shape)로 변환하게 해 준다.

배열에 포함된 요소가 사라지지 않는 형태라면 자유롭게 변환 가능하다.

) (2,3) – (3,2) – (6)[1차원] – (6,1)

 

<-1의 편리성>

(m, -1) 또는 (-1, n)처럼처럼 사용해 또는 크기 한 쪽만 지정할 있다.

m 또는 n을 지정하면 나머지는 -1이 배열에 맞게 자동적으로 형태를 만든다.

 

인덱스에서 유의할 점 a[:, 1:2]면 2차원으로 표현되고, a[:,1]이면 1차원으로 표현된다.

 

배열 집계

  • np.sum(), 혹은 array.sum()
  • 동일한 형태로 사용 가능한 함수 : np.max(), np.min, np.mean(), np.std()
  • axis = 0 : 열 기준 집계
  • axis = 1 : 행 기준 집계
  • 생략하면 : 전체 집계

np.where

np.where(조건문, True일 때일때 , False )

eg) 조건문에는 data['a'] < 3

 

정렬

  • sort_values() 메소드로 특정 기준으로 정렬
  • ascending 옵션을 설정해 오름차순, 내림차순을 설정할 있다.ascending = True: 오름차순 정렬(기본값), ascending = False: 내림차순 정렬
a.reset_index(drop = True) #인덱스 초기화

unique() - 메소드로 고유값을 확인하며, 결괏값은 배열 형태(중복x)

value_counts() 메소드로 고유값과 개수를 확인하며, 결괏값은 시리즈 형태(중복x, 개수)

 

조건으로 조회 : .loc

  • df.loc[조건] 형태로 조건을 지정해 조건에 만족하는 데이터만 조회할 있다.
  • df[조건]도 가능하지만 되도록이면 loc을 하자! 경우에 따라 오류가 날 수도 있기 때문

eg) a.loc[a['age'] > 10]

 

isin()

  • isin([값1, 값2,..., 값n]): 값1 또는 값2 또는...값n인 데이터만 조회
  • 주의 isin(리스트) 값들을 리스트 형태로 입력해야 한다.

between()

  • between(값1, 값2): 값1 ~ 값2까지 범위안의 데이터만 조회
a.loc[a['age'].isin([10,14])]
a.loc[a['age'].between(10,14)]

 

groupby 중요(집계)

a.groupby('집계기준변수', as_index=False)['집계대상변수'].집계함수

as_index = True이면 집계기준변수를 인덱스로 사용하게 된다. 대부분은 False로 놓고 한다.

eg) <집계기준변수 별로 집계대상변수의 함수(평균, 합 등)을 구하라>


어제보다 오늘 더 중요한 내용들을 배운 것 같다. 특히 groupby는 중요하기 때문에 꼭 기억해야 할 것 같다. 예전부터 많이 배웠지만 groupby는 볼 때마다 낯선 느낌이다. 계속 틈틈이 써야겠다.

또 loc을 써줘야 하는 이유를 알게 돼서 좋았다. 보통 loc을 생략하고 써줬었는데 앞으로는 loc을 함께 쓰도록 노력해야겠다. 오늘 수업도 알차고 재밌었다.