如何在kdb+中筛选无空值列(类似Pandas的dropna方法)
在kdb+中筛选无空值的列(类似Pandas的dropna)
你之前的写法没生效,是因为where子句是用来过滤行的,不是筛选列的,方向搞错啦~下面给你两种实用的实现方法:
方法一:分步筛选列
- 先找出所有没有空值的列名:
validCols: cols where all not null each t
这里的逻辑拆解下:
each t会把表拆成单个列的列表all not null检查每一列的所有元素是否都非空cols where保留符合条件的列名
- 用筛选出的列查询表:
select validCols from t
方法二:一行式简洁写法
把两步合并成一行,直接得到结果:
select cols where all not null each t from t
验证效果
针对你的示例表:
t:([] a:1 2 3; b:(); c:`a`b`c)
执行上面的命令后,会得到你想要的结果:
a c --- 1 a 2 b 3 c
内容的提问来源于stack exchange,提问作者Utsav
相关产品推荐
相关产品推荐

