데이터분석 공부/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문을 작성하는 건 아직도 헷갈리지만 많이 활용해보려 한다.