2024. 1. 8. 04:10ㆍPandas
지난 글 마무리에 정리해본다고 한 loc 와 iloc의 차이를 정리해보도록 하겠습니다. 데이터는 저번에 이용했던 titanic 데이터를 그대로 이용하도록 하겠습니다. 우선 loc는 저번 글에서 다뤘기 때문에 이번 글에서는 iloc와 loc와의 차이점에 대해서 다뤄보겠습니다.
1. iloc
iloc는 integer location의 약자입니다. 그래서 integer가 들어간 만큼 데이터프레임에서 정수를 이용하여 특정 값을 추출하는 방법입니다. 사용 방법은 df.iloc[row,col]입니다.
그래서 titanic데이터에서 첫번째 행의 데이터를 가지고 오고 싶다면 다음과 같이 작성 가능합니다.
titanic.iloc[0]
그러면 첫번째 행의 모든 컬럼의 값들이 출력이 되고, 특정 컬럼의 값만 보고 싶다면 예를 들어 성별 컬럼만 보고 싶면 다음과 같이 추출이 가능합니다.
titanic.iloc[0,2]
그리고 행이나 열을 범위를 지정해서 가져오는 것도 가능합니다.
titanic.iloc[0:3,2:5]
하지만 iloc이 가능한것은 이렇게 정수형으로 접근을 했을때만 사용이 가능하고 다른 방식으로 접근을 하려고 하면 에러가 뜨게 됩니다.
[정수,정수]형태만 가능하다고 하는데 문자열을 넣어서 에러가 떳습니다.
2. 차이점
우선 가장 큰 차이점은 정수를 이용하여 추출하는지 문자열 또는 조건식을 이용하여 추출할 수 있는지 입니다. 물론 loc도 행 같은 경우는 df.loc[0] 해도 추출이 가능하긴 하지만 컬럼까지 정수를 이용하여 추출하고자 한다면 에러가 나옵니다.
그리고 iloc는 정수만 가지고 추출하기 때문에 코드를 보고 사람이 어떤 것을 추출하고자 하는지 알기 어렵습니다. 데이터를 처음 보는 사람의 입장에서 '2번째 컬럼만 추출해와'라고 했을 때 2번째 컬럼이 무엇인지 알 수 없습니다. 예시는 성별을 기준으로 했기때문에 결과가 'male'로 나왔으니 결과를 보고 성별 컬럼이구나 하고 유추할 수 있지만 만약 1이라고 나왔다면, 그건 전체 데이터의 컬럼을 조회해보지 않고는 알 수 없습니다.
'Pandas' 카테고리의 다른 글
[Pandas] DataFrame 병합,연결,결합 (1) | 2024.01.08 |
---|---|
[Pandas] 외부 파일 불러오고 내보내기 (1) | 2024.01.08 |
[Pandas] 기초 문법 (0) | 2024.01.06 |