TIL_89. Cleaning Data in Python (3)

소고기는레어·2021년 4월 11일
0

TIL 📝

목록 보기
91/96
post-thumbnail

2021. 04. 11 일요일

Cleaning Data in Python

Similarity score

  • fuzzywuzzy는 파이썬의 패키지 중 하나로, 문자열을 다양하게 활용할 수 있도록 해준다.
  • fuzzywuzzy의 process.extract() 를 사용하면 문자열의 유사도를 측정할 수 있다. 이를 통해 오타로 의심되는 문자열을 추려낼 수 있다.
# fuzzywuzzy의 process 가져오기
from fuzzywuzzy import process

# 오타를 확인할 열의 유니크값을 따로 저장하기
unique_과일 = 데이터프레임['과일'].unique()

# '과일'에 속한 문자열과 특정 키워드의 유사도 측정하기
print(process.extract('apple', unique_과일, limit = len(unique_과일)))

이렇게 측정한 유사도는 각 문자열마다 100 이하의 정수로 나타내어진다.
[('apple', 100), ('applee', 91), ('applle', 83).....]

Remapping

  • 위에서 측정한 유사도를 바탕으로, 일정 유사도 이상 or 이하의 문자열을 특정 문자열로 대체하는 전처리 과정을 거칠 수 있다.
  • 측정 결과 유사도 70점까지가 오타이고 그 미만은 전혀 다른 단어라고 가정했을 때, for문을 활용하여 오타를 대체하는 코드를 작성하여보자.
# 유사도 측정 및 저장
matches = process.extract('사과', 데이터프레임['과일'], limit = len(데이터프레임.과일))

# for문 작성
for match in matches :

  # 유사도가 70 이상일 경우
  if match[1] >= 70 :
  
    # 존재하는 해당 문자열을 전부 '사과'로 대체
    데이터프레임.loc[데이터프레임['과일'] == match[0]] = '사과'
profile
https://www.rarebeef.co.kr/

0개의 댓글