조건을 여러 개 사용하여 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에서 특정 행들을 선택할 수 있습니다.
공감하며 읽었습니다. 좋은 글 감사드립니다.