AI 관련 자격증

AICE Associate 자격증 - 요약본 (1) 데이터 처리

수진97 2025. 10. 18. 17:32

안녕하세요~!

오늘은 AICE Associate 자격증 시험을 앞두고 공부한 내용을 요약해서 올려보려고 합니다.

이 글은 어느 정도 파이썬과 머신러닝, 딥러닝에 대한 기초가 있으신 분들이 요약본으로 간단하게 정리하고 싶은 분들께 추천드립니다!

기초 내용을 공부하고 싶으신 분들은 제 티스토리에 다른 글들 보시면 자세히 설명해 놓았으니 참고해 주시기 바랍니다.

 

1. 데이터 처리

 

(1) 조회 방법 정리

 

- df.loc[:, 'score'] -> df['score']       // 기본적으로 행 생략 불가 -> 행 생략하고 싶을 시, loc 제외하고 쓸 수 있음.

- df.loc[:, ['name', 'sex'] ] -> df[ ['name', 'sex'] ]

 

 

- df.loc[1, :] -> df.loc[1]                  // 열은 생략이 가능

- df.loc[[1,2,3], :] ->df.loc[ [1,2,3] ]

 

 

- df.loc[df['score'] > 60, :] -> df.loc[ df['score'] > 60 ]   // 조건이 들어갈 때도 마찬가지로 열은 생략 가능

- df.loc[ (df['score'] > 60) & (df['age'] > 20) , :] -> df.loc[ (df['score] > 60) & (df['age'] > 20) ]

 

 

- df.loc[(df['score'] >= 60 ) & (df['age'] < 20), ['name', 'age', 'score']]   //행,열 모두 값이 있기 때문에 생략 불가

(해석 : 점수가 60점 이상이고, 나이가 20 미만인 데이터를 name, age, score 컬럼만 보여주기)

 

 

- df.loc[ df['score'].between(30, 70), : ] -> df.loc[ df['score'].between(30, 70) ]  // 30 ~ 70점 사이 데이터 조회

- df.loc[ df['score'].isin([30,70]), : ] -> df.loc[ df['score'].isin([30,70]) ]                //30 혹은 70점 데이터 조회

 

 

 

 

(2) 열 이름 변경

df.columns = [리스트]

 (모든 열 이름 변경 시 사용합니다)

 

 

- df.reame( columns = {'기존 열 이름1' : '변경할 열 이름1', ' 기존 열 이름2' : ' 변경할 열 이름2' ... } , inplace=True )

 (지정한 열 이름 변경)

 

 

 

 

(3) 열 추가

- 기존에 없는 열 변경 = 추가 (맨 뒤에 추가됨, 원하는 위치에 추가 불가)

- 기존에 있는 열 변경 = 수정

 

 

- 원하는 위치에 열 추가 방법 : insert(열 번호, '추가할 열 이름', 추가한 열에 넣어줄 데이터)

 

 

 

 

 

(4) 열 삭제

- drop('열 이름', axis=1)  혹은  drop(columns='열 이름')

 

- axis=0 : 행 삭제(기본값)

- axis=1 : 열 삭제

 

 

- 열 2개 삭제(리스트로 묶어주기)

 

 

 

 

(5) 범줏값 변경

 

* 범주형 값을 다른 값으로 변경 메서드 2가지

- map() : 매핑되지 않으면 NaN

- replace() : 매핑되지 않으면 원래값

 

- 먼저 data['group'] 이라는 범주형 데이터 열 추가

 

 

- 매핑되지 못한 값 확인을 위해 일부 값 C로 변경

 

 

- map() 적용 결과, group 열 값이 C였던 열은 결측치가 됨.

 

 

- replace() 적용 결과, group 열 값이 C였던 열은 원래 값이 됨.

 

 

 

 

(6) 데이터프레임 합치기

- concat()

인덱스 값 기준으로 두 데이터프레임 합치기 가능

 

* 방향 옵션

- axis=0(기본값) : 행으로 합치기

- axis=1 : 열로 합치기


* 방법 옵션

- outer : 모든 행과 열 합치기

- inner : 매핑되는 행과 열만 합치기

 

- ignore_index=True : 기존 인덱스 무시하고 0부터 다시 인덱스 재생성

 

 

 

(실습)

* df1은 2015 ~ 2025년도 데이터

* df2는 2010 ~ 2020년도 데이터

 

- axis=1 이므로 df1의 name 열 옆에 df2의 name열이 붙어서 하나의 테이블로 합쳐짐.

- outer 옵션을 주었기 때문에 모든 행과 열이 합쳐짐.

그래서 df1에 없는 2010~2014년 데이터는 NaN

df2에 없는 2021~2025년 데이터는 NaN

 

 

- axis=0의 경우, 행이 합쳐지기 때문에 df1의 모든 행과 df2의 모든 행이 출력됨.

아래 예제에서는 다른 컬럼이 없어 단순히 모든 행이 출력되었지만, 

서로 다른 컬럼이 존재할 경우, 해당 컬럼에 대해 양 테이블에서 존재하지 않는 값의 경우 outer 옵션에 의해 각각 NaN 값 출력됨.

 

 

- axis=1 옵션이므로 df1의 name열과 df2의 name 열이 나란히 붙어 하나의 테이블로 합쳐짐.

- inner 옵션을 주었기 때문에 모든 행이 아닌, df1과 df2가 서로 매핑되는 행만 출력됨

 

 

 

- merge() : 두 데이터프레임을 지정한 키 값을 기준으로 병합

 

- on 옵션에 병합 기준이 될 키 값(열 이름)을 써줌.

- how 옵션은 left / right / outer / inner 를 써줌.

 

DB에서 join 과 비슷하게 작동한다고 생각하면 됨.

- left join은 왼쪽 데이터프레임을 기준으로 병합,

- right는 오른쪽 데이터프레임을 기준으로 병합.

 

 

* key를 'year' 열로 잡고 outer join

 

 

* key를 'year' 열로 잡고 inner join

 

 

 

지금까지 데이터 처리에 관해 내용을 정리해 보았습니다.

다음 포스팅에는 데이터 분석과 관련해서 요약본을 포스팅해보겠습니다!