在movielens项目中找到不止一种类型的电影——熊猫



嗨,我需要在movielens项目中找到有多个类型的电影,其中类型不是一列,而是多列,如genre1、type2等,我尝试使用item.sum(axis=1(,但它没有给我带来所需的结果。

我还尝试了以下基于解决方案线程的代码,但没有成功。

tempdf = item[[column for column in item if 'genre' in column]]
number_of_genres = tempdf.sum(axis=1)
sub =item[number_of_genres > 1]
print(sub)

有人能帮忙吗?

如果您使用MovieLens 100k数据集(从https://grouplens.org/datasets/movielens/)。

它附带了一个名为"u.流派"的文件,其中包含包括一个热门编码流派的电影信息。

加载数据:

import pandas as pd
dt_dir_name = '/path/to/ml-100k/'
genres = ['unknown', 'Action' ,'Adventure' ,'Animation',
'Children' ,'Comedy' ,'Crime' ,'Documentary' ,'Drama' ,'Fantasy',
'Film-Noir' ,'Horror' ,'Musical' ,'Mystery' ,'Romance' ,'Sci-Fi',
'Thriller' ,'War' ,'Western']
movie_data = pd.read_csv(dt_dir_name +'/'+ 'u.item', delimiter='|', names=['movie id' ,'movie title' ,'release date' ,'video release date' ,
'IMDb URL'] + genres)
print('movie data', movie_data.shape)

然后,我们搜索具有多种类型的电影,并将标题保存在列表中:

movies_with_several_genres = []
for _, movie in movie_data.iterrows():
if movie[genres].sum() > 1:
movies_with_several_genres.append(movie['movie title'])
print(movies_with_several_genres

或者更像蟒蛇:

print([movie['movie title'] for _, movie in movie_data.iterrows() if movie[genres].sum() > 1])

最新更新