본문 바로가기

Computer Engineering/Big Data Analytics Using Python

[빅데이터 분석] 6장. 데이터 탐색

반응형

1. 데이터 그룹 분석

집계함수 사용

groupby함수

 

그룹 분석 공식

1. 범주형 변수로 그룹 연산 기준을 선정

2. 범주형을 기준으로 연속형을 묶는다.

 

-> 사용할 데이터 불러오기

-> 사용할 범주형 데이터 선정

-> get_group : 선택한 범주형 데이터중 하나의 데이터를 선정

-> groupby(['범주형','범주형']).mean() :  범주형 데이터와 범주형 데이터의 그룹

 

 

 

-> df['연속형'].groupby(df['범주형']).함수() :범주형 중 연속형의 함수

-> df.groupby(df['범주형'])['연속형'].함수() 범주형 중 연속형의 함수 => 같은 구문

-> df['math'].groupby(df['class']).mean() 반별 수학 평균

 

df['math'].groupby(df['sex']).mean() 성별 수학 평균

->성별만을 그룹함수로

-> sexgroup = df.groupby('sex')

 

male=sexgroup.get_group('m') 남학생 수학 평균

-> 성별의 그룹함수로 그룹

->subset=male[['sex', 'math']]

 

 


2. 데이터 재구조화 : 

분석과정에서 원본 데이터 구조가 분석기법에 맞지 않아 행과 열의 위치를 바꾸거나, 특정요인에 따라 구조를 바꿀때

 

  • 데이터 구간화
  • 원-핫인코딩
  • 데이터 전치
  • 피봇 테이블
  • 열, 행 전환
  • 행, 열 인덱스 전환
  • 데이터 구간화

    • 연속형을 범주형으로

      • pd.cut() : 동일 길이로 나누기

      • pd.qcut() : 동일 개수로 나누기

-> 수학 변수에 대해 3개의 동일한 구간 길이 : [(19.93, 43.333] < (43.333, 66.667] < (66.667, 90.0]]

 

-> 수학 변수에 3개의 구간 범주를 추가 후 각 범주의 특성을 찾는다.

-> 실수 값을 카테고리 값으로 변환하기

[qcut : 구간의 경계를 지정하지 않고 각 구간마다 속해있는 데이터 개수를 같게 나눈다.]

pd.qcut(실수 데이터, 나눌 그룹 개수, 각 그룹의 라벨)

 

  • 원-핫인코딩:

머신러닝 알고리즘을 위해 데이터를 변환하는데 범주형 데이터를 원-핫인코딩 형태로 변환한다.

[하나의 데이터만 1로 변경하고 나머지는 0으로 변경하는 과정]

 

 

-> 해당하는 것에 1, 해당하지 않으면 0

 

  • 데이터 전치:

데이터 프레임 행과 열의 기준(축)을 바꾸는 방법

  • 피봇 테이블:

많은 양의 데이터에서 필요한 자료만을 뽑아 새롭게 데이터를 재구성

[원하는 대로 데이터를 정렬하고 필터링할 수 있다.]

-> 데이터 열 중 두 개의 열을 각각 행 인덱스, 열 인덱스로 사용해 데이터를 조회하여 펼쳐 놓는다.

 

pd.pivot_table(데이터프레임 이름,행 인덱스로 사용할 열 이름, 열 인덱스로 사용한 열 이름, 데이터로 사용할 열 이름)

 

-> 두 열을 인덱스로 바꾼 후, 각각의 인덱스의 라벨 값이 키의 값과 같은 데이터를 찾아서 해당 칸에 삽입한다.

 

 

  • 멜트 :

열을 행으로 변경하는 재구조화 과정. -> 열이 행으로 흘러 열이 짧아지고 행이 길어진다.

-> 여러 열의 이름을 'variable'컬럼을 위에서 아래로 길게 쌓고, 'value'컬럼에 ID와 variable에 해당하는 값을 추가

-> 'student_no'와 'class'를 기준으로 나머지 컬럼을 밑으로 추가한다

 

  • 스택/언스택:

행 인덱스와 열 인덱스 교환시 사용하는 기능

-> 스택 : 열이 행으로 [열 인덱스가 반시계 방향으로 90도 회전]

-> 언스택 : 행이 열로 [행 인덱스가 시계 방향으로 90도 회전]

-> 문자열 이름과 순서를 표시하는 숫자 인덱스를 모두 사용 가능

 

반응형