KPMG Future Academy AI 활용 데이터 분석가 3기 33일차 수업을 2025년 1월 3일에 참석했다.
sum(), mean(), max(), min(), count() 메소드
sum()합계. array로 나옴
그룹별 집계하기; groupby()함수
타이타닉 생존자 데이터
불러오기
승객ID를 문자형으로 바꾸기
클래스별 탑승객수
값의 유니크한 갯수 확인
합계
평균
최대, 최소값
표준편차
분산
특정 열만 집계
다중 그룹
데이터프레임으로 출력
as_index=False인 경우
집계 결과를 새로운 데이터프레임으로 선언하는 것이 편의상 좋음.
matplotlib
Jupyter Notebook에서 그래프를 더 선명하게 표시하기 위한 설정
%config InlineBackend.figure_format = 'retina'
선 그래프
히스토그램
bins = 데이터 구간을 n개로 나눔
alpha = 막대의 투명도
edgecolor = 막대의 아웃라인
여러 열 집계
평균 집계
최대값 집계
최소값 집계
개수 집계
agg 메소드로 열 하나에 대한 집계 한번에 수행
여러 열에 대해 여러 집계 한번에 수행
여러 열에 대해 각 열마다 다른 집계를 수행
실습
pandas 라이브러리에서 Axes 객체를 활용하지 않고 plot 메소드를 통해 간단한 차트를 그린 사례
matplotlib 라이브러리를 호출한 후 Axes 객체의 show 메소드를 사용하여 차트를 상세히 그린 사례
자주 쓰이는 라이브러리는 공식 홈페이지에서 메소드 및 객체 구조를 확인해두는 것이 좋을 것 같다.
전체 학생수 대비 합격 학생수를 구한 뒤 합격율을 구하여 이를 rank별로 표시.
pandas의 plot 메소드는 기본적으로 x축 값이 숫자일 경우, 그 값을 그대로 사용함
일부 열 이름 변경
모든 열 이름 변경
열 추가
insert()로 열 추가
isin 조건 메소드로 값 변경
열 삭제
삭제는 조심히 할 것.
열 하나 삭제
여러 열 삭제
map 메소드로 값 바꾸기
값 변경
replace 메소드는 맵핑이 안 되면 데이터를 그대로 둠. map은 맵핑이 안 되면 결측치가 됨.
범주값 만들기
cut 함수
my_bin과 my_label의 범위 개수가 같아야한다.
문제 1
문제 2
처음에 아래와 같이 코드를 짜서 틀렸다.
먼저 범위를 특정 열로 한정한 뒤에 groupby로 조건화를 했기 때문에 옳은 답을 얻을 수 없다.
나는 tip['total_bill'] 코드란: 불러올 값을 그 열로 한정한다는 의미가 아니라, 그 열이기도 하고, groupby의 조건과 겹치기도 하는 값을 구할 수 있을 줄 알고 그렇게 썼으나, 파이썬에게는 해당되지 않는다. 즉, 파이썬에서는 객체화하지 않고 동시에 명령할 수 없다.
이 부분이 나에게는 다소 stubborn하게 느껴진다. 데이터의 임의 범주를 굳이 객체화할 필요없이 가정하여 명령하는 것이 더 유연할 것이다.
객체 지향형 말고 절차적 또는 함수형 패러다임을 따르는 언어로는 C, C++, Go, JavaScript, Rust 등이 있다.
동시성 측면에서는 Go, Erlang, Rust, JavaScript(Node.js), C 등의 언어들이 효율적이며 객체 지향 개념을 사용하지 않고 동시 작업을 다룰 수 있다.
qcut 함수
실습
titanic 연령 그룹별 생존율 구하기
결측치란?
즉 결측치는 정확한 분석을 방해한다.
결측치를 만나면 오류가 발생하는 함수도 있다.
결측치 처리가 중요한 이유는?
결측치 확인
isnull(), notnull() 메소드 사용
isnull()
notna(), notnull()
결측치 비율
결측치 제거
결측치 있는 행 제거
subset으로 특정 열에서 결측치 있는 행 제거
결측치 있는 열 제거
결측치 채우기
해당 열의 평균값으로 채우기
특정값으로 채우기
직전 행의 값 또는 바로 다음 행의 값으로 채우기
바로 앞이나 바로 뒤의 값이 결측치면 결측치가 채워짐
값이 맨앞이거나 맨뒤인 경우 채워지지 않음
라이브러리 업데이트 경고 등 무시하기
선형보간법으로 채우기
가변수(Dummy Variable) 만들기