[Pandas] .str accessor
Pandas str, Pandas .str, Pandas str accessor, string accessor, 벡터 문자열
정의
Series.str 는 Series 의 각 문자열 원소에 벡터화된 문자열 메서드 를 적용하는 accessor. Python str 의 거의 모든 메서드를 NaN-aware 로 제공.
s.str.lower()
s.str.contains('python')
s.str.split(',')
s.str.replace('a', 'A')
기본 메서드
| 메서드 | 의미 |
|---|---|
.lower(), .upper(), .title(), .capitalize() | 대소문자 |
.strip(), .lstrip(), .rstrip() | 공백 제거 |
.len() | 문자열 길이 |
.startswith(s), .endswith(s) | 시작/끝 검사 |
.contains(pat) | 부분 문자열 (정규식 가능) |
.replace(pat, repl) | 치환 |
.split(sep), .rsplit(sep) | 분리 |
.join(sep) | 결합 (list of str) |
.slice(start, stop), .slice_replace(...) | 슬라이싱 |
.pad(width, side), .zfill(width) | 패딩 |
.cat(sep=) | Series 연결 |
기본 사용
python
import pandas as pd
s = pd.Series([' Alice ', 'BOB', 'Charlie', None])
print(s.str.strip().str.lower().tolist())
print(s.str.len().tolist())
print(s.str.startswith('A').tolist()) 결과
['alice', 'bob', 'charlie', None]
[9.0, 3.0, 7.0, nan]
[False, False, False, None]NaN 은 NaN 으로 유지 (Python str 의 메서드는 NaN 에서 에러).
chaining
df['email_clean'] = (df['email']
.str.lower()
.str.strip()
.str.replace(r'\s+', '', regex=True))
체이닝이 자연스럽다.
새 컬럼 분리
s = pd.Series(['Alice,30', 'Bob,25'])
df = s.str.split(',', expand=True)
df.columns = ['name', 'age']
expand=True 가 DataFrame 반환, expand=False (기본) 는 list of list.
get / getitem
s = pd.Series(['Alice,30', 'Bob,25'])
s.str.split(',').str.get(0) # 첫 원소
s.str.split(',').str[0] # 같음, indexer 형태
s.str[0] # 첫 글자
s.str[-1] # 마지막 글자
category 자동 보존
s = pd.Series(['A', 'B', 'A']).astype('category')
s.str.lower() # category dtype 유지 (유한 cardinality)
함정
1. NaN 의 비교
s.str.contains('a') # NaN 행 → NaN
s.str.contains('a', na=False) # NaN → False (필터에 안전)
mask 로 쓸 때 na=False 필수.
2. 정규식의 escape
s.str.contains('.') # 정규식 메타문자 → 모두 매칭
s.str.contains('.', regex=False)
s.str.contains(r'\.', regex=True)
3. 모든 문자열을 str 로 캐스트
s = pd.Series([1, 2, 3])
s.str.lower() # AttributeError
s.astype(str).str.lower() # ✓
참고
이 글의 용어 (3개)
- [Pandas] Seriespandas
- 정의 는 1차원 레이블 배열. NumPy + 의 결합. 의 한 열이 곧 Series. 핵심 속성 | 속성 | 의미 | |:---|:---| | | numpy array | | |…
- [Pandas] str regex (extract / split / replace)pandas
- 정의 의 정규식 기반 메서드. 패턴 추출, 분리, 치환 의 핵심. str.extract 캡처 그룹으로 부분 문자열을 새 컬럼으로. <CodeWithOutput language="…
- [Pandas] str.contains / startswith / endswithpandas
- 정의 문자열 Series 에서 패턴 매칭 으로 필터링/검색하는 메서드들. SQL 의 , 패턴. contains <CodeWithOutput language="python" out…
💬 댓글