嗨,我需要在movielens项目中找到有多个流派的电影,其中流派不是单个列,而是它的多个列,如genre1,genre 2,等等,我尝试使用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)有人能帮帮忙吗?
发布于 2021-05-16 22:53:25
假设您使用的是MovieLens 100k数据集(从https://grouplens.org/datasets/movielens/获得)。
它附带一个名为“u.genre”的文件,其中包含电影信息,其中包括一种热门的编码类型。
加载数据:
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或者更多的pythonic语言:
print([movie['movie title'] for _, movie in movie_data.iterrows() if movie[genres].sum() > 1])https://stackoverflow.com/questions/66680661
复制相似问题