안녕하세요~ 꽁냥이에요.
지난 포스팅에서 특정 문자열, 단어를 포함하는 행 추출하는 방법에 대해서 소개했는데요. Pandas에서는 이외에도 문자열을 위한 여러 가지 기능을 제공하고 있습니다. 이번 포스팅에서는 Pandas에서 제공하는 문자열을 다루는 여러 기능을 소개합니다.
- 목차 -
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='-')) # '-'로 문자 연결
문자열은 특히 자연어 처리에서 많이 등장하는데요. 따라서 자연어 처리하시는 분들은 오늘 배운 내용을 알아두시면 전 처리할 때 도움이 되지 않을까 생각합니다.
지금까지 꽁냥이의 글 읽어주셔서 감사드리며 다음에도 더 좋은 내용으로 찾아뵙겠습니다~
'데이터 분석 > 데이터 전처리' 카테고리의 다른 글
[Pandas] 28. 데이터 필터링 하기 (feat. filter) (2) | 2022.11.15 |
---|---|
[Pandas Tip] 엑셀(Excel) 행과 열 고정하여 저장하기 (feat freeze_panes) (2) | 2022.09.29 |
[Pandas] 여러가지 통계량(평균, 분산, 중앙값 등) 구하기 (415) | 2022.05.20 |
[Pandas] 26. shift를 이용하여 칼럼 값이 바뀌는 지점(행) 찾기 (400) | 2022.05.20 |
[Numpy] 결측치(NaN, missing)를 포함한 두 배열의 상관계수(correlation) 구하기 (with ma.corrcoef) (378) | 2022.05.12 |
댓글