데이터 불러오기
25행 6열의 df가 있다.
광고그룹과 키워드는 위와 같다.
이를 우선 광고그룹으로 그룹핑해보자
목표 : 광고그룹별 클릭률 구하기
try1 : 함수정의 후 apply
데이터프레임의 원본을 반환한다.
이는 컬럼간 나누기를 한 것이기 때문에
키워드별 클릭률과 동일한 값이 나왔다.
try1 실패
try2 : lambda와 apply 이용
이 또한 try1과 같은 결과로 원하는 값이 아니다.
try2 실패
try3 : lambda와 집계함수 이용
그룹별 클릭수의 합과 노출수의 합으로 나누면 원하는 데이터를 얻을 수 있다.
단, 그룹과 값만 있는 시리즈가 나와서 활용도는 다소 떨어질 수 있다.
try4 : 집계함수를 포함한 함수 정의
그룹별 그룹_클릭률 컬럼이 새로 추가된다.
데이터프레임의 원본 반환
이는
try3에서 구한 값들이 그룹별로 컬럼에 추가된 것이다.
따라서 그룹별로 출력을 하면
항상 같은 값을 보인다.
이를 잘 활용할 수 있을지는 다소 의문이다.
try5 : 집계함수를 이용한 뒤 데이터프레임에서 컬럼간 연산
광고그룹의 sum 집계함수를 이용해서 합계들을 구한다.
위의 결과는 데이터프레임이다.
여기서 의미있는 컬럼은 노출수와 클릭수이다.
왜냐하면 클릭률은 그룹별 클릭률을 합한 것이기 때문에
그룹별 클릭률이라고 볼 수 없기 때문이다.
따라서 그룹별 클릭률을 구하는 컬럼을 새로 추가해야 한다.
데이터프레임이기 때문에 컬럼간 연산도 수월하게 진행할 수 있다.
또한 광고그룹이 인덱스로 되었기 때문에 활용도도 높다.
결론
try3 | 그룹별 원하는 값만 있는 시리즈 |
try4 | 그룹별 원하는 값이 컬럼으로 추가되어 원본 반환 |
try5 | 집계함수를 이용해 데이터프레임으로 활용 |
물론 각각의 방법마다 장단점이 있겠으나
이 중에서 목표로 했던 광고그룹별 클릭률을 구할 수 있고
활용도가 높은 방법은 try5 방법일 것이다.
'Pandas > 응용' 카테고리의 다른 글
정규표현식 - re.sub : 원하는 문자만 남기고 제거하기 (0) | 2020.08.02 |
---|---|
판다스 - groupby : set_index와 사용자 정의 함수로 그룹핑 (0) | 2020.07.20 |
판다스 - groupby : 그룹 객체별 상위 N개의 행만 추출 (0) | 2020.07.14 |
판다스 - groupby : 그룹 객체에서 컬럼간 연산 (0) | 2020.07.14 |
판다스 - groupby : 컬럼 선택 (SeriesGroupBy, DataFrameGroupBy) (0) | 2020.07.12 |