kyejin0412 님의 블로그

[Week 5-4] 파이썬 결측치/이상치 처리, 기초 프로젝트 주제 정하기 본문

내일배움캠프-데이터분석

[Week 5-4] 파이썬 결측치/이상치 처리, 기초 프로젝트 주제 정하기

kyejin0412 2025. 11. 20. 20:46

 

지난주 금요일부터 이번주 월요일은 일이 있어서 공가를 내게 되었다.

나머지 날들은 좀 풀어져서 TIL과 공부를 쉬엄쉬엄하였다. 이제 프로젝트 주차가 되었는데, 공가날들의 진도를 따라가기가 벅찼다. 주말에도 공부를 좀 해야 할 것 같다.

 

이제 프로젝트 주차가 시작되었는데, 생각보다 더 막막했다. 주제를 정하는 것부터 막혀서 애를 먹었다. 휴.. 쉽지 않다..

전처리도 어려웠다.


 

1. 결측치 처리

결측치는 따로 분리해놓고, 써먹지 않는다. 대체와 삭제라는 개념이 있지만 실제로는 삭제한다.

isna()

isnull() 로 확인

axis= 0 이면 행 제거

axis=1이면 열 제거

how = 'any' 하나라도 없으면 제거

how='all' 모든 값이 없으면 제거

axis=0, how='any' 추천. 열 제거는 다른 행들의 데이터들까지 모두 없어져서 위험함.

inplace=True 결측치 제거 후 결과 저장

최빈값은 범주형 데이터에 많이 쓰인다.

중앙값 평균값은 수치형 데이터에 많이 쓰인다.

 

 

2. 이상치 처리

이상치 처리- 웬만하면 드랍한다. 여러 방식으로 이상치를 도출한 결과, 이상치 수가 각각 다 다르면, 최대한 적게 나온 방식을 채택한다. 이상치는 최대한 보수적으로 하는게 위험하지 않다. 현업에서 정상을 비정상으로 판단하여 삭제하면 아주 큰 일인 이슈이다. 이상치는 적게!! 이론상으로도 이상하고, 내 생각에도 이상한 데이터여야 이상치라고 판단할 수 있다. 기법만 믿지 말고 내 생각도 합쳐서 and 조건으로 빡세게 필터링하자.

 

  • z-score: 데이터가 정규분포를 따를 때, z-score를 구하고 이상치 판단. sckit-learn으로 할 수 있음. 가장 많이 사용한다.
    평균으로부터 얼마나 많이 떨어져 있는가? -3보다 작거나 3보다 크면 이상치로 판별
  • IQR: 데이터가 정규분포를 따르지 않을 때 사용. 데이터 수를 4등분하여, 25%,50%,75% 기준으로 나눈다. 2번째로 많이 사용한다.

 

3. 기초 프로젝트 주제 정하기

  • 데이터셋: 커머스-H&M 2019년 고객, 판매, 상품 데이터
  • 주제: 온/오프라인 별 신규고객, 활성고객 각각 채널기여도, 평균 구매 금액, 재구매율, 선호 상품군을 구해서 프로모션 전략 제시
  • 튜터링 내용
    • 페르소나를 잡아서 스토리를 짜는게 할 얘기가 더 많아져서 추천함. (에어비앤비를 예시로, 신규 호스트, 기존 호스트, 에어비앤비 본사 등)
    • 변수간 연관성을 찾아내는 게 중요하다.
    • 시각화 하고 가설 세워도 된다.

11/20 질문 답변

 

  • 어려웠던 점: 전처리는 둘째 치고 주제를 정하는 것부터가 난관이었다. 먼저 컬럼들을 보고 어떤 것을 파악할 수 있나 봤는데, 직접 데이터를 보면서 결측치와 이상치가 얼마나 있는지, 분석이 안 될 정도로 많은지도 확인을 해야 한다고 한다.
    데이터의 도메인을 보고 주제를 생각해보는 것도 독창성을 살리는 데에 좋다고 한다. 데이터 안에서 뭘 볼 수 있을까만 생각했는데, 도메인을 간과했었다. 하지만 도메인을 어떻게 적용해야 하는지도 어려웠다. 이상치 처리는 커녕 확인하는 작업부터 어려웠고, 주피터 노트북과 vscode에서 matplotlib가 실행이 안되어 튜터님과 해결하기도 했다. 
    결국 대략적인 주제를 잡았는데 아직은 약해보였다. 일단 전처리와 시각화를 해가면서 인사이트를 발견하면 더 추가하기로 하였다.

 

  • 깨달은 점: 첫번째로 문제 정의가 되어야 분석에 어떤 칼럼을 쓸 지, 어떻게 조인을 할 지, 필요한 컬럼에 결측치나 이상치가 있는지 확인할 수 있기 때문에 정확한 주제와 목표를 가지고 있어야 한다. 좋은 주제를 생각해내기 위해 도메인 지식의 중요성을 체감할 수 있었다. 내가 원하는 산업군의 도메인을 평소에 공부를 해놔야 할 것 같았다.
    기술적인 부분은 하다보면 메워질 것이라고 생각하기에, 도메인과 문제정의를 연습하는 것이 중요할 것 같다.