문자열 :: Pandas 기초 - mindscale
Skip to content

문자열

판다스에서 문자열을 다루는 방법을 알아봅시다.

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