본문 바로가기

빅데이터분석기사_실기/기초

groupby

  • 같은 값을 한 그룹으로 묶어서 여러가지 연산 및 통계량 구하기
  • 데이터.groupby('컬럼명').연산및통계함수()
from google.colab import drive
drive.mount('/content/drive')
import pandas as pd

file_path = '/content/drive/MyDrive/data/titanic_train.csv'
df = pd.read_csv(file_path)

실습 데이터 중비~


df.groupby('Pclass').count()

결과

Pclass값을 기준으로 나눈 그룹 별 null이 아닌 행의 갯수

df.groupby('Pclass').nunique()

result

Pclass값을 기준으로 나눈 그룹 별 유니크한 행의 갯수

ex) Survived는 0또는 1로 이루어져 있기 때문에 유니크한 행의 갯수는 최대 두개

df.groupby('Pclass').sum(numeric_only = True)

Pclass 값을 기준으로 나눈 그룹 별 각 숫자데이터컬럼의 합 계산

df.groupby('Pclass').mean(numeric_only = True)
# Pclass 그룹 별 숫자형 데이터 컬럼들의 평균

df.groupby('Pclass').min(numeric_only = True)
# Pclass 그룹 별 숫자형 데이터 컬럼들의 최솟값

df.groupby('Pclass').max(numeric_only = True)
# Pclass 그룹 별 숫자형 데이터 컬럼들의 최댓값

df.groupby('Pclass').std(numeric_only = True)
# Pclass 그룹 별 숫자형 데이터 컬럼들의 표준편차

df.groupby('Pclass').var(numeric_only = True)
# Pclass 그룹 별 숫자형 데이터 컬럼들의 분산

그 외..

df.groupby('Pclass')[['Survived']].mean()

 

결과

Pclass 그룹 별 Survived 컬럼의 평균값

df.groupby('Pclass')[['Survived', 'Age']].mean()

result

Pclass 그룹 별 Survived와 Age 컬럼의 평균값

두 컬럼 모두 데이터가 다 숫자형으로만 이루어져 있기 때문에 numeric_only = True 필요 없음


다중 그룹

df.groupby(['Sex','Pclass']).mean(numeric_only = True)

result

Sex와 Pclass 두 컬럼을 기준으로 그룹을 나눈 후(2*3개의 그룹),

숫자형 데이터들을 가지는 컬럼들의 평균값 계산

import numpy as np
df.groupby(['Sex','Pclass'])[['Survived','Age','SibSp','Parch','Fare']].aggregate([np.mean, np.min, np.max])

*aggregate: 여러개의 통계값을 한번에 구할 때 사용

 

Sex와 Pclass 두 컬럼을 기준으로 그룹을 나눈 후 (2*3개의 그룹),

그룹 별 Survived, Age, SibSp, Parch, Fare 컬럼의 통계값(평균, 최솟값, 최댓값) 계산

 

'빅데이터분석기사_실기 > 기초' 카테고리의 다른 글

피벗테이블  (0) 2024.06.12
crosstab  (0) 2024.06.11
데이터 분포와 통계량  (0) 2024.06.11
데이터 결합  (0) 2024.06.11
데이터가공: apply, map, 문자열 다루기  (0) 2024.06.11