brunch

You can make anything
by writing

C.S.Lewis

by 노다 Aug 07. 2020

파이썬으로 브랜드 쿼리량 분석하기

LG전자는 유럽 시장에서 어떤 브랜드인가 

    얼마 전에 헤드헌터 제안으로 한국 광고회사 영국법인 마케터 면접을 봤다. 클라이언트에 대한 관심도 어필하고 데이터 분석 스킬도 어필할 겸 그 광고회사의 메인 클라이언트인 LG 관련된 키워드를 파이썬으로 분석해서 간단히 프레젠테이션을 준비했었다. 결론적으로 말하면 잘 안되긴 했지만 인터뷰는 떨어졌어도 코드는 남았으니 다행이라고 긍정회로를 돌려본다.(흑흑)

요즘 행복회로가 풀가동 되다못해 재가 될 것 같다.


분석 준비하기

    나는 유럽시장에서 해당 브랜드의 어떤 제품군이 가장 수요가 많고, 온라인 채널에서 관심도가 높은 지를 알고 싶었다. 이를 직접적으로 반영하는 지표가 쿼리량이라고 생각해서, 구글 애즈 키워드 플래너에서 브랜드명과 연관된 키워드 리스트를 뽑았다. 막상 데이터 시트를 열어보니 알파벳으로 된 세부 제품명 키워드들이 너무 많아서 데이터 전처리로 세부 키워드들이 각각 어떤 상품군에 속하는지를 분류하는 노가다작업을 했다. (사실 코드 짜는 거보다 전처리 시간이 더 오래 걸렸다;;) 아마 제품 네이밍 규칙을 알면 이 노가다 작업도 훨씬 더 줄일 수 있지 않을까 생각했다. 

2251개 키워드의 월 별 쿼리량이 포함된 원본 데이터. B열에 'Group'열을 추가해 각 키워드별 카테고리를 지정해주었다.

    

판다스로 데이터 정리하기

 1) 데이터 불러오기 : 데이터를 시각화하기 전에 데이터를 시각화에 쓸 수 있도록 정리해주는 작업들이 필요하다. 이를 위해 일단 판다스로 데이터를 불러온 후 비어있는 값은 없는지 체크해주었다.

.info() 함수로 불러온 데이터에 각 컬럼별로 어떤 데이터 타입으로 몇 개의 열이 있는지 확인해본다.

2) 피벗테이블로 데이터 그룹화하기 : 엑셀에서 피벗테이블을 활용하면 내가 원하는 대로 데이터를 열과 행으로 조합해 새로운 표를 만들 수 있는데, 파이썬도 이 기능을 지원한다. 각 제품 그룹별로 얼마나 많은 쿼리량이 발생했는지, 그리고 각 그룹에는 얼마나 다양한 키워드들이 속해 있는지를 보고 싶어서, 행(index)은 'Group', column은 월 별 쿼리량, 키워드 개수를 지정해주었다. 

키워드 개수를 세기 위해서 값이 1로 지정된  'keywordcount'라는 칼럼을 추가한 후 피벗테이블을 적용해주었다.

3) 피벗테이블 시각화하기 : 제품군에 얼마나 다양한 제품이 포함되어 있는지 보여주는 지표인 키워드의 개수를 x축으로, 소비자의 관심도를 나타내는 월 별 쿼리량을 y축으로 두고 산점도를 그려보면 브랜드가 집중해야 하는 주력 제품군(제품 개수도 많으면서 쿼리량도 많은), 성장 가능성이 높은 제품군(제품 개수는 상대적으로 적지만 쿼리량이 많은), 보완이 필요한 제품군(제품 개수는 많지만 쿼리량이 적은)을 구분할 수 있을 거라고 생각했다. 산점도를 그리기 위해서 필요한 데이터들을 일단 변수로 지정해야 하는데, for문을 이용해서 각 컬럼의 데이터들을 리스트 형태의 변수에 삽입해주었다. x는 그래프 위에 표시될 카테고리의 이름, y는 카테고리별 쿼리수, z는 카테고리별 키워드 개수로 지정했다. 

