Recent Posts
Recent Comments
Archives
반응형
250x250
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Yesterday

Total
05-03 01:47
관리 메뉴

Hey Tech

[Python] pandas 데이터프레임 문자열 바꾸기(replace, str.replace 함수) 본문

AI & 빅데이터/데이터 분석 with Python

[Python] pandas 데이터프레임 문자열 바꾸기(replace, str.replace 함수)

Tony Park 2022. 8. 9. 20:59
728x90
반응형

💡 들어가며

데이터프레임 내 문자열 한 글자까지 완벽하게 일치하는 원소를 찾는지 혹은 일부 글자라도 일치하는 원소를 찾을지에 따라 사용해야 할 함수가 나뉩니다(아래 참고).

No. 함수 활용방안
1 replace() 완벽하게 일치하는 단어를 찾아 바꾸는 경우
2 str.replace() 일부 단어라도 일치하는 단어를 찾아 바꾸는 경우

함수별로 각각 자세히 알아봅니다.

📚 목차

1.  replace 함수
    1) 기본 사용방법
    2) 여러 문자열 동시 변경
    3) 특정 칼럼 데이터 변경
    4) 원본 데이터 변경옵션(inplace)
2.  str.replace 함수

1) 기본 사용방법

내장 함수 replace는 데이터프레임 내 특정 문자열과 완벽하게 일치하는 데이터를 모두 찾아 변경합니다.

df.replace('현재 문자열', '대체 문자열')

아래와 같은 데이터프레임이 있을 때, '정상'이라는 단어를 '양품'이라고 바꿔보겠습니다.

DATASET_RAW.replace('정상', '양품')

replace 함수는 아래와 같이 문자열을 변경한 데이터프레임을 반환합니다.

2) 여러 문자열 동시 변경

중괄호에 Key-Value 형태로 바꿀 문자열 여러 세트를 입력하면 코드 한 줄로 원하는 문자열을 한꺼번에 바꿀 수 있습니다.

DATASET_RAW.replace({'정상':'양품', 'X1':'T1'})

(1) 변경 전

(2) 변경 후

3) 특정 칼럼 데이터 변경

replace 함수는 칼럼을 지정하지 않으면 데이터프레임 내 일치하는 모든 데이터를 변경합니다. 아래와 같은 방법을 활용하면 원하는 칼럼의 데이터만 변경할 수 있습니다.

데이터프레임.replace({'칼럼이름': {'찾을 문자열': '대체 문자열'}}

결과는 생략하겠습니다.

4) 원본 데이터 변경옵션(inplace)

(4-1) inplace = False

inplace 옵션은 기본적으로 False로서 원본 데이터를 변경하지 않습니다.

DATASET_RAW.replace('정상', '양품')

앞서 위와 같은 코드로 단어를 바꿨지만, 실제로 원본 데이터를 출력하면 아래와 같이 변경된 데이터가 적용되지 않은 것을 확인할 수 있습니다.

 

즉, 문자열이 변경된 데이터프레임을 새로운 변수에 할당해야 사용이 가능합니다.

(4-2) inplace = True

반면, inplace 옵션이 True일 경우 원본 데이터에 replace 함수의 반환 값이 반영됩니다.

DATASET_RAW.replace('정상', '양품', inplace = True)

출력 결과는 생략하겠습니다.

5) replace 함수의 한계점

replace 함수는 문자열이 완벽하게 일치할 때만 데이터를 변경합니다. 예를 들어, replace 함수를 활용하여 아래와 같이 '공장'이라는 단어를 '라인'으로 바꿔보겠습니다.

(1) 변경 전

(2) 변경 후

 

위와 같이, 단어가 바꾸지 않는 것을 확인할 수 있습니다. replace 함수는 '완벽하게' 일치하는 문자열만 변경하기 때문입니다. 즉, 원소마다 '공장'이라는 단어 앞에 1, 2, 3과 같은 다른 문자열이 포함되어 있기 때문에, 해당 원소는 '공장'과 다르다고 판단하여 데이터를 변경하지 않는 것입니다. 이처럼, 일부 단어라도 일치하는 원소라면 값을 바꾸는 방법은 다음 섹션에서 다루는 str.replace 함수입니다.

 2.  str.replace 함수

str.replace 함수는 replace 함수와 다르게, 찾으려는 문자열 일부만 있더라도 데이터를 변경하는 특징이 있습니다. 아래와 같은 포맷으로 코드를 작성하면 됩니다.

데이터프레임['칼럼명'].str.replace('찾을 문자열', '대체 문자열')

실제 코드

DATASET_RAW['FACTORY_NUM'] = DATASET_RAW['FACTORY_NUM'].str.replace('공장', '라인')
DATASET_RAW

변경 후


포스팅 내용에 오류가 있다면 아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다.
그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다 :)
고맙습니다.

728x90
반응형
Comments