데이터 출처 :
(교보문고 베스트셀러) http://www.kyobobook.co.kr/bestSellerNew/bestseller.laf?orderClick=D0a
(네이버쇼핑- 도서) https://search.shopping.naver.com/search/category/100006534
이 프로젝트는 서점에 판매되는 비슷한 책제목에 대한 호기심에서 시작됐습니다.
왜 분야마다 특정 키워드에 대한 책이 많이 진열되어있는지 궁금했고, 어쩌면 현시대의 트렌드가 책에 반영 될수도 있다는 생각이 들었습니다.
그동안 배운 파이썬과 분석툴을 이용해 실제로 트렌드는 책과 연관성이 있는지 알아보기로 했습니다.
2021.01.14 - 2021.01.21 (1주일)
본인 외 3인
데이터 분석과 시각화, flask와 bootstra를 이용한 웹구현
python, HTML
코로나사태 이전인 2018년부터 작년, 2021년까지의 4년간 데이터를 분석했습니다.
교보문고의 베스트 셀러와 네이버쇼핑의 최근 도서목록을 웹스크래필 해왔습니다
도서의 경우 카테고리가 잘 나눠져 있어 분석에 용이하다는 선정이유도 있었습니다.
데이터를 통해 검증하기 위한 가정을 5가지 세웠습니다.
첫번째로, 책은 시대상황을 정말 반영할까? 입니다.
확실한 데이터 비교를 위해 시대상황이 가장 빠르게 바뀌었던 코로나 발생을 기준으로 전후2년씩 총4년의 베스트셀러 분야와 도서명을 분석했습니다.
두번째로, 전체카테고리 중에서 시대상황에 더 민감하게 반영될것이라 예측되는 4개의 분야를 선정했습니다. 경제/경영, 여행, 컴퓨터/it, 취미/여가 분야를 선정했습니다.
- 경제/경영 : 코로나 이후 불안정한 고용환경의 영향으로 비트코인이나 주식등 투자분야가 강세를 보일것이다.
- 여행: 해외여행이 불가능해지면서 국내여행과 제주도에 대한 관심이 증가할것이다.
- 컴퓨터/it: 디지털 산업에 대한 정부의 투자와 인공지능에 대한 관심으로 AI관련 키워드가 많을 것이다.
- 취미/여가: 외부활동이 제한 되면서 실내에서 할 수 있는 취미활동이 증가할것이다.
- index.html : 그림한장과 그림을 클릭하면 다음페이지인, index페이지로 넘어갑니다
- index2.html : 프로젝트에 대한 설명페이지입니다. 이어지는 다음 페이지는 main페이지입니다. 상단에 navbar로 페이지 이동이 가능합니다
- main.html : 시각화 자료롸 분석 결과를 표시합니다. 페이지는 스크롤박스로 구성되어있습니다. 각 분석 파트마다 스크롤 네비게이션으로 이동이 가능합니다.
- team.html : 팀구성원을 표시합니다. navbar로 이동가능하게 구현되었습니다.
- thx.html : main페이지에서 이동되는 인사페이지입니다.
네이버쇼핑에서 데이터를 수집하기 위해 UIPath를 이용해 스크래핑했습니다.
타게팅 과정중 페이지에 한번에 모든 목록이뜨지않는 문제를 스크롤 액티비티로 해결했습니다.
반복문과 format을 이용하여 여러 개의 엑셀 파일을 유사한 형식으로 데이터프레임을 만들었습니다.
file = ['네이버쇼핑_IT.xlsx','네이버쇼핑_경제.xlsx',
'네이버쇼핑_여행.xlsx','네이버쇼핑_취미.xlsx']
dfname=['it','경제','여행','취미']
for name,i in zip(file,dfname):
df_sh = pd.read_excel(f'/content/drive/My Drive/Colab Notebooks/{name}',
engine='openpyxl', header = None, names=['도서명','분류1','분류2'])
globals()['df_sh_{}'.format(i)]=df_sh
현태소분석을 위해 ()안의 문자들(ex.양잔본 개정판 등등)을 제거해주었습니다.
val_list2=[]
for i in range(len(val_list)):
val_list2.append(val_list[i].split('(')[0])
- 파이차트
- 종합 베스트 셀러 분야별 키워드를 파이차트로 표현했습니다.
-
꺽은선 그래프
-
막대그래프
-
워드클라우드
도서는 시대상황을 어느정도 반영하지만, 충분히 반영되기 위해서는 한해정도의 기간이 필요하다 판단했습니다
- flask를 활용하여 발표를 하게된다 생각하여 페이지를 구상하는것에 맞춰 페이지를 구성했었습니다. 그러다보니 웹페이지보단 발표용 ppt를 대신하는 발표용 사이트로만 구현이 된것같은 부분이 조금 아쉽습니다. 저희조는 분석과 시각화가 중점이었고, 그마져도 분석결과를 한페이지에 긴 스크롤 형식으로 만들었기에 많은 페이지가 필요하진않았습니다. 그래서 좀더 추가해보고자 처음과 마지막같은 불필요한 페이지가 들어간것도 같습니다.
- main페이지에서 스크롤 네비게이션의 색이 마커마다 바뀌지않는 문제가 있는데, 프로젝트 마감 기간으로 원일을 알아보지 못했습니다.