자격증

빅데이터분석기사 실기 공부(3) - 데이터 집계

studyoung 2024. 6. 9. 16:03
반응형

※ 해당 글은 '빅데이터분석기사' 자격증 취득을 위해 개인 공부기록 용도로 작성된 내용입니다.

(출처 :유튜브 코딩 대한민국)


  • 데이터 집계 - 최대, 최소, 합계, 평균
# sal 최댓값
emp['sal'].max()

# sal 최솟값
emp['sal'].min()

# 월급(sal) 합계
emp['sal'].sum()

# 월급(sal) 평균
emp['sal'].mean()

 

  • 그룹별 집계
# 직업(job)별 월급(sal) 최댓값
emp.groupby('job')['sal'].max().reset_index()
# groupby 만 사용하면 결과가 Series(컬럼) 로 나오고 
# reset_index() 를 뒤에 붙여줘야  data Frame(테이블) 으로 출력

# 직업(job)별 월급(sal) 합계
emp.groupby('job')['sal'].sum().reset_index()

# 부서번호(deptno)별 직업(job)별 월급(sal) 합계
emp.groupby(['deptno', 'job'])['sal'].sum().reset_index()

 

  • 순위 부여
# 월급에 대한 순위 출력
emp['순위'] = emp['sal'].rank(ascending=False).astype(int)
emp[['ename', 'sal', '순위']].sort_values( by ='순위', ascending=True ) 

# 나이에 대한 순위 출력
emp20['rank'] = emp20['age'].rank(method='dense', ascending=False).astype(int)
emp20[['ename','age','rank']].sort_values(by='rank', ascending=True)
# method='dense' 중복 순위 고려하지 않음 (1 2 2 3)
# method='dense' 없으면 중복 순위 고려 (1 2 2 4)

# 부서번호별로 각각 월급이 높은 순서대로 순위 출력
emp['rank'] = emp.groupby('deptno')['sal'].rank(method='dense',ascending=False).astype(int)
emp[['deptno','ename','sal','rank']].sort_values(by=['deptno','rank'], ascending=True)

 

  • 등급 부여
emp['grade'] = emp['sal'].rank(method='dense', ascending=False).astype(int)
# 등급 수
cuts=4
emp['sal_grade'] = pd.qcut(emp.grade, q=cuts, labels=range(1, cuts+1))
emp[['ename','sal','sal_grade']].sort_values(by=['sal','sal_grade'], ascending=False)

 

  • 결측치 변환
# 평균값
age_mean = tit['Age'].mean()

# 결측치 수 확인
tit.isnull().sum()

# 결측치 값을 평균값으로 대체
tit['Age'].fillna(round(age_mean), inplace=True)
# inplace = True  : 데이터프레임의 해당 컬럼에 결측치를 다른 값으로 실제로 변경
# inplace = False : 출력 결과에서만 결측치 변경

 

  • 날짜데이터 다루기
# 날짜타입으로 데이터 타입 변환
emp['hiredate']=pd.to_datetime(emp['hiredate'])

# 연도 조회
emp.hiredate.dt.year

# 월 조회
emp.hiredate.dt.month

# 일 조회
emp.hiredate.dt.day
반응형