문자열
판다스에서 문자열을 다루는 방법을 알아봅시다.
import pandas as pd
예제 데이터 입니다.
df = pd.DataFrame({
'name': ['John', 'Mary', 'Kim'],
'addr': ['Jongno', 'Jongno', ' Yongsan ']})
df
| name | addr | |
|---|---|---|
| 0 | John | Jongno |
| 1 | Mary | Jongno |
| 2 | Kim | Yongsan |
.str.메소드() 형식으로 문자열 메소드들을 쓸 수 있습니다.
name 컬럼을 소문자로 바꿔보겠습니다.
df['name'].str.lower()
0 john 1 mary 2 kim Name: name, dtype: object
대문자로 바꿀 때는 upper를 사용합니다.
df['name'].str.upper()
0 JOHN 1 MARY 2 KIM Name: name, dtype: object
addr의 경우 ' Yongsan '과 같이 글자 앞뒤로 공백이 있는 경우가 있습니다. strip을 이용하면 앞뒤 공백을 제거해줍니다.
df['addr'].str.strip()
0 Jongno 1 Jongno 2 Yongsan Name: addr, dtype: object
찾아 바꾸기기는 replace를 사용합니다. 아래는 'no'를 'ro'로 바꾸는 예입니다.
df['addr'].str.replace('no', 'ro')
0 Jongro 1 Jongro 2 Yongsan Name: addr, dtype: object
'no'를 포함하는지 확인하려면 contains를 사용합니다.
df['addr'].str.contains('no')
0 True 1 True 2 False Name: addr, dtype: bool
extract를 이용해 특정한 패턴을 추출할 수 있습니다. 패턴은 정규표현식을 사용해서 지정합니다. 아래는 A에서 Z까지 모든 영어 대문자를 추출합니다.
df['addr'].str.extract('([A-Z])')
| 0 | |
|---|---|
| 0 | J |
| 1 | J |
| 2 | Y |
문자열로 표현된 범주형 변수는 통계 분석이나 기계 학습에서 더미 변수 또는 원 핫 인코딩이라는 형태로 변환을 거칩니다. 이러한 변환은 get_dummies를 사용합니다.
df['addr'].str.get_dummies()
| Yongsan | Jongno | |
|---|---|---|
| 0 | 0 | 1 |
| 1 | 0 | 1 |
| 2 | 1 | 0 |