반응형
이해를 돕기위한 영상을 첨부합니다.
1. review.csv파일을 읽어들인다
2. 평점의 평균을 구한다
3. average_rating.csv 저장한다.
1) 해더(book_title, average_rating)
2) 소수점 아래 자리수는 고려 안한다.
<구상>
csv에서 get_data()로 읽어오기
데이터를 book별로 묶기
book별 평균별점 계산
result_table 작성
# 라이브러리 불러오기
import pandas as pd
# csv 파일 읽어들이기
data = pd.read_csv('/content/review.csv')
data
# book list를 알아내자
# dataframe형식인 data에서 내용물을 하나씩 꺼내서
# list형식인 temp에 append함으로 list형식으로 변경
titles = data['book_title']
temp = []
for name in titles:
# print(name)
temp.append(name)
# 리스트 안에 중복이 없게 하는 방법
# 리스트를 set형으로 바꾸었다가 다시 list로 변환
# a = [1,1,2,2,3]
# b = set(a)
# a = list(b)
# a
temp_set = set(temp)
temp_list = list(temp_set)
temp_list
# 데이터에 필터를 걸어서 book title과 평점만 볼수 있게 함.
# 인덱스를 북 타이틀로 변경
data_simple = data.filter(items = ['book_title','stars_given'])
data_simple = data_simple.set_index('book_title')
# data_simple.filter(like='I Robot',axis=0)
result_table = []
for title in temp_list:
# 특정 title이름을 가진 데이터 '행'(가로줄)을 뽑아냄
book_data = data_simple.filter(like=title,axis=0)
#평균 계산
average = book_data['stars_given'].mean()
#result_table에 타이틀과 평균을 저장 [].append(title, average)
result_table.append([title,average])
# result_table
# 데이터프레임화, 헤더를 추가
result = pd.DataFrame(data=result_table,columns=['book_title', 'average_rating'])
result
# csv로 저장
result.to_csv('average_rating.csv', index=False, encoding='cp949')
실습이 중요합니다!
average_rating.csv
0.00MB
review.csv
0.00MB
제목 없음.png
0.04MB
반응형
'파이썬 지식인' 카테고리의 다른 글
[파이썬 과제] 두 점 사이의 각도 구하기 atan2() (0) | 2022.10.27 |
---|---|
누구나 알 수 있게 너 빼고 나를 가질 수 있는 비밀번호 486 (0) | 2022.10.07 |
딱 세 가지 방법만 알려줄게! 각 자리수의 합 구하기 (0) | 2022.10.07 |
파이썬으로 이렇게 학점계산 하면 A+줘야하는거 아님? (1) | 2022.10.07 |