파이썬 filter() 함수로 데이터 필터링 하기
여러분이 파이썬을 사용하면서 특정 조건에 맞는 데이터만 추출해야 할 경우가 자주 있을 것입니다. 이럴 때 유용한 함수가 바로 filter()
입니다. 본 포스트에서는 filter()
함수의 활용법을 자세히 알아보겠습니다.
filter() 함수의 기본 메커니즘
filter()
함수는 주어진 함수를 이용하여 iterable한 객체(리스트, 튜플 등)의 각 요소를 판단해, True를 반환하는 요소만을 모아 새로운 iterable 객체를 생성합니다.
장점
- 편의성: 복잡한 조건문 없이도 원하는 데이터를 손쉽게 추출할 수 있습니다.
- 성능: 내부적으로 최적화가 되어 있어 대용량 데이터 처리에도 효율적입니다.
- 가독성: 간결한 문법으로 코드의 가독성을 높입니다.
예시 1: 홀수만 추출하기
numbers = [1, 2, 3, 4, 5]
odd_numbers = filter(lambda x: x % 2 != 0, numbers)
print(list(odd_numbers)) # 출력: [1, 3, 5]
예시 2: for문으로 작성
numbers = [1, 2, 3, 4, 5]
odd_numbers = []
for num in numbers:
if num % 2 != 0:
odd_numbers.append(num)
print(odd_numbers) # 출력: [1, 3, 5]
예시 3: 함수로 작성
def is_odd(x):
return x % 2 != 0
numbers = [1, 2, 3, 4, 5]
odd_numbers = filter(is_odd, numbers)
print(list(odd_numbers)) # 출력: [1, 3, 5]
예시 4: 짝수만 추출하기
numbers = [1, 2, 3, 4, 5]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # 출력: [2, 4]
예시 5: 판다스로 나이가 20세 이상인 데이터만 추출하기
import pandas as pd
df = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [19, 25, 22]
})
filtered_df = df[df['Age'] >= 20]
print(filtered_df)
사용 상황에 대해 설명
filter()
함수는 데이터 분석, 웹 스크래핑, 데이터 검증 등 다양한 분야에서 활용할 수 있습니다.
공식 문서 링크
더 자세한 정보를 원하신다면 파이썬 공식 문서를 참조하시면 좋습니다: Python Official Documentation: filter()