본문 바로가기
Programming/Python

[Pandas] 데이터 추출(loc, iloc)

result

# 인덱스가 i1,i3,i5인 행 추출하기
df.loc[['i1','i3','i5']]
import pandas as pd   -- 기본 세팅
df = pd.read_csv('data/scores.csv')
df.index = 'i'+df.index.astype('str')
df.head()

loc[인덱스]  -> 시리즈 형태로 추출. 인덱스 하나만 可

loc[인덱스리스트] -> DF형태로 추출. 여러 개 可

 

 

 

 

# 인덱스가 i3인 행 추출하여 s1에 담기
s1=df.loc['i3']


# 인덱스가 i3인 행을 데이터프레임 형태로 추출하기
df.loc[['i3']]


# 인덱스에 없는 값 사용이 에러 발생.

 

 

인덱스로 특정 행 열 추출하기

 

# 인덱스 i1의 kor점수
df.loc['i1','kor']

# 인덱스 i1 name, kor
df.loc['i1',['name','kor']]

# 인덱스 i1,i3,i5의 name
df.loc[['i1','i3','i5'],'name']


# 인덱스 i1,i3,i5의 name, kor
df.loc[['i1','i3','i5'],['name', 'kor']]


# 모든 행에서 'name' 가져오기     :는 처음부터 끝까지라는 의미
df.loc[:,'name']


# 모든 행에서 'name','math' 가져오기
df.loc[:,['name','math']]


# 모든 행에서 'name' 가져오기(데이터프레임)
df.loc[:,['name']]

 

 

 

행번호로 행 데이터 추출(iloc)    <- 음수 사용시, 뒤에서부터 센다.

시리즈 형태: df.iloc[0]   <- 1번째 행 추출

df 형태: df.iloc[ [0] ]   <- 1번째 행 추출 (df는 대괄호 한 번 더 쓴다.)

.

iloc[ 행시작:행끝 :setp  , 열시작:열끝 :setp]

Ex) 6번째 칼럼의 3번째 값만 추출 -> df.iloc[5,2]

Ex) df.iloc[:20:2, 5:10]    :첫 0행부터 20행까지 2칸씩 간격으로, 열은 5열부터 10열까지 추출

 

# 첫번째 행 추출하기
df.iloc[0]

# 1,3,5번 행 추출하기
df.iloc[[1,3,5]]

# 첫번째 행 추출하기(데이터프레임)
df.iloc[[0]]

# 1~3행 추출하기
df.iloc[1:4]

# 1,3,5행 슬라이스
df.iloc[1:6:2]

# 1행 추출하기
df.iloc[1:2]

# 짝수 행번호의 데이터 추출하기
df.iloc[::2]

# 홀수 행번호의 데이터 추출하기
df.iloc[1::2]

# 마지막행 추출하기
df.iloc[-1]

# 마지막 2개 행 추출하기(리스트)
df.iloc[[-2,-1]]

# 마지막 2개 행 추출하기(슬라이스)
df.iloc[-2:]

# 0번째 행, 0번째 열
df.iloc[0,0]

# 0번째 행 kor, eng
df.iloc[0,[1,2]]

# 1,3,4번째 행 kor
df.iloc[[1,3,4],1]

# 1,3,4번째 행 name, eng
df.iloc[[1,3,4],[0,2]]

 

 

 

# 0,1번째 행 0,1번째 열 슬라이싱
df.iloc[:2, :2]


# 1,3,5번째 행 0,2번째 열 슬라이싱
df.iloc[1:6:2, :3:2]


# 마지막행 1,3열 슬라이싱
df.iloc[-1,1:4:2]


# 모든행, 1열 
df.iloc[:,1]

# 모든행, 1,2열 
df.iloc[:,[1,2]]

 

728x90
반응형