≫ Index 객체
RDBMS의 Primary Key와 같이 DataFrame, Series의 레코드를 고유하게 식별하는 객체이다.
DataFrame.index, Series.index 속성을 통해 추출이 가능하다.
titanic_df 데이터프레임에서 인덱스 객체를 추출해보자.
한 번 만들어진 Index 객체는 indexs[0] = 5 처럼 변경할 수 없으니 주의해야 한다.
Series 객체에서 Index 객체는 연산에서 제외되고 오직 식별용으로만 사용된다.
reset_index() 메서드를 수행하면 연속 int 숫자형 데이터로 만들 수 있다.
단, Series에 적용하면 기존 인덱스가 칼럼으로 추가되고, 칼럼이 2개가 되어 DataFrame이 반환된다.
파라미터 중 drop=True을 설정하면 기존 인덱스는 새로운 칼럼으로 추가되지 않고 드롭되어 Series를 유지할 수 있다.
데이터 셀렉션 및 필터링
넘파이의 경우, [ ] 연산자 내 단일 값 추출, 슬라이싱, 팬시 인덱싱, 불린 인텍싱
판다스의 경우 ix[ ], iloc[ ], loc[ ] 연산자
* DataFrame과 Seires끼리도 달라지는 기능이 있음. 여기서는 DataFrame 기준 (명칭 기반 인덱싱)
≫ [ ] 연산자
판다스에서 [ ] 연산자는 칼럼만 지정할 수 있는 칼럼 지정 연산자이다.
칼럼명을 지정하지 않고 titanic_df['0'] 같이 리스트 객체를 이용하면 오류가 발생한다.
인덱스 형태로 변환 가능한 titanic_df[0:2]이나 불린 인덱싱 titanic_df[titanic_df['Pclass'] == 3].head(3)은 가능하다.
≫ ix[ ] 연산자
넘파이 ndarray의 [ ] 연산자와 유사한 기능을 제공한다.
위치 기반 인덱싱과 명칭 기반 인덱싱을 모두 적용할 수 있다.
ix[ 0 , 'Pclass']와 같이 인덱스값, 칼럼 명/칼럼 위치 값을 입력해 원하는 위치의 데이터를 추출할 수 있다.
칼럼 명으로 지정하는 처리 방식은 칼럼 명칭 기반 인덱싱, 후자의 경우 칼럼 위치 기반 인덱싱이다.
두 가지 모두 제공하면서 코드 혼란 때문에 사라짐!
≫ iloc[ ] 연산자
위치 기반 인덱싱으로, 행과 열 값으로 정수가 입력된다.
integer, integer형의 슬라이싱, 팬시 리스트 값을 입력해줘야 한다. 불린 인덱싱은 제공하지 않는다.
데이터프레임.iloc[0,0]의 형태로 추출한다.
≫ loc[ ] 연산자
명칭 기반 인덱싱으로, 인덱스나 칼럼의 명칭을 기반으로 위치를 지정하는 방식이다.
슬라이싱을 '시작점:종료점'으로 지정할 때, 종료 값 -1이 아닌 종료 값까지 포함하는 것에 주의하자.
데이터프레임.loc['인덱스값, '칼럼 명']의 형태로 추출한다.
≫ 불린 인덱싱
[ ], ix[ ], loc[ ]에서 공통으로 지원
개별 조건은 ()로 묶고, 복합 조건 연산자를 사용하면 된다.
- and 조건 : &
- or 조건 : |
- not 조건 : ~
'머신러닝' 카테고리의 다른 글
[Pandas] apply lambda 식으로 데이터 가공 (0) | 2021.06.01 |
---|---|
[Pandas] 정렬, Aggregation, GroupBy, 결손 데이터 (0) | 2021.05.26 |
[OpenPose/텐서플로우] 윈도우에서 OpenPose 환경 구성 :: 근데 아나콘다를 곁들인 (0) | 2021.05.19 |
[Pandas] DataFrame 객체 (0) | 2021.05.19 |
[numpy] ndarray, 행렬 정렬 (0) | 2021.05.05 |