[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고 엔코아 AI 캠퍼스에서 첫 주는 Orientation과 하루 일정의 교육이 이루어 지다 보니, 이번 주가 본격적인 첫 주라고 봐야 할 것 같다. 정말 시간이 눈 깜짝할 사이에 지났다. 이번 주는 AI 개발자의 가장 기본이 되는 Python Programming 능력을 다지고, 실제 데이터 분석 의 핵심인 데이터 수집과 전처리 기술을 습득하는 매우 중요한 시간이었다. Python의 핵심 문법부터 라이브러리를 활용한 실무 기술까지, 적지 않은 양을 학습했고, 학습한 것들을 정리해 본다. 1. Python Programming 문법 가장 먼저 프로그래밍의 기초가 되는 변수와 제어문을 시작으로 코드의 재사용성을 높여주는 함수와 복잡한 데이터를 효율적으로 다루기 위한 자료구조를 학습했다. (1) Python 핵심 문법 정리 - 제어문 : if, for, while 등 조건에 따른 흐름 제어 및 반복 작업 수행 - 자료구조 : 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary), 세트(Set) 등 데이터 특성에 맞는 저장 및 관리 - 함수(Function) : 코드의 논리적 단위 분리, 매개변수와 반환 값을 활용한 코드 재사용성 극대화 # 자료구조와 함수 활용 예시 def process_data(data_list): result = {} for item in data_list: if item not in result: result[item] = 1 else: result[item] += 1 return result data = ['apple', 'banana', 'apple', 'orange', 'banana'] count_result = process_data(data) print(count_re...

Day006 - Pandas 라이브러리와 데이터 분석

Day006 - Pandas 라이브러리와 데이터 분석

오늘은 Python 데이터 분석의 핵심 도구인 판다스(Pandas) 라이브러리를 활용하여 데이터프레임(DataFrame)을 조회, 선택, 정렬하고 결측치∙이상치 정제 및 파생 변수를 생성하는 전체 데이터 전처리 흐름을 학습 했다.

Pandas DataFrame 및 Series 구조

1. 데이터 분석 : Pandas 라이브러리와 데이터프레임 기초

순수 Python의 반복문(for문 또는 while문)과 리스트(List) 기반 작업에서 벗어나 2차원 표(Table) 형태 구조를 효율적으로 다루기 위해 Pandas를 사용한다. Pandas의 핵심 자료구조는 1차원 열 구조인 Series 와 2차원 표 구조인 DataFrame 이다.

(1) 데이터 구조 확인 및 탐색

데이터를 블러온 후 데이터의 전체적인 윤곽을 파악하기 위해 다음 메서드(Method)들을 필수적으로 사용한다.

- df.head(n) / df.tail(n) : 상단 및 하단 n개 행 미리보기

- df.shape : (행 수, 열 수) 형태의 차원 확인

- df.info() : 각 열의 자료형, 결측치(Non-Null) 수 요약

- df.describe() : 수치형 열의 기술통계량(평균, 표준편차, 중앙값 등) 확인

import pandas as pd
import numpy as np

# CSV 파일 읽기 및 기초 탐색
df = pd.read_csv("data/cafe_sales.csv")[cite: 3]
print("데이터 차원:", df.shape)[cite: 3]
print(df.info())[cite: 3]
display(df.describe())[cite: 3]

(2) 열/행 선택 및 필터링

- 열(Column) 선택 : 단일 대괄호 df['열']Series 로 반환되고, 이중 대괄호 df[['열1', '열2']] DataFrame 으로 반환된다.

- 행/열 고르기(loc vs iloc) : loc 는 라벨(이름) 기반 조회, iloc 는 정수 위치(인덱스) 기반 조회를 수행 한다.

- 불리언(Boolean) 필터링 : 조건식 묶음 시 & (and), | (or), ~ (not) 연산자를 사용하며, 각 조건은 반드시 소괄호 ( ) 로 감싸야 한다.

