1. 제가 좋아하는 브랜드 '마더진'의 쇼핑몰 데이터를 csv로 다운 받는다.
import pandas as pd
pd.set_option('display.max_rows', None )
nasm = pd.read_csv("/content/drive/MyDrive/data500/nasm.csv", encoding ="utf8")
nasm
2. 가격파일에서 숫자만 얻어오는 함수를 실행 가격2 컬럼을 생성
def extract_number(my_str):
str_list = []
for i in my_str:
if i.isdigit() == True:
str_list.append(i)
a = ''.join(str_list)
b = int(a)
return b
nasm['가격2'] = nasm['가격'].apply(extract_number)
nasm
3. 배송비 합치는 함수 실행, 가격3 컬럼 생성
def split_price(num):
num2 = str(num)
if len(num2) < 7:
return int(num)
elif 7 < len(num2) <= 10:
return int(num2[:-4]) + int(num2[-4:])
else:
return int(num2[:-5]) + int(num2[-5:])
nasm['가격3'] = nasm['가격2'].apply(split_price)
nasm
#배송비가 천원대도 있고 만원대도 있어서 위에처럼 함수를 수정
4. 등록년도만 출력하여 컬럼으로 생성
nasm['등록년도'] = nasm.등록일.apply(lambda x:x[0:4])
nasm
5. 마더진 판매자 순위 시각화 하기
import plotly.express as px
import pandas as pd
from pandasql import sqldf
q = """select 판매자, count(*) 건수
from nasm
group by 판매자
order by 2 desc;
"""
a2 = pysqldf(q)
a2
a2['category'] = [str(i) for i in a2.index]
color_discrete_sequence = ['dodgerblue']*len(a2)
color_discrete_sequence[0] = 'gold'
color_discrete_sequence[1] = 'gold'
color_discrete_sequence[2] = 'gold'
fig = px.bar(a2, y='건수', x='판매자', text='건수',hover_data= ['판매자','건수'], title='마더진 판매자 순위',
color='category',
color_discrete_sequence=color_discrete_sequence )
fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
fig.update_layout(uniformtext_minsize=8, uniformtext_mode='hide')
fig.show()
6. result_total_순위 테이블에 2022년도, 2023년도 각각 담기
result_2022 = result_total_순위[:][result_total_순위.등록년도 == '2022']
result_2023 = result_total_순위[:][result_total_순위.등록년도 == '2023']
7. result_2022 년도의 판매자별 게시건수 데이터와 result_2023 년도의 판매자별 게시건수 데이터를 막대 그래프로 위 아래로 시각화 하기
result_total_순위 = n_price
#1. 2022년도 데이터
result_2022 = result_total_순위[:] [ result_total_순위.등록년도=='2022']
result_2022['category'] = [str(i) for i in result_2022.index]
color_discrete_sequence = ['dodgerblue']*len(result_2022)
color_discrete_sequence[13] = 'gold'
fig = px.bar(result_2022, y='평균가격', x='판매자', text='평균가격',hover_data= ['등록년도','순위'],
title='마더진 2022년도 판매자 평균가격 데이터',
color='category',
color_discrete_sequence=color_discrete_sequence )
fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
fig.show()
#2. 2023년도 데이터
result_2023 = result_total_순위[:] [ result_total_순위.등록년도=='2023']
result_2023['category'] = [str(i) for i in result_2023.index]
color_discrete_sequence = ['dodgerblue']*len(result_2023)
color_discrete_sequence[10] = 'gold'
fig = px.bar(result_2023, y='평균가격', x='판매자', text='평균가격',hover_data= ['등록년도','순위'],
title='마더진 2023년도 판매자 평균가격 데이터',
color='category',
color_discrete_sequence=color_discrete_sequence )
fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
fig.show()
-----------------------------------------------------------------------------------------------------------------------------
마더진은 대부분 해외배송이어서 어느 사이트에서 보는지에 따라서 가격차이가 많이난다. 신세계몰을 자주 사용했었는데 생각보다 평균가격이 높아서 놀랐다. 2022년도에 머스트잇이 평균가격이 낮았다가 2023년도에 급등한것을 보면 브랜드의 상품별로 평균가격이 다를 것으로 보인다. 그래도 평균가격이 대체로 신세계몰보다 낮은 롯데on사이트를 더 사용해야 겠다.
첫댓글 슨생님 수정했습니다~