데이터분석 공부/DSBA 4기

파이썬 str.replace( ) 메소드로 데이터프레임 속 문자 변경하기

이삼오 2024. 3. 7. 22:59

1. str.replace( ) 메소드 사용법

파이썬에서 str.replace() 메소드를 사용하는 방법은 다음과 같다. 

str.replace('변경할 문자', '변경 후 문자')

str.replace('변경할 문자', '변경 후 문자', 횟수)

 

2. str.replace( ) 메소드 사용 예시

아래의 pop_seoul 데이터프레임에서 인구수, 내국인, 외국인, 고령자 컬럼의 데이터들을 int 타입으로 바꾸려 한다. 

이를 위해 우선 데이터에 있는 콤마 , 를 없애보자.

 


2-1. srt.replace( ) 

pop_seoul['인구수'] = pop_seoul['인구수'].str.replace(',', '')
pop_seoul['내국인'] = pop_seoul['내국인'].str.replace(',', '')
pop_seoul['외국인'] = pop_seoul['외국인'].str.replace(',', '')
pop_seoul['고령자'] = pop_seoul['고령자'].str.replace(',', '')
 
pop_seoul.head()

 

데이터프레임의 각 컬럼을 불러오고 .str.replace() 메소드를 활용해 콤마를 공백으로 대치시켰다. 

이 때 컬럼명 대신 정수형 인덱스 넘버를 사용할 수도 있다. 

직관적이고 좋은 코드이지만 반복문을 활용해 조금 간결하게 만들 수 있을 것 같다. 

 

2-2. for문을 활용한 str.replace( )

col_to_replace = ['인구수', '내국인', '외국인', '고령자']

for i in col_to_replace:
    pop_seoul2[i] = pop_seoul2[i].str.replace(',', '')

pop_seoul2.head()

 

대치시킬 컬럼들로 col_to_replace 리스트를 만든 다음 for문을 사용했다. 

for문 개념을 다시 짚어보자. 

1) for i in 리스트일 때

2) 리스트의 각 요소를

3) for문이 반복하는 동안

4) 0부터 n번째까지(리스트의 길이만큼) i에 차례로 대입시킨다. 

 

따라서 아래의 두 코드는 같은 결과를 반환한다. 

# for문 속의 코드
pop_seoul2[i] = pop_seoul2[i].str.replace(',', '')
 
# 반복되는 과정을 풀어서 쓴 코드
pop_seoul[1] = pop_seoul[1].str.replace(',', '')
pop_seoul[2] = pop_seoul[2].str.replace(',', '')
pop_seoul[3] = pop_seoul[3].str.replace(',', '')
pop_seoul[4] = pop_seoul[4].str.replace(',', '')

 

for문을 작성하는 건 아직도 헷갈리지만 많이 활용해보려 한다.