관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

Pandas 5 - 데이터 정제하기 본문

인공지능/Numpy & Pandas

Pandas 5 - 데이터 정제하기

huenuri 2024. 7. 31. 15:15

여섯 번째 단원으로 데이터를 정제하는 방법을 배워보기로 하자. 이 학습까지만 마치고 저녁 운동을 하려고 한다. 어제도 걷기와 줄넘기 운동을 하지 못했는데 오늘은 꼭 해야 할 것 같다.
저녁에 Numpy/ Pandas 과목의 80% 이상 수료하고, 파이썬 응용 수업에 들어가는 게 오늘의 목표이다. 그래도 처음보다는 학습 속도가 빨라지고 있으니 기대해 볼 만하다. 그럼 데이터 정제 학습을 시작해 보겠다.


 

 

 

 

이론 7 - 데이터 정제하기

 

 

 

 

 

 

데이터를 보면 ascending 값이 생략되어 기본값인 오름차순으로 정렬되어 있다. 반면 ascending이 false면 내림차순으로 정렬된다.
이 함수를 활용하면 데이터가 가지는 특징을 쉽게 파악할 수 있다.

 

 

 

 

 

기존의 index를 저장한 칼럼이 생기는데, 이때 drop=True로 설정하면 인덱스 컬럼이 없는 데이터프레임이 반환된다.

 

 

 

 

 

기존의 프레임에서 2개가 제거된 데이터프레임이 저장된다.

 

 

 

 

 

 

 

 

 

 

 

비어있는 값을 결측치라고 한다. 이 결측치는 올바른 데이터나 인공지능을 위해 없애주는 것이 좋다.

 

 

 

 

 

결측치가 있다면 해당 컬럼의 평균, 중앙값, 최빈값 등 통계값을 활용해서 채워 넣는 경우가 많다. 통계값은 최대한 비슷한 값으로 채워 넣게 되므로 자주 사용하는 방법이다.

 

 

 

 

 

 

결측치가 많지 않은 경우에는 데이터를 삭제해도 결과에 큰 영향을 미치지 않는다. 특정 컬럼에 대해 결측치가 있는지 검사하고 결측치가 있다면 해당 행을 제거한다.


 

 

 

 

 

실습 6 - 데이터 정제하기

 

문제 설명

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이번 실습에서는 정말 할 게 많다. 영상 분량도 이전보다 훨씬 많고. 하지만 차근차근 단계별로 하다 보면 분명 잘 해낼 수 있을 것이다. 이제 본격적인 실습을 진행해 보자!


 

 

 

 

직접 실습해 보기

 

1. 데이터 불러오기

 


 

 

 

 

 

2. 데이터 정렬 : sort_values

 

이 작업이 계속되지 않아서 왜 그런가 했는데 데이터를 불러오는 작업이 제대로 작동되지 않았기 때문이었다. 데이터를 불러오면 목록이 나타나는데 그렇기 않으면 불러온 것이 아니다.

 

 

 


 

 

 

 

 

3. 입장객 수가 하위 10개인 데이터 정렬


 

 

 

 

 

4. 미세먼지 농도가 3번째로 심했던 날짜를 변수 pollution에 저장하기

 

 

문자열을 숫자로 저장하면 값을 불러올 수 있다.

 

 

 

목록이 나타나지 않아 값을 잘못 입력한 줄 알았는데 아니었다. 원래 저장만 하면 되니까 잘 된 것이다.


 

 

 

 

5. 인덱스 재지정 : reset_index

 

 

 

총계 컬럼이 재정렬된 상태에서 인덱스도 재정렬된 것을 볼 수 있다.

 


 

 

 

 

6. 데이터 삭제 : drop

 

 

이렇게 필요 없는 칼럼이 삭제되어 좀 더 깔끔한 데이터가 되었다.


 

 

 

 

7. 열 이름 바꾸기 : rename

 

 

먼저 총계와 총 입장객수를 dictionary로 한다. 바꿀 컬럼의 이름 총계를 키로 가지고 무엇으로 바꿀지 value를 지정한다. 그런 다음 바뀐 것을 df에 덮어씌운다.

 

 

 


 

 

 

 

8. 결측치 처리

 

 

 

 


 

 

 

 

9. 결측치 탐색 : isnull()

 

 

 

 


 

 

 

 

10. 결측치 채우기 : fillna()

 


 

 

 

 

 

11. 결측치 데이터 삭제하기 : dropna()

 

 


 

 

 

 

12. 미세먼지 데이터 결측치 칼럼을 해당 칼럼의 중앙값으로 채우기

mm 결측치만으로는 어떤 컬럼의 결측치가 존재하는지 알 수 없다.

 

 

 

 

 

 

 

 

근데 뭘 잘못 썼는지 오류가 잔뜩 떴다. 다시 한번 써보자!

 

이제 제대로 되었다~


 

 

 

 

 

13. 채점하기

 

총 22개의 단계에 걸쳐 데이터를 정제해 보았다.

 

 

 

 


 

 

 

 

학습을 마치고

두 번째 단원부터 정말 어려웠는데 데이터를 정제하는 부분도 만만치 않았다. 강사님의 설명을 들으며 따라 해보는데도 오류가 발생하고 모든 코드를 아직은 다 이해하지 못했다. 지금은 해야 할 공부가 많아서 한 70% 정도 이해하고 넘어가는 것 같다.

데이터를 정렬하고 결측치를 채울 수 있는 방법에 대해 배울 수 있었다. 데이터도 값이 없게 되면 정확한 측정이 어려운 것 같다. 그래서 평균값으로 대체하는 경우가 많다고 한다. 전에 내가 사회학과에 있을 때 이런 통계 수업을 들은 적이 있었다.
3학년 때 물리학과에서 전과를 해서 2년밖에 배우지는 않았지만, 그때 무슨 통계 프로그램을 사용해서 뭔가를 만들었는데 정말 어려웠었다.


그 생각이 갑자기 났다. 지금까지 내가 배운 것들이 다 쓸모가 있고 지금의 나를 만들었구나 하는 생각도 들었다. 물리학과에서 공부했던 시간들도(놀기만 했지만) 참 의미 있었고 이후 물리를 한때 좋아하게 되는 계기도 되었다.

학교 다닐 때는 공부에 흥미를 붙이지 못했지만 말이다. 그때 전자기학 교수님께서 내게 참 특이하고 이상한 과제를 내주시며 발표를 시키셨지만, 삔들거리면서 결국 과제 발표도 하지 않았었다. 시험 볼 때는 공부가 너무 하기 싫어서 한 페이지도 읽지 않고 즉석에서 물리 공식을 만들어서 제출했던 기억도 난다.
그때 열심히 공부할 걸 하는 후회도 들지만.. 어쨌든 돌아 돌아 여기까지 온 것 같다. 이제는 공부의 필요성을 느끼고 있다.