Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Pandas DataFrame에서 조건 비교로 원하는 값 선택하기

Pandas에서는 다양한 비교 조건을 사용해 DataFrame의 열(column) 값을 손쉽게 필터링할 수 있습니다. df[col] < 5, df[col] == 10 같은 비교 연산을 수행하면, 해당 열의 모든 값을 하나씩 검사하여 조건을 만족하면 True, 만족하지 않으면 False를 반환합니다.

예를 들어 df[col] > 2라는 조건을 적용하면, col 열의 각 값이 2보다 큰지 여부를 판별한 결과가 불리언(Boolean) 시리즈 형태로 출력됩니다. 이러한 불리언 마스크는 이후 실제 데이터를 선택하거나 필터링하는 데 활용할 수 있습니다.

처리 순서

  • 2차원이며 크기 변경이 가능하고 서로 다른 자료형을 담을 수 있는 표 형태의 데이터(DataFrame)인 df를 생성합니다.
  • 입력 DataFrame인 df를 출력합니다.
  • 열 이름으로 변수 col을 초기화합니다.
  • 다양한 비교 연산(>, ==, <, != 등)을 수행합니다.
  • 결과로 생성된 불리언 시리즈를 출력합니다.

예제 코드

import pandas as pd

df = pd.DataFrame(
    {
        "x": [5, 2, 7, 0],
        "y": [4, 7, 5, 1],
        "z": [9, 3, 5, 1]
    }
)
print("입력 DataFrame:\n", df)

col = "x"
print(f"열 {col}에서 5보다 큰 요소:\n", df[col] > 5)
print(f"열 {col}에서 5와 같은 요소:\n", df[col] == 5)

col = "y"
print(f"열 {col}에서 5보다 작은 요소:\n", df[col] < 5)
print(f"열 {col}에서 5가 아닌 요소:\n", df[col] != 5)

실행 결과

입력 DataFrame:
   x  y  z
0  5  4  9
1  2  7  3
2  7  5  5
3  0  1  1

열 x에서 5보다 큰 요소:
0    False
1    False
2     True
3    False
Name: x, dtype: bool

열 x에서 5와 같은 요소:
0     True
1    False
2    False
3    False
Name: x, dtype: bool

열 y에서 5보다 작은 요소:
0     True
1    False
2    False
3     True
Name: y, dtype: bool

열 y에서 5가 아닌 요소:
0     True
1     True
2    False
3     True
Name: y, dtype: bool

위 결과에서 볼 수 있듯이, 비교 연산의 반환값은 원본 DataFrame과 동일한 인덱스를 가진 불리언 시리즈입니다. 이 시리즈를 df[df[col] > 5] 형태로 활용하면 조건을 만족하는 행만 추출할 수 있어, 데이터 전처리와 분석 과정에서 매우 유용하게 사용됩니다.