일부 데이터가 삭제됐으므로 원본 데이터 다시 로딩 후 객체 추출
한 번 만들어진 dataframe 및 series의 객체는 함부로 변경 가능 index 값을 변경하는 작업 수행 x.
Series 객체는 index 객체를 포함하지만 series 객체에 연산 함수를 적용할 때 index는 오직 식별용으로만 사용됨.
dataframe 및 series에 reset_index() 메서드 수행하면 새롭게 인덱스를 연솟 숫자형으로 할당하며 기존 인덱스는 'index'라는 새로운 칼럼명으로 추가
reset_index()는 인덱스가 연속된 int 숫자형 데이터가 아닐 경우에 이를 연속 int 숫자형 데이터로 만들어줄 때 사용.
데이터 셀렉션 및 필터링
넘파이와 상당히 유사한 부분도 있고 다른 부분도 있어서 혼동하기 쉬움
어떠한 차이가 있는지 보자
dataframe 간 데이터 셀렉션에서 가장 유의해야할 부분은 '[]' 연산자다.
(1). dataframe 바로 뒤의 [ ] 내 입력 값은 칼럼명을 지정해 칼럼 지정 연산에 사용하거나 불린 인덱스 용도로만 사용해야 한다
(2) dataframe[0:2]와 같은 슬라이싱 연산으로 데이터를 추출하는 방법은 사용하지 않는 게 좋음
DataFrame ix[] 연산자
행 위치 지정으로 인덱스값0, 열 위치 지정으로 원하는 위치의 데이터를 추출할 수 있음.
그러나 혼돈을 줘 향후 사라질 예정. loc과 iloc[ ]이 새로 만들어짐.
명칭 기반 인덱싱 연산자: loc[ ]
위치 기반 인덱싱 연산자: iloc[ ]
DataFram iloc[ ] 연산자
위치 기반 인덱싱만 허용하기 때문에 행과 열 값으로 정수형의 슬라이싱, 팬시 리스트 값을 입력해줘야함
위치 인덱싱이 아닌 명칭을 입력하거나 문자열 인덱스를 행 위치에 입력해도 오류 발생
DataFrame loc[ ] 연산자
명칭 기반으로 데이터를 추출해준다. 행 위치는 DataFrame index값을, 그리고 열 위치에는 칼럼명을 입력해준다.
loc[0,'name']을 호출하면 인덱스값이 0인 행이 없으므로 오류 반환
ix, iloc, loc의 문제점과 주의할 점 정리
(1) 가장 중요한 것은 명칭 기반 인덱싱과 위치 기반 인덱싱의 차이를 이해하는 것. dataframe의 인덱스나 칼럼명으로 데이터에 접근하는 것은 명칭 기반 인덱싱이다. 0부터 시작하는 행, 열의 위치 좌표에만 의존하는 것이 위치 기반 인덱싱이다.
(2) ix[ ]는 명칭 기반 인덱싱과 위치 기반 인덱싱을 모두 적용가능 dataframe의 인덱스가 숫자형일 경우 행 위치에 오는 숫자는 위치 기반 인덱싱이 아니라 명칭 기반 인덱싱의 dataframe 인덱스를 가리킨다.
(3) iloc[ ]는 위치 기반 인덱싱만 가능하다. 따라서 행과 열의 위치값으로 정수형값을 지정해 원하는 데이터를 반환한다.
(4) loc[ ]는 명칭 기반 인덱싱만 가능하다. 따라서 행 위치에 dataframe 인덱스가 오며 열 위치에는 칼럼 명을 지정해 원하는 데이터를 반환한다
(5) 명칭 기반 인덱싱에서 슬라이싱을 시작점:종료점으로 지정할 때 시작점에서 종료점을 포함한 위치에 있는 데이터를 반환한다.
불린 인덱싱
타이타닉 데이터 세트를 dataframe으로 로드하고 승객 중 나이가 60세 이상인 데이터를 추출해보자
세 개만 추출해보자
'인공지능' 카테고리의 다른 글
인공지능: CNN, RNN, LSTM (0) | 2021.08.06 |
---|---|
인공지능 스터디 #2 (0) | 2021.05.19 |
openpose 사용 환경 설정 (0) | 2021.05.19 |
인공지능 5주차 (0) | 2021.02.08 |
인공지능 4주차 (0) | 2021.02.01 |