标签: rank

在mysql查询中获得一行的排名

我正在使用此查询根据他们获得的投票为每个名称分配排名,但它返回错误:

1248 - 每个派生表必须有自己的别名

这是我的代码:

SELECT @rownum:=@rownum+1 AS rank, name, vote 
FROM table, (SELECT @rownum:=0) ORDER BY vote DESC
Run Code Online (Sandbox Code Playgroud)

在将查询修改为: -

SELECT @rownum:=@rownum+1 AS rank, name, vote 
FROM table ORDER BY vote DESC
Run Code Online (Sandbox Code Playgroud)

我得到的查询排名为NULL.任何帮助,如何获得第一名的排名?

注意:我不是在寻找任何替代解决方案.只是尝试在查询本身中执行此操作.

mysql sql rank

4
推荐指数
1
解决办法
1470
查看次数

Fortran:选择可分配数组的等级

我正在尝试编写一个程序,其中我希望可分配数组的A等级为 1、2 或 3,具体取决于我在运行时的输入。我想这样做,因为后续操作A是相似的,并且我在模块中定义了一个work带有模块过程的接口,当执行该模块过程时A,会给出所需的结果。

我目前正在做的是这样的:

program main
implicit none
integer :: rank,n=10
real*8, allocatable :: A1(:)
real*8, allocatable :: A2(:,:)
read (*,*) rank

if (rank.eq.1) then
    allocate (A1(n))
else if (rank.eq.2) then
    allocate (A2(n,n))
end if

! operate on the array
if (rank.eq.1) then
    call work(A1)
else if (rank.eq.2) then
    call work(A2)
end if

end program
Run Code Online (Sandbox Code Playgroud)

如果我可以选择 的等级A,事情会容易得多,因为这样就if不需要这些陈述了。也许这是不可能的,但感谢所有帮助。

arrays fortran rank allocatable-array

4
推荐指数
1
解决办法
2368
查看次数

等级不足警告混合模型lmer

我有一个包含 142 个数据条目的数据集:121 个人在两次测量(两年,治疗前后,年份 = 0 或 1),在第二年 46 个人在处理地块中,其余的在控制地块中(处理= 0 或 1)。以下是一些示例数据:

ID <- c("480", "480", "620", "620","712","712")
Year <- c("0", "1", "0", "1","0", "1")
Plot <- c("14", "14", "13", "13","20","20")
Treat <- c("0", "0", "0", "1", "0", "1")
Exp <- c("31", "43", "44", "36", "29", "71")
ExpSqrt <- c("5.567764", "6.557439", "6.633250", "6.000000", "5.385165", "8.426150")

Winter <- data.frame(ID, Year, Plot, Treat,
                  Exp, ExpSqrt,
                  stringsAsFactors = TRUE) 
Run Code Online (Sandbox Code Playgroud)

情节和个人是随机因素,我试图拟合一个混合模型来确定年份、治疗和它们之间的相互作用的影响:

model_Exp <- lmer(ExpSqrt~Year+Treat+Year*Treat+(1|ID)+(1|Plot),data=Winter)
Run Code Online (Sandbox Code Playgroud)

但我不断收到警告信息:

"fixed-effect model matrix is rank deficient so dropping …
Run Code Online (Sandbox Code Playgroud)

r rank lme4 mixed-models

4
推荐指数
1
解决办法
4974
查看次数

TSql返回基于分区和rownumber的列

我有一个SQL服务器表,我试图获取一个计算列 - MyPartition - 指示基于变量@segment的分区数.例如,如果@segment = 3,则以下输出为真.

RowID  | RowName    | MyPartition
------ | -----------| -------
1      | My Prod 1  | 1
2      | My Prod 2  | 1
3      | My Prod 3  | 1
4      | My Prod 4  | 2
5      | My Prod 5  | 2
6      | My Prod 6  | 2
7      | My Prod 7  | 3
8      | My Prod 8  | 3
9      | My Prod 9  | 3
10 …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server row-number rank partition-by

4
推荐指数
1
解决办法
44
查看次数

python pandas groupby排序排名/前n

我有一个按州分组并汇总到总收入的数据框,其中忽略了部门和名称。我现在想分解基础数据集,以按特定顺序按收入显示状态、部门、名称和前 2 个(我从以前的数据框中创建了一个索引,该索引按特定顺序列出了状态)。使用下面的示例,我想使用我的排序索引(肯塔基州、加利福尼亚州、纽约州),该索引仅列出每个州的前两个结果(按收入先前规定的顺序): 数据集:

