IT/Python

판다스(Pandas DataFrame) 특정 글자 포함 행 추출 및 삭제하기

조스톡 2022. 10. 14. 13:25
728x90
반응형

 

시작하기 전

 

이전에 포스팅했던 내용과 비슷한 부분이 있다.

 

이전에는 '특정 글자'를 변경하거나 삭제하는 것이었다면, 이번에는 '특정 글자가 포함된 행'을 추출하거나 삭제해볼 것이다.

 

판다스(Pandas DataFrame) 특정 글자 변환, 없애기(replace)

 

판다스(Pandas DataFrame) 특정 글자 변환, 없애기(replace)

문제 Pandas DataFrame을 활용하던 중 컬럼 자료형을 소수점 사용을 위해 'float'으로 변환하려고 하니 아래와 같이 오류가 발생했다. ValueError: could not convert string to float: '1,010.00' 숫자 표..

chostock.com

 

 

특정 글자 포함 행 '선택(추출)' 방법

 

아래와 같이 데이터프레임이 있을 때, '바나나'가 있는 '행'을 선택(추출)하고 싶다면 아래와 같이 코드를 사용하면 된다.

 

 

df[df['과일'].str.contains('바나나')]

df[df['과일'] == '바나나']

 

 

 

사실 '.str.contains'는 문자열에만 사용이 가능해서 '가격' 컬럼(columns)에는 사용할 수가 없다.

 

'df.info()'을 통해 '가격' 칼럼의 'Dtype이 숫자 형식 'int64' 인 것을 확인할 수 있다.

 

 

그럼에도 사용하는 이유는 .str.contains는 '일부만 해당'이 되더라도 추출을 해주기 때문이다.

 

 

 

특정 글자 포함 행 '삭제' 방법

 

추출(선택) 방법과 크게 바뀐 것은 없고 Python의 '비트 연산자'과 '비교 연산자'가 추가, 변경되었다.

 

'.str.contains' 방식에는 비트 연산자인 '~'가 추가 되었다. 물결 표시 연산자는 'NOT'과 같은 역할을 한다.

쉽게 설명하자면, 바나나가 포함 '안된 것'을 고르는 것이다.

 

'!='은 비교 연산자로 '다른 것'을 의미하기 때문에 바나나와 비교해 '다른 것'을 고르는 것이다.

 

df[~df['과일'].str.contains('바나나')]

df[df['과일'] != '바나나']

 

 

728x90
반응형