본문 바로가기
데이터분석/Pandas&Numpy

pandas iloc, loc, boolean Indexing/Slicing

by ADELA_J 2023. 7. 6.

< DataFrame iloc [ ] >

- 위치 기반 인덱싱 방식, 정숫값 또는 정수형의 슬라이싱, 팬시 리스트 값을 입려해줘야함.

 

* 이 데이터로 해보자

 

▶ 여기서 첫번째 행, 첫 번째 열의 데이터를 iloc [] 를 이용해 추출해 보니까 이렇게 나온다.

▷ 하지만 이름이나 컬럼명을 입력하면 오류가 발생한다. 인덱스 값을 입력해도 마찬가지 

▶ 위치 정숫값을 이용해서 슬라이싱해서 다양하게 데이터 추출 가능!

 

▶ 열 위치에 -1 을 가져와서 마지막 열 데이터 가져오는 것도 가능. 


<DataFrame loc [] 연산자>

- 명칭 기반으로 데이터 추출. loc [ 인덱스값, 컬럼명]과 같은 형식으로 데이터 추출. 

 

▶ 슬라이싱할때 정수값은 0:3 이면 0부터 2까지를 의미하지만, loc [ ] 슬라이싱에는 종료값까지 포함.

▶ 슬라이싱은 물론, 불린 인덱싱도 가능하다

 

▶ 개별이나 여러 컬럼 값 전체를 추출한다면 DataFrame['컬럼명']으로도 충분하다.

    ▷ 하지만 행, 열 모두 사용해서 추출한다면 iloc, loc 를 써서 하는 것이 좋다. 

▶ iloc[ ] 는 위치 기반 인덱싱. loc [ ] 는 명칭 기반 인덱싱. 위치 기반은 0부터 시작한다는 것 중요

▶ iloc[ ] 는 행, 열  위치 값으로 정수형을 지정해 데이터를 반환

▶ loc[ ]는 행 위치에 DataFrame 인덱스가 오고 열 위치에는 컬럼명이 온다.

   ▷ 위치 기반은 종료점 -1 까지만 나오지만 명칭 위반은 종료 점까지 모두 나온다.

 


<불린 인덱싱>

- [ ] , loc[ ] 에서 공통으로 지원한다. iloc[ ] 는 안된다.

타이타닉 세트로 돌아와서..! (이데이터만질때가 젤 재밌더라ㅠ)

▶승객 중 나이(Age)가 60세 이상일 때 데이터 추출해봤다. [ ] 안에 불린 조건을 입력할 수 있다. 

그럼 True인 값들만 반환된다. 반환될때는 DataFrame이다.

▶ 불린 인덱싱과 컬럼이름만 불러와서 일부만 데이터 추출할 수 있다. 컬럼이 2개 이상이라면 [ ] 리스트형으로 사용하면 된다.

 

▶ loc[ ] 에서도 동일하게 적용된다. 

 


 

▶ 조건 여러개 해서 복합 조건 연산자도 된다!

▷ and 조건일 때는 & / or 일 때는  |  / Not 조건일 때는 ~ 이다.