문자열과 날짜
실무 데이터에는 이름, 주소, 이메일 같은 문자열 데이터와 날짜/시간 데이터가 빈번하게 등장합니다. Pandas의.str 접근자와 dt 접근자를 활용하면 이러한 데이터를 벡터화된 방식으로 효율적으로 처리할 수 있습니다.
학습 목표
- .str 접근자로 문자열 데이터를 벡터화 처리할 수 있다
- to_datetime으로 다양한 형식의 날짜 문자열을 변환할 수 있다
- dt 접근자로 날짜 구성 요소(연, 월, 일, 요일 등)를 추출할 수 있다
왜 중요한가
텍스트 데이터에서 패턴을 추출하거나, 날짜 데이터에서 시간적 특성(요일, 월, 분기)을 피처로 만드는 것은 피처 엔지니어링의 핵심입니다. 반복문 대신 벡터화된 문자열/날짜 연산을 사용하면 처리 속도가 수십 배 빨라집니다..str 접근자 — 문자열 처리
자주 쓰는 .str 메서드
| 메서드 | 설명 | 예시 |
|---|---|---|
.str.strip() | 공백 제거 | 데이터 정제 |
.str.lower() | 소문자 변환 | 텍스트 정규화 |
.str.contains() | 패턴 포함 여부 | 필터링 |
.str.startswith() | 접두사 확인 | 분류 |
.str.split() | 분할 | 파싱 |
.str.extract() | 정규표현식 추출 | 패턴 매칭 |
.str.replace() | 교체 | 정제 |
.str.pad() | 패딩 | 코드 포맷 |
.str.slice() | 부분 문자열 | 고정 위치 추출 |
to_datetime — 날짜 변환
dt 접근자 — 날짜 구성 요소 추출
| 속성 | 설명 | 반환값 |
|---|---|---|
.dt.year | 연도 | 정수 |
.dt.month | 월 | 1~12 |
.dt.day | 일 | 1~31 |
.dt.dayofweek | 요일 | 0(월)~6(일) |
.dt.quarter | 분기 | 1~4 |
.dt.hour | 시 | 0~23 |
.dt.date | 날짜만 | date 객체 |
.dt.time | 시간만 | time 객체 |
AI/ML에서의 활용
- 텍스트 피처: 이메일 도메인, 이름 길이, 특정 키워드 포함 여부를 피처로 만듭니다
- 시간 피처: 요일, 월, 분기, 공휴일 여부 등을 피처로 추출합니다
- 데이터 정제: 공백 제거, 대소문자 통일로 범주형 데이터의 일관성을 확보합니다
- 시계열 분할: 날짜 기반으로 학습/검증 데이터를 시간순으로 분할합니다
to_datetime의 format을 지정하면 왜 더 빠른가요?
to_datetime의 format을 지정하면 왜 더 빠른가요?
형식을 지정하지 않으면 Pandas가 여러 형식을 시도하며 자동 파싱합니다. 형식을 명시하면 한 번의 파싱으로 끝나므로 대용량 데이터에서 수배 빠릅니다.
NaT는 무엇인가요?
NaT는 무엇인가요?
NaT(Not a Time)는 날짜/시간의 결측치입니다. 숫자의 NaN에 해당하며,
pd.isna()로 탐지할 수 있습니다.체크리스트
- .str 접근자로 문자열 정제(strip, lower, replace)를 수행할 수 있다
- .str.contains()와 .str.extract()로 패턴 필터링/추출을 할 수 있다
- to_datetime으로 문자열을 날짜로 변환할 수 있다
- dt 접근자로 연, 월, 일, 요일 등을 추출할 수 있다
- 날짜 차이를 계산할 수 있다