- 정렬(sort_values) : ascending=False 옵션을 지정하면 내림차순 정렬이 수행 된다.

# 회원(Y)이면서 카테고리가 커피인 행 필터링 및 정렬
filtered_df = df[(df['회원여부'] == 'Y') & (df['카테고리'] == '커피')][cite: 3]
sorted_df = filtered_df.sort_values(by='수량', ascending=False)[cite: 3]

2. 데이터 수집 & 전처리

결측치∙이상치, 불필요한 공백, 잘못된 자료형이 포함되어 있어 수집 직후 정제 작업이 필수적이다.

결측치 및 이상치 처리 전후 비교


(1) 결측치(NaN) 및 이상치 처리

- 결측치 감지 및 처리 : isna().sum() 으로 결측치 수를 확인하고, dropna() 로 제거하거나 fillna() 로 대체한다. 이상치가 존재할 경우 평균값 대신 중앙값 즉, median() 으로 대체하는 것이 안전 하다.

- 이상치 처리 : 정상 범위를 크게 벗어나는 극단값(예: 수량 999)은 조건 필터링으로 제거하거나 clip(upper=N) 을 적용하여 상한을 지정 한다.

문자열 정제 및 데이터 타입 변환 흐름


(2) 자료형 변환 및 문자열 정제(.str)

- 문자열 가격 정수화 : 5,000 형태의 콤마가 포함된 문자열은 .str.replace(',', '') 제거 후, .astype(int)형변환 한다.

- 문자열 공백 제거 : 음료 명에 포함된 텍스트 공백은 .str.strip() 으로 정제하여 동일 값으로 통일 한다.

- 날짜형 변환 : pd.to_datetime() 을 이용하여 Datetime 형으로 변환 후, .dt.dayofweek 등의 속성을 활용한다.

파생 변수(총액, 가격등급 등) 생성


(3) 파생 변수 생성

사칙연산, apply(), map(), np.where() 등을 활용해 필요한 분석용 열을 새롭게 추가 한다.

# 데이터 정제 및 파생 변수 생성 파이프라인
work = df.copy()[cite: 4]
work['음료'] = work['음료'].str.strip()[cite: 4]
work['가격'] = work['가격'].str.replace(',', '').astype(int)[cite: 4]
work.loc[work['수량'] == 999, '수량'] = np.nan[cite: 4]
work['수량'] = work['수량'].fillna(work['수량'].median()).astype(int)[cite: 4]

# 파생 변수 생성
work['총액'] = work['가격'] * work['수량'][cite: 4]
work['대량주문'] = np.where(work['수량'] >= 4, '대량', '일반')[cite: 4]

# 최종 결과 저장 (인덱스 제외 및 한글 깨짐 방지 옵션)
work.to_csv("output/clean_sales.csv", index=False, encoding="utf-8-sig")[cite: 4]

오늘 데이터 분석 및 전처리 파이프라인 전반을 다루며, 데이터를 다루기 전 수집된 원본을 가공하는 전처리 단계가 왜 전체 작업의 80% 이상을 차지하는지 직접 체감할 수 있었다. 조건 필터링 시, 괄호 미적용으로 인한 에러나 콤마가 포함된 문자열의 형변환 에러 등 실무에서 빈번히 발생하는 오류들을 해결해 보면서 Pandas 핸들링에 대해 실습 할 수 있었다. Pandas 라이브러리로 다양한 방식의 데이터 분석을 할 수 있을 것 같아서 많은 기대가 된다.


#Pandas #DataFrame #DataPreprocessing #Python #DataAnalysis #SKNetworks #판다스 #데이터프레임 #데이터전처리 #파이썬 #데이터분석 #엔코아AI캠퍼스 #TIL

댓글

이 블로그의 인기 게시물

[SK네트웍스 family 엔코아AI캠퍼스] 나의 목표는 머신러닝 엔지니어다.

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 3주차 회고

[SK네트웍스 패밀리 엔코어AI캠퍼스] AI 머신러닝 캠프 1기_7월 4주차 회고