gpt4 book ai didi

python - 计算没有循环python的评级数

转载 作者:行者123 更新时间:2023-11-28 22:33:10 26 4
gpt4 key购买 nike

在 python 中,给定一个评级列表:

import pandas as pd
path = 'ratings_ml100k.csv'

data = pd.read_csv(path,sep= ',')
print(data)
user_id item_id rating
28422 100 690 4
32020 441 751 4
15819 145 265 5

项目在哪里:

print(itemsTrain)
[ 690 751 265 ..., 1650 1447 1507]

对于每个项目,我想计算评分数。有没有办法不用循环就可以做到这一点?感谢所有想法,

data 是一个 pandas 数据框。期望输出应如下所示:

 pop = 
item_id rating_count
690 120
751 10
265 159
... ...

请注意,itemsTrain 在评分数据集 data 中包含唯一的 item_id。

最佳答案

你可以这样做:

In [200]: df = pd.DataFrame(np.random.randint(0,8,(15,2)),columns=['id', 'rating'])

In [201]: df
Out[201]:
id rating
0 4 6
1 0 1
2 2 4
3 2 5
4 2 7
5 3 5
6 6 1
7 4 3
8 4 3
9 3 2
10 2 4
11 7 7
12 3 1
13 2 7
14 7 3

In [202]: df.groupby('id').rating.count()
Out[202]:
id
0 1
2 5
3 3
4 3
6 1
7 2
Name: rating, dtype: int64

如果您想将结果作为 DF(您也可以根据需要命名 count 列):

In [206]: df.groupby('id').rating.count().to_frame('count').reset_index()
Out[206]:
id count
0 0 1
1 2 5
2 3 3
3 4 3
4 6 1
5 7 2

您还可以统计# of unique ratings:

In [203]: df.groupby('id').rating.nunique()
Out[203]:
id
0 1
2 3
3 3
4 2
6 1
7 2
Name: rating, dtype: int64

关于python - 计算没有循环python的评级数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40197735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com