인덱스의 길이만큼 for문을 반복하며 각 변수에 필요한 값을 할당해주는 코드
정직하게 막 그리면 이런 못생긴 산점도가 된다

*그래프를 예쁘게 그리기 위한 팁

1) 로그 스케일 활용하기 : TV 쿼리량이 너무 압도적으로 많다 보니 왼쪽 아래의 자잘한 키워드들은 죄다 겹쳐서 볼 수가 없게 되었는데, x, y축을 로그 스케일로 지정해주면 뭉쳐있는 데이터들을 조금 더 자세히 볼 수 있게 된다. (다만 중요도가 낮은 데이터들이 중요하게 보일 수 있는 착시현상이 발생할 수 있으므로 데이터 해석에 주의해야 한다)

2) 산점도 크기 조정하기 :  쿼리수를 그대로 변수로 활용하게 되면 위의 그래프에서 볼 수 있듯 크기가 큰 값들만 가득 차게 된다. 그래서 원의 크기를 적절하게 조정하기 위해 10을 나눈 수로 y에 할당해주었는데, 나누는 값을 바꿔보면서 보기 좋은 그래프가 되도록 조정하면 된다.

그래프 세부 서식들은 이렇게 지정해주었다.
그리하여 완성된 최종본.jpg

    산점도로 보았을 때 확실히 이 브랜드는 LCD 패널의 명가답게 TV와 모니터에서 강세를 보임을 알 수 있었고, 휴대폰도 자체 제품군 내에서는 관심도와 중요도 모두 높은 제품군임을 알 수 있었다. 의외였던 점은 블루투스 스피커나 이어폰 등의 음향기기 관련된 쿼리량이 높아 온라인 마케팅 활동에 집중해볼 여지가 있는 카테고리로 보인다는 점, 냉장고, 세탁기 등 백색가전의 제품 라인업은 다양하나 쿼리량은 높지 않아 온라인 마케팅을 통한 소구가 어려운 카테고리로 보인다는 점이었다. 


월 별 트렌드는 어떻게 변할까?

    월 별로도 카테고리별 쿼리량의 변화를 살펴보면 흥미로울 것 같아 히트맵으로 시각화해보았다.

월을 기준으로 피벗테이블을 정렬하고, 컬럼명을 월 순서대로 재지정해주었다.
월 별 차이가 좀 더 뚜렷하게 드러날 수 있게 인 메인 / 서브 상품군으로 카테고리를 나눠주었다.
히트맵을 그리는 함수를 만들어서 데이터 소스만 바꾸면 히트맵을 그릴 수 있도록 만들었다.

    작년 11월쯤에 TV 캠페인을 하셨다는데, 그 영향인지 전반적으로 11월 모든 카테고리의 쿼리량이 높은 편이었다. 흥미로운 점은 3월 락다운 기점으로 모니터, 음향기기, 홈시어터의 검색량이 늘기 시작했다는 것이었는데, 재택근무가 시작되면서 여분의 모니터를 구매하려는 수요, 집에 머무는 시간을 알차게 보내려는 수요가 반영된 것이라고 생각했다. (실제로도 그때부터 해당 카테고리들 판매량이 늘었다고 한다.) 그리고 에어컨의 쿼리량은 5월부터 슬슬 늘기 시작하는데 유럽에서는 에어컨을 안판다는 슬픈 이야기를 들었다.. 포터블 에어컨이라도 그때부터 프로모션 해서 팔면 잘 팔릴 거 같은데 말이지( 지금 36도라 쪄 죽을 거 같다ㅠㅠ)


    암튼 간에 면접은 내 맘대로 잘 풀리진 않았지만 파이썬 코드는 남았다 ㅋㅋ 절 안 뽑으신 걸 결국은 후회하실 거예요...



*자세한 소스코드는 아래 깃허브 주소에서 확인하실 수 있어요

https://github.com/JoannaKang/Data-Science/blob/master/LG.ipynb


*여기에 쓰인 Pandas, Matplotlib 함수들은 아래 링크에서 확인하실 수 있어요

- Pandas: [ Link ] 

- Matplotlib : [ Link ]

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari