我坚持可视化散点图,因为我收到此错误消息:TypeError: unhashable type: 'slice'
genre_color={'动画':'r','恐怖':'b','惊悚':'y','戏剧':'m', '喜剧':'深粉','科幻':'黄金','西部':'橙色','冒险':'g', “纪录片”:“棕色”,“音乐剧”:“靛蓝”,“幻想”:“黄色”, '神秘':'紫色','黑色电影':'青色','(未列出类型)':'珊瑚色', '动作':'蓝绿色','战争':'黑色','浪漫':'天蓝色','儿童':'石灰', '犯罪':'深绿色'}
def join_movieDataFrames(pcaDF, genreDF):
x_scaled = preprocessing.scale(pcaDF, with_std=False)
pca = decomposition.PCA(n_components=2)
df_trans = pd.DataFrame(pca.fit_transform(x_scaled),index=df_A.index)
x = pd.merge(df_trans, genreDF, on='movieId')
return plt.scatter(x[:,0],x[:,1],c=data['genre_color'])
(df_A, df_B) = construct_data('ratings.csv', 'movies.csv')
(exVar, df_T) = apply_pca(df_A, 2)
join_movieDataFrames(df_T, df_B)
答案 0 :(得分:0)
您正在尝试通过切片语法从数据框中提取值,这会引发 TypeError。
您应该使用数据框的 iloc
属性和 values
来访问该数据:
return plt.scatter(x.iloc[:,0].values ,x.iloc[:,1].values,c=data['genre_color'])
iloc
是允许基于整数位置的索引的数据框属性,values
删除仅返回实际值的标签。