[Pandas] 데이터프레임 조건 행 제외하기
- Python/Pandas
- 2024. 12. 21.
판다스(Pandas)에서 조건에 맞는 행 제외하는 방법
판다스를 활용하다 보면 특정 조건에 맞는 행만 선택하거나 제외해야 하는 상황이 자주 발생합니다. 이 글에서는 판다스에서 특정 조건에 맞는 행을 제외하는 방법을 여러 가지 예제를 통해 살펴보겠습니다. 데이터 분석과 전처리 과정에서 매우 유용한 테크닉이니 꼭 알아두세요!
조건에 맞는 행 제외하기: 기본 원리
판다스에서 조건에 맞는 행을 제외하려면 부울 인덱싱(Boolean Indexing)과 ~ 연산자를 사용합니다. ~는 조건을 반전(negate)시켜 해당 조건에 맞는 행을 제외하도록 도와줍니다.
import pandas as pd
데이터프레임 생성
data = {'이름': ['Alice', 'Bob', 'Charlie', 'David'],
'나이': [25, 30, 35, 40]}
df = pd.DataFrame(data)
특정 조건에 맞는 행 제외
df_filtered = df[~(조건)]
위의 구조에서 조건에 해당하는 부분을 원하는 필터링 조건으로 설정합니다.
실습 예제
예제 1: 특정 값이 있는 행 제외
예를 들어, '나이'가 30인 행을 제외하고 싶다면 다음과 같이 합니다.
나이'가 30인 행 제외
df_filtered = df[~(df['나이'] == 30)]
print(df_filtered)
0 Alice 25
2 Charlie 35
3 David 40
예제 2: 여러 조건으로 행 제외
여러 조건을 조합하려면 논리 연산자인 | (OR) 또는 & (AND)를 사용합니다.
예를 들어, '나이'가 30이거나 '이름'이 'Alice'인 행을 제외하려면 다음과 같이 합니다.
'나이'가 30이거나 '이름'이 'Alice'인 행 제외
df_filtered = df[~((df['나이'] == 30) | (df['이름'] == 'Alice'))]
print(df_filtered)
2 Charlie 35
3 David 40
예제 3: 특정 값 목록에 포함된 행 제외
특정 값 목록에 해당하는 행을 제외하려면 isin() 메서드를 사용합니다. 예를 들어, '이름'이 ['Alice', 'David']에 포함된 행을 제외하려면 다음과 같이 합니다.
#이름이 특정 값 목록에 포함된 행 제외
names_to_exclude = ['Alice', 'David']
df_filtered = df[~df['이름'].isin(names_to_exclude)]
print(df_filtered)
1 Bob 30
2 Charlie 35
고급 활용
예제 4: 조건을 함수로 정의하여 제외
조건을 복잡한 로직으로 정의해야 한다면, 람다 함수나 사용자 정의 함수를 활용할 수 있습니다. 예를 들어, '나이'가 30 이상인 행을 제외하려면 ~ 와 부등식을 이용합니다.
#사용자 정의 조건 함수 사용
df_filtered = df[~(df['나이'] >= 30)]
print(df_filtered)
0 Alice 25
예제 5: 여러 컬럼을 조합한 조건으로 제외
여러 컬럼의 값을 조합해 조건을 생성할 수도 있습니다. 예를 들어, '나이'가 30 이상이고, '이름'이 'David'가 아닌 경우를 제외하려면 다음과 같이 합니다.
#여러 컬럼 조합 조건으로 제외
df_filtered = df[~((df['나이'] >= 30) & (df['이름'] != 'David'))]
print(df_filtered)
0 Alice 25
3 David 40
중복된 데이터 제거와의 차이
조건에 맞는 행 제외는 특정 조건을 기준으로 제거하는 작업입니다. 반면, 중복된 데이터를 제거하려면 drop_duplicates() 메서드를 사용합니다. 이 두 작업은 목적과 적용 방식이 다릅니다.
마치며
판다스에서 조건에 맞는 행을 제외하려면 부울 인덱싱과 ~ 연산자를 활용합니다.
단일 조건뿐만 아니라, 여러 조건을 |(OR)와 &(AND)로 조합할 수 있습니다.
isin() 메서드를 사용하면 특정 값 목록을 기준으로 제외할 수 있습니다.
필요에 따라 사용자 정의 함수나 복잡한 조건을 추가적으로 활용해 보세요.
'Python > Pandas' 카테고리의 다른 글
[파이썬] 데이터프레임 값 변경방법 총정리 (0) | 2024.08.20 |
---|---|
[Pandas] 두 시리즈가 같은지 판단하기 (0) | 2024.06.29 |
[Pandas] 데이터프레임 컬럼값 각각 타입 확인하고 바꾸기 (1) | 2024.06.10 |
[Pandas] 엑셀 불러오기 전에 시트네임부터 확인하기 (0) | 2024.05.27 |
[Pandas] 데이터프레임 문자열 조건 검색법 총정리 (0) | 2024.05.20 |