pandas dataframe에서 조건을 여러 개 거는 방법

개발하는 G0·2023년 7월 24일
0

조건을 여러 개 사용하여 DataFrame에서 원하는 행을 선택하는 방법은 다양합니다. Pandas에서는 여러 조건을 조합하기 위해 논리 연산자 & (AND), | (OR), ~ (NOT) 등을 사용할 수 있습니다.

예를 들어, 'Age' 열이 25보다 크고 'City' 열이 'New York'인 행들을 선택하려면 다음과 같이 할 수 있습니다:

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 22, 28],
        'City': ['New York', 'San Francisco', 'Chicago', 'New York']}
df = pd.DataFrame(data)

# 'Age' 열이 25보다 크고 'City' 열이 'New York'인 행들 선택
result = df[(df['Age'] > 25) & (df['City'] == 'New York')]
print(result)

결과:

    Name  Age      City
3  David   28  New York

위 코드에서 (df['Age'] > 25) & (df['City'] == 'New York') 부분은 두 개의 조건을 AND 연산하여 해당 행을 선택합니다. 각각의 조건은 괄호로 묶어야 합니다.

OR 연산을 사용하여 'Age' 열이 25보다 크거나 'City' 열이 'New York'인 행을 선택하려면 다음과 같이 할 수 있습니다:

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 22, 28],
        'City': ['New York', 'San Francisco', 'Chicago', 'New York']}
df = pd.DataFrame(data)

# 'Age' 열이 25보다 크거나 'City' 열이 'New York'인 행들 선택
result = df[(df['Age'] > 25) | (df['City'] == 'New York')]
print(result)

결과:

    Name  Age           City
1    Bob   30  San Francisco
3  David   28       New York

위 코드에서 (df['Age'] > 25) | (df['City'] == 'New York') 부분은 두 개의 조건을 OR 연산하여 해당 행을 선택합니다.

NOT 연산을 사용하여 특정 조건을 만족하지 않는 행을 선택하려면 ~ (Tilde) 연산자를 사용합니다:

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 22, 28],
        'City': ['New York', 'San Francisco', 'Chicago', 'New York']}
df = pd.DataFrame(data)

# 'City' 열이 'New York'이 아닌 행들 선택
result = df[~(df['City'] == 'New York')]
print(result)

결과:

    Name  Age           City
1    Bob   30  San Francisco
2 Charlie   22        Chicago

위 코드에서 ~(df['City'] == 'New York') 부분은 'City' 열이 'New York'와 일치하지 않는 행들을 선택합니다.

이와 같이 논리 연산자를 사용하여 여러 개의 조건을 조합함으로써 원하는 조건에 따라 DataFrame에서 특정 행들을 선택할 수 있습니다.

profile
초보 개발자

1개의 댓글

comment-user-thumbnail
2023년 7월 24일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기