[데이터 전처리] 데이터 정렬과 인덱싱

Bpius·2023년 10월 2일
0

데이터 EDA & 전처리

목록 보기
4/46
post-thumbnail

데이터 정렬

1. Series 정렬

sort_values()

Series 데이터를 정렬할 때 쓰이며, 주요 인자는 다음과 같다.
ascending : True(오름차순), False(내림차순)
key : 정렬 기준(보통 lambda() 함수 사용)
na_position : 결측치의 배치 위치(first, last)

Series를 하나 생성해서 확인해보자.

내림차순으로 정렬하고 결측치 값을 제일 앞으로 보도록 하자.

sort_counts()

Series 데이터의 구성 요소를 빈도 순서대로 출력할 때 쓰이며, 주요 인자는 다음과 같다.
ascending : True(오름차순), False(내림차순)
normalize : default=False(빈도), True(비율)

내림차순으로 값의 빈도를 확인해 보자.

빈도가 아닌 비율로 확인해 보자.(전체 비율의 합은 1이다.)

unique()

생성된 변수들의 분포 및 유니크 값을 확인.

2. DataFrame 정렬

DataFrame의 정렬은 Series와 비슷하게 작동한다.

sort_values()

데이터를 임시로 생성해서 정렬을 살펴보자.

'A'컬럼을 기준으로 오름차순 정렬해보자.

drop_duplicates

데이터 프레임의 중복 데이터를 제거할 때 쓰이며 주요 인자는 다음과 같다.
subset : default는 모든 컬럼, 혹은 중복을 없앨 기준이 되는 컬럼
keep : default는 'first'(처음 행을 남기고 다음 중복부터 없앤다.) 어느 부분을 남길지 결정('first'(처음), 'last'(마지막), 'false'(중복행 모두))

'A'행을 기준으로 중복되는 데이터를 삭제하고 처음의 데이터만 남겨보자.

'A'행을 기준으로 중복되는 데이터를 삭제하고 마지막 데이터만 남겨보자.

sort_counts()

데이터 프레임 전체를 사용하지 않고 데이터 프레임의 컬럼을 선택하여 Series로 변환 후 사용한다.

unique()

데이터 프레임 전체를 사용하지 않고 데이터 프레임의 컬럼을 선택하여 Series로 변환 후 사용한다.

데이터 인덱싱

loc & iloc
참고 : loc와 iloc

loc는 명시적인 인덱스 행/열 이름을 사용하고 iloc는 암묵적 인덱스인 행/열의 순서에 따라 사용하며, 이 인덱스를 사용하여 슬라이싱을 한다.

bool

bool을 통해 브로드캐스팅 연산 및 마스킹을 한다.

제품이 16 인것을 확인해보자.

loc인덱싱으로 제품이 16인 것만 살펴보면, True를 반환하는 데이터 프레임 부분만 가져온다.

bool의 'or & and 연산'을 이용하여 조건 중에서 True인 데이터만 가져올 수 있다.

str

데이터 프레임에서 Series로 슬라이싱하여 str로 불러온 후, 분할 및 통합하여 데이터를 원하는 형식으로 만들 수 있다.

다음은 시리얼 번호(공정-제품-식별)가 붙어 있다.
어느 공정에서 어떤 제품의 양품/불량 여부를 확인하려 한다.

불량 여부를 확인하고

시리얼 번호를 분할하여 각각 확인해 보자. split('-') 하이픈을 기준으로 나누면 각 행별 리스트로 반환한다.

이것을 리스트가 아닌 데이터 프레임 형식 그대로 분할하여 불러오면 더욱 쉽게 분석이 가능하다.
split() 인자에 expand(default=False)에 True를 주면 데이터 프레임 형식으로 반환한다.

기존의 데이터에 시리얼 정보를 합친 후,

pivot_table을 이용하여 불량 여부를 확인해보자.

양품도 확인해 보자.

profile
데이터 굽는 타자기

0개의 댓글