데이터 선택 Subset

midoi·2023년 7월 26일
0

빅데이터 분석

목록 보기
2/7
  • slice : 이름 또는 인덱스를 이용한 부분 데이터 선택
    DataFrame의 특정 열 또는 행의 데이터를 선택 및 추출
    [ ] 대괄호 이용. 복수 열 선택 시 [[ ]] 대괄호 추가
    : 콜론을 이용하여 행의 범위로 가져오기 가능
df[0:5]
df[0:1]
df['A'] # 열 선택 : Series 반환
df[['A']] # 열 선택 : DataFrame 반환
df[['A','B']]
  • loc
    label of column 열의 이름을 줘야 함
    열과 행의 조건을 모두 제공해야 할 경우 loc 함수를 이용
    대괄호 안에 [행,열]
    : 콜론을 이용하여 범위 선택 가능, 전체 가져오기 가능
    열 전체를 가져올 경우, [행]만 입력 가능. 행 전체를 가져올 경우, [:,열이름]
df.loc[:, ['A','B']]
df.loc[0:5, ['A','B']]
df.loc[2013-01-01, 'A'] # A열의 label 이름이 2013-01-01 인 행의 데이터 선택
df.loc[3:3] 단일 행 선택
  • iloc 위치를 이용한 선택 index location
    loc와 마찬가지로 열과 행의 조건을 모두 제공해야 할 경우 사용
    label/행의 이름이 아닌, 위치(index번호)를 사용
df.iloc[0:10, 1] # 0번부터 9번행까지 2번째 열
df.iloc[0:7, [0]] # 0 번째 열, DataFrame 반환
df.iloc[3:4] # 단일 행 선택

** loc와 iloc의 차이? loc는 열의 '이름'을 준다. iloc는 열의 '위치'를 준다.
loc는 번호 까지, iloc는 번호-1까지

  • query 조건을 이용한 선택
    1) 대괄호 안에 조건을 입력
df[df.A <0]
df.[df.A>df.B] 

2) 쿼리 함수 이용

df.query('A<0') # df[df.A <0] 과 동일한 결과
df.query('A<B')
  • filter 이름을 이용한 컬럼 선택
    데이터의 특정 컬럼을 선택하거나 특정 문자를 포함하고 있는 컬럼 선택 및 데이터 추출
DataFrame.filter(items=None, like=None, regex=None, axis=None)
df.filter(items=['group1'])
df.filter(regex='1$', axis=1)
df.filter(like='a', axis=1)
  • mask
    조건에 해당하는 데이터 행을 mask 처리
DataFrame.mask(cond, other=nan, inplace=False, axis=None, level=None)
df.mask(df.value>12)
df.mask(cond=df.value1>12, other=999) # mask에 해당하는 행을 999 처리

0개의 댓글