CodeGym /행동 /Python SELF KO /데이터 포맷팅과 테이블에서 불필요한 정보를 제거하는 방법

데이터 포맷팅과 테이블에서 불필요한 정보를 제거하는 방법

Python SELF KO
레벨 28 , 레슨 2
사용 가능

1. 왜 필요한가?

데이터를 처리하는 공장의 엔지니어라고 상상해봐. 이제 당신은 원자재(데이터)를 분석하고 정리해서 최종 제품(통찰, 보고서)을 만들어야 해. 정리와 포맷팅이 없으면 데이터는 여기저기 널브러진 부품처럼 남아서 조립하기 어렵게 되지.

깨끗하고 포맷팅된 데이터는 단순히 보기 좋고 읽기 쉽게 만드는 문제가 아니라 정확한 분석과 모델 구축의 중요한 조건이야. 잘못 처리된 데이터는 잘못된 결론을 초래할 수도 있고, 하루 일을 마칠 때가 돼서야 직원들의 평균 연령을 연도로가 아니라 데이터 파편으로 계산했다는 걸 깨닫게 되는 그런 상황은 누구도 원하지 않잖아.

포맷팅의 주요 목표

코드를 작성하기 전에 포맷팅을 통해 우리가 해결하고자 하는 문제를 살펴보자:

  • 빈 행과 열 제거: 빈 주머니처럼 아무런 이익도 없지만 쉽게 혼란을 준다.
  • 중복 제거: 반복되는 데이터는 노이즈를 일으킨다.
  • 누락된 값 채우기: 치즈의 구멍을 채우는 것처럼 때로는 맛있는 무언가로 채워야 해.
  • 데이터 타입 변환: 나이는 숫자여야 하고 텍스트가 되면 안 된다는 걸 확인하는 게 중요해. "25년 경력"과 같은 텍스트와 혼동하지 않도록.

2. 데이터 정리와 포맷팅을 위한 도구

이제 왜 이게 필요한지 알았으니, 이 작업을 도와줄 도구들을 살펴보자. 마치 하이킹에서 스위스 아미 나이프 같은 존재들이야:

  • 빈 값 제거: dropna()
  • 중복 처리: duplicated()drop_duplicates()
  • 누락된 값 채우기: fillna()
  • 데이터 타입 변환: astype()

빈 값 제거

빈 값은 항상 예상치 못한 순간에 나타나는 것 중 하나야. dropna()로 불필요한 것들을 오래된 낡은 양말처럼 제거할 수 있어. 예제를 보자:

Python

import pandas as pd

# 누락된 값이 있는 DataFrame 생성
data = {'이름': ['안나', '이반', None, '마리아'],
        '나이': [29, None, 34, 23],
        '도시': ['모스크바', '상트페테르부르크', '노보시비르스크', None]}

df = pd.DataFrame(data)

# NaN 값이 포함된 행 삭제
cleaned_df = df.dropna()

print(cleaned_df)

위 코드는 하나라도 빈 값이 있는 모든 행을 삭제할 거야.

중복 처리

가끔 당신의 데이터에 중복이 나타날 수 있어. 마치 "찾아라 차이점" 게임에서 차이가 없는 그림처럼. 이런 데이터는 drop_duplicates()로 걸러낼 수 있어.

Python

# 중복된 데이터가 있는 DataFrame 생성
data = {'이름': ['안나', '이반', '안나', '마리아'],
        '나이': [29, 34, 29, 23]}

df = pd.DataFrame(data)

# 중복된 행 삭제
unique_df = df.drop_duplicates()

print(unique_df)

누락된 값 채우기

누락된 값을 채우는 방법은 다양해. 예를 들어 평균 값이나 고정된 값으로 채울 수 있어. fillna()가 그것을 도와줄 거야:

Python

# '나이' 열의 누락된 값을 평균값으로 채우기
df['나이'] = df['나이'].fillna(df['나이'].mean())

print(df)

데이터 타입 변환

데이터 변환은 텍스트 데이터가 예상되는 숫자 자리에서 나오는 걸 방지하기 위해 필요할 때가 있어:

Python

# '나이' 열의 데이터 타입을 정수로 변환
df['나이'] = df['나이'].astype(int)

print(df)

3. 실제 데이터셋 정리: 예제

이제 가상의 Excel 파일로 실제 데이터를 정리하고 포맷팅해보자. 판매 정보가 담긴 데이터로 작업해볼게.

Python

# Excel에서 데이터 로드
filename = "sales_data.xlsx"
df = pd.read_excel(filename)

# 누락된 값이 있는 행 삭제
df = df.dropna()

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

# '판매' 열의 누락된 값을 평균 값으로 채우기
df['판매'] = df['판매'].fillna(df['판매'].mean())

# 데이터 타입 변환
df['제품 코드'] = df['제품 코드'].astype(str)

# 정리된 데이터를 Excel로 저장
df.to_excel("cleaned_sales_data.xlsx", index=False)

결과적으로, 분석과 보고서 생성에 적합한 깔끔하고 정리된 Excel 파일을 얻게 될 거야.

4. 데이터 정리 작업에서 흔한 실수

전자 제품 수리와 마찬가지로, 데이터 작업에서도 실수가 생길 수 있어. 다음은 피해야 할 몇 가지 흔한 실수야:

유용한 정보를 중복 데이터와 함께 삭제하는 경우. 때로는 중복 데이터가 데이터 오류의 신호일 수 있으며, 그들의 원인을 살펴보는 것이 좋아. 데이터 타입 혼동. 형식 변환이 간단해 보일 때도 있지만, 변환이 허용 가능한지 확인하지 않으면 데이터 손실로 이어질 수 있어.

이 팁들을 따르고 제안된 단계를 수행하면, 데이터와 친하게 지낼 수 있고, 심지어 가장 끔찍한 분석가의 악몽처럼 보이는 데이터도 다룰 수 있을 거야. 그리고 기억해, 데이터와 당신의 코드 모두 깨끗해야 해!

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION