프로그래밍/Python 관련 정보

[Python - Frequently Used Code] pandas DataFrame 문자열 대체

물박사의 저장공간 2025. 2. 4. 22:45

 

이번 포스팅에서는 파이썬의 문자열 대체 방법에 대해서 한 번 정리해보도록 하겠습니다. 여느 때와 비슷하게 제가 나중에 찾아보려는 포스팅입니다.

 

1. str.replace()

str.replace(old, new[, count])

 

old : 대체하고자 하는 문자열

new : 새로 대체할 문자열

count : 바꿀 횟수 (생략 시 모든 문자열 대체)

 

문자열 column(Series)에 대해 개별 문자열 데이터를 대체할 때 사용합니다. 

기본 문자열 매서드로 문자열의 일부만 일치해도 해당 부분이 대체됩니다. 

import pandas as pd

df = pd.DataFrame({'text': ['hello world', 'worldwide', 'hello']})
df['text'] = df['text'].str.replace('world', 'planet')
print(df)
        text
0  hello planet
1  planetwide
2        hello

 

2. replace()

데이터프레임 전체 혹은 특정 column에 대해 값 대체가 가능합니다. 

문자열 뿐만 아니라 숫자, NaN 등 모든 값에 사용할 수 있습니다. 

부분 일치가 아니라 완전 값 일치가 될 때만 대체됩니다. 

df = pd.DataFrame({'text': ['hello world', 'worldwide', 'hello']})
df = df.replace({'text': 'world'}, 'planet')
print(df)
            text
0  hello world
1  worldwide
2        hello

 

 

3. Re.sub()

정규표현식+Lambda함수(apply)을 사용하는 방법입니다. 좀 더 자유도를 높힐 수 있는 대신 정규표현식을 알아야 적용이 가능합니다. 

import re

df['text'] = df['text'].apply(lambda x: re.sub(r'world', 'planet', x))
print(df)
            text
0  hello planet
1  planetwide
2        hello