【发布时间】:2016-03-06 03:58:31
【问题描述】:
我需要的是通过以下过程规范下面的评分列:
- 按用户字段 ID 分组。
- 找出每个用户的平均评分。
- 找到每个用户的评论提示并减去用户的平均评分。
我有这个数据框:
user rating
review_id
a 1 5
b 2 3
c 1 3
d 1 4
e 3 4
f 2 2
...
然后我计算每个用户的平均值:
>>>data.groupby('user').rating.mean()
user
1 4
2 2.5
3 4
我需要的最终结果是:
user rating
review_id
a 1 1
b 2 0.5
c 1 -1
d 1 0
e 3 0
f 2 -0.5
...
数据框如何有效地提供这种功能?
【问题讨论】:
-
您确定评分列中的值是数字吗?试试
data['rating'] = data.rating.astype('int')然后运行你的groupby。 -
@Alexander 是的,就是这样。
-
@binarysubstrate 对此持保留态度,因为我是熊猫新手。我认为您发布的这个线程使用静态值对每一行进行了规范化,所以我想我想要一种不同类型的规范化。
-
很公平。我删除了我的评论,但事实证明无法撤回标记。
标签: python python-3.x pandas dataframe ipython-notebook