[파이썬] 루프를 활용한 데이터 필터링

데이터 필터링은 파이썬에서 매우 흔한 작업입니다. 루프를 사용하여 데이터를 필터링하는 방법을 이해하면 데이터를 효율적으로 조작할 수 있습니다. 이 포스트에서는 파이썬에서 루프를 활용한 데이터 필터링 방법을 소개하고 예시 코드를 제공하겠습니다.

1. 리스트 컴프리헨션을 사용한 필터링

파이썬에서는 리스트 컴프리헨션을 사용하여 간단하게 데이터를 필터링할 수 있습니다. 리스트 컴프리헨션은 한 줄의 코드로 새로운 리스트를 만들어줍니다.

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

# 4보다 작은 숫자만 필터링
filtered_data = [x for x in data if x < 4]

print(filtered_data)  # 출력: [1, 2, 3]

위의 예시에서는 data 리스트에서 4보다 작은 숫자만을 필터링하여 filtered_data 리스트를 생성하였습니다.

2. for 루프를 사용한 필터링

리스트 컴프리헨션을 사용하지 않고도 for 루프를 사용하여 데이터를 필터링할 수 있습니다. 이 방법은 더 복잡한 조건을 적용할 때 유용합니다.

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

# 4보다 작은 숫자만 필터링
filtered_data = []

for x in data:
    if x < 4:
        filtered_data.append(x)

print(filtered_data)  # 출력: [1, 2, 3]

위의 예시에서는 data 리스트에서 4보다 작은 숫자만을 필터링하여 filtered_data 리스트를 생성하였습니다. 컴프리헨션과의 차이점은 필터링된 결과를 즉시 생성하는 대신 반복문에서 조건에 맞는 데이터를 append 함수를 사용하여 추가해줘야 한다는 것입니다.

3. 객체 속성을 기반으로 한 필터링

객체의 속성을 기반으로 데이터를 필터링해야 할 때가 있습니다. 이 경우 객체의 속성 값을 확인하고 필터링하는 방법을 사용할 수 있습니다.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

people = [
    Person('Alice', 25),
    Person('Bob', 30),
    Person('Charlie', 22),
    Person('Dave', 27)
]

# age 속성이 25보다 작은 Person 객체만 필터링
filtered_people = [person for person in people if person.age < 25]

for person in filtered_people:
    print(person.name)  # 출력: Alice, Charlie

위의 예시에서는 Person 클래스의 객체를 리스트에 저장한 뒤, age 속성이 25보다 작은 객체만을 필터링하여 filtered_people 리스트를 생성하였습니다. Person 클래스는 이름과 나이의 속성을 가지고 있습니다. 루프를 사용하여 객체의 속성 값을 확인하고 필터링하는 방법을 활용하면 다양한 조건으로 데이터를 필터링할 수 있습니다.

결론

파이썬에서 데이터 필터링은 자주 사용하는 작업입니다. 이 포스트에서는 리스트 컴프리헨션과 for 루프를 사용하여 데이터를 필터링하는 방법을 소개하고 예시 코드를 제공하였습니다. 이러한 테크닉을 활용하여 데이터를 효율적으로 필터링하여 필요한 정보만 추출할 수 있습니다.