데이터 분석을 수행하면서 가장 많이 사용되는 라이브러리 중 하나인 Pandas는 데이터 필터링 작업을 효율적으로 수행할 수 있는 강력한 도구입니다. 데이터 필터링 자동화는 시간과 노력을 절약하고, 반복적인 작업에서 오는 실수를 줄이는 데 큰 도움이 됩니다. 이번 글에서는 Pandas를 이용하여 데이터 필터링을 자동화하는 방법에 대해 알아보겠습니다.

Pandas 기본 설정 및 데이터 준비

먼저 Pandas 라이브러리를 설치하고 데이터를 준비해야 합니다. 아래 코드를 통해 Pandas를 설치할 수 있습니다.

pip install pandas

이제 Pandas를 import하고 샘플 데이터를 생성해 보겠습니다.

import pandas as pd

data = {
    '이름': ['홍길동', '이순신', '강감찬', '유관순', '안중근'],
    '나이': [25, 30, 45, 22, 32],
    '도시': ['서울', '부산', '서울', '대전', '부산'],
    '점수': [88, 92, 95, 85, 90]
}

df = pd.DataFrame(data)
print(df)

위의 코드에서는 이름, 나이, 도시, 점수로 구성된 데이터프레임을 생성했습니다.

조건에 따른 데이터 필터링

Pandas를 사용하면 다양한 조건에 따라 데이터를 필터링할 수 있습니다. 예를 들어, 나이가 30세 이상인 사람들을 필터링해 보겠습니다.

# 나이가 30세 이상인 데이터 필터링
filtered_df = df[df['나이'] >= 30]
print(filtered_df)

위 코드는 나이가 30세 이상인 데이터만을 추출하여 새로운 데이터프레임 filtered_df에 저장합니다.

여러 조건을 활용한 필터링

Pandas는 여러 조건을 결합하여 데이터를 필터링할 수 있습니다. 예를 들어, 나이가 30세 이상이면서 서울에 거주하는 사람들을 필터링해 보겠습니다.

# 나이가 30세 이상이고 서울에 거주하는 데이터 필터링
filtered_df = df[(df['나이'] >= 30) & (df['도시'] == '서울')]
print(filtered_df)

위의 코드에서 & 연산자를 사용하여 두 개의 조건을 결합했습니다. 이와 같은 방식으로 다양한 조건을 조합하여 원하는 데이터를 쉽게 추출할 수 있습니다.

필터링 자동화를 위한 함수 정의

데이터 필터링 작업을 반복해서 수행해야 할 경우, 이를 함수로 정의하면 편리합니다. 아래는 나이와 도시를 기준으로 필터링하는 함수를 정의한 예입니다.

def filter_data(dataframe, age_threshold, city):
    return dataframe[(dataframe['나이'] >= age_threshold) & (dataframe['도시'] == city)]

# 함수 호출 예
result = filter_data(df, 30, '서울')
print(result)

위의 filter_data 함수는 데이터프레임, 나이 기준, 도시 이름을 인자로 받아, 해당 조건에 맞는 데이터를 필터링합니다. 이를 통해 재사용성을 높이고, 코드의 가독성을 향상시킬 수 있습니다.

다양한 필터링 방법

Pandas에서는 필터링 외에도 query() 메서드를 통해 더 직관적으로 데이터를 필터링할 수 있습니다. query() 메서드는 SQL과 유사한 구문을 사용합니다.

# query() 메서드를 사용한 필터링
filtered_df = df.query('나이 >= 30 and 도시 == "서울"')
print(filtered_df)

이 방법을 사용하면 코드가 더욱 간결해지고, 가독성도 높아집니다.

마무리

Pandas를 활용한 데이터 필터링 자동화 방법에 대해 살펴보았습니다. 반복적인 데이터 필터링 작업을 효율적으로 처리하기 위해 함수와 메서드를 활용하는 것이 중요합니다. 조건에 따라 다양한 방식으로 데이터를 필터링하고, 필요에 따라 이를 자동화함으로써 데이터 분석 작업의 생산성을 높일 수 있습니다. Pandas를 통해 더 나은 데이터 분석 환경을 만들어 보시기 바랍니다.