이번 글은 「쿨링 샴푸 기획기」 시리즈의 두 번째 글입니다.
아직 1편을 읽지 않았다면
크롤링 및 가설 설정
부터 읽는 것을 추천합니다.
이번 글에서는 상품 데이터 전처리 및 EDA를 통해
1편에서 수집한 올리브영 쿨링 샴푸 상품 데이터를 분석했습니다.
브랜드 구성과 가격 분포, 상품명 키워드를 중심으로
시장 구조와 상품 특징을 살펴보고 핵심 인사이트를 도출했습니다.
왜 상품부터 분석할까?
리뷰를 분석하기 전에 먼저 상품 자체를 이해할 필요가 있었습니다. 소비자의 반응은 결국 어떤 제품을 대상으로 작성된 것인지에 따라 의미가 달라질 수 있기 때문입니다.
예를 들어 같은 ‘쿨링 샴푸’라도 브랜드마다 가격과 용량이 다르고, 제품명에는 탈모, 비듬, 쿨링, 민트처럼 각기 다른 특징이 담겨 있었습니다. 이러한 상품 특성을 먼저 파악해야 이후 리뷰 분석에서도 소비자의 평가를 더 정확하게 해석할 수 있다고 생각했습니다.
그래서 이번 글에서는 상품 데이터를 먼저 전처리하고, 브랜드 구성과 가격 분포, 상품명 키워드를 중심으로 올리브영 쿨링 샴푸 시장의 전반적인 특징을 살펴보았습니다.
상품의 특성, 그리고 그 상품을 판매하는 브랜드의 특성을 통해 상품의 쿨링 제품 자체의 특성을 먼저 이해하고자 하였습니다.
분석 데이터
이번 분석에서는 1편에서 수집한 상품 데이터셋을 활용했습니다. 분석 대상은 올리브영 온라인몰에서 ‘쿨링 샴푸’를 검색한 뒤 리뷰 많은 순으로 정렬된 총 43개의 상품입니다.
상품 데이터에는 브랜드, 상품명, 가격 등 제품을 설명하는 기본 정보와 검색 결과에서의 리뷰 순위, 상품 상세 페이지 URL이 함께 저장되어 있습니다. 이번 글에서는 이 중 브랜드, 가격, 상품명을 중심으로 쿨링 샴푸 시장의 구성과 제품 특징을 살펴봅니다.
- 리뷰순위
- 리뷰 많은 순으로 정렬된 상품 순위
- 페이지
- 상품이 수집된 검색 결과 페이지
- 정렬
- 검색 결과에 적용된 정렬 기준
- 브랜드
- 올리브영에 등록된 상품 브랜드명
- 상품명
- 상품의 전체 판매명과 구성 정보
- 가격
- 수집 시점에 표시된 상품 판매 가격
- 상품URL
- 상품 상세 페이지로 연결되는 주소
상품 데이터 구조 확인
전처리를 진행하기 전에 먼저 상품 데이터의 전체 구조를 확인했습니다. 데이터 크기와 컬럼 구성, 데이터 타입을 점검하여 분석에 앞서 별도의 정리가 필요한 항목이 있는지 확인했습니다.
총 43개의 상품과 7개의 컬럼으로 구성되어 있었으며, 모든 컬럼은 결측치 없이 정상적으로 수집되었습니다. 다만 가격 컬럼은 문자열(Object) 형태로 저장되어 있어 이후 숫자형으로 변환하는 전처리가 필요했습니다.
df.describe(include='all')을 통해 문자열 컬럼의 고유값과 최빈값을 확인했습니다. 이를 바탕으로 브랜드와 상품명 분포를 파악하고, 이후 EDA에서 중점적으로 분석할 항목을 선정했습니다.
상품 데이터 전처리
상품 데이터를 EDA에 활용하기 위해 분석에 필요한 컬럼만 선별하고,
가격 데이터를 숫자형으로 변환했습니다.
또한 가격 구간을 생성하여 이후 브랜드와 가격 분포를 비교할 수 있도록
분석용 데이터셋을 구성했습니다.
- 01 분석 컬럼 선택
-
원본 데이터에는 검색 페이지와 정렬 기준 등 크롤링 과정에서 활용한 정보도 함께 포함되어 있었습니다.
이번 분석에서는 리뷰순위, 브랜드, 상품명, 가격, 상품 URL만 선택하여 분석에 사용할 상품 데이터프레임을 구성했습니다.Python · Column Selection# 분석에 사용할 컬럼 선택 use_cols = ["리뷰순위", "브랜드", "상품명", "가격", "상품URL"] products = products[use_cols].copy() - 02 가격 데이터 정제
-
가격 컬럼은 ‘5,950원~’과 같은 문자열 형태로 저장되어 있었습니다.
쉼표와 원화 기호, 범위 표시를 제거한 뒤 숫자형으로 변환하여 가격 비교와 통계 분석이 가능하도록 정리했습니다.Python · Price Cleaning# 가격 문자열 → 숫자형 변환 products["가격"] = ( products["가격"] .str.replace(",", "", regex=False) .str.replace("원", "", regex=False) .str.replace("~", "", regex=False) .astype(int) ) - 03 가격대 생성
-
상품을 가격 구간별로 비교하기 위해 1만원 미만, 1만원대, 2만원대, 3만원 이상으로 가격대를 구분했습니다.
이후 EDA에서는 가격과 가격대를 함께 활용하여 브랜드별 분포와 시장 특징을 분석했습니다.Python · Price Range# 가격대 생성 bins = [0, 10000, 20000, 30000, np.inf] labels = ["1만원 미만", "1만원대", "2만원대", "3만원 이상"] products["가격대"] = pd.cut(products["가격"], bins=bins, labels=labels, right=False )
탐색적 데이터 분석 (EDA)
전처리를 완료한 상품 데이터를 바탕으로 브랜드, 가격, 상품명 키워드를 중심으로 쿨링 샴푸 시장의 특징을 분석했습니다.
- 01 브랜드 분석
- 어떤 브랜드가 시장을 주도하고 있는지, 검색 결과가 특정 브랜드에 집중되어 있는지 확인합니다.
- 02 가격 분석
- 상품 가격이 어느 구간에 집중되어 있는지 살펴보고, 브랜드별 가격 포지션의 차이를 비교합니다.
- 03 상품명 키워드 분석
- 상품명에 반복적으로 사용된 키워드를 분석하여, 브랜드가 소비자에게 전달하려는 핵심 메시지를 확인합니다.
브랜드 분석
전처리된 products 데이터를 기준으로 브랜드 노출 구조를 확인했습니다.
브랜드별 상품 수를 집계하고,
검색 결과의 노출 집중도와 상위 브랜드의 가격 포지션까지 함께 살펴봤습니다.
01. 브랜드 노출 구조
먼저 브랜드별 상품 수를 집계하여 어떤 브랜드가 검색 결과에 가장 많이 노출되는지 확인했습니다.
총 29개 브랜드가 검색 결과에 포함되어 있었으며, 상품 수 기준으로는 달리프가 가장 많은 상품을 보유하고 있었습니다. 그 뒤를 온더바디와 클로란이 이었습니다.
02. 브랜드 분산 구조
브랜드별 상품 수를 다시 묶어 검색 결과가 특정 브랜드에 집중되어 있는지 확인했습니다.
상품이 1개만 등록된 브랜드가 가장 많았으며,
상위 3개 브랜드의 상품 비중도 전체의 약 25% 수준에 머물렀습니다.
따라서 쿨링 샴푸 시장은 일부 브랜드가 독점하기보다는
다양한 브랜드가 함께 경쟁하는 구조로 볼 수 있었습니다.
03. Top3 브랜드 비교
상품 수 기준 상위 3개 브랜드를 대상으로 가격대와 상품 구성을 비교했습니다.
달리프는 1만원대 상품에 집중되어 있었고,
온더바디는 비교적 저렴한 가격대를 형성했습니다.
반면 클로란은 가장 높은 평균 가격을 보이며
프리미엄 가격 포지션을 형성하고 있었습니다.
– 검색 결과에는 총 29개 브랜드가 포함되어 있습니다.
– 상품 수 기준 1위 브랜드는 달리프이며, 전체 상품의 11.6%를 차지합니다.
– Top3 브랜드의 노출 비율은 약 25.6%로, 상위 브랜드가 일부 존재하지만 압도적 집중 구조는 아닙니다.
– 브랜드 노출 규모는 달리프 > 온더바디 = 클로란 순으로 나타났습니다.
– 평균 가격 기준으로는 클로란 > 달리프 > 온더바디 순으로, Top3 브랜드 안에서도 가격 포지션 차이가 확인됩니다.
– 상품이 1개만 포함된 브랜드가 20곳으로, 전체적으로는 여러 브랜드가 함께 경쟁하는 분산형 구조에 가깝습니다.
가격 분석
전처리된 products 데이터를 기준으로 상품 가격 분포를 확인했습니다.
평균과 중앙값, 가격대별 상품 수를 비교하고,
각 가격 구간에 어떤 브랜드가 포함되어 있는지 함께 살펴봤습니다.
01. 가격 분포
먼저 전체 상품의 가격 범위와 중심 가격대를 확인했습니다.
전체 상품의 평균 가격은 21,711원,
중앙값은 16,900원으로 나타났습니다.
평균이 중앙값보다 높은 것은 일부 고가 상품이
전체 평균을 위쪽으로 끌어올리고 있기 때문입니다.
02. 가격대별 상품 구성
상품을 네 개의 가격 구간으로 나누어 검색 결과의 중심 가격대가 어디에 형성되어 있는지 확인했습니다.
가장 많은 상품이 포함된 구간은 1만원대로,
총 20개 상품이 전체의 46.5%를 차지했습니다.
이어 1만원 미만 상품이 9개, 2만원대가 8개,
3만원 이상이 6개로 나타났습니다.
03. 가격대별 브랜드 구성
각 가격대에 어떤 브랜드가 포함되어 있는지 확인하여 브랜드별 가격 포지션의 차이를 살펴봤습니다.
1만원 미만에서는 온더바디가 3개로 가장 많았고,
1만원대에서는 달리프가 5개로 가장 높은 비중을 보였습니다.
2만원대는 여러 브랜드가 각각 1개씩 분산되어 있었으며,
3만원 이상에서는 아베다가 2개로 가장 많았습니다.
– 전체 상품의 평균 가격은 21,711원, 중앙값은 16,900원으로 확인되었습니다.
– 가격대별로는 1만원대 상품이 20개(46.5%)로 가장 많아, 검색 결과의 중심 가격대는 1만원대에 형성되어 있습니다.
– 1만원 미만 상품은 9개(20.9%), 2만원대 상품은 8개(18.6%), 3만원 이상 상품은 6개(14.0%)로 나타났습니다.
– 최고가는 106,000원으로, 일부 고가 상품이 평균 가격을 끌어올리는 구조입니다.
– 따라서 `쿨링 샴푸` 검색 결과는 1만원대 중심의 대중 가격대가 주류이지만, 저가 상품부터 프리미엄 상품까지 함께 노출되는 가격 폭이 넓은 시장으로 볼 수 있습니다.
– 마케팅 관점에서는 1만원대가 가장 치열한 경쟁 구간이며, 고가 상품은 기능성, 브랜드 신뢰, 대용량 등의 차별화 포인트가 함께 필요할 가능성이 있습니다.
상품명 키워드 분석
브랜드와 가격 구조를 확인한 뒤,
이번에는 상품명에 사용된 표현을 살펴봤습니다.
상품명 키워드는 브랜드가 어떤 기능과 이미지를 강조하는지 보여주는
마케팅 메시지로 해석할 수 있습니다.
01. 주요 키워드 빈도
먼저 상품명에 반복적으로 등장하는 단어를 집계하여 어떤 표현이 가장 많이 사용되는지 확인했습니다.
가장 많이 등장한 키워드는 쿨링으로
총 35회 확인되었습니다.
그 외에도 두피, 노세범, 대용량, 리필 등의 표현이 반복적으로 등장하며
기능성과 구성 혜택을 함께 강조하는 경향을 확인할 수 있었습니다.
02. 마케팅 소구 키워드
단순 단어 빈도보다 브랜드가 어떤 메시지를 전달하는지 확인하기 위해 키워드를 마케팅 소구 관점으로 분류했습니다.
가장 많이 사용된 메시지는
쿨링·청량감으로,
전체 상품의 88.4%에서 확인되었습니다.
이후에는 두피 진정·케어(39.5%),
유분·노세범(27.9%),
구성·혜택(27.9%) 순으로 나타났습니다.
03. 브랜드별 키워드 차이
Top3 브랜드가 어떤 마케팅 메시지를 중심으로 상품명을 구성하는지 비교했습니다.
달리프는 쿨링과 함께
유분·탈모 기능성을 함께 강조했고,
온더바디는 구성 혜택,
클로란은 두피 케어와 유분 관리 메시지가
상대적으로 많이 나타났습니다.
– 가장 많이 등장한 상품명 키워드는 쿨링으로 총 35회 확인되었습니다.
– 쿨링·청량감 소구는 38개 상품(88.4%)에 포함되어 가장 핵심적인 마케팅 메시지로 나타났습니다.
– 이어 두피 진정·케어(39.5%), 유분·노세범(27.9%), 구성·혜택(27.9%) 순으로 확인되었습니다.
– 달리프는 기능성, 온더바디는 구성 혜택, 클로란은 두피 케어 중심의 메시지를 함께 활용하고 있었습니다.
– 따라서 쿨링 샴푸 시장은 단순히 ‘시원함’만 강조하기보다, 두피 케어, 유분 관리, 구성 혜택을 함께 전달하는 형태로 마케팅하고 있음을 확인할 수 있었습니다.
상품 분석 인사이트
상품 데이터 EDA를 통해 브랜드 구성, 가격대,
상품명에서 강조하는 주요 소구 포인트를 확인했습니다.
이를 통해 현재 쿨링 샴푸 시장의 경쟁 구조와
브랜드별 포지셔닝 전략을 파악할 수 있었습니다.
아래는 상품 데이터 분석을 통해 확인한 핵심 인사이트를 요약한 내용입니다.
– 검색 결과에는 총 29개 브랜드가 포함되어 있었으며, 상위 3개 브랜드의 상품 비중은 25.6%로 특정 브랜드에 집중되지 않은 분산형 경쟁 구조를 보였습니다.
– 상품의 약 46.5%가 1만원대에 분포하여, 대중적인 가격 구간에서 경쟁이 가장 활발하게 이루어지고 있었습니다.
– 상품명에서는 쿨링·청량감이 가장 많이 사용되었으며, 두피 케어와 유분 관리 등의 기능성 메시지가 함께 강조되고 있었습니다.
알 수 없었던 점
상품 데이터를 통해 브랜드 구성과 가격 전략, 상품명에서 강조하는 마케팅 메시지는 확인할 수 있었습니다. 하지만 상품 정보만으로는 소비자가 실제로 어떤 경험을 했는지까지는 파악하기 어려웠습니다.
상품이 강조한 메시지는 실제 장점일까?
대부분의 상품은 쿨링감, 두피 케어, 유분 관리를 핵심 기능으로 소개하고 있었습니다. 하지만 소비자 역시 동일한 요소를 장점으로 느끼는지, 혹은 다른 요소를 더 중요하게 평가하는지는 상품 정보만으로는 확인할 수 없었습니다.
실제 구매 만족도는 무엇으로 결정될까?
브랜드와 가격, 상품명만으로는 소비자가 어떤 이유로 만족하거나 재구매하는지, 또는 어떤 불편함을 경험하는지 파악하기 어려웠습니다. 이러한 부분은 실제 구매자의 리뷰 데이터를 함께 분석해야 확인할 수 있었습니다.
“쿨링 샴푸 기획기 ② | 상품 데이터 전처리 및 EDA”에 대한 2개의 생각