-
[ About _ loc , iloc / drop , duplicated , drop_duplicates ]About_Datascience/DataFrame 2022. 12. 26. 10:34
1. loc 과 iloc
데이터 프레임에서 특정 행(row)나 열(column)을 골라낼 때 사용하는 방법으로 loc와 iloc이 있다.
loc 은 location의 약자로 데이터 프레임의 행 또는 컬럼의 label이나 boolean array로 인덱싱하는 방법이다.
즉 사람이 읽을 수 있는 label 값으로 특정 값들을 골라오는 방법이라 할 수 있다.
-기본적인 사용방법-
df . loc [ 행 인덱싱 값, 열 인덱싱 값]
간단한 데이터로 loc 사용법을 알아보자. loc 예시 loc[ ] 안에 원하는 row 이름과 column이름을 넣어주면 된다.
위의 경우에는 Jacket 부터 Shirt 까지 , 사이즈는 M 부터 XS 까지 가져와줘 ! 라는 의미로 슬라이싱을 한 결과이다.
loc 예시 2 loc과 조건식을 이용하여 원하는 데이터를 뽑아올 수도 있다.
위의 경우 사이즈가 XL 인 것들 중 값이 5000이상인 것들의 값을 6000으로 바꾸겠다는 의미이다.
다음으로 iloc은 integer location의 약자로 데이터 프레임의 행이나 컬럼의 순서를 나타내는 정수로 특정 값을 추출해오는 방법이다. loc은 컬럼명을 직접 적거나 특정 조건식을 써줌으로써 사람이 읽기 편한 방법으로 데이터에 접근하는 방법이었다면, iloc은 컴퓨터가 잃기 편한 방법(숫자)로 데이터가 있는 위치에 접근한다고 생각하자.
-기본적인 사용방법-
df. iloc [ 행 인덱스, 열 인덱스 ]
iloc 예시 위의 경우 또한 iloc으로 슬라이싱을 하여 원하는 데이터를 추출해보았다.
[ : , 1:3 ] 의 의미는 : 전체 행을 가져오고 인덱스 번호 1부터 3직전까지의 열을 가져와라 ! 라는 의미이다.
2. drop / drop_duplicated / duplicated
우선 drop 같은 경우는 필요없는 데이터를 삭제할 때 사용한다. axis를 통해 행, 열 단위로 삭제가 가능하다.
다음 duplicated 같은 경우 데이터의 중복 여부를 True / False 값으로 반환해주는 역할을 한다.
이어서 drop_duplicated 같은 경우는 중복된 데이터를 삭제하는 역할을 해준다.
이 때 들어가는 keep 이라는 요소가 있는데 keep ='first' 는 처음 나온 중복값은 중복이 아니다. 이 다음에 나온 것들이 중복이다 ! 라는 것을 의미하여 첫 중복값에는 False를 반환하지만 다음 중복값에는 True를 반환하게 된다.
반대로 keep='last' 는 첫번째 중복값이 중복값이고 그 이후에 나온 중복값이 중복이 아니다 ! 라는 것을 의미하여 위와는 반대로 True , False 를 반환하게 된다.
예시로 살펴보도록 하자.
사용할 간단한 데이터프레임 drop 사용 예시 위의 경우에 color 라는 컬럼이 삭제된 것을 볼 수 있다.
행과 열단위로 삭제할 수 있다고 하였는데 axis 값을 1로 두면 column 세로로 삭제 반대로 0의 경우 index 가로로 삭제된다고 알아두면 좋을 것 같다 ! 당연하게도 [ ' color ' ] 자리에 color의 순번인 [2] 를 써도 같은 결과가 나올 것이다.
duplicated 사용 예시 duplicated 와 keep='first'를 사용하였을 때의 결과이다.
위에서 말한대로 duplicated 는 True / False 값을 반환해준다.
또한 데이터를 살펴보면 product_type 데이터가 0번 인덱스와 2번 인덱스가 'Jacket'으로 중복되는 값이 있다.
이를 keep ='first'를 이용하면 0번 인덱스는 중복 값이 아니다 ! 즉, False 값을 반환해주는 것을 확인할 수 있고, 2번 인덱스는 중복값이다 ! 즉, True를 반환해주는 것을 알 수 있다.
drop_duplicates , keep='first' 일 때 drop_duplicates는 duplicated 에 drop만 붙인 것으로 중복 값을 삭제한다는 의미이다.
keep ='first' 일 때 0번 인덱스가 아닌 2번 인덱스가 삭제된 것을 확인할 수 있고,
drop_duplicates , keep='last' 일 때 keep='last' 일 때 2번 인덱스가 아닌 0번 인덱스가 삭제된 것을 확인할 수 있다.