본문 바로가기
2학년 2학기/데이터 사이언스 입문

9주차 - split, apply, pivot table을 이용해서 실습해보기

by kkkkk1023 2024. 10. 31.

 

 

 

초반에는 모든 사전 자료형을 열거해서 데이터 프레임을 만들었지만, 사전자료형의 하나의 키에 여러 값을 리스트로 추가해서 데이터 프레임을 만드면 추후 행을 추가할 때 각 리스트의 요소들만 추가하면 되기 때문에 아래의 방식이 더 개선된 방식이다. 

 


9.1은 split을 통해 구분된 데이터들을 기반으로 apply로 연산을 하는 것이 주요 포인트이다.

 

 

 

 

내가 한 방식은 특정 열의 행 값에 따라서 값을 부여해주었다. 

 

하지만, 교수님은 Product로 행을 만들어주고 groupby(category_mapping)에서 category_mapping을 전달하면 pandas는 인덱스의 각 값에 대해 category_mapping 딕셔너리를 참조하여 자동으로 새로운 카테고리 값으로 매핑을 수행합니다.

 

따라서 그렇게 매핑된 데이터 플레임에 aggregate 연산을 해주면 된다.

 

 

 

 

 

1-4번 같은 경우 Salesperson을 기준으로 데이터를 나누고 나눈 데이터들의 특정 열끼리 / 연산을 진행한 결과의 평균을 내야한다. 

따라서 apply에 lambda를 이용해서 특정 열을 / 연산해주고 그 값의 평균을 구했다. 

 


 

9.2의 주요 포인트는 피벗 테이블을 이용해서 9.1의 기능을 다시 구현해보는 것이다.

 

 

 

2-3번 같은 경우 Revenue열에  df['Revenue'] / df['Units Sold'] 를 넣고, 저장된 Revenue열의 평균치를 구했다. 

 


 

 

3-3에서 연대별로 decade를 생성하는 것이 중요하다. 나는 초반에는 조건문을 통해서 하려고 했지만 너무 코드가 길어졌다. 하지만 교수님은 year 열 자체를 // 연산(몫 연산)을 이용해서 10의 몫을 전부 10으로 곱해서 연대별 컬럼을 만드셨다.