inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(UPDATED) Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능

사용자 집단별 추천

사용자 집단별 추천 강의 11:56 부분에 성별에 따른 예측값 계산에서 MergeError가 발생합니다.

해결된 질문

436

이푸름

작성한 질문수 1

0

 

# 성별에 따른 예측값 계산
merged_ratings = pd.merge(x_train,users)

users = users.set_index('user_id')

g_mean = merged_ratings[['movie_id','sex','rating']].groupby(['movie_id', 'sex'])['rating'].mean()
g_mean


코드는 이렇게 작성했고요.

merged_ratings = pd.merge(x_train,users)
이 부분에서

MergeError: No common columns to perform merge on. Merge options: left_on=None, right_on=None, left_index=False, right_index=False

이런 에러가 발생해요. 강의랑 똑같이 했는데 왜 에러가 나는걸까요? ㅠ ㅠ

딥러닝 추천-시스템

답변 1

0

거친코딩

안녕하세요.

거친코딩입니다 🙂

간단히 에러를 살펴보면 머지 하실때 공통 컬럼이 없다고 뜨는데, x_train과 users를 프린트문으로 찍어보시고 컬럼명이 일치하시는지 확인 부탁드립니다.

혹은 머지 하시려는 키가 인덱스로 잡혀있을수 있으니 해당부분도 참고부탁드립니다.

감사합니다.

거친코딩 드림

1

이푸름

답변 감사합니다!

연속으로 실행시키면 나는 오류였습니다.
한번 실행 시킨뒤엔 users = users.set_index('user_id') 이 코드로 users가 달라져서 아래 코드를 실행한 뒤 다시 실행시키니 잘 동작합니다. 감사합니다!

# 데이터 읽어오기(user, item, data)
base_src = 'drive/MyDrive/RecoSys/Data'
u_user_src = os.path.join(base_src, 'u.user')
u_cols = ['user_id', 'age', 'sex', 'occupation', 'zip_code']
users = pd.read_csv(u_user_src,
                    sep='|',
                    names=u_cols,
                    encoding='latin-1')

u_item_src = os.path.join(base_src, 'u.item')
i_cols = ['movie_id','title','release date','video release date',
          'IMDB URL','unknown','Action','Adventure','Animat ion', 'Children\'s','Comedy','Crime','Documentary ','Drama','Fantasy',
          'Film- Noir','Horror','Musical','Mystery','Romance ','Sci-Fi','Thriller','War','Western']
movies = pd.read_csv(u_item_src,
                     sep='|',
                     names=i_cols,
                     encoding='latin-1')

u_data_src = os.path.join(base_src, 'u.data')
r_cols = ['user_id', 'movie_id', 'rating', 'timestamp']
ratings = pd.read_csv(u_data_src,
                      sep = '\t',
                      names = r_cols,
                      encoding = 'latin-1')

# ratings DataFrame에서 timestamp 제거
ratings = ratings.drop('timestamp', axis=1)
movies = movies[['movie_id', 'title']]

 

강의 자료 이게 맞나요?

0

68

3

6장 Keras로 MF 구현하기 학습 결과

0

164

2

초심자의 질문

0

119

1

코드 공유 폴더가 비어 있습니다.

0

186

1

코드 공유 관련 부탁드립니다.

1

260

2

section 4 네번째 강의에서 pd.merge(x_train, users) 에러 발생

0

289

1

section 2 네번째 강의 score(cf_gender) 실행하면 Error 발생합니다.

0

201

1

MF알고리즘에서 질문이있습니다.

0

365

1

ean_rating = np.dot(sim_scores,movie_ratings) / sim_scores.sum() 부분에서 질문이있습니다.

0

310

1

score를 실행하면 항상 nan이 출력됩니다

0

328

1

user_id가 인덱스범위를 벗어난 값으로 들어옵니다

0

255

1

인덱스 칼럼은 어떻게 접근해야하나요

0

226

1

제공해주신 데이터링크에 들어가면 404가 뜨는데요?

0

365

1

코드 자동완성 속도가 상당히 느린데 개선할 방법이 있을까요?

0

302

1

ValueError: setting an array element with a sequence

0

473

1

users에 대한 인덱스 설정 기준

0

288

1

ppt 자료

0

286

1

train_test_split에 관한 질문입니다.

0

330

1

Timestamp 제거 이유

0

396

1

local variable 'movie_ratings' referenced before assignment

0

256

2

3장 CF_knn 코드 질문

0

261

1

실습 중 에러 'numpy.ndarray' object has no attribute 'drop'

0

1163

2

IntCastingNaNError: 관련 에러

0

436

1

인구통계학적 추천 알고리즘

0

344

1