섹션별 상세
df.columns 속성에 문자열 메서드를 체이닝하여 모든 컬럼명의 공백을 제거하고 소문자로 변환하며 공백을 언더바로 대체한다. 이는 대규모 데이터셋에서 일관된 명명 규칙을 적용하여 오타로 인한 버그를 방지하는 효율적인 방법이다.
python
df.columns = df.columns.str.strip().str.lower().str.replace(" ", "_")모든 컬럼명의 공백을 제거하고 소문자로 변환하며 공백을 언더바로 대체하는 한 줄 코드
apply 함수와 람다식을 결합하여 데이터프레임 내의 모든 문자열(object) 타입 컬럼에서 눈에 보이지 않는 앞뒤 공백을 제거한다. 숫자형 컬럼은 유지하면서 카테고리 데이터만 선택적으로 정제할 수 있다.
pd.to_numeric의 errors='coerce' 옵션을 사용하면 숫자로 변환 불가능한 잘못된 문자열을 에러 발생 없이 NaN으로 처리한다. 이는 astype(float) 사용 시 발생할 수 있는 프로그램 중단을 방지하는 안전한 방법이다.
python
df["age"] = pd.to_numeric(df["age"], errors="coerce")
df["income$"] = pd.to_numeric(df["income$"], errors="coerce")숫자로 변환 불가능한 값을 에러 없이 NaN으로 처리하며 안전하게 데이터 타입을 변환하는 예시
다양한 형식의 날짜 문자열을 pd.to_datetime으로 통일하며, 유효하지 않은 값은 NaT(Not a Time)로 변환하여 데이터 파이프라인의 안정성을 확보한다.
fillna를 활용해 중앙값(median)이나 최빈값(mode)으로 결측치를 보충한다. 특히 최빈값 사용 시 인덱스 [0]을 지정하여 동률 발생 시에도 단일 값을 추출하는 기법을 적용한다.
python
df["age"] = df["age"].fillna(df["age"].median())
df["city"] = df["city"].fillna(df["city"].mode()[0])중앙값과 최빈값을 사용하여 결측치를 효율적으로 채우는 방법
딕셔너리와 map 함수를 사용하여 동일한 대상을 가리키는 다양한 표기(예: 'new york', 'nyc')를 하나의 표준 명칭으로 통합한다. 이는 groupby 등 후속 분석의 신뢰도를 높이는 핵심 단계이다.
drop_duplicates의 subset 파라미터를 사용하여 특정 컬럼(예: 사용자 이름)을 기준으로 중복 여부를 판단하고 행을 제거한다. 이를 통해 데이터의 고유성을 보장하고 중복 계산을 방지한다.
데이터를 삭제하는 대신 clip 함수를 사용하여 상하위 특정 분위수(예: 1%, 99%)를 벗어나는 극단값을 경계값으로 대체한다. 이는 수동 입력 오류로 의심되는 이상치를 처리할 때 유용하다.
python
q_low, q_high = df["income$"].quantile([0.01, 0.99])
df["income$"] = df["income$"].clip(q_low, q_high)상하위 1% 분위수를 기준으로 이상치를 경계값으로 제한(클리핑)하는 기법
용어 해설
- 데이터 전처리(Data Preprocessing)
- — 수집된 원시 데이터를 분석이나 머신러닝 모델 학습에 적합한 형식으로 정제하고 변환하는 과정이다. 결측치 처리, 데이터 타입 변환, 정규화 등을 포함하며 모델의 성능을 결정짓는 핵심적인 단계이다.
- 결측치 대체(Imputation)
- — 데이터셋에서 누락된 값(Missing Value)을 평균, 중앙값, 최빈값 등 통계적 추정치나 특정 규칙으로 채워 넣는 기법이다. 데이터 손실을 방지하고 분석의 연속성을 유지하기 위해 사용한다.
- 이상치(Outlier)
- — 전체 데이터의 패턴에서 크게 벗어난 극단적인 값이다. 측정 오류나 특이 현상으로 발생하며, 모델의 예측력을 왜곡할 수 있어 삭제하거나 특정 범위 내로 조정하는 처리가 필요하다.
- 분위수(Quantile)
- — 데이터를 크기순으로 정렬했을 때 특정 백분율 위치에 해당하는 값이다. 예를 들어 99분위수는 상위 1% 경계값을 의미하며, 이상치를 탐지하거나 데이터 분포를 파악하는 기준이 된다.
- 벡터화(Vectorization)
- — 명시적인 반복문(for loop) 없이 배열이나 데이터프레임 전체에 연산을 한꺼번에 적용하는 방식이다. Pandas와 NumPy의 핵심 메커니즘으로 대규모 데이터 처리 속도를 획기적으로 높인다.
기술
- Python
- Pandas
- NumPy
활용 사례
- 머신러닝 학습 데이터 정제
- 로그 데이터 표준화
- 데이터베이스 입력 전 데이터 검증
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 02. 19.수집 2026. 02. 21.출처 타입 RSS
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.