我正在测试一行非常基本的代码
modDF['RatingDecile'] = pd.cut(modDF['RatingScore'], 10)
这给了我10个级别的评分范围。我怎样才能看到1、2、3等等,而不是范围,最多10个
所以,不是这个
Score RatingQuantile
0 (26.3, 29.0]
6 (23.6, 26.3]
7 (23.6, 26.3]
8 (26.3, 29.0]
10 (18.2, 20.9]
... ...
9763 (23.6, 26.3]
9769 (20.9, 23.6]
9829 (20.9, 23.6]
9889 (23.6, 26.3]
9949 (20.9, 23.6]
我怎么能得到这样的东西
Score RatingQuantile
0 10
6 8
7 8
8 10
10 6
... ...
9763 8
9769 5
9829 5
9889 5
9949 5
我试过这个
modDF['DecileRank'] = pd.qcut(modDF['RatingScore'],10,labels=False)
我犯了这个错误
ValueError: Bin edges must be unique: array([ 2., 20., 25., 27., 27., 27., 27., 27., 27., 27., 29.]).
You can drop duplicate edges by setting the 'duplicates' kwarg
这个错误对我来说是有道理的。我只是不知道这个问题的解决方法。想法
我想你要找的是:
从docs开始:
此外,如果要“覆盖”整个间隔
[0,30]
,请指定箱子边缘:警告:注意^{} is not the same as ^{}
如果传递一个序列,我不会遇到使用
qcut()
的问题。我假设你的数据看起来像我正在使用的数据输出:
之后,您可以使用
groupby()
或其他一组函数检查简单操作(例如箱子的限制):输出:
相关问题 更多 >
编程相关推荐