首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在movielens项目中查找具有多种类型的电影- Pandas

在movielens项目中查找具有多种类型的电影- Pandas
EN

Stack Overflow用户
提问于 2021-03-18 04:21:47
回答 1查看 129关注 0票数 1

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

我还尝试了以下基于解决方案线程的代码,但它不起作用。

代码语言:javascript
复制
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)

有人能帮帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2021-05-16 22:53:25

假设您使用的是MovieLens 100k数据集(从https://grouplens.org/datasets/movielens/获得)。

它附带一个名为“u.genre”的文件,其中包含电影信息,其中包括一种热门的编码类型。

加载数据:

代码语言:javascript
复制
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)

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

代码语言:javascript
复制
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语言:

代码语言:javascript
复制
print([movie['movie title'] for _, movie in movie_data.iterrows() if movie[genres].sum() > 1])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66680661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档