일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 실기1유형
- 정처기
- 데이터분석
- 데이터자격증
- 데이터분석전문가
- 빅데이터분석기사 실기
- 빅분기1유형
- 데이터리안
- 컨버티드
- boostcourse
- 우리금융캐피탈면접
- 메타코드
- MySQL
- 메타코드m
- 우금캐면접
- 투자마인드
- 데이터넥스트레벨챌린지
- 데이터분석마인드셋
- 빅분기실기
- 데이터분석가
- 빅분기
- 빅데이터분석기사
- 우리금융캐피탈
- 통계독학
- 빅분기 실기
- 빅데이터분석기사실기
- 투자도서
- sql
- 우금캐
- BNK저축은행
- Today
- Total
하파와 데이터
[빅분기] 실기 1유형- 데이터선택2; loc와 iloc 본문
이전에는 컬럼이름 또는 리스트형태의 컬럼이름으로 데이터의 부분집합을 보았다.
그렇다면, 특정 조건을 통해서 데이터를 추출하는것은 가능할까?
예를들면, 100번행부터 150번행까지만 보고싶을때,
또는 'A'컬럼의 값중 양수를 갖는 데이터만을 보고싶을때
이럴때 사용하는 것이 loc, iloc이다.
이 둘은 서로 용법과 방법이 매우 비슷한데,
아주 작은 차이만 가지고 있다.
그래서 이름도 i 하나만 차이가 나지 않은가!
0. 전제
jupyter notebook이 실행된 위치에 data라는 폴더가 있고, 그 안에 iris.csv라는 파일이 존재한다.
1. loc을 이용해서 문자 또는 조건으로 데이터를 선택! (라벨 기반 접근)
loc는 행 또는 열의 이름을 기반으로 데이터에 접근한다.
import pandas as pd
# 데이터 불러오기
df = pd.read_csv('data/iris.csv')
# 행 0~10까지, 'sepal'열만 출력
df.loc[0:10,['sepal_width', 'sepal_length']]
참고할 점은, 행을 지정하는 구간, 열을 지정하는 구간 모두 생략이 가능하다는 점!
즉, df.loc[:,['sepal_width']](행생략)가 가능하고, df.loc[0:10, :](열생략)도 가능
그리고 df.loc[:,:]도 가능하다 --> 모두 생략하면 전체 데이터프레임이 출력됨(사실 이건 그냥 df하는것과 동일하니 의미가..)
두번째 참고점은 행의 위치를 설정할때, 일바적인 python의 상식과 달리 0:10으로 인덱싱을 하면, 정말로 0~10까지 출력한다.
그냥 생각컨데 0~9까지 나올것이라고 생각하지만, 그렇지 않다. 이점을 조심할 것!
그렇다면 조금 활용해서 조건을 줘보면 어떨까.
예를들어, variety가 Setosa인 데이터 가운데, sepal_width만 보고 싶어!! 이럴때는 어떻게 해야할까?
이것 역시 loc를 사용하면 금세 해버린다!
import pandas as pd
df = pd.read_csv('data/iris.csv')
df.loc[df['variety']=='Setosa', ['sepal_width', 'variety']].head()
행 위치에 내가 원하고자 하는 조건을 입력하면 --> 조건에 맞는 행들을 찾아서 행 위치를 지정하고
열조건에는 내가 출력하고자 하는 열의 이름을 입력하면 loc를 활용한 조건 데이터 추출을 할 수 있다.
2. iloc를 활용한 데이터 선택(정수기반 접근)
loc와 iloc의 가장 큰 차이는 문자로 접근하는지 또는 정수(숫자)로 접근하는지에 차이가 있다.
iloc는 숫자!!!!!
이것만 기억하면 된다!
import pandas as pd
df = pd.read_csv('data/iris.csv')
# 0:2행까지, 0:2열까지
df.iloc[0:3,0:3]
iloc와 loc의 큰 차이점 중 하나는, 인덱싱을 할때의 차이다.
앞서 언급한 것처럼 loc는 인덱싱 범위를 지정할때, 마지막 숫자를 포함하고
iloc은 일반적인 python 문법과 동일하게 마지막 숫자를 포함하지 않는다.
즉, 우리가 신경써야하는 것은 loc에서 인덱싱 범위 설정이다!
'자격증 > DATA' 카테고리의 다른 글
[빅분기] 실기 1유형- 데이터 변경(수정, 추가, 삭제) (0) | 2024.11.29 |
---|---|
[빅분기] 실기 1유형- loc와 iloc 실습해보기! (0) | 2024.11.27 |
[빅분기] 실기 1유형- 데이터 선택; 부분집합(SUBSET) (0) | 2024.11.27 |
[빅분기] 실기 1유형- 상관계수 (0) | 2024.11.27 |
[빅분기] 실기 1유형- 수치형 데이터 분석(개수, 최소, 최대, 평균, 합계, 중앙값, 4분위, 분산, 표준편차,왜도, 첨도) (0) | 2024.11.27 |