행 선택
행의 인덱스 레이블과 정수 위치를 기준으로 필요한 행과 열 선택.
실습 준비
import pandas as pd
sales = pd.read_excel("sales.xlsx")
🤖 AI 프롬프트
sales.xlsx를 판다스로 읽고 sales의 행 인덱스를 확인하는 파이썬 코드를 작성해줘.
인덱스
sales.index: 행의 인덱스 확인. 인덱스는 각 행을 식별하는 레이블.
sales.index # 행 인덱스
실행 결과
RangeIndex(start=0, stop=6, step=1)
이 데이터의 인덱스는 0부터 5까지. stop=6은 끝값 6을 포함하지 않는다는 의미.
인덱스로 선택하기
🤖 AI 프롬프트
sales에서 인덱스 레이블이 0인 행 선택해줘.
.loc[인덱스]: 인덱스 레이블을 기준으로 행 선택. 0번 인덱스 행을 선택하면 노트북 판매 내역 표시.
sales.loc[0]
실행 결과
product 노트북
region 서울
qty 3
unit_price 1200000
Name: 0, dtype: object
3번 인덱스 행을 선택하면 마우스 판매 내역 표시.
sales.loc[3]
실행 결과
product 마우스
region 대전
qty 10
unit_price 45000
Name: 3, dtype: object
여러 행 선택
🤖 AI 프롬프트
sales에서 인덱스 레이블이 3, 4, 5인 행을 선택해줘.
.loc[[인덱스1, 인덱스2, ...]]: 여러 인덱스를 리스트로 지정.
sales.loc[[3, 4, 5]]
실행 결과
product region qty unit_price
3 마우스 대전 10 45000
4 웹캠 부산 4 110000
5 헤드셋 서울 6 95000
:으로 인덱스 범위를 지정해도 선택 가능. .loc의 범위 선택은 시작과 끝 레이블 모두 포함.
sales.loc[3:5]
실행 결과
product region qty unit_price
3 마우스 대전 10 45000
4 웹캠 부산 4 110000
5 헤드셋 서울 6 95000
3, 4, 5번 인덱스의 세 행 선택.
행과 열 선택
🤖 AI 프롬프트
sales에서 인덱스 레이블이 3부터 5까지인 행의 qty 열만 선택해줘.
.loc[행, 열]: 행 인덱스와 열 이름을 함께 지정. 다음은 3~5번 인덱스 행의 수량만 선택.
sales.loc[3:5, "qty"]
실행 결과
3 10
4 4
5 6
Name: qty, dtype: int64
위치로 선택
.iloc: 0부터 시작하는 정수 위치를 기준으로 행과 열 선택.
먼저 3~5번 인덱스의 행으로 selected 데이터 프레임 생성.
selected = sales.loc[3:5]
selected
실행 결과
product region qty unit_price
3 마우스 대전 10 45000
4 웹캠 부산 4 110000
5 헤드셋 서울 6 95000
selected의 첫 번째 행은 인덱스 레이블이 3. .loc[3]으로 선택.
selected.loc[3]
실행 결과
product 마우스
region 대전
qty 10
unit_price 45000
Name: 3, dtype: object
같은 행의 위치는 0번째이므로 .iloc[0]으로도 선택 가능.
selected.iloc[0]
실행 결과
product 마우스
region 대전
qty 10
unit_price 45000
Name: 3, dtype: object
sales에서 행 위치 3과 열 위치 0을 지정하면 product 열의 마우스 반환.
sales.iloc[3, 0]
실행 결과
'마우스'
위치로 범위 선택
🤖 AI 프롬프트
sales에서 정수 위치 3부터 5 직전까지의 행을 선택해줘.
.iloc의 슬라이스는 시작 위치를 포함하고 끝 위치는 제외.
sales.iloc[3:5]
실행 결과
product region qty unit_price
3 마우스 대전 10 45000
4 웹캠 부산 4 110000
3, 4번째 위치의 두 행 선택. .loc[3:5]는 인덱스 5도 포함하고, .iloc[3:5]는 위치 5를 제외.
퀴즈
행과 열의 레이블을 기준으로 데이터를 선택하는 인덱서는 무엇인가요?
퀴즈를 풀려면 대화형 기능을 불러와야 합니다.