반응형

데이터 분석에서 가장 중요한 과정 중 하나는 데이터 전처리입니다.
전처리를 잘하면 데이터의 품질이 올라가고, 분석 결과도 더 정확해집니다.

이번 글에서는 Pandas를 활용하여 데이터를 정리하는 방법을 배워보겠습니다.

 


 

1. 데이터 불러오기 및 확인

Pandas는 다양한 데이터 형식을 다룰 수 있습니다.
먼저 CSV 파일을 불러오고 데이터 구조를 확인하는 방법을 알아보겠습니다.

import pandas as pd  

# CSV 파일 불러오기
df = pd.read_csv('data.csv')

# 데이터 미리보기
print(df.head())  # 상위 5개 행
print(df.tail())  # 하위 5개 행

# 데이터 정보 확인
print(df.info())  # 컬럼 정보, 데이터 타입, 결측치 확인
print(df.describe())  # 수치형 데이터 요약 통계

 


 

2. 결측치 처리 (Missing Values)

2.1 결측치 확인

데이터에는 비어있는 값(결측치)이 있을 수 있습니다.

이를 찾아보겠습니다.

print(df.isnull().sum())  # 컬럼별 결측치 개수 확인
 
 

2.2 결측치 제거

결측치가 있는 행을 제거하는 방법입니다.

df_cleaned = df.dropna()  # 결측치가 있는 행 삭제
 

2.3 결측치 채우기

특정 값으로 결측치를 채울 수도 있습니다.

df['나이'].fillna(df['나이'].mean(), inplace=True)  # 평균 나이로 채우기
df['도시'].fillna('서울', inplace=True)  # 특정 값으로 채우기

 


 

3. 데이터 변형 (변수 추가 및 수정)

3.1 새로운 컬럼 추가

df['총점'] = df['국어'] + df['영어'] + df['수학']  # 총점 컬럼 추가
df['평균'] = df['총점'] / 3  # 평균 컬럼 추가

3.2 컬럼 이름 변경

df.rename(columns={'국어': 'Korean', '영어': 'English'}, inplace=True)

3.3 데이터 타입 변환

df['나이'] = df['나이'].astype(int)  # float → int 변환

 


 

4. 데이터 필터링 (특정 조건 선택)

4.1 특정 컬럼 선택

print(df[['이름', '평균']])  # 특정 컬럼만 선택

4.2 조건을 활용한 데이터 필터링

print(df[df['평균'] >= 80])  # 평균이 80점 이상인 학생
print(df[(df['국어'] > 90) & (df['수학'] > 80)])  # 국어 90점 초과 & 수학 80점 초과

 


 

5. 데이터 정렬 및 그룹화

5.1 데이터 정렬

df_sorted = df.sort_values(by='평균', ascending=False)  # 평균 점수 기준 내림차순 정렬

5.2 데이터 그룹화

grouped = df.groupby('학교')['평균'].mean()  # 학교별 평균 점수 계산
print(grouped)

 


 

6. 데이터 저장

처리된 데이터를 파일로 저장할 수 있습니다.

df.to_csv('processed_data.csv', index=False)  # CSV 파일 저장
df.to_excel('processed_data.xlsx', index=False)  # Excel 파일 저장

 


 

결론

  • 결측치 처리: dropna(), fillna() 활용
  • 데이터 변형: 새로운 컬럼 추가, 컬럼 이름 변경, 데이터 타입 변환
  • 데이터 필터링: 특정 컬럼 선택, 조건 기반 필터링
  • 데이터 정렬 및 그룹화: sort_values(), groupby() 사용

 

다음 글에서는 Pandas를 활용한 데이터 시각화를 다뤄보겠습니다! 

반응형

+ Recent posts