IT/Python
판다스(Pandas DataFrame) 특정 글자 포함 행 추출 및 삭제하기
조스톡
2022. 10. 14. 13:25
728x90
반응형
시작하기 전
이전에 포스팅했던 내용과 비슷한 부분이 있다.
이전에는 '특정 글자'를 변경하거나 삭제하는 것이었다면, 이번에는 '특정 글자가 포함된 행'을 추출하거나 삭제해볼 것이다.
판다스(Pandas DataFrame) 특정 글자 변환, 없애기(replace)
특정 글자 포함 행 '선택(추출)' 방법
아래와 같이 데이터프레임이 있을 때, '바나나'가 있는 '행'을 선택(추출)하고 싶다면 아래와 같이 코드를 사용하면 된다.
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
반응형