관리 메뉴

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

Pandas 3 - 데이터 변환 및 데이터 요약하기 본문

인공지능/Numpy & Pandas

Pandas 3 - 데이터 변환 및 데이터 요약하기

huenuri 2024. 7. 31. 15:07

데이터를 변환하는 두번째 학습을 이제 본격적으로 시작해본다.

어떤 일이든 시작과 끝 맺음이 가장 중요하다. 더 하고 싶은 마음이 있더라도 중단하고 다음 일은 진행해야 삶의 균형이 흐트러지지 않는다. 이제 잘 쉬었으니 공부도 다시 시작해야 한다.


 

 

 

이론 4 - 데이터 변환하기 2

 

지난 수업에서 데이터를 변환했지만 날짜가 숫자로 되어 있어서 알아보기 힘들었다. 이제 요일을 글자로 표시할 수 있게 변환하는 작업을 진행할 단계가 되었다. 단위를 바꾸는 등 데이터 변환은 앞으로도 자주 쓰이는 기능이다.

 

 

 

 

 

 

시리즈 연산은 전체 컬럼에 영향을 주며 계산할 수 있다.

이처럼 변경된 것을 보게 된다. 이러한 연산은 데이터의 단위를 바꾸거나 숫자 계산을 통해 새로운 지표를 나타내는데 사용한다.

 

 

 

 

 

 

딕셔너리를 놓게 되면 해당 인자들을 넣어준 후 리턴된 값으로 변환한다.

 

 

 

 

 

 

데이터를 요일로 바꾸기 위해 week라는 딕셔너리를 생성한다. df의 요일에 메인 메서드를 적용한다.

 

 

 

 

 

 

 

컬럼 지정을 생략하여 데이터 전체에 적용할 수도 있다. 괄호 안에 값을 지정해주는 것은 사용 옵션을 지정해주는 것과 같다.

 

 

 

 

 

 

현재 날씨 정도에는 비, 눈, 눈/비 등의 항목이 별도로 있다. 이 3가지를 합쳐서 눈/비로 통일해보기로 하자. 변환을 한번 할때마다 함수를 정의해주어야 한다.
딱 한번 쓰고 사용하지 않을 함수가 많아진다면 코드가 복잡해지게 된다.

 

 

 

 

 

 

 

이럴 때 lambda 함수를 사용한다. 앞서 사용한 weather 함수를 lambda를 사용하면 이렇게 간단하게 표현된다.


 

 

 

 

실습 3 - 데이터 변환하기 2

 

문제 설명

 

 

 

 

 

 

 

 

실습해보기

 

1. 데이터 불러오기


요일 컬럼이 글자가 아닌 숫자로 기록되어 있는 것을 확인할 수 있다.

 

 

 

 

 

2. 열 전체 변환하기 : map()

 

 

 

 

 

3. 데이터에 함수 적용하기 : apply()

세 종류의 데이터를 눈/비로 통일하는 함수를 만들었다.

 

람다 함수는 전에 C#을 공부할 때 책에서 보았던 기억이 난다. 자세한 내용은 기억나지 않지만 이렇게 함수를 축약해주는 기능이었다.

 

 

 

 

 

 

4. 마지막 작업 및 채점

람다 함수를 사용하는 건 조금 어려웠지만 이렇게 풀어보았다.

 

 

 

 

 


 

 

 

 

이론 5 - 데이터 요약하기

데이터 요약에서는 데이터를 원하는 방식으로 요약하고 묶는 방식에 대해서 배우게 된다.

 

 

 

 

 

 

 

데이터 컬럼별로 평균 값이 나오며 어른 값의 평균 값도 계산되어 반환되는 것을 볼 수 있다. 하지만 이러한 통계값은 숫자로 이루어진 컬럼에만 적용된다.

 

 

 

 

 

 

 

 

 

 

 

 

이때는 소괄호 안에 대괄호를 씌워서 리스트 형태로 넣어주면 된다.

 

 

 

 

groupby()를 잘 사용하면 데이터가 어떤 특성과 동향을 갖고 있는지 파악할 수 있다.


 

 

 

 

실습 4 - 데이터 요약하기

 

문제 설명

 

 

 

 

 

 

 

 

직접 실습해보기

 

1. 데이터 불러오기

 

 

 

 

 

2. 데이터 통계값 확인

 

 

 

 

3. 직계함수 사용해 미세먼지가 가장 높은 날 구하기

이렇게 미세먼지 최대값을 불러와서 수치를 저장했다.

 

 

 

 

 

4. 데이터 전체 통계

 

 

 

 

5. 데이터 그룹화 : groupby()

날씨를 기준으로 총계 데이터를 묶을 수 있다.

날씨와 함께 공휴일이라는 다른 그룹으로도 하나 더 묶어볼 수 있다.

 

이렇게 사용하면 날씨와 공휴일에 따른 어른과 어린이 입장객수의 차이를 구분할 수 있다.

 

 

 

 

 

5. 그룹화 묶기 : 목요일이면서 공휴일인 날짜의 어른 입장객수의 최대값

 

 

 

 

 

6. 채점


 

 

 

학습을 마치고

데이터를 변환하는 두번째 방법에 대해서 학습해보았다. 첫번째 방법에서는 날짜가 숫자로 표시되는 문제가 있어서, 이것을 map() 함수로 담아서 열 전체를 변환하고 함수를 적용하는 apply()도 사용해보았다. 그리고 이어서 데이터를 요약하는 방법에 대해서도 학습했다.

직접 실습을 해보니 무슨 말인지 이해할 수 있었다. 다만 공부를 하다가 너무 졸려서 1시간이나 낮잠을 자고 말았다. 일어나기 정말 싫었지만 다시 일어나 공부를 시작하니 할만했다.


오후에 많이 쉰만큼 힘을 내서 공부를 진행해볼 것이다. 난 왜 이렇게 밥만 먹으면 잠이 몰려오는지 알 수가 없다. 특히 식후에 과일을 먹으면 이런 증세가 더 심해지는 것 같다. 점심 때는 가능하면 과일을 먹지 말아야겠다.

다음 포스트에서는 데이터를 추출하고 정제하는 방법에 대해서 학습해보겠다.