관리 메뉴

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

Pandas 6 - 데이터 병합하기 + 미션 문제 풀기 본문

인공지능/Numpy & Pandas

Pandas 6 - 데이터 병합하기 + 미션 문제 풀기

huenuri 2024. 7. 31. 15:18

이 과목의 2주차 수업의 마지막이 얼마 남지 않았다. 데이터 병합하기만 공부하면 끝인 것이다. 한 주차 수업이 얼마나 길던지 끝나지 않을 것처럼 보였다. 그래도 이 수업은 3주 차까지만 있어서 다행이었다.

그럼 바로 학습을 시작하기로 하자!


 

 

 

 

이론 8 - 데이터 병합하기

 

학생이 추가될 수도 과목이 추가될 수도 있는데 행이나 열이 추가되는 것이다.

 

 

 

 

이 데이터를 합치고 싶다면 어떻게 해야 할까?

 

 

 

 

 

 

인덱스를 초기화하기 위해 ignore_index를 True로 설정한다.

 

 

 

 

 

concat()과 다른 점은 리스트로 넣지 않고 하나하나 왼쪽과 오른쪽에 인자로 넣어준다.

 

 

 

 

 

 

how를 inner로 했을 때 5월과 6월의 데이터만 남고 나머지는 합쳐졌다. outer로 하면 3~6월이 모두 포함되어 있고, 각각 없는 데이터들도 있다. 교집합이 아닌 다른 방식으로 데이터를 합치다 보면 없는 데이터가 존재하게 된다. 이럴 때는 결측치가 된다.
left라면 3~6월 데이터만 존재하고, 미세먼지 데이터가 없는 열은 결측치 처리된다.

 

 

 

 

 

 

merge는 합칠 두 데이터의 기준열 상태를 보고 합칠 방법을 잘 설정해주는 것이 중요하기에 연습이 많이 필요하다.

 

 

 

 

 

 

이 데이터를 통해 입장객 수와 미세먼지와의 관계를 알고 싶다면 어떻게 해야 할까? merge를 사용해서 두 데이터를 합칠 수 있다.
여기서 how를 왜 left로 했는지 생각해봐야 한다.

 

 

 

 

 

 

우리의 관심사는 입장객 수에 따른 미세먼지의 양이기 때문에 입장객 수가 없는 데이터는 필요하지 않다. 그렇기에 how를 입장객 수의 데이터인 left에 맞춘 것이다.

 

 

 

 

 

 

 

 

 

 

 

판다스에서는 많은 메서드를 지원하고, 여기서 다룬 메서드들도 훨씬 다양한 기능을 제공한다. 실제로 데이터 분석을 하다 보면 특정 상황, 특정 내용에 맞게 필요한 기능이 있다. 그럴 때는 판다스 docs라는 문서를 확인하면 된다.
예를 들어, pandas.concat의 기능을 알고 싶다면 구글에 판다스 docs를 검색한 후 접속하면 일종의 설명서를 확인할 수 있다.


 

 

 

 

 

 

실습 7 - 데이터 병합하기

 

문제 설명

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

직접 실습해보기

 

1. 데이터 불러오기

 


 

 

 

 

2. 데이터 병합 : concat()

 

 

 


 

 

 

 

3. concat() 활용하기

 

 

데이터를 늘리면 긴 기간 동안 분석하고, 데이터 분석 결과의 정확도를 높일 수 있다.


 

 

 

 

4. 데이터 병합 : merge()

 

 

 

 

 


 

 

 

 

5. Todo 문제 1번 풀기

 

 

 

 

 

출력이 잘 되었음을 볼 수 있다. 무슨 말인지는 잘 몰라서 그냥 실습을 따라 하기만 했다.


 

 

 

 

6. Todo 문제 2번 풀기

 


 

 

 

 

 

7. 채점하기

 

 

 

 


 

 

 

 

 

미션 - 서울시 아파트 실거래 데이터 분석

정말 어려워 보이지만 풀 수 있는 데까지 풀어보기로 했다.

 

 

1. 데이터 불러오기


 

 

 

 

2. 전체 데이터 자료형 확인


 

 

 

 

3. 데이터 프레임에서 사용하지 않을 칼럼 제거

 

 

 

 

 

처음에는 되는 듯하다가 애러가 엄청 많이 떴는데 해결방법을 모르겠다. 우선 넘어가기로 했다.


 

 

 

 

4. 전용 면적으로 바꾸기

 

 

 

 


 

 

 

 

5. 날짜 타입 변경

 

 

 


 

 

 

 

6. 결측치 확인

미션 문제는 여기까지 풀어보는 걸로 하기로 했다.


 

 

 

 

 

학습을 마치고

이렇게 해서 2주 차 학습을 모두 마쳤다. 학습량을 70% 달성한 것 같다. 이수증이 나오려면 10% 더 학습을 진행해야 하니 이어서 3주 차 수업에 들어가 보려고 한다. 미션 문제가 너무 어려워서 30분 이상 풀었더니 조금 지쳤다.

 

삭제 기능을 잘 사용한 것 같은데 왜 처음에 딱 한 번만 되고 안되는지 그 이유를 모르겠다. 아직은 판다스에 대해 거의 모르는 상태이니 잘 안될 수밖에 없을 것이다. 그래도 2단원을 공부하며 많은 것들을 배우게 된 것 같다. 데이터를 어떻게 분석하고 추출 · 변환하며 사용하는지 조금은 알게 된 수업이었다.