오늘은 어제거 피드백 받은거 추가 분석해보았고,
동일행 제거를 안해서 하나의 제품에 loves_count를 받은 수대로 나열된게 아니라 그 러브스카운트는 제품마다 고정인데, 그 고정된 제품별로 모든 리뷰가 다 더해져서 숫자가 거의 십억이 넘었었다. 동일행 제거는
drop_duplicates를 사용하면 된다.
"#동일행 제거
import matplotlib.pyplot as plt
import seaborn as sns
# 1) Moisturizers 중복 제거: product_id별로 한 줄만 남기기
df_prod = (
df_full[df_full['secondary_category'] == 'Moisturizers']
.drop_duplicates(subset='product_id') #동일행 제거!
)
# 2) 제품별 loves_count 뽑아서 Top10 선정
top10_products = (
df_prod
.groupby(['product_id', 'product_name', 'brand_name'], as_index=False)
.agg({'loves_count': 'first'}) # sum() 대신 first() 로 한 번만 가져오기
.sort_values(by='loves_count', ascending=False)
.head(10)
)
# 3) 시각화
plt.figure(figsize=(12, 8))
sns.barplot(
data=top10_products,
x='product_name',
y='loves_count',
hue='brand_name',
palette='Set2'
)
plt.title('Top 10 Moisturizers by Total Loves Count (제품당 한 번만 계산)')
plt.xlabel('Product Name')
plt.ylabel('Loves Count')
plt.xticks(rotation=45, ha='right')
plt.tight_layout()
plt.legend(title='Brand Name')
plt.show()"
그렇게 하니 순위가 바뀐다. 흠.. 그렇다!
일단 나의 부족했던 점은-> 동일행 제거를 잘 몰랐던 것. 이번에 알았으니 됐당. +추가로 그 사이즈랑 가격 묶어서 분석 해봤음.

대시보드를 구상하여 나눠서 시각화하고 태블로로 시각화 해보았다. 금방 될 줄 알았는데 생각보다 시간이 오래걸렸다. 코드 만드는데만 시간이 진짜 꽤 소요되었다.
그리고 오늘 만든 태블로... 이걸 도대체 어케 만들어야지싶었다.

일단 이거 두개 테이블 연결하고,,

브랜드별 리뷰수 top10 제품 뽑아서 테이블로 저장해서 해보았다.
브랜드별 tf-idf분석해봐서 타 브랜드에 비해 많이 들어있는 성분들을 뽑아보았다. 디스크립션은 따로 테이블을 만들어놓아서 이걸 다 입력을 해야한다.. 수동으로... 뭐 자동방법이... 있던 것 같긴한데..

요거는 성분당 브랜드별로 나타낸거.. 저 sodium이라는 성분이 제일 많네. 이건 뭔 성분일까?
찾아보니 화장품 성분이 아니어서 지피티한테 물어보니
-> 아주 좋은 질문이야 — sodium 이라고만 적혀있는 경우는 사실 조금 애매해.
화장품 성분표에서 sodium이라는 단어가 나오면 보통 이렇게 사용돼:
1️⃣ 단독으로 쓰이지는 않음
보통 Sodium 뒤에 뭔가가 붙어서 성분이 됨. 예를 들어:
Sodium Hyaluronate → 히알루론산 소듐염 (보습 성분)
Sodium Chloride → 소금 (점도 조절, 스크럽제)
Sodium Laureth Sulfate → 계면활성제 (세정 성분)
Sodium Ascorbyl Phosphate → 비타민C 안정화형 (미백, 항산화)
2️⃣ 단독 "sodium" 표기 → 보통 오타/불완전 표기
성분 리스트에서 그냥 sodium이라고 쓰는 경우는 대부분 누락되거나 작성자가 생략한 경우가 많음.
일반적으로 "Sodium"은 양이온(Na+)으로 다른 음이온과 결합되어 있어야 안정적이기 때문이야.
즉, 단독으로 존재하지 않음.
3️⃣ AI 전처리/TF-IDF시 유의
전처리할 때 sodium을 stopword처럼 제거하거나,
sodium 다음 단어까지 붙여서 전체 성분명을 파악하는 게 좋아.
💡 결론
sodium 자체는 의미를 가지지 않고,
"sodium + X" 전체가 의미있는 성분이다.
혹시 원하면:
👉 화장품 성분 전처리용 "조금 더 똑똑한 전처리 함수"도 만들어 줄 수 있어.
예를 들어 sodium / acid / extract 이런 기본적인 접두/접미어 처리 포함해서.
만들어볼까? 😄
(네 데이터 훨씬 깔끔해짐) 라고 함. 이걸로 한번 다시 전처리 해서 해봐야겠음.
아 코드만드는데 진짜 오래걸린다.. 내가 이 모든 코드를 혼자서 만든다면 얼마나 좋을까..
그러나 오늘도 고생했다 나자신!