ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.