You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将0N值转换为对应数据类型的正确空值(null)

KDB/Q 替换0N为对应类型空值的解决方法

问题场景

你的sid列(symbol类型)中混入了0N(float类型空值),price列(float类型)中也存在0N,需要将这些0N分别转换为对应数据类型的空值:

  • symbol类型列的空值为 ``(反引号)
  • float类型列的空值为 0Nf(控制台显示为0N)

具体解决步骤

1. 单独处理sid列

假设你的sid列表为:

sid: `aapl`tsla,0N,`jpm

执行以下语句将其中的0N替换为symbol类型空值:

sid: @[sid; where 0N=sid;:;`]

执行后sid会变为:aapltsla``jpm

2. 单独处理price列

price列中的0N本身就是float类型的空值,若需确保类型统一,可执行:

update price: 0Nf^price from tb

此操作会将列中所有非float的空值统一转为float类型空值。

3. 批量处理整表所有列

如果需要自动处理表中所有列,将每个列里的0N替换为对应类型的空值,可定义如下函数:

fixNulls:{[t] update {ty:type x; @[x; where 0N=x;:;ty$0N]} each flip t from t}

调用方式:

tb: fixNulls tb

该函数会遍历表的每一列,自动识别列数据类型,将列内的0N替换为对应类型的标准空值。


内容的提问来源于stack exchange,提问作者threedom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:52:37