[AIVLE SCHOOL] 데이터 다듬기(4) - 데이터프레임 조회

춤추는 머쉬룸·2024년 9월 13일

AIVLE SCHOOL 6기

목록 보기
18/80
post-thumbnail

9/13 1, 2세션

A. 데이터프레임 조회

# 기본 형태
> df.loc[,]

A-1. 특정 열 조회

  • df.loc[:, '열 이름'] 또는 df['열 이름']
  • : : 모든 행 조회
  • 시리즈 형태로 반환
  • 데이터프레임으로 반환받고 싶다면 [] 로 감싼다

A-1-1) 여러개의 열 조회

  • df.loc[:, ['열1', '열2']] 또는 df[['열1', '열2']]
  • 찾고자 하는 열 들을 리스트로 묶는다
# tip, day, time 열만 tip 열 기준으로 내림차순 정렬해서 상위 10개 행만 조회

> tip.loc[:, ['tip', 'day', 'time']].sort_values('tip', ascending=False).head(10)

A-2. 열 범위 조회

  • df.loc[:, '시작 열 이름':'끝 열 이름']
  • loc 는 다른 슬라이싱과 다르게 시작 열부터 끝 열까지를 조회한다

A-2-1) iloc[] 로 열 범위 조회

  • df.iloc[:, 시작 열 번호:끝 열 번호+1]
  • iloc 는 열의 인덱스로 찾는다

A-3. 행 조회

  • loc 는 눈에 보이는 인덱스대로 조회
df.loc[0:4, :]
df.iloc[0:5, :] #둘은 같다

B. 조건 조회

B-1. 하나의 조건으로 조회

  • df.loc[조건]
  • [] 안에서 조건은 조회되는 쪽을 기준으로 한다.
  • ex) A 열의 값이 10 이상인 행 조회 --> df['A'] > 10 이 조건이 됨
# tip 열 값이 6.0 보다 큰 행 조회

> tip.loc[tip['tip'] > 6.0 ,:]
  • 조건은 변수로 따로 선언해서 사용 가능

B-2. 여러 조건 조회

  • [ ]안에 조건을 여러개 연결할 때 and와 or 대신에 &|를 사용
  • 그리고 각 조건들은 (조건1) & (조건2) 형태로 괄호로 묶어야 함
# and로 여러 조건 연결 (tip > 6.0 and day == Sat)

> tip.loc[(tip['tip'] > 6.0) & (tip['day'] == 'Sat'), :]

B-2-1) isin() 메서드

  • isin([값1, 값2,..., 값n]): 값1 또는 값2 또는...값n인 데이터만 조회
  • or 조건과 동일
# day가 Sat 또는 Sun인 행만 조회

> tip.loc[tip['day'].isin(['Sat', 'Sun']), :]
> tip.loc[(tip['day'] == 'Sat') | (tip['day'] == 'Sun')] #둘은 같다

B-2-2) betweein() 메서드

  • between(값1, 값2): 값1 ~ 값2까지 범위안의 데이터만 조회
  • and 조건과 동일
  • isin() 과는 다르게 범위이므로 대괄호로 묶지 않는다. 넣을 값이 처음부터 2개임
# size가 1에서 3(포함) 까지인 행만 조회

> tip.loc[tip['size'].between(1, 3)]
> tip.loc[(tip['size'] >= 1) & (tip['size'] <= 3)] #둘은 같다

0개의 댓글