Jost Do It.

그냥 IT해.

Programming/Python

[Pandas] 정규식을 이용해서 특정 문자만 제거하기

그냥하Jo. 2024. 2. 27. 09:21
반응형

문제상황

데이터 수집을 하는 중에 원본 데이터에서 잘못된 형식으로 값이 저장된 경우가 있었다.

원래 형식은 수치값이 string 형식으로 천단위 구분 기호로 절대값을 표시 (ex> 2,000)하거나 00.00%형식으로 돼 있어야 하는데, 잘못된 형식의 데이터에서는 00,00%로 온점이 아니라 반점으로 기재돼 있었다.

따라서 절대값이나 00.00%로 잘 기재된 경우에는 그대로 출력하고, 00,00%로 돼 있는 경우에만 ,를 .으로 바꿔줘야 했다.

 

해결 방법

판다스 데이터프레임의 str.replace를 이용해 다음과 같이 해결할 수 있다.

df['column1'] = df['column1'].str.replace(r'^([0-9]{2}),([0-9]{2})%', r'\1.\2%', regex = True)
  • regex = True 옵션을 통해 정규식으로 처리한다.
  • 바꿔줄 문자열에서 () 를 통해 그룹핑을 해준다.
  • 문자열이 일치할 경우 \1과 \2는 각각 그룹핑된 순서를 의미한다.
반응형