我正在学习机器学习,我遇到了code。
我正在尝试从上面的源代码运行文件"Recommender-Systems.py"
。但它会引发错误
ValueError: labels ['timestamp'] not contained in axis.
如何删除?
这是u.data
文件的保管箱link。
答案 0 :(得分:1)
您的数据缺少标题,因此第一行错误地推断了它。
您需要稍微更改Recommender-Systems.py
并手动通知标题。
您的数据集中的README
文件中提供了右侧标题。
将文件更改为以下内容:
## Explore the data (line 27)
data = pd.read_table('u.data', header=None) # header=None avoid getting the columns automatically
data.columns = ['userID', 'itemID',
'rating', 'timestamp'] # Manually set the columns.
data = data.drop('timestamp', axis=1) # Continue with regular work.
...
## Load user information (line 75)
users_info = pd.read_table('u.user', sep='|', header=None)
users_info.columns = ['useID', 'age', 'gender',
'occupation' 'zipcode']
users_info = users_info.set_index('userID')
...
## Load movie information (line 88)
movies_info = pd.read_table('u.item', sep='|', header=None)
movies_info.columns = ['movieID', 'movie title', 'release date',
'video release date', 'IMDb URL', 'unknown',
'Action', 'Adventure', 'Animation', "Children's",
'Comedy', 'Crime', 'Documentary', 'Drama',
'Fantasy', 'Film-Noir', 'Horror', 'Musical',
'Mystery', 'Romance', 'Sci-Fi',' Thriller',
'War', 'Western']
movies_info = movies_info.set_index('movieID')#.drop(low_count_movies)
这应该有效(但我不确定我是否为列提供了所有正确的名称)。