标签: kdb

使用lambda进行KDB/Q功能更新

我试图在功能更新中使用一些lambdas.简单的例子就是

parse "update cfoo:foo'[c] from t"

!
`t

falseb
,`cfoo!,((`func;`foo);`c)
Run Code Online (Sandbox Code Playgroud)

那个解析树中的`func是什么?我需要在下面更换它?

![`t;();0b;(enlist `cfoo)!enlist ((`func;`foo);`c)]
Run Code Online (Sandbox Code Playgroud)

kdb

0
推荐指数
1
解决办法
244
查看次数

以符号为键的 kdb 字典的联合连接工作但不是长键?

以符号作为键的 KDB 字典的联合连接正在工作,但当键更改为 long 类型时;字典连接不起作用?

Q码

k1:`1`2`3

v1: 1 2 3

k2:`2`3`4 

v2:2 3 4

//works
(enlist k1!v1) uj (enlist k2!v2)

k1:1 2 3

v1:1 2 3

k2:2 3 4 

v2:2 3 4

//not working
(enlist k1!v1) uj (enlist k2!v2)

why key list type change is not acceptable?
Run Code Online (Sandbox Code Playgroud)

dictionary kdb union-join

0
推荐指数
1
解决办法
222
查看次数

kdb/q -- 如何按特定分组对行进行编号

我有带date;sym列的表。但是每个日期可能有多个符号。我想对每个日期中符号的出现次数进行编号

例如:

date        sym 
-------------------
2019.06.04  ABC
2019.06.04  DEF
2019.06.04  ABC
2019.06.05  DEF
2019.06.05  ABC
Run Code Online (Sandbox Code Playgroud)

会给我

date        sym   c 
-------------------
2019.06.04  ABC   1
2019.06.04  DEF   1
2019.06.04  ABC   2   / here ABC appears for the second time on this date. 
2019.06.05  DEF   1
2019.06.05  ABC   1
Run Code Online (Sandbox Code Playgroud)

kdb

0
推荐指数
1
解决办法
350
查看次数

如何将数据帧作为新表提交到 kdb?

我知道这里已经回答了这个问题,但是作为一个新的 q-bie,我仍然对如何使用 q 创建和插入新表感到困惑。

我的问题:我有一个数据框,我正在使用 qPython 连接到 kdb。我想将此数据帧作为新表写入 kdb。

我的问题:似乎我可以做这样的事情:

df = pd.DataFrame({'sym':['abc','def','ghi'],'price':[10.1,10.2,10.3]})
with qconnection.QConnection(host = 'localhost', port = 5001, pandas = True) as q:
    q.sync('{t::x}',df)
Run Code Online (Sandbox Code Playgroud)

{t::x}这里是什么?不会是我的表名吗?x 会是什么?

如何指定列类型和大小限制或不需要它们?谢谢!

python kdb pandas qpython

0
推荐指数
1
解决办法
346
查看次数

在 KDB+ 中添加字符串

我是 KDB+ 和 q 的新手,想知道如何添加两个字符串来组成一个句子。

例如,我怎么会加入w1:"Hello"w2:"World"作出新的字符串"Hello World"

string kdb

0
推荐指数
1
解决办法
206
查看次数

可以减慢实时订阅者杀死 kdb 中的tickerplant

缓慢的消费者能否杀死或减慢滴答作响的速度?

我有一个自动收报机,有 3 个实时订阅者,其中一个订阅者很慢。

q).z.W
7 | `long$()
8 | 969393 198 198 197 197 198 196 199 197 196 143 198 196 196 197 197 198 19..
9 | 199 198 198 143 197 199 197 197 197 197 199 196 199 145 196 198 198 198 1..
10| 198 196 198 144 199 198 198 198 196 197 196 199 198 143 199 198 197 198 1..

q)count each .z.W
7 | 0
8 | 85547
9 | …
Run Code Online (Sandbox Code Playgroud)

kdb

0
推荐指数
1
解决办法
341
查看次数

KDB/Q:根据其他列的值创建一个新列

这可能是一个简单的问题,但我无法让它发挥作用。我想创建一个列varNew,等于一列的一半Price,如果只有一个列var1,并var2具有1的值,var1并且var2只需要0或1。如果两个数值var1var2是1,那么varNew = Price。所以想要的数据看起来像这样

var1    var2    Price   varNew
0       0       10      10
0       1       14      7
1       0       12      6
1       1       20      20
Run Code Online (Sandbox Code Playgroud)

我试过:

update varNew:?[((var1+var2)>0);Price%2;Price] from table

varNew:?[(var1=1 and var2=0)|(var1=0 and var2=1);Price%2;Price] from table

varNew:?[var1=1 or var2=1;Price%2;Price] from table

但它们没有按预期工作。特别是,它返回 12 而不是 6。这是怎么回事?为什么这些条件不起作用?我该怎么做?

kdb

0
推荐指数
1
解决办法
159
查看次数

kdb:value 和 eval 之间的差异

来自 KX:https : //code.kx.com/q/ref/value/说,whenx是一个列表,value[x]将作为解析树评估列表的结果。


一季度。在下面的代码中,我理解 (A) 是一个解析树,定义如下。但是,为什么(B)也有效?是("+";3;4)一个有效的解析树吗?

q)value(+;3;4)  / A
7
q)value("+";3;4)  / B
7
q)eval(+;3;4) / C
7
q)eval("+";3;4) / D
'length
  [0]  eval("+";3;4)
Run Code Online (Sandbox Code Playgroud)

任何其他解析树都采用列表的形式,其中第一项是函数,其余项是其参数。这些项目中的任何一个都可以是解析树。https://code.kx.com/q/basics/parsetrees/


Q2。在下面的代码中,value未能返回我认为是有效解析树的结果,但eval工作正常,递归评估树。这是否意味着最上面的描述是错误的?

q)value(+;3;(+;4;5))
'type
  [0]  value(+;3;(+;4;5))
       ^
q)eval(+;3;(+;4;5))
12
Run Code Online (Sandbox Code Playgroud)

Q3。那么一般来说,我们如何选择是使用value还是eval

kdb

0
推荐指数
1
解决办法
78
查看次数

如何在 KDB 中制作零字典?

假设我有一个(长)键列表:

`a`b`c
Run Code Online (Sandbox Code Playgroud)

如何制作每个值都为零的字典?

kdb

0
推荐指数
1
解决办法
96
查看次数

如何在 KDB 中生成对角矩阵?

我正在尝试生成一个矩阵,这样:

  • 对角线元素为 1
  • 所有其他元素均为 0.5

我正在尝试修改单位矩阵的示例:

{x=/:x}@til 4
Run Code Online (Sandbox Code Playgroud)

挤进我的特殊功能:

shrinkfn: {$[x=y;1;0.5]}
Run Code Online (Sandbox Code Playgroud)

但我在挣扎。做到这一点的最佳方法是什么?

kdb

0
推荐指数
1
解决办法
75
查看次数

标签 统计

kdb ×10

dictionary ×1

pandas ×1

python ×1

qpython ×1

string ×1

union-join ×1