import pandas as pd
import numpy as np
# 테스트용 데이터프레임 생성
df_test1 = pd.DataFrame({
'A': [1,2,3,4,5,6,7,8,9,10],
'B': [10,20,30,40,50,60,70,80,90,100],
'C': [2,4,6,8,10,12,14,16,18,20],
'D': [1,3,5,7,9,11,13,15,17,19],
'E': [10,15,20,25,30,35,40,45,50,55]
})
df_test1
1️⃣ 특정한 열 or 특정한 행만 선택하기
특정한 칼럼(열) 만 선택해서 출력하려면, 아래처럼 대괄호 2개 안에 칼럼명을 넣어주면 됩니다. 원하는 칼럼만 선택해서 원하는 순서대로 출력할 수 있습니다. (데이터프레임에 가위질을 여러번 할 수 있음!)
# 특정 칼럼만 선택해서 출력하기
df_test1[['칼럼명1', '칼럼명2', .. ,'칼럼명n']]
특정한 행(인덱스) 만 선택해서 출력하려면, 아래처럼 대괄호 1개 안에 범위를 넣어서 슬라이싱 해줘야 합니다. 칼럼과 다르게 연속적인 범위로만 선택할 수 있습니다. (데이터프레임에 가위질을 한번밖에 못함!) 행 1개만 출력하고 싶어도, 아래처럼 범위로 넣지 않으면 에러가 발생합니다.
# 슬라이싱: 특정 행범위를 선택해서 출력하기
# x번째 ~ y번째 행 출력하는 경우
df_test1[x-1 : y]
2️⃣ 특정한 행열을 동시에 선택하기 :: loc, iloc
행열 범위를 동시에 선택해서 데이터프레임을 잘라보고 싶은 경우라면, loc이나 iloc 메소드를 사용해야 합니다. - loc : 행열에 레이블로 접근합니다. 다시말해 사용자가 정해둔 인덱스명, 칼럼명으로 범위를 지정할 수 있습니다. - iloc : 행열에 인덱스값으로 접근합니다. 정해둔 이름이 아니라 0 based index 값으로 범위를 지정해야 합니다.
loc (location)
iloc (integer location)
- 행/열에 레이블로 접근하는 방법 - 인덱스 및 칼럼명으로 지정함 - 설정한 인덱스를 그대로 사용함
- 행/열에 인덱스값으로 접근하는 방법 - 인덱스로만 지정함 - 설정한 인덱스가 아닌, 0 based index를 사용해야 함
아래 예시를 참고하면 이해하기 더 쉬울 것 같습니다. 데이터프레임의 인덱스를 101~110으로 지정해두었습니다. 따라서 loc 으로는 지정해둔 인덱스로 접근할 수 있습니다. 반면에 iloc 으로는 101~110 으로 접근하려하면 에러가 나고, 0 based index 로 접근해야만 합니다.
# loc 으로 행/열 선택하기 - 설정한 인덱스와 칼럼명 그대로 사용하면 됨
df_test2.loc[[101,103,105,110], ['A', 'B']]
# iloc으로 행/열 선택하기 - 0 based index 로 지정해줘야 함
df_test2.iloc[[0,2,4,9], [0,1]]
3️⃣ 칼럼 조건 지정해서 데이터 추출하기 (Boolean연산 - 논리연산, 비교연산)
칼럼별 값들에 대해 조건을 지정해서 데이터를 뽑아볼 수도 있습니다. 조건은 Boolean 연산으로 지정하면 됩니다.