• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    해결됨

실습 중 에러사항이 발생했습니다

21.12.02 23:38 작성 조회수 826

1

강사님 안녕하세요
 
제가 가지고 있는 데이트로 실습을 하는 중 다음과 같은 에러가 발생했습니다.
 
우선 인기추천 방식부터 적용을 하는데
데이터는 본 강의에서 실습하는 형태와 동일하게 구성하여 실습을 진행하고 있으며
코드와 에러는 아래와 같습니다.
 
에러사항이 조치가 되지 않는데..도움 한번 부탁 드립니다..
 
<코드>
# 인기 제품 방식 추천 Function
def recom_courses(n_courses):
  course_mean=ratings.groupby(['course_id'])['rating'].mean()
  course_sort=course_mean.sort_values(ascending=False)[:n_courses]
  recom_courses=courses.loc[course_sort.index]
  recommendations=recom_courses['title']
  return recommendations

recom_courses(5)
 
<에러>
KeyError                                  Traceback (most recent call last)
<ipython-input-48-80ad3b41fd0f> in <module>()
      7   return recommendations
      8 
----> 9 recom_courses(5)


5 frames
/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py in _validate_read_indexer(self, key, indexer, axis, raise_missing)
   1296             if missing == len(indexer):
   1297                 axis_name = self.obj._get_axis_name(axis)
-> 1298                 raise KeyError(f"None of [{key}] are in the [{axis_name}]")
   1299 
   1300             # We (temporarily) allow for some missing keys with .loc, except in

KeyError: "None of [Index(['CEL45972', 'CEL51557', 'CPL30203', 'CEL51398', 'CPL57907'], dtype='object', name='course_id')] are in the [index]"
 

답변 2

·

답변을 작성해보세요.

0

아래와 같이 전처리 하였습니다~!
 
import os
import pandas as pd
import numpy as np
users = pd.read_csv('drive/MyDrive/capstone/users.csv', encoding='UTF-8')
ratings = pd.read_csv('drive/MyDrive/capstone/ratings.csv', encoding='UTF-8')
courses = pd.read_csv('drive/MyDrive/capstone/courses.csv', encoding='UTF-8')
 
import os
import pandas as pd
import numpy as np
 
 
 
# 인기 제품 방식 추천 Function
def recom_courses(n_courses):
  courses = courses.set_index('course_id')
  course_mean=ratings.groupby(['course_id'])['rating'].mean()
  course_sort=course_mean.sort_values(ascending=False)[:n_courses]

  recom_courses=courses.loc[course_sort.index]
  recommendations=recom_courses['title']
  return recommendations

recom_courses(5)
 
 
 

제가 생각하기에는 csv파일을 그대로 읽고 적용하셔서 인덱스 처리가 안된듯 싶습니다 :) 

그래서 전에 말씀드린 것 처럼 course 데이터의 인덱스 지정 한번 해봐주시면 감사하겠습니다.

-거친코딩 드림-

오 해결되었습니다!

감사합니다!!

다행입니다.!!

학습자님의 성공적인 학습을 기원합니다.

감사합니다.

-거친코딩 드림-

0

안녕하세요.!
강의 보시면서 열심히 학습해주셔서 감사합니다.

작업해주신 결과에 에러를 보면 학습자님이 가지고 계시는 데이터의 인덱스가 없다고 나와있네요!

앞에 데이터 처리에 관해서는 올려주시지 않아서 확인이 어렵지만,

제가 생각하기에는 

courses = courses.set_index('course_id')를 해주시면 될 것 같습니다 :) !!

혹시 위 방법으로도 해결 되지 않으신다면

앞 전처리 과정(데이터 로드 ~ 처리)까지 코드 올려주시면 리뷰 해보겠습니다!

감사합니다.

-거친코딩 드림-