[TIL] 상품 데이터 전처리 (2024-07-26)

SHU·2024년 7월 28일
0

H&M 데이터 분석

목록 보기
4/8

[TIL] articles 데이터 전처리 및 EDA(2024-07-24)에서 이어짐

상품 타입 분류

  • garment group name, product group name 모두 스타일과 상품의 타입이 혼재된 상태여서 타입을 적절하게 분류하지 못함
  • 옷/악세사리/신발과 같은 대분류가 없어 생성의 필요가 있었음

상품타입 생성

  • 최소단위 분류 : product type name(131종)을 활용
  • 대-중 분류 : H&M 홈페이지의 상품분류를 수기로 가져와 중복 제거, 유사 항목 결합

    H&M 홈페이지의 굵은 글씨를 대분류, 기타 글씨를 중분류로 활용하였으며
    데이터셋 상 상품 개수가 49개로 현저히 적은 cosmetic 관련 컬럼은 Beauty로 분류하지 않고 drop
    아래 표와 같이 대-중분류 옆에 product type name의 리스트를 붙인 csv파일 생성

articles 데이터 신규 상품타입으로 재분류

.iloc를 이용하여 인덱스 기준 인덱싱을 통해 각 행에 해당하는 대/중분류명을 붙여줌

# 재분류한 상품타입 대-중-소 파일 불러오기
prod_type = pd.read_csv('../data/hnm/prod_type.csv', sep='\t')
prod_type

# 대분류 만드는 함수 - 인덱스 이용
def prod_type_big(x):
    for i in range(prod_type.shape[0]):
        for ps in prod_type.iloc[i, -1].split(','):
            ps = ps.strip()
            if x == ps:
                return prod_type.iloc[i, 0]
                
# 중분류 만드는 함수 - 인덱스 이용
def prod_type_mid(x):
    for i in range(prod_type.shape[0]):
        for ps in prod_type.iloc[i, -1].split(','):
            ps = ps.strip()
            if x == ps:
                return prod_type.iloc[i, 1]

# 대분류, 중분류 생성
article6['product_type_big'] = article6['product_type_name'].apply(lambda x : prod_type_big(x))
article6['product_type_mid'] = article6['product_type_name'].apply(lambda x : prod_type_mid(x))

색상 및 그래픽 관련 컬럼 전처리

데이터와 이미지를 기준으로 색상 및 패턴을 분류하는 방법은 수기밖에 없음
명도와 그래픽 패턴을 눈으로 판단하여 분류하는 것에는 한계가 있다 생각하여 drop을 결정

  • percived colour master name & percived colour value name : unknown, undefined 제거
  • graphical appearance name : unknown 제거
# 색상, 패턴의 undefined, unknown 제거
color_master_unknown_cond = (article6['perceived_colour_master_name'] != 'Unknown') & (article6['perceived_colour_master_name'] != 'undefined')
color_value_unknown_cond = (article6['perceived_colour_value_name'] != 'Unknown') & (article6['perceived_colour_value_name'] != 'Undefined')
graphic_unknown_cond = (article6['graphical_appearance_name'] != 'Unknown')

결과

최종 article 테이블

104450 rows × 12 columns

columns

article_id
product_code
product_name
index_group_name
index_name
section_name
product_type_big
product_type_mid
product_type_small
graphical_appearance_name
perceived_colour_value_name
perceived_colour_master_name

profile
슈의 코드뜨개질

0개의 댓글