05-04. 레이블 필터링 (filter)
DataFrame.filter(items=None, like=None, regex=None, axis=None)
개요
filter 메서드는 레이블에 대해서 조건에 맞는 레이블만 필터링하는 메서드입니다.
내용물이 아니라 레이블에 대해서만 필터링하는것을 유의하세요.
특정 레이블을 이름으로 필터링하거나, 포함된 문자열을 통해 필터링하거나, 정규표현식으로 필터링이 가능합니다.
정규표현식(regular expression)의 경우 regex라고도 하며 파이썬에서는 re 메서드가 지원하는 내용과 동일합니다.
※ 정규표현식의경우 웹상에 자료가 방대하므로 이 페이지에서는 설명하지 않겠습니다. 추후 별도 페이지로 생성 예정입니다.
사용법
기본 사용법
df.filter(items=None, like=None, regex=None, axis=None)
items : 이름으로 필터링하는 경우입니다. 리스트형태로 입력합니다.
like : str로 필터링합니다. 해당 문자열이 포함된 경우를 반환합니다.
regex : 정규표현식을 이용해 필터링합니다. re.search(regex, label) == True에서 사용되는 경우와 동일합니다.
axis : {0 : index / 1 : columns} 필터링할 레이블입니다. 0은 행, 1은 열 입니다.
예시
먼저 간단한 3x5짜리 데이터를 만들어보겠습니다.
col = ['alpha','beta','gamma','delta','epsilon']
row = ['sigma','omega','lambda']
data = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]
df = pd.DataFrame(data,row,col)
print(df)
>>
alpha beta gamma delta epsilon
sigma 1 2 3 4 5
omega 6 7 8 9 10
lambda 11 12 13 14 15
items 인수를 사용하는 경우
items인수를 통해 alpha, beta 열을 필터링 해보겠습니다.
print(df.filter(items=['alpha','delta']))
>>
alpha delta
sigma 1 4
omega 6 9
lambda 11 14
omega행을 필터링해보겠습니다.
print(df.filter(items=['omega'],axis=0))
>>
alpha beta gamma delta epsilon
omega 6 7 8 9 10
like 인수를 사용하는 경우
like인수를 이용해 'ta'가 포함된 열을 필터링해보겠습니다.
print(df.filter(like='ta'))
>>
beta delta
sigma 2 4
omega 7 9
lambda 12 14
regex 인수를 사용하는 경우
regex인수를 사용해서 m과 n이 포함된 열을 필터링 해보겠습니다.
정규표현식 [ ] 는 [ ] 안의 모든 문자가 포함된 경우를 말합니다.
즉, [mn]은m과 n이 포함된 경우입니다.
print(df.filter(regex='[mn]'))
>>
gamma epsilon
sigma 3 5
omega 8 10
lambda 13 15
g로 시작하는 경우에 대해 필터링 해보겠습니다.
정규표현식 ^는 ^뒤에있는 문자로 시작하는 문자열을 말합니다.
즉, ^g는 g로 시작하는 경우를 말합니다.
print(df.filter(regex='^g'))
>>
gamma
sigma 3
omega 8
lambda 13
a로 끝나는 경우에 대해 필터링 해보겠습니다.
정규표현식 $는 $앞에있는 문자로 끝나는 문자열을 말합니다.
즉, a$는 a로 끝나는 경우를 말합니다.
print(df.filter(regex='a$'))
>>
alpha beta gamma delta
sigma 1 2 3 4
omega 6 7 8 9
lambda 11 12 13 14
'파이썬완전정복-Pandas DataFrame > 05. 비교 & 필터링' 카테고리의 다른 글
Pandas DataFrame 05-05. 샘플 추출 (sample) (0) | 2022.01.17 |
---|---|
Pandas DataFrame 05-03. 임계값 적용 (clip) (0) | 2022.01.17 |
Pandas DataFrame 05-02. dtype기반 열 선택 (select_dtyps) (0) | 2022.01.17 |