State       Sector   Name   Revenue
California  1        Tom    10
California  2        Harry  20
California  3        Roger  30
California  2        Jim    40
Kentucky    2        Bob    15
Kentucky    1        Roger  25
Kentucky    3        Jill   45
New York    1        Sally  50
New York    3        Harry  15
Run Code Online (Sandbox Code Playgroud)

最终目标数据框:

State       Sector   Name   Revenue
Kentucky    3        Jill   45
Kentucky    1        Roger  25
California  2        Jim    40
California  3        Roger  30
New York    1        Sally  50
New York    3        Harry  15
Run Code Online (Sandbox Code Playgroud)

python rank pandas

4
推荐指数
2
解决办法
1676
查看次数

Pandas groupby 排名日期时间

我遇到了日期时间排名的问题。可以说我有下表。

ID    TIME
01    2018-07-11 11:12:20
01    2018-07-12 12:00:23
01    2018-07-13 12:00:00
02    2019-09-11 11:00:00
02    2019-09-12 12:00:00
Run Code Online (Sandbox Code Playgroud)

我想添加另一列以按时间为每个 ID 和组对表进行排名。我用了

df['RANK'] = data.groupby('ID')['TIME'].rank(ascending=True)
Run Code Online (Sandbox Code Playgroud)

但得到一个错误:

'NoneType' object is not callable
Run Code Online (Sandbox Code Playgroud)

如果我将日期时间替换为数字,它会起作用......任何解决方案?

python date rank pandas

4
推荐指数
1
解决办法
5921
查看次数

pandas 对重复值进行排名

让我们采用一列具有随机值的数据帧。我想获得所有这些值的排名,这很容易通过执行以下操作:

df.rank()
Run Code Online (Sandbox Code Playgroud)

但如果存在重复的值,您的排名也会得到重复的值。例如,对于给定的数字列表:

[127.0, 131.856, 132.88, 126.249, 128.417, 124.336, 131.856, 130.624, 147.906, 134.412, 130.735, 133.433, nan, 125.59, 130.211, 133.847, 137.431, 130.0, 127.4, 132.226, 138.134]
Run Code Online (Sandbox Code Playgroud)

排名函数的输出将是:

[4.0, 11.5, 14.0, 3.0, 6.0, 1.0, 11.5, 8.0, 20.0, 17.0, 9.0, 15.0, nan, 2.0, 7.0, 16.0, 18.0, 10.0, 5.0, 13.0, 19.0]
Run Code Online (Sandbox Code Playgroud)

如您所见,位置 1 和 6 是相同的,完整列表中没有 11 或 12。 即使哪个数字排在第一位是任意的,我们如何才能获得这些数字的排名?

python rank pandas

4
推荐指数
1
解决办法
6069
查看次数

Excel:获取前 3 个值和名称

我试图获得前 3 个不同的分数(公式结果)以及获得这些(3 个最高)分数的分析师的姓名。我试过使用 RANK、SORT、LARGE 并且都给了我奇怪的结果。

这就是我要的结果。请注意,每个分数的分析师数量各不相同。

想要的结果

这是我使用 RANK 得到的结果。

秩

这是我使用 SORT 得到的结果。

种类

这是我使用 LARGE 得到的结果

大的

我不确定我做错了什么。也许我使用了错误的功能,所以如果有人能指出我正确的方向,我将不胜感激。

sorting excel rank

4
推荐指数
1
解决办法
1898
查看次数

pandas 中的排名是如何计算的

我对系列的排名感到困惑。我知道排名是从系列中的最高值到最低值计算的。如果两个数字相等,则 pandas 计算数字的平均值。

在此示例中,最高值为 7。为什么我们对数字 7 的排名为 5.5,对数字 4 的排名为 1.5?

S1 = pd.Series([7,6,7,5,4,4])
S1.rank()

Output:

0    5.5
1    4.0
2    5.5
3    3.0
4    1.5
5    1.5
dtype: float64
Run Code Online (Sandbox Code Playgroud)

python rank pandas

4
推荐指数
1
解决办法
1906
查看次数

如何使用lightgbm实现学习排名?

我正在尝试设置学习以进行排名lightgbm,我有以下数据集,其中包含基于查询的用户交互:

df = pd.DataFrame({'QueryID': [1, 1, 1, 2, 2, 2], 
                   'ItemID': [1, 2, 3, 1, 2, 3], 
                   'Position': [1, 2 , 3, 1, 2, 3], 
                   'Interaction': ['CLICK', 'VIEW', 'BOOK', 'BOOK', 'CLICK', 'VIEW']})
Run Code Online (Sandbox Code Playgroud)

问题是正确设置训练数据集?文档提到使用,Dataset.set_group()但不太清楚如何使用。

python rank lightgbm

4
推荐指数
2
解决办法
1776
查看次数