헤맨 만큼 내 땅이다

카테고리 없음

Pandas 인덱싱과 슬라이싱

mm대장 2023. 10. 27. 11:06

1) 특정 행만 조회 - selection연산자

  • df[시작인덱스:끝인덱스+1]
  • 연속되는 일정구간의 행을 조회할 때

# 0~4행 indexing
lemonade[0:5]  

 

#연속되지 않는 1,3,5행을 indexing하고 싶다면?
lemonade[1,3,5]  # 안됨!

 

#한행만 indexing하고 싶다면?
lemonade[1]  # 역시안됨!

 

2) 특정 열만 조회

 

  • df[['col1'],['col2']..] (이중 괄호임에 주의!)
  • 연속/불연속, 한개/여러개 상관없이 가능

# 두 열만 조회: Dataframe으로 출력 
lemonade[['Date', 'Location']]

 

# 한 열만 조회: Dataframe으로 출력  
lemonade[['Date']] #이중괄호 - DataFrame으로 출력

 

# 이렇게 하면 어떻게 될까?  Series로 출력
lemonade['Date']  #단일괄호 - Series로 출력

 

 

3) loc - 원하는 행, 원하는 열 조회

  • df.loc[[원하는 행index], [원하는 열이름]]
  • 행만지정 (열은 모두 추출): df.loc[[원하는 행index]]
  • 열만지정 (행은 모두 추출): df.loc[:,[원하는 열이름]]

#1,3,5행, Data, Location 열만 뽑고 싶다.

lemonade.loc[[1,3,5], ['Date','Location']]   

# 0행, Data, Location열만 뽑고 싶다.

lemonade.loc[[0], ['Date','Location']]  

 

# 단 행을 selection 연산자로 연속구간 표현시 []를 하지 않음
lemonade.loc[0:2, ['Date','Location']]   

 

#index 0행 하나만 (모든열에 대해) 추출하고 싶다면?
lemonade.loc[[0]]  

 

#이렇게 하면 어떻게 될까?
lemonade.loc[0]  #단일괄호 - 한 행만 출력

 

#index 1,3,5행을 (모든열에 대해) 추출하고 싶다면
lemonade.loc[[1,3,5]]  

 

#column 'Date','Location'을 (모든행에 대해) 추출하고 싶다면?
lemonade.loc[:, ['Date','Location']] 

 

4) 조건 인덱싱

 

#조건에 해당되는 행만 출력
lemonade['Location'] == 'Beach'

 

  • 만약 조건을 만족하는 lemonade의 행을 모두 출력하게 하려면?
  • lemonade[조건]

lemonade[lemonade['Location'] == 'Beach']

 

# 조건이 하나일 때, 일부 열만 출력
lemonade.loc[lemonade['Revenue']>45, ['Date','Revenue']]

 

# & (and) 조건일 때
lemonade.loc[ (lemonade['Revenue']>45) & (lemonade['Revenue']<100), ['Date', 'Revenue']]

 

# | (or) 조건일 때
lemonade.loc[ (lemonade['Revenue']<45) | (lemonade['Revenue']>100), ['Date', 'Revenue']]