pandas 데이터 정제
pandas 데이터 정제
실무 데이터는 대부분 누락값, 중복, 이상 타입 같은 문제를 갖고 있어요. pandas는 이런 데이터를 정제하는 강력한 도구를 제공해요. 누락값 처리와 중복 제거만 잘해도 분석 품질이 크게 올라가요.
출처: https://pandas.pydata.org/docs/user_guide/missing_data.html
누락값 확인
누락값은 NaN(숫자) 또는 None으로 표시돼요. isna()로 어디에 누락이 있는지 확인할 수 있어요.
import pandas as pd
df = pd.DataFrame({"a": [1, None, 3], "b": [4, 5, None]})
print(df.isna()) # True/False로 표시
print(df.isna().sum()) # 컬럼별 누락 개수
누락값 처리
누락값을 지우거나 채우는 두 가지 방법이 있어요. dropna()는 누락이 있는 행을 제거하고, fillna()는 지정한 값으로 채워요.
df_clean = df.dropna() # 누락 있는 행 제거
df_filled = df.fillna(0) # 누락을 0으로 채움
df_ffill = df.fillna(method="ffill") # 앞 값으로 채움
중복 제거
duplicated()로 중복을 확인하고, drop_duplicates()로 제거할 수 있어요.
df_no_dup = df.drop_duplicates()
df_no_dup_sub = df.drop_duplicates(subset=["id"])
subset으로 중복 판단 기준 컬럼을 정할 수 있어요.
타입 변환
astype()으로 컬럼 타입을 바꿀 수 있어요. 예를 들어 문자열로 읽힌 숫자를 정수로 바꾸는 경우에 유용해요.
df["price"] = df["price"].astype(float)