-
Pandas 인덱싱과 슬라이싱카테고리 없음 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']]