标签: rank

按Python中的计数排列多个列表的元素

我想根据元素在每个列表中出现的频率对多个列表进行排名.例:

list1 = 1,2,3,4
list2 = 4,5,6,7
list3 = 4,1,8,9

结果= 4,1,2,3,4,5,6,7,8(4次计数3次,1次2次,其余1次)

我已经尝试了以下但我需要一些更聪明的东西,我可以用任何大量的列表.


 l = []
 l.append([ 1, 2, 3, 4, 5])
 l.append([ 1, 9, 3, 4, 5])
 l.append([ 1, 10, 8, 4, 5])
 l.append([ 1, 12, 13, 7, 5])
 l.append([ 1, 14, 13, 13, 6])

 x1 = set(l[0]) & set(l[1]) & set(l[2]) & set(l[3])
 x2 = set(l[0]) & set(l[1]) & set(l[2]) & set(l[4])
 x3 = set(l[0]) & set(l[1]) & set(l[3]) & set(l[4])
 x4 = set(l[0]) & set(l[2]) & set(l[3]) …
Run Code Online (Sandbox Code Playgroud)

python list set ranking rank

3
推荐指数
1
解决办法
3481
查看次数

对J Tally的误解(#)

在J中,要查找可以使用的元素数量#right?

例如

# 2 3 4 5 6
5
Run Code Online (Sandbox Code Playgroud)

好.那么多维数组呢?

b=: 2 3 4 $ i.2

   b
0 1 0 1
0 1 0 1
0 1 0 1

0 1 0 1
0 1 0 1
0 1 0 1
Run Code Online (Sandbox Code Playgroud)

这里#b是2.我猜是因为第一个维度的长度为2,即数组的帧.

所以,如果我稍微改变它:

b=:3 2 4 $ i.2
   b
0 1 0 1
0 1 0 1

0 1 0 1
0 1 0 1

0 1 0 1
0 1 0 1
Run Code Online (Sandbox Code Playgroud)

这有3个,因为领先尺寸长度为3,对吧?

但我无法解释这个:

#\b
1 2 3
Run Code Online (Sandbox Code Playgroud)

我通过b的元素计算.所以我认为每个2x4子阵列都会被使用,我希望#\ …

arrays j rank

3
推荐指数
1
解决办法
95
查看次数

在Excel中对排名数据进行排序,同时将重复项列为不同的整数

我有一个电子表格,我正在为一些技术娴熟的同事组装,所以它需要非常容易使用.

A列显示每个商店的等级[使用的公式是= RANK(C3,C $ 3:C $ 16)].

B列显示了每个商店的名称[例如A,B,C,D,E一直到N].此信息不会改变.

C列显示了每个商店的得分.这是人们可以随着每周分数变化而改变的唯一信息.

因此,A栏中的公式会查看C栏中的分数并为其分配排名,1号是最高分,14号是最低分.

然后在我的几个列上设置简化数据,以便同事不必做太多(我不希望他们必须点击"排序",我只是想让它自动排序) .

E列有一个从1到14的数字列表,它没有公式,它只是一个数字列表.

列F查看E列中的数字,在A列中搜索相同数字的排名,并将商店名称带到F [使用的公式= VLOOKUP(E3,A $ 3:C $ 16,2,FALSE)].

G栏显示相应的分数[使用的公式= VLOOKUP(F3,B $ 3:D $ 16,2,FALSE)].

所有这一切都很完美.唯一需要更改的数据是C列中的分数.列F和G相应地更新.我的所有同事必须做的是将E,F和G列复制并粘贴到电子邮件中,并发送每个人的分数更新.

这是方便和容易的,直到有重复的分数.

如果两个(或更多)商店具有相同的分数,则只返回#N/A. 我知道有一种方法可以让Rank公式指定小数来重复排名,但我们不希望它显示某人在14中排名为3.5.我需要为每个人分配1到14之间没有小数的数字.

我用类似的帖子玩了很多不同的公式,但没有一个能用于我需要的东西.我找到了一个有希望的,但是当我把某个人的分数改为与其他人完全相同的时候,它给我看了两次相同的商店.

无论如何要让它做我需要它做的事情?

sorting excel duplicates formulas rank

3
推荐指数
1
解决办法
3万
查看次数

基本 Python:对列表中的项目进行排名

我有一个清单:

[55, 41, 45, 43, 60, 47, 33, 70, 42, 42, 44]
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列表,按它们的顺序排列这些项目:

预期输出:

[7, ,2 ,9 ,10, 4, 11, 3, 6, 1, 5, 8]
Run Code Online (Sandbox Code Playgroud)

尝试了这 3 个版本的 func 但它不能正常工作,不知道为什么?

def argsort(seq):

    #return sorted(range(len(seq)), key = seq.__getitem__)

    #return [i for (v, i) in sorted((v, i) for (i, v) in enumerate(seq))]

    return [x for x,y in sorted(enumerate(seq), key = lambda x: x[1])] 
Run Code Online (Sandbox Code Playgroud)

返回:

[6, 1, 8, 9, 3, 10, 2, 5, 0, 4, 7]
Run Code Online (Sandbox Code Playgroud)

python list rank

3
推荐指数
1
解决办法
7162
查看次数

在 R 中排名时如何保留连续(1,2,3,...n)排名符号?

如果我想使用共享案例(又名关系)的最小排名对一组数字进行排名:

dat <- c(13,13,14,15,15,15,15,15,15,16,17,22,45,46,112)
rank(dat, ties = 'min')
Run Code Online (Sandbox Code Playgroud)

我得到结果:

 1  1  3  4  4  4  4  4  4 10 11 12 13 14 15
Run Code Online (Sandbox Code Playgroud)

但是,我希望等级是由 1,2,3,... n组成的连续系列,其中n是唯一等级的数量

有没有办法rank通过将关系分配给上述最低等级来使(或类似功能)对一系列数字进行排名, 不是按先前关系的数量跳过后续等级值,而是继续从前一个等级开始排名

例如,我希望上述排名结果为:

1  1  2  3  3  3  3  3  3  4  5  6  7  8  9
Run Code Online (Sandbox Code Playgroud)

r ranking rank

3
推荐指数
2
解决办法
537
查看次数

r数据表中的等级值按另一个变量分组

我想使用datatable的frank函数按id排列日期列.但是,我的排名似乎只考虑了日期列而不是与之对应的id.我还收到其中6个我不确定的警告:

1 ..... 6:In [.data.table(dups ,, :=(rank,frank(dups,date,ties.method ="average")),:RHS 1长度为10(大于第6组的大小(1))最后9个元素将被丢弃.

dups <- data.table (id = c('11', '11', '11', '22','22',
  '88', '99','44','44', '55'),
  date = mdy(c("1-01-2016", "1-02-2016", "1-02-2016","2-01-2016", 
  "2-02-2016")))

so.sample <- dups[, rank := frank(dups, date, ties.method = "average"), by = id]
Run Code Online (Sandbox Code Playgroud)

例如,id = 11和date = 2016-01-01应该排名为1而不是1.5,因为该组合只有一个id和date.

请求帮助

r rank data.table

3
推荐指数
1
解决办法
7535
查看次数

Tensorflow:如何将 1 级张量转换为 2 级张量

我正在尝试制作一个简单的神经网络,但我有一个简单的问题:如何将等级为 1 的张量转换为等级为 2 的张量?

python rank neural-network tensorflow

3
推荐指数
1
解决办法
4234
查看次数

Spark中高效计算top-k元素

我有一个类似于以下内容的数据框:

+---+-----+-----+
|key|thing|value|
+---+-----+-----+
| u1|  foo|    1|
| u1|  foo|    2|
| u1|  bar|   10|
| u2|  foo|   10|
| u2|  foo|    2|
| u2|  bar|   10|
+---+-----+-----+
Run Code Online (Sandbox Code Playgroud)

并希望得到以下结果:

+---+-----+---------+----+
|key|thing|sum_value|rank|
+---+-----+---------+----+
| u1|  bar|       10|   1|
| u1|  foo|        3|   2|
| u2|  foo|       12|   1|
| u2|  bar|       10|   2|
+---+-----+---------+----+
Run Code Online (Sandbox Code Playgroud)

目前,有类似的代码:

val df = Seq(("u1", "foo", 1), ("u1", "foo", 2), ("u1", "bar", 10), ("u2", "foo", 10), ("u2", "foo", 2), ("u2", "bar", 10)).toDF("key", "thing", "value")

 // calculate …
Run Code Online (Sandbox Code Playgroud)

approximation rank window-functions apache-spark apache-spark-sql

3
推荐指数
1
解决办法
3549
查看次数

将 2 个数据帧附加在一起并在附加时增加排名

我有 2 个数据框

数据框1:

index cust_id   rank opt
0   customer_1  1   test1
2   customer_1  2   test3 
3   customer_1  3   test4
4   customer_2  1   test1
5   customer_2  2   test4   
7   customer_2  3   test3   
9   customer_3  1   test3   
10  customer_3  2   test4   
11  customer_3  3   test1
Run Code Online (Sandbox Code Playgroud)

数据框2:

index cust_id rank opt
1   customer_1  1  new_opt
2   customer_2  2  new_opt
3   customer_3  3  new_opt
Run Code Online (Sandbox Code Playgroud)

我想将这两个数据帧合并在一起并获得如下输出:

index cust_id   rank opt
0   customer_1  1   new_opt
1   customer_1  2   test1
2   customer_1  3   test3 
3   customer_1 …
Run Code Online (Sandbox Code Playgroud)

python append rank pandas

3
推荐指数
1
解决办法
746
查看次数

tidyverse 计算多列中每行的排名

我有以下数据框:

dat <- data.frame(id = c("a", "b", "c", "d"),
                  x1 = c(1, 3, 5, 7),
                  x2 = c(4, 2, 6, 0),
                  x3 = c(2, 2, 5, 9))
Run Code Online (Sandbox Code Playgroud)

我现在想要计算三 x 列中每行的排名,并将该结果存储到我的dat数据框中。因此结果可以通过两种方式存储:

a) 理想情况下,将有 4 个具有各自等级的新列,或者
b) 将有一个新的嵌套列,我可能需要以某种方式取消嵌套。

我尝试了以下至少给了我一个列表列。

dat %>%
  rowwise() %>%
  mutate(my_ranks = list(rank(c_across(starts_with("x")))))
Run Code Online (Sandbox Code Playgroud)

但是当我尝试取消嵌套时,它会给我排名,但它是通过创建新行来实现的(即每个原始案例现在出现四次)。虽然我想我可以用某种方式重塑这个结果pivot_wider,但遵循这条路线感觉是错误的。

有更好/更简单的想法吗?谢谢。

r rank dplyr

3
推荐指数
1
解决办法
549
查看次数