# 유사한 색상 정리를 위한 정규화 함수 (공백, 하이픈 정리 및 철자 오류 수정)
def normalize_color_name_advanced(color_name):
# 소문자로 변환
color_name = color_name.lower()
# 공백, 하이픈(-), 밑줄(_)을 통일
color_name = re.sub(r'[\s_-]+', '-', color_name)
# 철자 오류 수정
color_name = re.sub(r'\byello\b', 'yellow', color_name) # yello -> yellow
color_name = re.sub(r'\bpale -', 'pale-', color_name) # pale -yellow -> pale-yellow
# 앞뒤 공백 제거
color_name = color_name.strip()
return color_name
# 컬러 값 정규화 적용
csv_data["Color"] = csv_data["Color"].dropna().apply(normalize_color_name_advanced)
# 정리된 고유 색상 목록 확인
normalized_colors_advanced = csv_data["Color"].unique()
# 유사한 색상을 그룹핑할 사전 생성 (최종 정리된 매핑 적용)
color_mapping_final = {
"green": "Green",
"blue-green": "Green",
"pale-green": "Pale-Green",
"yellow-green": "Yellow-Green",
"yello-green": "Yellow-Green",
"blue": "Blue",
"brown": "Brown",
"dark-brown": "Brown",
"pale-brown": "Pale-Brown",
"yellow": "Yellow",
"golden": "Yellow",
"pale-yellow": "Pale-Yellow",
"pale-yellowish": "Pale-Yellow",
}
# 정리된 컬러 매핑 적용
csv_data["Color"] = csv_data["Color"].replace(color_mapping_final)
# 정리된 CSV 데이터 저장
processed_csv_final_path = "/mnt/data/processed_coffee_data_with_corrected_colors.csv"
csv_data.to_csv(processed_csv_final_path, index=False)
# 파일 경로 제공
processed_csv_final_path