pandas

Pandas를 활용한 데이터 전처리 및 정리

난개발자 2025. 1. 30. 22:28
728x90

 

데이터 분석을 하기 전에 데이터 전처리(Data Preprocessing) 과정이 필수적입니다.
Pandas는 결측값 처리, 중복 제거, 데이터 변환 등의 기능을 제공하여 데이터를 정리하는 데 유용합니다.


1. 결측값 처리 (Missing Values)

데이터셋에는 종종 비어있는 값(NaN, null)이 포함되어 있습니다. 이를 처리하지 않으면 분석에 오류가 발생할 수 있습니다.

(1) 결측값 확인하기

import pandas as pd

# 예제 데이터 생성
data = {'이름': ['홍길동', '이순신', '강감찬', '김유신'],
        '나이': [25, 30, None, 40],
        '도시': ['서울', None, '대구', '부산']}

df = pd.DataFrame(data)

# 결측값 확인
print(df.isnull().sum())  # 각 열의 결측값 개수 확인

출력 결과:

이름    0
나이    1
도시    1
dtype: int64

(2) 결측값 제거하기

df_drop = df.dropna()  # 결측값이 포함된 행 제거
print(df_drop)

(3) 결측값 채우기

df['나이'].fillna(df['나이'].mean(), inplace=True)  # 평균값으로 채우기
df['도시'].fillna("알 수 없음", inplace=True)  # 특정 값으로 채우기
print(df)

2. 중복 데이터 제거

데이터에 중복된 행이 있는 경우 제거할 수 있습니다.

df = pd.DataFrame({'이름': ['홍길동', '이순신', '강감찬', '홍길동'],
                   '나이': [25, 30, 45, 25]})

df = df.drop_duplicates()  # 중복된 행 제거
print(df)

3. 데이터 형식 변환

숫자, 문자열, 날짜 등 데이터의 형식을 변환하는 것도 중요합니다.

(1) 데이터 타입 확인 및 변환

print(df.dtypes)  # 데이터 타입 확인

df['나이'] = df['나이'].astype(int)  # 정수형(int)으로 변환

(2) 날짜 데이터 변환

df['가입일'] = pd.to_datetime(df['가입일'])  # 날짜 형식 변환

4. 데이터 정렬

정렬을 통해 데이터를 더 쉽게 분석할 수 있습니다.

df_sorted = df.sort_values(by='나이', ascending=True)  # 나이를 기준으로 오름차순 정렬
print(df_sorted)

5. 새로운 열 추가 및 값 변경

df['회원 등급'] = ['VIP' if age > 30 else '일반' for age in df['나이']]
print(df)

6. 문자열 데이터 다루기

Pandas에서는 문자열 데이터를 다룰 수 있는 다양한 기능을 제공합니다.

df['이름'] = df['이름'].str.upper()  # 이름을 대문자로 변환
df['이름'] = df['이름'].str.replace("홍길동", "무명씨")  # 특정 문자열 변경

7. 마무리

이번 포스팅에서는 Pandas를 활용한 데이터 전처리 및 정리 방법을 배웠습니다.
다음 글에서는 데이터 분석 및 시각화에 대해 다룰 예정이니 기대해 주세요! 😊

 

728x90