2024. 11. 6. 23:27ㆍ빅데이터 분석기사
1. loc
1-1. 인덱싱
loc는 location의 약자로 인덱스명 또는 컬럼명을 통해 데이터를 접근한다.
df.loc [인덱스 명]을 통해 해당 인덱스 데이터에 접근할 수 있다.
import pandas as pd
df = pd.read_csv('cafe.csv') # cafa.csv 만드는 방법 참고 https://kdh9797-devwiki.tistory.com/77
df.head()
df.loc[0]
특정 행과 특정 열의 교차점에 있는 단일 값을 출력할 때는 콤마로 구분해 찾을 수 있다.
df.loc[1, "가격"]
1-2. 슬라이싱
loc [행 범위 또는 특정 행, 컬럼 (열)의 범위 또는 특정 컬럼]을 활용한다.
범위는 '시작 인덱스 : 끝 인덱스'로 구간을 나타낸다.
시작 인덱스를 생략하면 처음부터 끝 인덱스까지이다.
끝 인덱스를 생략하면 시작 인덱스부터 마지막까지이다.
시작과 끝 인덱스를 생략하여 ':'만 남는다면 전체를 의미한다.
df.loc[:, '가격']
컬럼의 범위를 '메뉴'에서 '칼로리'까지로 했을 때 '메뉴'부터 '칼로리' 사이에 있는 컬럼도 모두 포함된다.
df.loc[2, '메뉴':'칼로리']
특정 컬럼을 선택해 슬라이싱 하고 싶다면 컬럼을 리스트 형태로 해서 원하는 컬럼명을 넣으면 된다.
df.loc[2, ['메뉴', '칼로리']]
인덱스도 구간으로 설정할 수 있다.
df.loc[1:3, '메뉴':'가격']
2. iloc
2-1. 인덱싱
loc에서 대괄호 안의 0은 0번 인덱스를 말한다.
따라서 순서가 변경되더라도 인덱스명이 0이면 0번 인덱스의 데이터를 인덱싱 한다.
iloc에서 대괄호 안의 0은 순서를 의미한다.
0은 첫 번째 행, 1은 두 번째 행... 을 의미한다.
df.iloc[0]
iloc을 사용해서 '카페라떼'를 선택하는 방법은 다음과 같다.
df.iloc[0,0]
2-2. 슬라이싱
특정 값만 출력할 때도 인덱스 번호를 활용한다.
전체 메뉴의 가격 데이터만 슬라이싱 하는 방법은 다음과 같다.
df.iloc[:, 1]
iloc의 슬라이싱을 활용해 iloc 인덱스 번호 2의 메뉴와 가격을 출력하자.
df.iloc[2, :2]
※ loc와 iloc 범위 차이
방식 | 범위 | 예시 | |
loc | 인덱스명, 컬럼명 | 끝 인덱스 포함 | [0:2]일 때 2 포함 (0, 1, 2) |
iloc | 인덱스 번호 (위치 숫자), 컬럼 번호 (위치 숫자) 번호는 0부터 시작. |
끝 인덱스 포함 X (끝 인덱스 - 1) |
[0:2]일 때 2 미포함 (0, 1) |
예시)
# loc
df.loc[2:3]
# iloc
df.iloc[1:3]
'빅데이터 분석기사' 카테고리의 다른 글
[빅분기 실기] 판다스 (pandas) 값 변경. 문자열 (0) | 2024.11.09 |
---|---|
[빅분기 실기] 판다스 (pandas) 필터링, 결측치 처리 (0) | 2024.11.09 |
[빅분기 실기] 판다스 (pandas) 데이터 추가, 변경. 정렬 (0) | 2024.11.09 |
[빅분기] 판다스 (pandas) - 탐색적 데이터 분석 (EDA). 자료형 변환. 컬럼 추가. 데이터 삭제 (0) | 2024.11.02 |
[빅분기 실기] 판다스 (Pandas) - 데이터 프레임과 시리즈. 데이터 저장 및 불러오기 (0) | 2024.11.02 |