Machine learning

[데이터 전처리]. pandas Dataframe, Series 특수문자 제거하기

Acdong 2020. 12. 4. 14:22
728x90

문자열(string) 데이터에 특수문자들이 있으면 파이썬으로 처리하기에 불편한 점이 한 두 가지가 아니다.

특히 자연어 처리에 있어서는 특수문자는 골치덩어리 (제거하기도 애매한 것들이 있음).

 

이번엔 다 필요없고 문자만 남기고 다 지워버리는 방법이다.

예시 데이터

위에 데이터를 보면 ♡, [ , ] , ! , & 등 특수문자들이 보인다. 이런 것 다 없애보자.

없애는 방법은 간단하다. 정규표현식을 사용한다.

df["title"] = df["title"].str.replace(pat=r'[^\w]', repl=r'', regex=True)
  • replace( ) 함수는 조건에 맞는 것을 다른 것으로 대체 해주는 함수.

  • r'[^\w]' 는 모든 특수문자를 뜻하는 정규 표현식.

  • df["title"].str 을 하면 글자를 하나하나씩 다 쪼개준다.

  • repl = r'' 이건 제거하겠다는 의미 만약 r' '면 공백으로 대체됨.

  • regex=True 이거는 꼭 작성해줘야 정규표현식이 작동함.

str은 이런식으로 다 쪼갠다.

df["title"] = df["title"].str.replace(pat=r'[^\w]', repl=r'', regex=True)

결국 이 문장을 해석하면.

 

문자열이 있는 시리즈 데이터의 문자로 다 쪼개서 그게 특수문자면 제거해라(r'')

그리고 난 정규표현식을 사용할꺼다.

이렇게 정리할 수 있겠네요.

예시 데이터

after

결과를 자세히 보면 특수문자들이 다 제거되었습니다. 깔끔...

 

자연어 처리 패키지에 보면 특수문자를 제거 해주는 메소드는 아주 많지만 그래도 간단하게 만들어 봤습니다

반응형