python - 在 Pandas (python)中包含和排除

标签 python pandas

代码计算所有用户的评分 (user_id) 我只想计算每个用户的评分, ALLAN 作为 sName 。 主要代码

grouped_data = ratings['rating'].groupby(ratings['movie_id'])
average_ratings = grouped_data.mean()
movie_count = ratings.movie_id.value_counts()
higher_than_50_votes = movie_count.index[movie_count > 50]
average_ratings.ix[higher_than_50_votes].sort_values(ascending=False).head(5)

第一个表的一部分。

 user_id     movie_id  rating    
    196        242        3       
    22        302         3       
    90        377         1       
    10         51         2      
    2         346         1       
    1         474         4       
    8         265         2       
    4         465         5       
    2         451         3      
    1         451         5       

第二张表的一部分。

  user_id       Sname
    1|          AKERS
    2|          other
    3|          ALEXANDER
    4|          ALBERT  
    5|          ALBERT  
    6|          ANSEL   
    7|          ALLARD 
    8|          ALLAN 
    9|          ALLAN

最佳答案

实现此目的的几种方法:

1.在“user_id”上合并评级数据框中的 Sname 列

ratings_with_names = ratings.merge(names, on='user_id')

这给你类似的东西:

    user_id     movie_id    rating  unix_timestamp  Sname
0   6           86          3       883603013       ANSEL
1   6           14          5       883599249       ANSEL
2   6           98          5       883600680       ANSEL
3   6           463         4       883601713       ANSEL 

所以现在可以很容易地使用 boolean indexing 选择您需要的行

ratings_with_names[ratings_with_names.Sname == 'ALLAN']

2.在第二个dataframe中找到符合条件的user_id,并用它来过滤第一个dataframe:

ratings[ratings.user_id.isin(names.ix[names.Sname == 'ALLAN', 'user_id'])]

关于python - 在 Pandas (python)中包含和排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40476179/

相关文章:

python - Pandas 有效检查列是否包含其他列中的字符串

python - Fortran 版本的 python 循环给出了错误的答案

python - 根据两个日期时间之间的差异创建 boolean 数据框

python - 在数据框中应用条件 lambda 语句

python - 使用 pandas 数据框中具有匹配标识符值的行的值进行计算

python - 如何使用python调整图像大小但保留像素值

python - Keras:获取 fit_generator (verbose=1) 显示的不同值和历史对象中的指标

python - 说明 Hadoop 与 RabbitMQ+Celery 的用例

python - 动态创建和重命名数据框

python - 具有条件的重复行 pandas dataframe python