小编ulr*_*ich的帖子

将字典值映射到列表

鉴于以下字典:

dct = {'a':3, 'b':3,'c':5,'d':3}
Run Code Online (Sandbox Code Playgroud)

如何将这些值应用于列表,例如:

lst = ['c', 'd', 'a', 'b', 'd']
Run Code Online (Sandbox Code Playgroud)

为了得到类似的东西:

lstval = [5, 3, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)

python dictionary list

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

如何计算单个组中的总和和计数?

基于以下内容DataFrame:

val client = Seq((1,"A",10),(2,"A",5),(3,"B",56)).toDF("ID","Categ","Amnt")
+---+-----+----+
| ID|Categ|Amnt|
+---+-----+----+
|  1|    A|  10|
|  2|    A|   5|
|  3|    B|  56|
+---+-----+----+
Run Code Online (Sandbox Code Playgroud)

我想按类别获取ID和总金额:

+-----+-----+---------+
|Categ|count|sum(Amnt)|
+-----+-----+---------+
|    B|    1|       56|
|    A|    2|       15|
+-----+-----+---------+
Run Code Online (Sandbox Code Playgroud)

是否可以在不进行连接的情况下进行计数和总和?

client.groupBy("Categ").count
      .join(client.withColumnRenamed("Categ","cat")
           .groupBy("cat")
           .sum("Amnt"), 'Categ === 'cat)
      .drop("cat")
Run Code Online (Sandbox Code Playgroud)

也许是这样的:

client.createOrReplaceTempView("client")
spark.sql("SELECT Categ count(Categ) sum(Amnt) FROM client GROUP BY Categ").show()
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

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

随机生成5个字母"单词"

我想创建一个10个单词的向量,由5个字符组成,这些单词是随机生成的.例如c("ASDT","WUIW"......)

目前我正在使用以下脚本,但肯定应该有更好的方法来做到这一点

result = list()
for (i in 1:10){
result[i]<-paste(sample(LETTERS, 5, replace=TRUE),collapse="")
}
result<-paste(t(result))
Run Code Online (Sandbox Code Playgroud)

r random-sample

6
推荐指数
3
解决办法
249
查看次数

在numpy数组的元素之间添加逗号

我有一个看似像的numpy数组

a = ['blue' 'red' 'green']
Run Code Online (Sandbox Code Playgroud)

我希望它成为

b = ['blue', 'red', 'green']
Run Code Online (Sandbox Code Playgroud)

我试过了

b = a.split(' ')
Run Code Online (Sandbox Code Playgroud)

但它返回一个错误: 'numpy.ndarray' object has no attribute 'split'

python numpy

6
推荐指数
2
解决办法
2万
查看次数

创建RDD以收集迭代计算的结果

我想创建一个RDD来收集迭代计算的结果.

如何使用循环(或任何替代方法)替换以下代码:

import org.apache.spark.mllib.random.RandomRDDs._    

val n = 10 

val step1 = normalRDD(sc, n, seed = 1 ) 
val step2 = normalRDD(sc, n, seed = (step1.max).toLong ) 
val result1 = step1.zip(step2) 
val step3 = normalRDD(sc, n, seed = (step2.max).toLong ) 
val result2 = result1.zip(step3) 

...

val step50 = normalRDD(sc, n, seed = (step49.max).toLong ) 
val result49 = result48.zip(step50) 
Run Code Online (Sandbox Code Playgroud)

(创建N步RDD并在最后一起压缩也可以,只要迭代创建50个RDD以遵守种子=(步骤(n-1).max)条件)

scala scalaz akka apache-spark apache-spark-mllib

6
推荐指数
1
解决办法
418
查看次数

将数据帧中的矢量列转换回数组列

我有一个带有两列的数据帧,其中一列(称为dist)是一个密集向量.如何将其转换回整数数组列.

+---+-----+
| id| dist| 
+---+-----+
|1.0|[2.0]|
|2.0|[4.0]|
|3.0|[6.0]|
|4.0|[8.0]|
+---+-----+
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下udf的几个变体,但它返回一个类型不匹配错误

val toInt4 = udf[Int, Vector]({ (a) => (a)})  

val result = df.withColumn("dist", toDf4(df("dist"))).select("dist")
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-mllib

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

使用R获得总计为100的所有组合

我需要使用8个变量得到总和等于100的所有组合,这些变量可以通过10的递增步长从0到100取任何值.(即0,10,20 ...... 100)

以下脚本就是这样做但效率非常低,因为它创建了一个巨大的数据集,我想知道是否有人有更好的方法来做到这一点.

x <- expand.grid("ON" = seq (0,100,10), 
        "3M" = seq(0,100,10), 
        "6M" = seq(0,100,10), 
        "1Y" = seq(0,100,10), 
        "2Y" = seq(0,100,10),
        "5Y" = seq(0,100,10), 
        "10Y" = seq(0,100,10), 
        "15Y" = seq(0,100,10))

x <- x[rowSums(x)==100,]
Run Code Online (Sandbox Code Playgroud)

编辑 -

回答StéphaneLaurent提出的问题

结果应该是这样的

ON 3M 6M 1Y 2Y 5Y 10Y 15Y        
100 0  0  0  0  0   0   0  
 90 10  0  0  0  0   0   0  
 80 20  0  0  0  0   0   0  
 70 30  0  0  0  0   0   0  
 60 40 …
Run Code Online (Sandbox Code Playgroud)

combinations r

5
推荐指数
2
解决办法
1755
查看次数

映射两个 numpy 数组

我有两个 numpy 数组 A 和 B。

A = np.array ([[ 1  3] [ 2  3]  [ 2  1] ])

B = np.array([(1, 'Alpha'), (2, 'Beta'), (3, 'Gamma')]
Run Code Online (Sandbox Code Playgroud)

我如何将 A 与 B 映射以获得类似的结果:

result = np.array ([[ 'Alpha'  'Gamma'] [ 'Beta'  'Gamma']  ['Beta'  'Alpha'] ])
Run Code Online (Sandbox Code Playgroud)

我试过了,map(B['f1'],A)但我越来越TypeError: 'numpy.ndarray' object is not callable

python numpy

5
推荐指数
1
解决办法
2641
查看次数

以秒为单位转换 HH:mm:ss

我使用以下脚本从 yyyy-MM-dd HH:mm:ss 日期格式中提取 HH:mm:ss

import java.sql.Time

case class Transactions(creationTime: Time)

val formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

def parseTransac(line: String): (Transactions) = {
   val fields = line.split(',')
   val creationTime = new Time(formatter.parse(fields(0)).getTime())
   val transactions = Transactions(creationTime)
   (transactions)
}
Run Code Online (Sandbox Code Playgroud)

例如2009-01-15 15:45:23将返回15:45:23.

如何以秒为单位(56723)而不是 HH:mm:ss 获得结果

scala apache-spark

5
推荐指数
1
解决办法
3767
查看次数

根据列号向量对行的一个元素进行子集化

我有一个数据集

data <- cbind(c(1,2,3),c(1,11,21))
Run Code Online (Sandbox Code Playgroud)

我想根据向量给出的列号从每一行中提取一个元素

selectcol <- c(1,2,2)
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,结果应该是

结果

1
11
21
Run Code Online (Sandbox Code Playgroud)

我努力了

resul<-apply(data, 1, [,selectcol])
Run Code Online (Sandbox Code Playgroud)

但它不起作用

r subset

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