[python] 데이터 필터링(Filtering) 방법

데이터 필터링은 데이터셋에서 원하는 조건과 일치하는 데이터만 선택하여 가져오는 방법입니다. 파이썬에서는 다양한 방식으로 데이터 필터링을 할 수 있습니다. 이 글에서는 몇 가지 대표적인 방법을 소개하겠습니다.

1. 리스트 컴프리헨션(List Comprehension)

리스트 컴프리헨션은 간결하게 데이터를 필터링하는 방법 중 하나입니다. 조건문을 포함한 표현식을 사용하여 원하는 조건을 만족하는 데이터를 선택할 수 있습니다. 예를 들어, 다음과 같은 리스트가 있다고 가정해봅시다.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

이 중에서 짝수만 선택하고 싶다면 다음과 같이 리스트 컴프리헨션을 사용할 수 있습니다.

even_numbers = [x for x in numbers if x % 2 == 0]

이러한 리스트 컴프리헨션을 활용하면 더 복잡한 조건에도 유연하게 데이터를 필터링할 수 있습니다.

2. 필터 함수(filter)

파이썬 내장 함수인 filter 함수를 사용하여 데이터를 필터링할 수도 있습니다. filter 함수는 첫 번째 인자로 주어진 함수를 통해 데이터를 걸러내는 역할을 합니다. 예를 들어, 위에서 사용한 numbers 리스트에서 홀수만 선택하고 싶다면 다음과 같이 filter 함수를 사용할 수 있습니다.

odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))

위 코드에서 lambda를 사용하여 홀수를 판별하는 함수를 정의하고, filter 함수를 통해 필터링된 데이터를 얻을 수 있습니다.

3. Pandas 데이터프레임 필터링

Pandas는 파이썬의 데이터 분석 라이브러리로, 데이터프레임을 통해 데이터를 다룰 수 있습니다. 데이터프레임에서는 조건에 맞는 데이터를 선택하는 다양한 방식을 제공합니다.

3.1. 단일 조건 필터링

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
        'age': [25, 30, 35, 40, 45]}
df = pd.DataFrame(data)

# age가 30 이상인 데이터만 선택
filtered_df = df[df['age'] >= 30]

3.2. 다중 조건 필터링

# age가 30 이상이면서 name이 'Alice'인 데이터만 선택
filtered_df = df[(df['age'] >= 30) & (df['name'] == 'Alice')]

Pandas를 사용하면 조건에 따라 데이터를 필터링하고 원하는 결과를 얻을 수 있습니다.


위에서 소개한 방법들은 파이썬에서 데이터를 필터링하는 몇 가지 대표적인 방법입니다. 각각의 방법은 데이터를 다루는 상황에 따라 선택하여 사용할 수 있습니다. 파이썬의 다양한 기능을 활용하여 데이터 필터링을 효과적으로 수행해보세요.

참고 자료