파이썬 Pandas로 조건 추출: 유용한 기술과 실전 예제

Pandas는 데이터 분석에 있어 강력한 도구로, 특히 데이터 프레임 내에서 조건을 기반으로 특정 데이터를 추출하는 기능이 매우 유용합니다. 본 블로그 글에서는 Pandas의 조건 추출에 대한 **자세한 설명**과 **실제 예제**를 제공하여 독자들이 이를 쉽게 활용할 수 있도록 도와드리겠습니다.

1. 기본적인 조건 추출

Pandas에서 특정 조건에 맞는 데이터를 추출하는 방법은 매우 직관적입니다. 데이터 프레임에서 조건을 지정한 후, 해당 조건을 만족하는 데이터만 추출할 수 있습니다.

예를 들어, 학생 성적 데이터가 담긴 데이터 프레임이 있다고 가정해봅시다. 여기에 담긴 학생들의 성적 중, 85점 이상의 학생들만 추출하는 예제를 살펴보겠습니다.


import pandas as pd

# 학생 성적 데이터 생성
data = {'이름': ['Alice', 'Bob', 'Cathy', 'David'],
        '성적': [90, 76, 88, 65]}
df = pd.DataFrame(data)

# 조건 추출
high_scorers = df[df['성적'] >= 85]
print(high_scorers)

위 코드를 실행하면 다음과 같은 결과가 출력됩니다:


    이름  성적
0  Alice   90
2  Cathy   88

2. 여러 조건을 사용한 데이터 필터링

Pandas에서는 여러 조건을 조합하여 데이터를 필터링할 수 있습니다. 이러한 조합은 ‘&’ (그리고)와 ‘|’ (또는) 연산자를 통해 수행됩니다.

이제 성적이 85점 이상이면서, 이름이 ‘Alice’ 또는 ‘Cathy’인 학생들을 추출해 보겠습니다.


# 여러 조건을 사용한 필터링
specific_students = df[(df['성적'] >= 85) & (df['이름'].isin(['Alice', 'Cathy']))]
print(specific_students)

3. 조건에 따라 값 변경하기

데이터를 추출하는 것뿐만 아니라, 특정 조건을 만족하는 값을 변경할 수도 있습니다. 예를 들어 학생들의 성적이 70점 미만인 경우 ‘불합격’으로 표시하도록 하겠습니다.


# 조건에 따라 값 변경
df['합격여부'] = df['성적'].apply(lambda x: '합격' if x >= 70 else '불합격')
print(df)

4. 문자열 조건으로 데이터 필터링하기

Pandas에서는 문자열 조건을 기반으로 데이터 필터링도 가능합니다. 예를 들어 특정 이름이 포함된 학생들을 찾아보겠습니다.


# 문자열 조건으로 데이터 필터링
students_with_a = df[df['이름'].str.contains('a', case=False)]
print(students_with_a)

5. 데이터 시각화를 위한 조건 추출

조건 추출 후에는 데이터 시각화를 통해 인사이트를 얻는 것이 중요합니다. 조건으로 추출한 데이터로 시각화 분석을 진행해 보겠습니다. 예를 들어, 성적이 85점 이상인 학생들의 성적 분포를 막대 그래프로 나타낼 수 있습니다.


import matplotlib.pyplot as plt

# 성적이 85점 이상의 학생들 성적 분포 시각화
high_scorers['성적'].plot(kind='bar', title='성적이 85점 이상인 학생들')
plt.xlabel('학생 이름')
plt.ylabel('성적')
plt.show()

위 코드를 통해 직관적인 시각적 데이터를 제공하면서 성적 분석을 진행할 수 있습니다. 이와 같이 Pandas의 조건 추출 기능을 활용하면 데이터 분석에 있어 효율성을 높일 수 있습니다.

이와 같은 조건 추출 기법은 다양한 영역에서 유용하게 사용할 수 있습니다. 특히 데이터 과학, 머신러닝 뿐만 아니라 많은 실제 비즈니스 상황에서도 데이터 결정을 위한 필수적인 기술입니다.