파이썬(Python)&판다스(Pandas)&Polars

[Pandas] 두 개의 데이터프레임에서 특정 문자열이 포함된 행 제거하기(~, isin)

송채채 2024. 1. 4. 13:48

판다스(Pandas)를 사용하여 데이터를 다루다 보면 두 개의 데이터프레임을 조합하거나 특정 조건을 충족하는 행을 제거하는 작업이 필요할 때가 있다. 이번 글에서는 두 데이터프레임을 비교하여 특정 문자열이 포함된 행을 제거하는 방법을 소개한다.

코드 설명

# 필요한 라이브러리 불러오기
import pandas as pd

# 두 개의 데이터프레임 생성 (예시 데이터)
df1 = pd.DataFrame({'기관명': ['기관1', '기관2', '기관3', '기관4'],
                         '값': [1, 2, 3, 4]})

df2 = pd.DataFrame({'기관명': ['기관2', '기관4'],
                        '값': [10, 20]})

# df2의 기관명이 포함된 행 제거
df3 = df1[~df1['기관명'].isin(df2['기관명'])]

위 코드에서는 df1 데이터프레임에서 df2의 '기관명' 컬럼에 있는 값과 일치하는 행을 제거하는 작업을 수행함

코드 실행 결과

print(df3)
  기관명  값
0  기관1  1
2  기관3  3

코드 해석

  • isin() 메서드를 사용하여 df2의 '기관명'에 있는 값을 포함하는 행을 찾는다
  • ~ 연산자를 사용하여 해당 조건을 만족하지 않는 행을 선택하고, 이를 df3에 할당한다
반응형