在KDB中如何将字典转换为标准表格
KDB字典转表格错误原因及解决方案
错误根因
你使用的flip datevalue!myDict写法不符合KDB语法规则,核心问题有两个:
- 你构造
date`value!myDict时,!操作符要求左右两侧列表长度必须相等,左侧是长度为2的列名符号列表,右侧是长度为8的完整字典对象,长度不匹配,该语句无法生成可被flip转换的合法列字典。 flip函数仅支持将键为列名、值为对应列全量行数据的列表结构的字典转换为表格,你传入的结构不符合转换要求。
正确实现方法
你需要先提取原字典的键、值分别作为两列的数据源,再构造符合要求的列字典后执行flip,代码示例如下:
// 方法1:显式提取键值构造,逻辑最清晰 tab: flip `date`value!(key myDict; value myDict) // 方法2:简洁写法,转换后直接重命名列 tab: `date`value xcol 1!enlist myDict
执行后得到的表格格式如下:
date value ----------------- 2021.05.03 0.2466805 2021.05.04 0.2602927 2021.05.05 0.2593721 2021.05.06 0.2605107 2021.05.07 0.2598938 2021.05.10 0.266119 2021.05.11 0.2655128 2021.05.12 0.2709233
内容的提问来源于stack exchange,提问作者cjm2671
相关产品推荐
相关产品推荐

