본문 바로가기
데이터 분석/데이터 전처리

[Pandas] 27. 문자열 데이터 다루기(공백 제거, 슬라이싱, 문자 대체, 분리, 문자 연결) (feat. strip, slice, split, replace, cat)

by 부자 꽁냥이 2022. 5. 27.

안녕하세요~ 꽁냥이에요.

 

지난 포스팅에서 특정 문자열, 단어를 포함하는 행 추출하는 방법에 대해서 소개했는데요. Pandas에서는 이외에도 문자열을 위한 여러 가지 기능을 제공하고 있습니다. 이번 포스팅에서는 Pandas에서 제공하는 문자열을 다루는 여러 기능을 소개합니다.

 

- 목차 -

1. 공백 제거

2. 슬라이싱

3. 문자 대체 및 분리

4. 문자 연결


   1. 공백 제거

파이썬에는 공백제거를 위한 내장 함수로 strip, rstrip, lstrip이 있는데요. Pandas에서도 똑같습니다. 아래 코드를 보면 금방 이해되실 거예요.

 

import pandas as pd

df = pd.DataFrame()
df['A'] = ['서울', '서울', '경기']
df['B'] = [' 꽁냥이', '꽁냥이  ', ' 꽁 냥 이 ']

df['B'].str.strip() ## 좌우 공백 제거
df['B'].str.lstrip() # 왼쪽 앞 공백 제거
df['B'].str.rstrip() # 오른쪽 뒤 공백 제거

   2. 슬라이싱

슬라이싱이란 문자열이나 단어를 특정 범위로 제한시켜 보여주는 것입니다. 슬라이싱은 str.slice를 이용하거나 각괄호를 이용하는 방법 두 가지가 있습니다.

 

df = pd.DataFrame()
df['A'] = ['안녕하세요', '안녕하십니까', '안녕히계세요']
df['B'] = [' 꽁냥이', '꽁냥이  ', ' 꽁 냥 이 ']

# 두번째 글자부터 5째 글짜까지 선택
df['A'].str.slice(1, 5) 
df['A'].map(lambda x:x[1:5])

 


   3. 문자 대체 및 분리

파이썬 문자열 내장 함수 중에서 split과 replace가 있는데요. 이들은 각각 문자열을 특정 구분자로 분리하거나 일치하는 패턴을 다른 문자로 바꿔주는 역할을 합니다. Pandas에서도 똑같습니다.

 

df = pd.DataFrame()
df['A'] = ['안녕하세요', '안녕하십니까', '안녕히계세요']
df['B'] = ['데이터, 분석가', '데이터, 엔지니어', '데이터, 과학자']

# 두번째 글자부터 5째 글짜까지 선택
df['B'].str.split(',') ## 콤마 단위로 분리하여 리스트로 만듬
df['B'].str.replace('데이터,', '소프트웨어') ## 데이터, -> 소프트웨어로 대체

   4. 문자 연결

파이썬 내장 함수 중에서 join은 문자가 담긴 리스트를 특정 구분자로 연결해줍니다. 마찬가지로 Pandas에서는 str.cat을 사용하여 문자열을 연결할 수 있습니다. 이때 구분자 sep 인자를 꼭 넣어줘야 합니다.

 

df = pd.DataFrame()
df['A'] = ['안녕하세요', '꽁냥이', '입니다.']
df['B'] = ['블로그', '많이', '사랑해 주세요.']

print(df['A'].str.cat(sep=' ')) # 한칸 공백으로 문자 연결
print(df['B'].str.cat(sep='-')) # '-'로 문자 연결

 


문자열은 특히 자연어 처리에서 많이 등장하는데요. 따라서 자연어 처리하시는 분들은 오늘 배운 내용을 알아두시면 전 처리할 때 도움이 되지 않을까 생각합니다.

 

지금까지 꽁냥이의 글 읽어주셔서 감사드리며 다음에도 더 좋은 내용으로 찾아뵙겠습니다~

 


댓글


맨 위로