为了账号安全,请及时绑定邮箱和手机立即绑定

添加每个用户的评分数列,熊猫

添加每个用户的评分数列,熊猫

千巷猫影 2022-01-18 16:12:58
我正在使用表单的图书评级数据集userID | ISBN | Rating23413    1232     2.512321    2311     3.223413    2532     1.723413    7853     3.8现在我需要添加第四列,其中包含每个用户在整个数据集中的评分数:userID | ISBN | Rating | Ratings_per_user23413    1232     2.5         312321    2311     3.2         123413    2532     1.7         3 23413    7853     3.8         3我努力了:df_new['Ratings_per_user'] = df_new['userID'].value_counts()但我收到一个错误:A value is trying to be set on a copy of a slice from a DataFrame.Try using .loc[row_indexer,col_indexer] = value instead并且整个新列都填充了NaN.
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

利用:


df_new['Ratings_per_user']=df_new.groupby('userID')['userID'].transform('count')

   userID  ISBN  rating  Ratings_per_user

0   23413  1232     2.5                 3

1   12321  2311     3.2                 1

2   23413  2532     1.7                 3

3   23413  7853     3.8                 3


查看完整回答
反对 回复 2022-01-18
?
手掌心

TA贡献1942条经验 获得超3个赞

将结果转换value_counts为dict,然后用于replace创建具有用户评分的新列


x = df['userID'].value_counts().to_dict()


df['rating_per_user'] = df['userID'].replace(x)

print(df)

输出:


  userID  ISBN  rating  rating_per_user                                                                                              

0   23413  1232     2.5                3                                                                                              

1   12321  2311     3.2                1                                                                                              

2   23413  2532     1.7                3                                                                                              

3   23413  7853     3.8                3 


查看完整回答
反对 回复 2022-01-18
?
ibeautiful

TA贡献1993条经验 获得超6个赞

你可以使用map:


df['Rating per user'] = df['userID'].map(df.groupby('userID')['Rating'].count())

print(df)


   userID  ISBN  Rating  Rating per user

0   23413  1232     2.5                3

1   12321  2311     3.2                1

2   23413  2532     1.7                3

3   23413  7853     3.8                3


查看完整回答
反对 回复 2022-01-18
  • 3 回答
  • 0 关注
  • 213 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号