codestates / codestates/ds-blog
[김태헌]_section1 Solo project
- Dominant language
- No language data
- Stars
- 2
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
[사용 데이터](https://www.kaggle.com/thomaskonstantin/top-270-rated-computer-science-programing-books) - science / programing Books
[Notebook](https://drive.google.com/file/d/1pc78iTByUMjNT4HS7QTpycTncc0yOKu4/view?usp=sharing)

# 270여권의 컴퓨터 과학 및 프로그래밍 관련 주제 분야의 책 목록 데이터
- 내가 원하는 책 선정하기. -- 페이지가 많지 않고 비싸지 않으며 있어보이는 하드커버. 평점도 높아야한다.
- 종이책과 비교해보며 차선택의 여지를 둔다.
- 나의 책을 고르기 전에, 각 항목들의 관련성을 확인한다.
## 데이터 전처리
### 기본 데이터
제가 사용한 데이터셋의 목록입니다.
오른쪽부터 차례대로 평점, 리뷰의 개수, 책 제목, 서론, 페이지 수, 책의 타입(겉표지가 얇거나 두꺼운것,ebook등), 가격 으로 되어있습니다.
### 데이터의 결측치 확인
```py
df.isnull().sum()
```

### 각 항목의 타입 확인
```py
df.dtypes
```

일단 제목과 서론은 당장 조사를 하는데 있어서 필요하지 않기때문에 제외하고 나머지 목록들을 가지고 진행을 해보겠습니다.
### 필요한 데이터

평점(Rating)의 타입이 수치형인 int(정수형)나 float(실수형) 이 아닌 object 로 되어있는데 아마도 문자열(str)로 되어있을것이기 때문에 수치형으로 바꿔주어야 이후에 그래프에 사용하거나 평균을 계산할수 있습니다. replace를 사용하여 데이터 타입을 바꿔줍니다.
평점(Rating)이 수치형으로 인식되지 않는 이유는 숫자 사이에 있는 ' , ' 때문이기 때문에 빈공간으로 바꿔주겠습니다.
### 문자형을 수치형으로
```py
df_book["Reviews"] = pd.to_numeric(df_book["Reviews"].str.replace(",", ""))
```
위와같은 작업을 하고나서 다시한번 타입을 확인 하면
```py
df_book.dtypes
```
평점(Rating)이 int(정수형)로 바뀐것을 알수있습니다.
# 책 고르기
- 목표 : 페이지가 많지 않고 비싸지 않으며 있어보이는 하드커버. 평점도 높아야한다.
### 각 항목의 관련성

페이지의 수, 가격, 리뷰의 수 에 따라서 평점의 변동이 있는지 알아보았습니다.
하지만 점들이 너무 뭉쳐있어서 직관적으로 알아보기 힘들어서 멀리 떨어져있는 점(Outlier)들을 없는셈치고 조금더 밀집되어있는 부분을 확대하는 느낌으로 다시 그래프를 그려보았습니다. 위의 그래프와 같은 그래프이지만 점이 밀집되어있는곳을 확대한 버전이라고 생각하면 좋을것같습니다.

위 그래프를 보면 페이지의 수, 가격, 리뷰의 개수는 평점과 큰 관계성을 보이지는 않았습니다.
그렇다면 저 위의 그래프에 나와있지않는 Type는 어떨까요?
각 Type별 평점을 그래프로 확인해봅시다.

그래프로는 무엇이 높고 무엇이 낮은지 한눈에 확인하기가 어려워 보입니다.
그래서 조금더 쉽게 확인할수 있도록 수치화한 데이터를 확인해보겠습니다.
아주 미미한 차이지만
Hardcover = 4.05
Paperback = 4.06
으로 Paperback의 평점이 높았습니다.
간편하게 'Hardcover' 과 'Paperback' 을 평점순으로 TOP10을 보고 빅교하여 구매할 책을 선택해보자.
### Hardcover TOP 10

### Paperback TOP 10

일단은 목표에 가장 적합한 책을 Hardcover에서 찾는다면 175번째 책이 될것이고, Paperback에서는 146번째 책이 될것같습니다.
**175번 책의 타이틀은 Structure and Interpretation of Computer Programs(컴퓨터 프로그램의 구조와 해석)**

**146번 책의 타이틀은 Practical Object Oriented Design in Ruby()**

결론은 Hardcover를 고르면 페이지수가 600장이 넘어가고 , Paperback을 고르면 다 좋지만 딱딱한 하드커버를 포기해야합니다.
가격도 비슷하고 평점도 크게 다르지 않기때문에 이 두개를 가지고 고민을 해야할것같습니다.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.